• 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κ°€μ§€ μƒ‰μœΌλ‘œ 색칠할 수 μžˆλ‹€.