1. κ·Έλνμ κ°λ
κ·Έλνλ νμ€ μΈκ³μμ μ¬λ¬Ό λλ κ°λ λ€ κ°μ μ°κ²° κ΄κ³λ₯Ό νννλ λΉμ ν μλ£κ΅¬μ‘°μ λλ€. κ·Έλνλ μ μ (Vertex)κ³Ό κ°μ (Edge)μΌλ‘ ꡬμ±λμ΄ μμΌλ©°, μ μ μ κ°λ³μ μΈ κ°μ²΄λ₯Ό λνλ΄κ³ κ°μ μ μ μ λ€ μ¬μ΄μ κ΄κ³λ₯Ό λνλ λλ€.
μ μ μ κ·Έλν λ΄μμ κ³ μ ν μλ³μλ₯Ό κ°μ§λ©°, κ°μ μ λ κ°μ μ μ μ μ°κ²°ν©λλ€. κ°μ μ λ°©ν₯μ±μ΄ μλ κ²½μ°μ μλ κ²½μ°λ‘ λλ μ μλλ°, λ°©ν₯μ±μ΄ μλ κ°μ μ λ μ μ μ μλ°©ν₯μΌλ‘ μ°κ²°νλ κ²μ μλ―Ένκ³ , λ°©ν₯μ±μ΄ μλ κ°μ μ ν μ μ μμ λ€λ₯Έ μ μ μΌλ‘μ λ°©ν₯μ κ°μ§κ³ μ°κ²°λ©λλ€.
κ·Έλνλ νμ€ μΈκ³μμ λ€μν ννλ‘ λνλ μ μμ΅λλ€. μλ₯Ό λ€μ΄, λλ‘ λ€νΈμν¬, μμ λ€νΈμν¬, μ μ νλ‘ λ±μ κ°λ μ κ·Έλνλ‘ ννν μ μμ΅λλ€. κ·Έλνλ μ΄λ¬ν νμ€ μΈκ³μ λ¬Έμ λ₯Ό ν¨μ¨μ μΌλ‘ λͺ¨λΈλ§νκ³ ν΄κ²°νλ λ°μ μ¬μ©λ©λλ€.
κ·Έλνλ νλκ² μ»΄ν¨ν° κ³Όνκ³Ό μ 보 μ΄λ‘ λΆμΌμμ μ¬μ©λλ©°, λ€μν κ·Έλν μκ³ λ¦¬μ¦κ³Ό λ°μ΄ν° κ΅¬μ‘°κ° κ°λ°λμμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ·Έλν λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ νμνκ³ λΆμνμ¬ λ€μν λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
2. κ·Έλνμ κ΅¬μ± μμ
κ·Έλνλ μ μ (Vertex)κ³Ό κ°μ (Edge)μΌλ‘ ꡬμ±λμ΄ μμ΅λλ€. μ΄λ€ κ΅¬μ± μμλ κ·Έλνμ νΉμ±μ κ²°μ νλ©° λ€μν μ°μ°κ³Ό μκ³ λ¦¬μ¦μ νμ©λ©λλ€.
2.1 μ μ (Vertex)
μ μ μ κ·Έλν λ΄μ κ°λ³ κ°μ²΄λ₯Ό λνλ λλ€. μΌλ°μ μΌλ‘ μ μ μ κ³ μ ν μλ³μλ₯Ό κ°μ§λ©°, μ΄λ₯Ό ν΅ν΄ κ° μ μ μ ꡬλ³ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λμμ κ²½μ° κ° λμλ₯Ό νλμ μ μ μΌλ‘ λνλΌ μ μμ΅λλ€. μ μ μ λ³΄ν΅ μ«μλ₯Ό ν΅ν΄ ννλμ§λ§, μ€μ λ‘λ λ€λ₯Έ ννμ λ°μ΄ν°λ μ¬μ©λ μ μμ΅λλ€.
2.2 κ°μ (Edge)
κ°μ μ μ μ λ€μ μ°κ²°νλ κ΄κ³λ₯Ό λνλ λλ€. κ°μ μ λ κ°μ μ μ μ μ°κ²°νλλ°, μ μ λ€ κ°μ κ΄κ³λ₯Ό νννλ μν μ ν©λλ€. μλ₯Ό λ€μ΄, λλ‘ λ€νΈμν¬μμ λμμ λμλ₯Ό μλ λλ‘λ κ°μ μΌλ‘ ννλ©λλ€.
κ°μ μλ λ°©ν₯μ±μ΄ μλ κ²½μ°μ μλ κ²½μ°κ° μμ΅λλ€. λ°©ν₯μ±μ΄ μλ κ°μ μ λ μ μ μ μλ°©ν₯μΌλ‘ μ°κ²°νλ κ²μ μλ―Ένλ©°, λ°©ν₯μ±μ΄ μλ κ°μ μ ν μ μ μμ λ€λ₯Έ μ μ μΌλ‘μ λ°©ν₯μ κ°μ§κ³ μ°κ²°λ©λλ€. λ°©ν₯μ±μ΄ μλ κ°μ μ νμ΄νλ‘ νμλκ³ , λ°©ν₯μ±μ΄ μλ κ°μ μ μ μΌλ‘ νμλ©λλ€.
λν, κ°μ μ κ°μ€μΉ(Weight)λΌλ κ°μ΄ ν λΉλ μ μμ΅λλ€. κ°μ€μΉλ κ°μ μ μ€μλλ₯Ό λνλ΄λ©°, μλ₯Ό λ€μ΄ λλ‘ λ€νΈμν¬μμ κ° λλ‘μ κΈΈμ΄λ μμ μκ°μ κ°μ€μΉλ‘ μ¬μ©ν μ μμ΅λλ€.
κ·Έλνμ κ΅¬μ± μμμΈ μ μ κ³Ό κ°μ μ ν¨κ» μ¬μ©λμ΄ λ€μν κ·Έλν ννμ κ΄κ³λ₯Ό ννν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ·Έλνλ μ€μ μΈκ³μ λ€μν λ¬Έμ λ₯Ό λͺ¨λΈλ§νκ³ ν΄κ²°νλ λ°μ μ¬μ©λ©λλ€.
3. κ·Έλνμ μ’ λ₯
κ·Έλνμλ λ€μν μ’ λ₯κ° μμΌλ©°, κ·Έλνμ ꡬμ±κ³Ό νΉμ±μ λ°λΌ λ€μν μ΄λ¦κ³Ό νΉμ§μ΄ λΆμ¬λ©λλ€. μ΄λ²μλ λͺ κ°μ§ μ£Όμν κ·Έλνμ μ’ λ₯μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
3.1 무방ν₯ κ·Έλν (Undirected Graph)
무방ν₯ κ·Έλνλ κ°μ μ λ°©ν₯μ±μ΄ μλ κ·Έλνμ λλ€. μ¦, λ μ μ μ μ°κ²°νλ κ°μ μ μλ°©ν₯μΌλ‘ μ΄λμ΄ κ°λ₯νλ©°, μ΄λ₯Ό ν΅ν΄ μ μ λ€ μ¬μ΄μ μλ°©ν₯ κ΄κ³λ₯Ό ννν©λλ€. μλ₯Ό λ€μ΄, μΉκ΅¬ κ΄κ³λ₯Ό λνλ΄λ μμ λ€νΈμν¬ κ·Έλνλ 무방ν₯ κ·Έλνλ‘ ννν μ μμ΅λλ€.
3.2 λ°©ν₯ κ·Έλν (Directed Graph)
λ°©ν₯ κ·Έλνλ κ°μ μ λ°©ν₯μ±μ΄ μλ κ·Έλνμ λλ€. μ¦, λ μ μ μ μ°κ²°νλ κ°μ μ ν λ°©ν₯μΌλ‘λ§ μ΄λμ΄ κ°λ₯νλ©°, μ΄λ₯Ό ν΅ν΄ μ μ λ€ μ¬μ΄μ λ¨λ°©ν₯ κ΄κ³λ₯Ό ννν©λλ€. μλ₯Ό λ€μ΄, λλ‘ λ€νΈμν¬μμ λμμ λμλ₯Ό μ°κ²°νλ λλ‘λ λ°©ν₯ κ·Έλνλ‘ ννλ©λλ€.
3.3 κ°μ€μΉ κ·Έλν (Weighted Graph)
κ°μ€μΉ κ·Έλνλ κ°μ μ κ°μ€μΉ(Weight)λΌλ κ°μ κ°μ§λ κ·Έλνμ λλ€. κ° κ°μ μλ μ€μλλ 거리 λ±κ³Ό κ°μ κ°μ€μΉκ° ν λΉλμ΄ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ κ°μ μ μμ±μ΄λ μ μ κ³Ό μ μ μ¬μ΄μ κ΄κ³λ₯Ό λνλ λλ€. μλ₯Ό λ€μ΄, λλ‘ λ€νΈμν¬ κ·Έλνμμ κ° λλ‘μ κΈΈμ΄λ μμ μκ°μ κ°μ€μΉλ‘ μ¬μ©ν μ μμ΅λλ€.
3.4 μ¬μ΄ν΄ κ·Έλν (Cyclic Graph)
μ¬μ΄ν΄ κ·Έλνλ μ΅μν νλμ μ¬μ΄ν΄μ κ°μ§λ κ·Έλνμ λλ€. μ¬μ΄ν΄μ ν μ μ μμ μμνμ¬ λ€μ κ·Έ μ μ μΌλ‘ λμμ€λ κ²½λ‘λ₯Ό μλ―Έν©λλ€. μ¬μ΄ν΄ κ·Έλνλ μΌλΆ λ¬Έμ μμ 무ν λ°λ³΅μ΄ λ°μν μ μμΌλ―λ‘ μ£Όμκ° νμν©λλ€.
3.5 λΉμν κ·Έλν (Acyclic Graph)
λΉμν κ·Έλνλ μ¬μ΄ν΄μ κ°μ§μ§ μλ κ·Έλνμ λλ€. κ°μ λ€μ μ°κ²°κ΄κ³μ μνμ±μ΄ μμΌλ―λ‘ μ΄λ ν μ μ μμ μμνμ¬ λ€μ κ·Έ μ μ μΌλ‘ λμμ€λ μ¬μ΄ν΄μ΄ μ‘΄μ¬νμ§ μμ΅λλ€. μλ₯Ό λ€μ΄, κ³μΈ΅ ꡬ쑰λ₯Ό λνλ΄λ νΈλ¦¬(Tree)λ λΉμν κ·Έλνμ μΌμ’ μ λλ€.
μμ κ°μ λ€μν μ’ λ₯μ κ·Έλνλ κ°κ° νΉμ§κ³Ό νμ© λΆμΌκ° λ€λ₯΄λ©°, μκ³ λ¦¬μ¦κ³Ό λ°μ΄ν° ꡬ쑰μ μ μ©λλ λ°©λ²λ λ€μνκ² μ‘΄μ¬ν©λλ€. μ μ ν κ·Έλνμ μ’ λ₯λ₯Ό μ ννκ³ νμ©ν¨μΌλ‘μ¨, λ€μν νμ€ μΈκ³μ λ¬Έμ λ₯Ό κ·Έλνλ‘ λͺ¨λΈλ§νκ³ ν΄κ²°ν μ μμ΅λλ€.
4. κ·Έλνμ νμ© λΆμΌ
κ·Έλνλ λ€μν λΆμΌμμ λ리 νμ©λλ©°, μ€μ λ‘ κ·Έλν μ΄λ‘ μ λ§μ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°μ μ¬μ©λ©λλ€. μ΄λ²μλ κ·Έλνκ° μ΄λ€ λΆμΌμμ νμ©λλμ§ μμ보λλ‘ νκ² μ΅λλ€.
4.1 μμ λ€νΈμν¬ λΆμ
κ·Έλνλ μμ λ€νΈμν¬ λΆμμ λ§€μ° μ μ©νκ² μ¬μ©λ©λλ€. μμ λ€νΈμν¬λ μ¬λλ€μ΄ μνΈ μμ©νλ λ€νΈμν¬λ₯Ό μλ―Ένλ©°, κ·Έ μ€μμλ κ·Έλν ꡬ쑰λ₯Ό κ°μ§λ λ€νΈμν¬λ₯Ό λΆμνλ κ²μ΄ μ€μν©λλ€. κ·Έλνλ₯Ό ν΅ν΄ μμ λ€νΈμν¬μμμ μΉλ°λ, μν₯λ ₯, νλΈ λ± λ€μν νΉμ±μ λΆμν μ μμ΅λλ€.
4.2 λλ‘ λ€νΈμν¬ μ΅μ ν
λλ‘ λ€νΈμν¬ μ΅μ νλ λλ‘λ κ΅ν΅ λ€νΈμν¬μμ μ΅λ¨ κ²½λ‘, μ΅μ λΉμ©, μ΅μ λ μ΄μμ λ±μ μ°Ύλ λ¬Έμ λ₯Ό ν΄κ²°νλ λΆμΌμ λλ€. κ·Έλνλ₯Ό ν΅ν΄ λλ‘μ λμλ₯Ό μ μ , λλ‘λ₯Ό κ°μ μΌλ‘ νννκ³ , κ°μ€μΉλ₯Ό 거리λ μμ μκ°μΌλ‘ μ€μ νμ¬ μ΅μ κ²½λ‘λ₯Ό νμνκ³ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
4.3 μ λ ₯ λ€νΈμν¬ λΆμ
μ λ ₯ λ€νΈμν¬λ μ κΈ° 곡κΈλ§μ΄λ μ κΈ° νλ‘μ κ°μ΄ μ λ ₯ μμ€ν μ ꡬμ±νλ λ€νΈμν¬λ₯Ό μλ―Έν©λλ€. μ λ ₯ λ€νΈμν¬ λΆμμμλ κ·Έλνλ₯Ό μ¬μ©νμ¬ μ λ ₯μ νλ¦, λΆν λΆλ°°, μ₯μ μμ μμ μ± λ±μ λΆμνκ³ μ΅μ νν μ μμ΅λλ€.
4.4 μΉ κ·Έλν λΆμ
μΉ κ·Έλν λΆμμ μΉ νμ΄μ§λ€κ³Ό κ·Έλ€ κ°μ λ§ν¬ κ΄κ³λ₯Ό λΆμνλ λΆμΌμ λλ€. κ·Έλνλ₯Ό ν΅ν΄ μΉ μ¬μ΄νΈμ ꡬ쑰, μΉ νμ΄μ§μ μ€μλ, νμ΄μ§ κ°μ κ΄λ ¨μ± λ±μ λΆμνμ¬ κ²μ μμ§μ κ²μ κ²°κ³Ό μμ, μΉ νμ΄μ§μ μΆμ² λ±μ νμ©λ©λλ€.
4.5 λ¨Έμ λ¬λκ³Ό λ°μ΄ν° λ§μ΄λ
λ¨Έμ λ¬λκ³Ό λ°μ΄ν° λ§μ΄λμ λ°μ΄ν°μμ ν¨ν΄μ΄λ κ·μΉμ λ°κ²¬νκ³ μμΈ‘μ μννλ λΆμΌμ λλ€. κ·Έλνλ₯Ό ν΅ν΄ λ°μ΄ν° κ°μ κ΄κ³λ₯Ό μκ°μ μΌλ‘ νννκ³ , κ·Έλν λΆμ μκ³ λ¦¬μ¦μ νμ©νμ¬ λ°μ΄ν°μ ꡬ쑰μ νΉμ§μ νμ νκ³ μμΈ‘ λͺ¨λΈμ κ°λ°ν©λλ€.
μμ κ°μ΄ κ·Έλνλ λ€μν λΆμΌμμ νμ©λ μ μμΌλ©°, κ·Έλν μ΄λ‘ κ³Ό μκ³ λ¦¬μ¦μ μ¬λ¬ κ°μ§ λ¬Έμ λ₯Ό ν¨κ³Όμ μΌλ‘ ν΄κ²°νλ λ°μ ν° λμμ μ€λλ€. κ·Έλνλ₯Ό μ΄ν΄νκ³ νμ©νλ κ²μ λ€μν λΆμΌμμμ μ±κ³΅μ μΈ λ¬Έμ ν΄κ²°μ μν΄ μ€μν κΈ°μ μ λλ€.
5. κ·Έλν μκ³ λ¦¬μ¦
κ·Έλν μκ³ λ¦¬μ¦μ κ·Έλνμ ꡬ쑰λ₯Ό λΆμνκ³ , κ·Έλνμμμ νμμ΄λ κ²½λ‘ μ°ΎκΈ°, μ΅μ μ μ₯ νΈλ¦¬ κ΅¬μ± λ± λ€μν λ¬Έμ λ₯Ό ν΄κ²°νλ μκ³ λ¦¬μ¦μ λλ€. κ·Έλν μκ³ λ¦¬μ¦μ λ€μν μ’ λ₯κ° μμΌλ©°, κ°κ°μ μκ³ λ¦¬μ¦μ νΉμ ν κ·Έλνμ νΉμ±μ λ§κ² μ€κ³λμ΄ μμ΅λλ€.
5.1 κΉμ΄ μ°μ νμ (Depth-First Search, DFS)
κΉμ΄ μ°μ νμμ κ·Έλνμ λͺ¨λ μ μ μ νμνλ©΄μ κ·Έλνμ ꡬ쑰λ₯Ό νμ νλ μκ³ λ¦¬μ¦μ λλ€. ν μ μ μμ μμνμ¬ κ°λ₯ν ν κΉμ΄κΉμ§ νμν ν, λ μ΄μ κ° μ μμ λλ μ΄μ λ¨κ³λ‘ λμκ° λ€λ₯Έ κ°λ₯ν κ²½λ‘λ₯Ό νμν©λλ€. DFSλ μ¬κ·μ μΈ λ°©μμΌλ‘ ꡬνλλ©°, νΈλ¦¬μ μ μ μνμ μ μ¬ν κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
5.2 λλΉ μ°μ νμ (Breadth-First Search, BFS)
λλΉ μ°μ νμμ κ·Έλνμμ κ°κΉμ΄ μ μ λΆν° νμνλ μκ³ λ¦¬μ¦μ λλ€. μμ μ μ μμ μΈμ ν μ μ λ€μ νμ μΆκ°νκ³ νλμ© κΊΌλ΄μ΄ ν΄λΉ μ μ μ μΈμ ν μ μ λ€μ λ°©λ¬Ένλ λ°©μμΌλ‘ λμν©λλ€. BFSλ νλ₯Ό μ¬μ©νμ¬ κ΅¬νλ©λλ€. BFSλ₯Ό ν΅ν΄ κ·Έλνμμ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύκ±°λ, μ μ λ€μ 거리λ₯Ό κ³μ°ν μ μμ΅λλ€.
5.3 μ΅μ μ μ₯ νΈλ¦¬ (Minimum Spanning Tree, MST)
μ΅μ μ μ₯ νΈλ¦¬λ κ°μ€μΉ κ·Έλνμμ λͺ¨λ μ μ μ ν¬ν¨νλ©΄μ κ·Έ κ°μ€μΉμ ν©μ΄ μ΅μμΈ νΈλ¦¬μ λλ€. μ£Όλ‘ Kruskal μκ³ λ¦¬μ¦κ³Ό Prim μκ³ λ¦¬μ¦μ΄ μ¬μ©λλ©°, κ°κ° κ°μ μ κΈ°μ€μΌλ‘ μ ννκ±°λ μ μ μ κΈ°μ€μΌλ‘ μ ννλ λ°©μμΌλ‘ λμν©λλ€. MSTλ λ€νΈμν¬ μ€κ³, λλ‘ λ€νΈμν¬ μ΅μ ν λ±μ μ μ©νκ² μ¬μ©λ©λλ€.
5.4 μ΅λ¨ κ²½λ‘ μκ³ λ¦¬μ¦ (Shortest Path Algorithms)
μ΅λ¨ κ²½λ‘ μκ³ λ¦¬μ¦μ κ·Έλνμμ κ°μ₯ 짧μ κ²½λ‘λ₯Ό μ°Ύλ μκ³ λ¦¬μ¦μ λλ€. λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦κ³Ό 벨λ§-ν¬λ μκ³ λ¦¬μ¦μ΄ μ£Όλ‘ μ¬μ©λλ©°, κ°κ° λ¨μΌ μΆλ°μ κ³Ό μμ κ°μ€μΉλ₯Ό κ°μ§λ κ°μ μ λ€λ£° μ μμ΅λλ€. μ΅λ¨ κ²½λ‘ μκ³ λ¦¬μ¦μ λ€νΈμν¬ λΌμ°ν , κΈΈ μ°ΎκΈ°, GPS κ²½λ‘ νμ λ±μ νμ©λ©λλ€.
5.5 κ·Έλν 컬λ¬λ§ (Graph Coloring)
κ·Έλν 컬λ¬λ§μ μ μ λ€μ μ μ ν μμ ν λΉνλ λ¬Έμ μ λλ€. μΈμ ν μ μ μ κ°μ μμ κ°μ Έμλ μλλ 쑰건μ λ§μ‘±νλ©΄μ μ΅μνμ μμ μ¬μ©νλ κ²μ΄ λͺ©νμ λλ€. κ·Έλν 컬λ¬λ§μ μκ°ν μμ±, λΉΌλΉΌλ‘λ°μ΄ λ¬Έμ λ±μμ νμ©λ©λλ€.
μμ κ°μ΄ κ·Έλν μκ³ λ¦¬μ¦μ κ·Έλνμ νΉμ±κ³Ό ν΄κ²°νκ³ μ νλ λ¬Έμ μ λ§κ² λ€μν λ°©μμΌλ‘ μ€κ³λ©λλ€. μκ³ λ¦¬μ¦μ μ νκ³Ό μ μ©μ ν¨μ¨μ μΈ κ·Έλν λΆμκ³Ό λ¬Έμ ν΄κ²°μ μν΄ μ€μν μμμ΄λ©°, λ€μν λ¬Έμ λ₯Ό ν΄κ²°νλλ°μ ν° λμμ μ€λλ€.
λκΈ