Network Flow#
κ·Έλν λ λ Έλ μ¬μ΄μ μΌλ§λ λ§μ μ λμ λ³΄λΌ μ μλμ§ κ³μ°νλ μκ³ λ¦¬μ¦ network flow, maximum flow λΌκ³ λΆλ¦°λ€
μΆλ°μ μμ λͺ©μ μ§κΉμ§ λ¬Όμ νλ €λ³΄λΌλ, κ°μ₯ λ§μ μμ λ¬Όμ νλ €λ³΄λ΄λ λ°©λ² μ°ΎκΈ° μκ³ λ¦¬μ¦μ΄λ€. μ΅μ κ²½λ‘ λ¬Έμ λ κ·Έλμ λ§μ΄ μ ν μ μμ΄μ μ΅μν μ μμ§λ§, μ¬κΈ°μ μ©λμ΄λΌλ κ°λ μ΄ μΆκ°λλ€. \(\text{capacity >= flow}\)λ‘ μ΅λ μ©λ λ§νΌ νλ €λ³΄λΌ μ μλ€. λ€λ₯Έ κ²λ€μ λΉμ·νλ€. λ€λ₯΄κ² νννλ©΄ \(c(u,v) >= f(u,v)\)μ΄λ€.
wordpool
Node : μ μ νλμ μ§μ
Capacity : μ©λ c λ Έλ uμμ vλ‘ κ°λ κ°μ μ μ©λ(κ°μ€μΉ) \(c(u,v)\)
Flow : μ λ f μ μ uμμ vλ‘μ κ°μ μ μ€μ λ‘ νλ₯΄λ μ λ \(f(u,v)\)
Residual capacity : μμ¬ μ©λ r κ°μ μ μ©λκ³Ό μ λμ μ°¨μ΄, κ°μ μ μΆκ°μ μΌλ‘ νλ € λ³΄λΌ μ μλ μ λ \(r(u,v) = c(u,v) - f(u,v)\)
Source \(s\), Sink \(t\) μ λμ΄ μμλλ μ§μ , μ λμ΄ λμ°©νλ μ§μ μ λμ μμ€μμλΆν° μ±ν¬λ‘ νλ₯΄κ² λλ ꡬ쑰
Ford-Fulkerson#
κ°μ (u,v) λ°©ν₯μΌλ‘ flowκ° μ‘΄μ¬νλ€λ©΄(f(u,v)>0), μλ°©ν₯μΌλ‘λ μμ μ λμ΄ κ·Έλ§νΌ νλ₯΄κ³ μλ κ²μΌλ‘ μ·¨κΈνλ€λ μλ―Έλ₯Ό μ λμ λμΉμ±μ΄λΌκ³ λ§νλ€. κ°μ (u,v)κ° μ‘΄μ¬νλ€λ©΄ c(u,v)κ° μμκ³ , c(v,u)λ 0μΌλ‘ μ·¨κΈλλ€. λ°λΌμ κ·Έλνμμλ μλ κ°μ μ΄μ§λ§ κ°μμΌλ‘λ μλ μλ°©ν₯ κ°μ μ λν μ±μ§λ‘ μ κ·Όνλ κ²μ΄ ν΄λΉ μκ³ λ¦¬μ¦μ ν¬μΈνΈλ€. μλ°©ν₯ κ°μ μΌλ‘ νλ €λ³΄λΈλ€λ μλ―Έλ 곧 λ€λ₯Έ κ°μ μΌλ‘ λμ νλ €λ³΄λΈλ€
λ μλ―Έμ λλ±νλ€.
ν΄νΈν¬μ»€μ¨μμ μ€μν κ²μ μμ μ λμ_λμΉμ±μ μ¬μ©νλ€λ κ²μ΄λ€. μλλ μλ κ°μ μΌμ§λΌλ ν΄λΉ μ±μ§μ μ΄μ©νλ©΄ μ¨μ΄μλ κ°μ μ μμ¬μ λμ μ°Ύμ μ μλ€.
s \(\to\) tλ‘ κ°λ κ²½λ‘ μ무거λ νλ μ°Ύλλ€. μ΄λ κ²½λ‘λ λ¨μ κ²½λ‘μ΄κ³ , κ²½λ‘μμ λͺ¨λ κ°μ μ μμ§ μ¬μ μ©λμ΄ λ¨μμλ€. μ¦ \(c(u,v)-f(u,v) > 0\)
μ°¨λ¨ κ°μ μ μ°Ύλλ€. μ΄ κ°μ μ κ²½λ‘μμμ \(c(u,v)-f(u,v)\)μ κ°μ΄ μ΅μμΈ κ°μ μ΄λ€. λ§μλ΄μΌ μ΄λ§νΌμ μ λμ λ λ³΄λΌ μ μλ€. μ΄λ μμ¬μ©λ \(r\) μ΄λ€. μμ¬μ©λμ΄ 0μ΄λ©΄ λμ΄μ ν΄λΉ κ°μ μλ μ λμ λ³΄λΌ μ μλ€.
κ²½λ‘μ λͺ¨λ κ°μ μ \(r\)λ§νΌμ μ λμ μΆκ°νλ€. λ°λΌμ κ²½λ‘μ λͺ¨λ κ°μ μ λν΄μ \(f(u,v)+=r\)μ΄ λκ³ , μμ λμΉμ±μ μ΄μ©ν΄μ \(f(v,u)-=F\)λ ν΄μ€μΌνλ€.
μμ 3 λ¨κ³λ₯Ό λμ΄μ μ¦κ° κ²½λ‘κ° μμ λ κΉμ§ λ°λ³΅νλ€. μ¦κ° κ²½λ‘λ₯Ό μ°Ύκ³ , μ°Ύμ κ²½λ‘μ λν΄ κ°λ₯ν ν λ§μ μ λμ νλ €λ³΄λ΄λ κ²μ λ°λ³΅μ΄λ€.
λ³΄ν΅ BFS λλΉμ°μ νμμΌλ‘ λ§μ΄ νΌλ€.
minimum cut#
κ·Έλνμμ λ κ°μ μ μ μ§ν©μ ꡬλΆνλ κ°μ₯ 짧μ κ²½λ‘λ₯Ό μ°Ύλ λ¬Έμ
κΈ°λ³Έμ μΌλ‘ Cut
μ΄λΌλ κ²μ κ·Έλνμ μ μ μ 2κ°μ μλ‘ λ€λ₯Έ μ§ν©μΌλ‘ λλλ κ²μ λ§νλ€. μ¬κΈ°μ κ°μ€μΉ(λΉμ©)μ΄ μλ κ·Έλνμ κ²½μ°λ μλ₯Έ κ°μ μ κ°μκ° cutμ λΉμ©μ΄κ³ , μλ κ·Έλνλ μλ₯Έ κ°μ μ κ°μ€μΉμ ν©μ΄ cutμ λΉμ©μ΄λ€.
κ·Έλ κΈ°μ min cut λ¬Έμ λ μ§ν©μ ꡬλΆνκΈ° μν΄ κ·Έμ κ°μ μ κ°μ€μΉ ν©μ΄ κ°μ₯ μ κ²νκΈ°
λ¬Έμ λΌκ³ λ³Ό μ μλ€. μ΅μ μ»· λ¬Έμ λ νλ‘μ°μ κ΄λ ¨μ΄ λ§€μ° λ§λ€. μ μ λ κ°λ₯Ό λΆλ¦¬μν€λ μ΅μ μ»·μ λΉμ©μ κ° κ°μ μ λΉμ©μ μ©λμ΄λΌ ν λ μ΅λ μ λκ³Ό λμΉμ΄λ€.
λ€μ ν λ² μ 리νμλ©΄, μ΅λ μ λμΌλ‘ νλ €λ³΄λ΄λ μν©μμλ μ΄λ€ μ»·μ μ ννλλΌλ μ»·μ ν¬ν¨λ κ°μ λ€μμ νλ₯΄λ λ¬Όμ μμ λμΌ
νλ€λ κ²μ΄λ€.