• toc {:toc}

κ·Έλž˜ν”„

  • κ·Έλž˜ν”„ G=(V, E) : μœ ν•œν•œ 개수의 정점 V 와 μ—°κ²°μ„  E 둜 이루어진닀.
  • κ·Έλž˜ν”„
    • λ°©ν–₯ κ·Έλž˜ν”„ G=(V, E)
      • V : μ •μ μ˜ μ§‘ν•©
      • E : μ •μ λ“€μ˜ μˆœμ„œν™”λœ 쌍 (아크), μ—°κ²°μ„ λ“€μ˜ μ§‘ν•©
      • v β†’ w 일 λ•Œ v λŠ” μ„ ν–‰μž, w λŠ” ν›„μ†μžλΌκ³  ν•œλ‹€.
      • v 와 w λ₯Ό μ—°κ²°ν•˜λŠ” μ—°κ²°μ„  e λŠ” u 와 v λ₯Ό ’ μ ‘ν–ˆλ‹€ ’ κ³  ν•˜κ³  u 와 v λŠ” ’ μΈμ ‘ν–ˆλ‹€ ’ κ³  ν•œλ‹€.
    • 무방ν–₯ κ·Έλž˜ν”„
    • λ‹¨μˆœ κ·Έλž˜ν”„ : ν•œ 쌍의 정점 사이에 ν•˜λ‚˜μ˜ μ—°κ²°μ„ μœΌλ‘œ 이루어진 κ·Έλž˜ν”„. 자기 μžμ‹ μœΌλ‘œμ˜ 연결선이 μ—†λ‹€.
    • λ©€ν‹° κ·Έλž˜ν”„ : ν•œ 쌍의 정점 사이에 μ—°κ²°μ„  개수의 μ œν•œμ΄ μ—†λŠ” κ·Έλž˜ν”„
    • λΆ€λΆ„ κ·Έλž˜ν”„ : G = (V, E), G’ = (V’, E’) μ—μ„œ , 인 경우
      • 정점, 연결선이 λΆ€λΆ„ 집합에 속할 λ•Œ
    • 생성 λΆ€λΆ„ κ·Έλž˜ν”„ : , 인 경우
  • 경둜 : μ •μ λ“€μ˜ μ—΄ (μˆœμ„œ) λ₯Ό λ§ν•œλ‹€. a, b, c
  • κ²½λ‘œλŠ” μ§€λ‚˜κ°„ 변을 λ°˜λ³΅ν•΄μ„œ ν†΅κ³Όν•˜μ§€ μ•ŠλŠ” 것에 μœ μ˜ν•˜μž.
    • λ‹¨μˆœ 경둜 : κ²½λ‘œκ°€ 같은 연결선을 두 번 ν¬ν•¨ν•˜μ§€ μ•ŠλŠ” 경둜
    • κΈ°λ³Έ 경둜 : μ–΄λ–€ 정점듀도 두 번 λ°©λ¬Έν•˜μ§€ μ•ŠλŠ” 경둜
    • 사이클, 순회 : κ²½λ‘œμ—μ„œ 쒅점과 μ‹œμ μ΄ μΌμΉ˜ν•˜λŠ” 경우
    • λ‹¨μˆœ 사이클 : 같은 연결선을 λ°˜λ³΅ν•˜μ—¬ λ°©λ¬Έν•˜μ§€ μ•ŠλŠ” 사이클
    • κΈ°λ³Έ 사이클 : μ‹œμž‘μ μ„ μ œμ™Έν•œ μ–΄λ–€ 정점도 λ°˜λ³΅ν•΄ λ°©λ¬Έν•˜μ§€ μ•ŠλŠ” 사이클
    • 였일러 경둜 : λ©€ν‹° κ·Έλž˜ν”„μ—μ„œ λͺ¨λ“  연결선듀을 κΌ­ ν•œ λ²ˆμ”©λ§Œ ν†΅κ³Όν•˜λŠ” 경둜
  • κ·Έλž˜ν”„ 정점듀 κ°„ μ—°κ²° μ—¬λΆ€
    • μ—°κ²° κ·Έλž˜ν”„ : κ·Έλž˜ν”„μ˜ λͺ¨λ“  정점듀이 μ—°κ²°λ˜μ–΄ μžˆλŠ” κ·Έλž˜ν”„
    • κ°•ν•œ μ—°κ²° κ·Έλž˜ν”„ : λ°©ν–₯ κ·Έλž˜ν”„μ—μ„œ 두 정점 a, b 에 λŒ€ν•΄ a β†’ b 경둜, b β†’ a κ²½λ‘œλ“€μ΄ μ‘΄μž¬ν•˜λŠ” κ·Έλž˜ν”„
  • μ—°κ²° μš”μ†Œ : λͺ¨λ“  정점듀이 μ—°κ²°λ˜μ–΄ μžˆλŠ” λΆ€λΆ„
  • μ—°κ²°μˆ˜ : G μ—μ„œμ˜ μ—°κ²° μš”μ†Œμ˜ 개수
  • 차수 : 정점과 μΈμ ‘ν•˜λŠ” μ—°κ²°μ„ λ“€μ˜ 개수 d(v) = 3 β†’ v 에 λŒ€ν•œ μ°¨μˆ˜λŠ” 3 이닀.
  • μΎ¨λ‹ˆνžˆμŠ€λ² λ₯΄ν¬ 닀리 문제 - 였일러 경둜λ₯Ό νŒλ³„ν•˜λŠ” 문제
    • 였일러 경둜 νŒλ³„ κ·œμΉ™
      • λͺ¨λ“  μ •μ μ—μ„œ μ—°κ²°λœ κ°œμˆ˜κ°€ ν™€μˆ˜μΈ μ •μ μ˜ κ°œμˆ˜κ°€ 0 λ˜λŠ” 2 인 경우

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

  • 인접 ν–‰λ ¬ : G = (V, E) μ—μ„œ V 의 μ›μ†Œμ˜ κ°œμˆ˜κ°€ N 일 λ•Œ NxN ν–‰λ ¬ A 둜 λ‚˜νƒ€λ‚Έλ‹€.
    • μ—°κ²°λ˜λ©΄ 1, μ•„λ‹ˆλ©΄ 0 으둜 λ‚˜νƒ€λ‚Έλ‹€.
  • 인접 리슀트 : 정점에 λŒ€ν•΄ 포인터가 μ£Όμ–΄μ§€κ³  μ—°κ²°λœ 정점을 μ°¨λ‘€λ‘œ 리슀트둜 ν‘œμ‹œν•œλ‹€.
    • 같은 리슀트 λ‚΄μ—μ„œλŠ” μˆœμ„œμ— 관계가 μ—†λ‹€.

특수 ν˜•νƒœμ˜ κ·Έλž˜ν”„

  • λͺ¨λ“  μ •μ λ“€μ˜ 차수의 ν•© = μ—°κ²°μ„ μ˜ 개수 x 2
  • 였일러 경둜 : κ·Έλž˜ν”„μ—μ„œ 각 연결선을 단 ν•œ λ²ˆμ”©λ§Œ ν†΅κ³Όν•˜λŠ” 경둜
    • 였일러 경둜λ₯Ό κ°€μ§€κΈ° μœ„ν•œ ν•„μš” μΆ©λΆ„ 쑰건
      • λͺ¨λ“  μ •μ μ—μ„œ μ—°κ²°λœ κ°œμˆ˜κ°€ ν™€μˆ˜μΈ μ •μ μ˜ κ°œμˆ˜κ°€ 0 λ˜λŠ” 2 인 경우
  • 였일러 순회 : κ·Έλž˜ν”„μ—μ„œ 정점은 μ—¬λŸ¬ 번 μ§€λ‚  수 μžˆμ§€λ§Œ, 각 연결선을 단 ν•œ λ²ˆμ”©λ§Œ ν†΅κ³Όν•˜λŠ” 순회
    • 였일러 순회λ₯Ό κ°€μ§€κΈ° μœ„ν•œ ν•„μš”μΆ©λΆ„μ‘°κ±΄
      • G = μ—°κ²° κ·Έλž˜ν”„, λͺ¨λ“  정점듀이 짝수 개의 차수λ₯Ό κ°€μ§€λŠ” 경우
      • λͺ¨λ“  정점이 짝수 개둜 μ—°κ²°λ˜μ–΄ μžˆλŠ” 경우
  • ν•œλΆ“κ·Έλ¦¬κΈ° 쑰건 : μ‹œμž‘μ κ³Ό 끝점을 μ œμ™Έν•œ λͺ¨λ“  μ •μ μ˜ μ°¨μˆ˜κ°€ μ§μˆ˜μ—¬μ•Ό ν•œλ‹€.
  • ν•΄λ°€ν„΄ 경둜 : κ·Έλž˜ν”„μ—μ„œ λͺ¨λ“  정점을 였직 ν•œ λ²ˆμ”©λ§Œ μ§€λ‚˜μ§€λ§Œ μ‹œμž‘μ μœΌλ‘œ λŒμ•„μ˜€μ§€ μ•ŠλŠ” 경둜
  • ν•΄λ°€ν„΄ 순회 : κ·Έλž˜ν”„μ—μ„œ λͺ¨λ“  정점듀을 였직 ν•œ λ²ˆμ”©λ§Œ μ§€λ‚˜λŠ” 순회
  • 였일러의 정리 : μ—°κ²°λœ 평면 κ·Έλž˜ν”„ 쑰건
    • μ •μ μ˜ 수 : v
    • μ—°κ²°μ„ μ˜ 수 : e
    • 면의 수 : f
    • v - e + f = 2

특수 κ·Έλž˜ν”„

  • 가쀑 κ·Έλž˜ν”„ : G 의 각 연결선에 0 보닀 큰 μˆ˜κ°€ ν• λ‹Ήλ˜μ—ˆμ„ λ•Œμ˜ 값을 가쀑값이라 ν•˜κ³ , 가쀑값을 κ°–λŠ” κ·Έλž˜ν”„λ₯Ό λ§ν•œλ‹€.
  • λ™ν˜• κ·Έλž˜ν”„ : 두 κ·Έλž˜ν”„ G 와 G’ κ°€ μžˆμ„ λ•Œ 전단사 ν•¨μˆ˜ f:V β†’ V’ κ°€ μ‘΄μž¬ν•˜κ³  인 경우 f λ₯Ό λ™ν˜•μ΄λΌ ν•˜κ³  λ™ν˜•μΈ 두 κ·Έλž˜ν”„λ₯Ό λ™ν˜• κ·Έλž˜ν”„λΌ ν•œλ‹€.
  • 평면 κ·Έλž˜ν”„ : ν‰λ©΄μƒμ—μ„œ μ–΄λ–€ 연결선듀도 μ„œλ‘œ ꡐ차할 수 없도둝 κ·Έλ €μ§„ ν•˜λ‚˜μ˜ κ·Έλž˜ν”„ (λ™ν˜•μœΌλ‘œ λ³€ν˜•ν•΄μ„œ κ΅μ°¨λ˜μ§€ μ•ŠμœΌλ©΄ 평면 κ·Έλž˜ν”„μ΄λ‹€.)
    • ν‰λ©΄μ˜ 개수λ₯Ό μ…€ λ•Œ κ·Έλž˜ν”„ λ°”κΉ₯의 평면도 μ„Έμ•Ό ν•œλ‹€.
  • μ™„μ „ κ·Έλž˜ν”„ : λͺ¨λ“  μ •μ λ“€μ˜ 쌍 사이에 연결선이 μ‘΄μž¬ν•˜λŠ” κ·Έλž˜ν”„
    • 즉, 각 정점이 λ‹€λ₯Έ λͺ¨λ“  정점듀과 μ—°κ²°λ˜λŠ” κ·Έλž˜ν”„
    • n 개의 연결선을 κ°–λŠ” μ™„μ „ κ·Έλž˜ν”„μ˜ μ—°κ²°μ„ μ˜ 개수 n(n-1)/2
  • μ •κ·œ κ·Έλž˜ν”„ : λͺ¨λ“  μ •μ μ˜ μ°¨μˆ˜κ°€ k 이면 k μ°¨ μ •κ·œ κ·Έλž˜ν”„λΌ ν•œλ‹€.
  • 이뢄 κ·Έλž˜ν”„ : μ§‘ν•© X 와 Y = V - X 둜 λ‚˜λˆ„μ–΄μ Έ 연결선이 X 와 Y λ‚΄μ˜ μ •μ μ˜ 쌍으둜 μ—°κ²°λœ κ·Έλž˜ν”„
  • μ™„μ „ 이뢄 κ·Έλž˜ν”„ : X, Y 의 λͺ¨λ“  정점 사이에 연결선이 μ‘΄μž¬ν•˜λŠ” κ·Έλž˜ν”„
  • λ°©ν–₯ 비사이클 κ·Έλž˜ν”„ (Directed Acyclic Graph : DAG) : 사이클이 μ—†λŠ” λ°©ν–₯ κ·Έλž˜ν”„
    • νŠΈλ¦¬λ³΄λ‹€λŠ” μΌλ°˜μ μ΄λ‚˜ μž„μ˜μ˜ λ°©ν–₯ κ·Έλž˜ν”„λ³΄λ‹€λŠ” μ œν•œμ μ΄λ‹€.

κ·Έλž˜ν”„μ˜ μ‘μš©

  • μ΅œλ‹¨ 경둜 문제 : κ°€μž₯ 짧은 거리의 경둜λ₯Ό μ°ΎλŠ” 문제
  • 좜발점 : 경둜의 μ‹œμž‘μ 
  • 도착지 : 경둜의 λͺ©μ μ§€
  • λ‹€μ΅μŠ€νŠΈλΌ μ•Œκ³ λ¦¬μ¦˜ : μΆœλ°œμ μœΌλ‘œλΆ€ν„° λͺ©μ μ§€κΉŒμ§€μ˜ μ΅œλ‹¨ 경둜 μ°ΎκΈ°
  • ν•΄λ°€ν„΄ 순회 μ‘μš© : μˆœνšŒνŒλ§€μ› 문제
  • κ·Έλž˜ν”„ 탐색
    • 깊이 μš°μ„  탐색
    • λ„ˆλΉ„ μš°μ„  탐색

κ·Έλž˜ν”„μ™€ 색칠 문제

  • 색칠 문제 : μ–΄λ–€ μΈμ ‘ν•œ 두 μ˜μ—­λ„ 같은 색이 λ˜μ§€ μ•Šλ„λ‘ μΉ ν•˜λŠ” 문제
  • κ·Έλž˜ν”„ G λ₯Ό μƒ‰μΉ ν•˜λŠ”λ° ν•„μš”ν•œ μƒ‰μ˜ 수 x(G), G 의 색칠 수
  • μŒλŒ€ κ·Έλž˜ν”„ : 지도 색칠 λ¬Έμ œλŠ” κ·Έλž˜ν”„ 정점 색칠 λ¬Έμ œμ™€ κ°™λ‹€.

image

  • κ·Έλž˜ν”„ G 에 λŒ€ν•΄ λ‹€μŒμ€ μ„œλ‘œ λ™μΉ˜μ΄λ‹€.
  1. G λŠ” 두 κ°€μ§€ μƒ‰μœΌλ‘œ μΉ ν•  수 μžˆλ‹€.
  2. G λŠ” 이뢄 κ·Έλž˜ν”„μ΄λ‹€.
  3. G 의 λͺ¨λ“  μˆœν™˜μ€ 짝수의 길이λ₯Ό κ°€μ§„λ‹€.
  • 4 색 문제 : λͺ¨λ“  평면 κ·Έλž˜ν”„λŠ” 4 κ°€μ§€ μƒ‰μœΌλ‘œ 색칠할 수 μžˆλ‹€.