2020-1ν•™κΈ°, λŒ€ν•™μ—μ„œ β€˜μ•Œκ³ λ¦¬μ¦˜β€™ μˆ˜μ—…μ„ λ“£κ³  κ³΅λΆ€ν•œ λ°”λ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. 지적은 μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ :) 전체 ν¬μŠ€νŠΈλŠ” Algorithm ν¬μŠ€νŠΈμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

2 minute read

2020-1ν•™κΈ°, λŒ€ν•™μ—μ„œ β€˜μ•Œκ³ λ¦¬μ¦˜β€™ μˆ˜μ—…μ„ λ“£κ³  κ³΅λΆ€ν•œ λ°”λ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. 지적은 μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ :) 전체 ν¬μŠ€νŠΈλŠ” Algorithm ν¬μŠ€νŠΈμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.


Definition. Cut

A set of edges whose removal leaves a graph disconnected.

포슀트λ₯Ό μ•žμ—μ„œλΆ€ν„° 천천히 따라왔닀면, Network Flow μ±•ν„°μ—μ„œ Network Flow λ¬Έμ œκ°€ Minimum Cut Problemκ³Ό dual problem κ΄€κ³„μž„μ„ κ³΅λΆ€ν–ˆμ„ 것이닀.

Problem. Minimum Cut Problem

Given a graph and a budget $b$, find a cut with at most $b$ edges.

* search problem의 ν˜•νƒœλ‘œ 기술 λ˜μ—ˆλ‹€.

이 λ¬Έμ œλŠ” Network Flow μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ 정말 μ‰½κ²Œ ν’€ 수 μžˆλ‹€.

  • 각 edge에 1의 capacityλ₯Ό ν• λ‹Ή
  • source λ…Έλ“œ $s$λ₯Ό μ •ν•œλ‹€.
  • λ‚˜λ¨Έμ§€ $n-1$개 λ…Έλ“œμ— λŒ€ν•΄ 그듀은 sink λ…Έλ“œ $t$둜 μ„€μ •ν•΄ $n-1$번 Network Flow μ•Œκ³ λ¦¬μ¦˜μ„ λŒλ¦°λ‹€.
  • κ·Έ 쀑 κ°€μž₯ 적은 λΉ„μš©μ˜ cut을 minimum cut으둜 μ‚ΌλŠ”λ‹€.


κ·ΈλŸ¬λ‚˜ μ΄λ ‡κ²Œ μ‰¬μš΄ ν˜•νƒœλΌλ©΄ NP에 λ“±μž₯ν•  수 μ—†λ‹€. Balanced Cut λ¬Έμ œλŠ” λΆ„ν• ν•˜λŠ” 두 κ·Έλž˜ν”„μ˜ κ· ν˜•μ΄ λ§žμ•„μ•Ό ν•œλ‹€.

Problem. Balanced Cut Problem

Given a graph with $n$ vertices and a budget $b$, find a cut $(A, B)$ such that $\left| A \right|, \left| B \right| \ge n/3$ and at most $b$ edges in the cut.

* search problem의 ν˜•νƒœλ‘œ 기술 λ˜μ—ˆλ‹€.

즉, λΉ„μš© $b$λ₯Ό λ§žμΆ”λ©΄μ„œ λΆ„ν• λœ κ·Έλž˜ν”„ $A$, $B$의 크기가 λΉ„μŠ·ν•΄μ•Ό ν•˜λŠ” 것이닀! Balanced Cut Problem은 Minimum Cut Problemκ³Ό 달리 poly-time algorithm이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

ν•¨κ»˜λ³΄κΈ°