λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ•Œκ³ λ¦¬μ¦˜

14-1κ°•. κ·Έλž˜ν”„(Graph) κ°œλ…κ³Ό ν‘œν˜„

by devshin.kr 2020. 12. 1.
728x90

 

 

  • (무방ν–₯) κ·Έλž˜ν”„. G = (V, E)

  - V : λ…Έλ“œ(node) ν˜Ήμ€ 정점(vertex)

  - E : λ…Έλ“œ μŒμ„ μ—°κ²°ν•˜λŠ” 에지(edge) ν˜Ήμ€ 링크(link)

  - 개체(object)λ“€ κ°„μ˜ 이진관계λ₯Ό ν‘œν˜„

  - n = |V|, m = |E|

 

 

  • λ°©ν–₯κ·Έλž˜ν”„(Directetd Graph). G=(V, E)

  - 에지(u, v)λŠ” uλ‘œλΆ€ν„° v둜의 λ°©ν–₯을 가짐

 

 

  • κ°€μ€‘μΉ˜ (weighted) κ·Έλž˜ν”„

   - μ—μ§€λ§ˆλ‹€ κ°€μ€‘μΉ˜(weight)κ°€ 지정

 

 

 

  • κ·Έλž˜ν”„μ˜ ν‘œν˜„

  - 인접행렬 (adjacency matrix)

 

인접행렬을 μ΄μš©ν•œ κ·Έλž˜ν”„μ˜ ν‘œν˜„

 

  - μΈμ ‘λ¦¬μŠ€νŠΈ (adjacency list)

μΈμ ‘λ¦¬μŠ€νŠΈλ₯Ό μ΄μš©ν•œ κ·Έλž˜ν”„μ˜ ν‘œν˜„

μœ„μ˜ κ·Έλ¦Όμ—μ„œ m은 μ—£μ§€μ˜ 갯수λ₯Ό λ‚˜νƒ€λ‚Έλ‹€..

n(:λ…Έλ“œμ˜ 갯수) + 2m(:λ…Έλ“œ 갯수) μ΄μ–΄μ„œ μ €μž₯곡간은 O(n+m)이닀.

 

 

  • λ°©ν–₯κ·Έλž˜ν”„λ₯Ό ν‘œν˜„ν•˜λŠ” 방법

λ°©ν–₯κ·Έλž˜ν”„λ₯Ό μΈμ ‘λ¦¬μŠ€νŠΈμ™€ 인접행렬을 μ΄μš©ν•΄ ν‘œν˜„

 

 

  • κ°€μ€‘μΉ˜ κ·Έλž˜ν”„μ˜ 인접행렬 ν‘œν˜„

   - μ—μ§€μ˜ 쑴재λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°’μœΌλ‘œ 1 λŒ€μ‹  μ—μ§€μ˜ κ°€μ€‘μΉ˜λ₯Ό μ €μž₯ν•œλ‹€.

   - 에지가 없을 λ•Œ, ν˜Ήμ€ λŒ€κ°μ„  : 

      - νŠΉλ³„νžˆ 정해진 κ·œμΉ™μ€ μ—†μœΌλ©°, κ·Έλž˜ν”„μ™€ κ°€μ€‘μΉ˜κ°€ μ˜λ―Έν•˜λŠ” 바에 λ”°λΌμ„œ!

      - 예) κ°€μ€‘μΉ˜κ°€ 거리 ν˜Ήμ€ λΉ„μš©μ„ μ˜λ―Έν•˜λŠ” 경우라면! 엣지가 μ—†μœΌλ©΄ λ¬΄ν•œλŒ€(λ”±νžˆ ν‘œν˜„ν•  값이 μ—†μ–΄μ„œ..)둜 ν•˜κ³ , λŒ€κ°μ„ μ€ 0으둜 ν•œλ‹€.

      - 예) κ°€μ€‘μΉ˜κ°€ μš©λŸ‰μ„ μ˜λ―Έν•œλ‹€λ©΄, 엣지가 없을 λ•ŒλŠ” 0으둜 ν•˜κ³ , λŒ€κ°μ„ μ€ λ¬΄ν•œλŒ€λ‘œ ν•œλ‹€.

 

 

  • κ²½λ‘œμ™€ μ—°κ²°μ„±

      - 무방ν–₯κ·Έλž˜ν”„ G=(V, E)μ—μ„œ λ…Έλ“œ u와 λ…Έλ“œ vλ₯Ό μ—°κ²°ν•˜λŠ” 경둜(path)κ°€ μ‘΄μž¬ν•  λ•Œ, v와 uλŠ” μ„œλ‘œ μ—°κ²°λ˜μ–΄ μžˆλ‹€κ³  λ§ν•œλ‹€.

      - λͺ¨λ“  λ…Έλ“œ μŒλ“€μ΄ μ„œλ‘œ μ—°κ²°λœ κ·Έλž˜ν”„λ₯Ό connected graph라고 ν•œλ‹€.

connected graph

 

 

μ„Έ 개의 μ—°κ²°μš”μ†Œ (connected component)둜 κ΅¬μ„±λœλ‹€.

 

λŒ“κΈ€