๐ ์ต๋ ์ ๋ ๋ฌธ์ (=๋คํธ์ํฌ ํ๋ก์ฐ)
ํน์ ํ ์ง์ ์์ ๋ค๋ฅธ ์ง์ ์ผ๋ก, ์ผ๋ง๋ ๋ง์ ์ ๋์ ๋์์ ๋ณด๋ผ ์ ์๋์ง ๊ณ์ฐํ๋ ๋ฌธ์
โ๏ธ ์ฉ์ด ์ ๋ฆฌ
์ฉ๋ : c(u,v)
์ ์ u์์ v๋ก ์ ์กํ ์ ์๋ ์ต๋ ์ฉ๋
์ ๋ : f(u,v)
์ ์ u์์ v๋ก ์ค์ ํ๋ฅด๊ณ ์๋ ์ ๋
์์ฌ ์ฉ๋ : r(u,v) = c(u,v) - f(u,v)
๊ฐ์ ์ ์ฉ๋๊ณผ ์ค์ ๋ก ํ๋ฅด๋ ์ ๋์ ์ฐจ์ด
์์ค s
๋ชจ๋ ์ ๋์ด ์์๋๋ ์ ์
์ฑํฌ t
๋ชจ๋ ์ ๋์ด ๋์ฐฉํ๋ ์ ์
์ฆ๊ฐ ๊ฒฝ๋ก
์์ค์์ ์ฑํฌ๋ก ์ ๋์ ๋ณด๋ผ ์ ์๋ ๊ฒฝ๋ก
โ๏ธ ๊ธฐ๋ณธ ์์ฑ
์ฉ๋ ์ ํ ์์ฑ f(u,v) <= c(u,v)
์ ๋์ ์ฉ๋๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ ๋์ ๋์นญ์ฑ f(u,v) = -f(v,u)
u์์ v๋ก ์ ๋์ด ํ๋ฅด๋ฉด, v์์ u๋ก ์์์ ์ ๋์ด ํ๋ฅด๋ ๊ฒ๊ณผ ๋์ผํ๋ค.
์ ๋์ ๋ณด์กด์ฑ
๊ฐ ์ ์ ์ ๋ค์ด์ค๋ ์ ๋๊ณผ ๋๊ฐ๋ ์ ๋์ ๊ฐ๋ค.
๐ ๊ธฐ์กด ์ต๋ ์ ๋ ํ์ ๋ฐฉ๋ฒ์ ๋ฌธ์ ์
ํ๋ก๊ทธ๋จ์ S์์ T๋ก ๊ฐ๋ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ฉฐ, ์ต๋ ์ ๋์ ๊ณ์ฐํ ๊ฒ์ด๋ค.
S ๐ a ๐ T
S ๐ a ๐ b ๐ T
S ๐ b ๐ T
๋ง์ฝ, ํ๋ก๊ทธ๋จ์ด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด S→a →T์ S →b →T์ ๊ฒฝ๋ก๋ฅผ ๋จผ์ ํ์ํ๊ฒ ๋๋ค๋ฉด
ํด๋น ๋คํธ์ํฌ์ ์ต๋ ์ ๋์ 2๊ฐ ๋๋ฉด์ ํ๋ก๊ทธ๋จ์ ์ ๋ต์ ๋ง์ถ๊ฒ ๋๋ค.
ํ์ง๋ง, ๋ง์ฝ ํ๋ก๊ทธ๋จ์ด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด S→a →b →T์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ฅ ๋จผ์ ํ์ํ๊ฒ ๋๋ฉด
S → a, a → b, b →T ๊ฐ์ ์ ์ ๋์ด ์ต๋์น์ด๊ธฐ ๋๋ฌธ์
S → b ์ ์ถ๊ฐ๋ก ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ง ๋ชปํ๊ฒ ๋๊ณ
์ต๋ ์ ๋์ด 1์ธ ์ํ์์ ํ๋ก๊ทธ๋จ์ ์ค์ง๋๊ฒ ๋๋ค.
๐ ์ ๋ ์์๋ฅผ ํตํด ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ
๐ ์ ๋ ์์
๋ชจ๋ ๊ฒฝ๋ก์, ๊ธฐ์กด์ ์กด์ฌํ๋ ๊ฐ์ ๋ค๊ณผ ๋ฐ๋๋๋ ๋ฐฉํฅ์ ๊ฐ์ ์ ์ถ๊ฐํ ๋ค
๊ฐ ๊ฐ์ ์ผ๋ก ์ ๋์ ํ๋ ค๋ณด๋์ ๋, ๋ฐ๋ ๋ฐฉํฅ์ ๊ฐ์ ์ผ๋ก๋ ์์ ์ ๋์ ํ๋ ค๋ณด๋์ผ๋ก์จ, ์ ๋์ ์์์ํค๋ ๊ฒ
๋ฌผ๋ก , ์ค์ ๋ก๋ ๋ถ๊ฐ๋ฅํ ์ด์ผ๊ธฐ์ด์ง๋ง, ์์ ์ ๋์ ๊ธฐ๋กํจ์ผ๋ก์จ ์์ฌ ์ฉ๋์ ๋จ๊ฒจ, ์ถ๊ฐ์ ์ธ ๊ฒฝ๋ก๋ฅผ ํ์ํ ์ ์๋๋ก ํ๊ธฐ ์ํจ์ด๋ค.
EX
a → b์ ๊ฐ์ ์ด ์กด์ฌํ๋ฉฐ, ์ ๋ f(a,b)์ 1, ์ฉ๋ c(a,b)์ 1์ด๋ผ๋ฉด
์ญ๊ฐ์ b → a์ ์ ๋ f(b,a)์ ๊ธฐ์กด ๊ฐ์ ์ ๋ฐฉํฅ๊ณผ ๋ฐ๋์ด๋ฏ๋ก -1์ด ๋๋ฉฐ
์ฉ๋ c(b,a)์ ์ค์ ์กด์ฌํ๋ ๊ฐ์ ์ด ์๋๋ฏ๋ก 0์ด ๋๋ค.
๋ฐ๋ผ์, ์ญ๊ฐ์ b → a์ ์์ฌ ์ฉ๋ r(b,a)์ c(b,a) - f(b,a) = 0 - (-1) = 1์ด ๋๋ค.
์ฆ, ์ญ๊ฐ์ b → a๋ก 1์ ์ ๋์ ์ถ๊ฐ์ ์ผ๋ก ํ๋ ค๋ณด๋ผ ์ ์๊ฒ ๋๋ค.
๐ ํด๋น ๊ท์น์ ๋ ์ ์ ์ด ์๋ก์๊ฒ ์ ๋์ ๋ณด๋ด์ฃผ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฆฝํ ์ ์์ผ๋ฉฐ, ์์ค์์ ์ฑํฌ๋ก ๊ฐ๋ ์ด ์ ๋๋ ๋ณํ์ง ์๋๋ค.
๐ฉ ํฌ๋-ํ์ปค์จ ์๊ณ ๋ฆฌ์ฆ
1. ๋คํธ์ํฌ์ ์กด์ฌํ๋ ๋ชจ๋ ๊ฐ์ ์ ์ ๋์ 0์ผ๋ก ์ด๊ธฐํํ๊ณ , ์ญ๋ฐฉํฅ ๊ฐ์ ์ ์ ๋๋ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
2. ์์ค์์ ์ฑํฌ๋ก ๊ฐ ์ ์๋, ์์ฌ ์ฉ๋์ด ๋จ์ ๊ฒฝ๋ก๋ฅผ DFS๋ก ํ์ํ๋ค.
3. ํด๋น ๊ฒฝ๋ก์ ์กด์ฌํ๋ ๊ฐ์ ๋ค์ ์์ฌ ์ฉ๋ ์ค, ๊ฐ์ฅ ์์ ๊ฐ์ ์ ๋์ผ๋ก ํ๋ ค๋ณด๋ธ๋ค.
4. ํด๋น ์ ๋์ ์์๊ฐ์ ์ทจํด, ์ญ๋ฐฉํฅ ๊ฐ์ ์๋ ํ๋ ค๋ณด๋ธ๋ค (์ ๋ ์์)
5. ๋ ์ด์ ์์ฌ ์ฉ๋์ด ๋จ์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
๐ฉ ์์
์ ๊ทธ๋ฆผ์, ๋คํธ์ํฌ์ ์กด์ฌํ๋ ๋ชจ๋ ๊ฐ์ ์ ์ ๋์ 0์ผ๋ก ์ด๊ธฐํ์ํค๊ณ , ์ญ๋ฐฉํฅ ๊ฐ์ ์ ์ ๋๋ 0์ผ๋ก ์ด๊ธฐํํ ๋ค
DFS๋ฅผ ํตํด, ์์ค์์ ์ฑํฌ๋ก ๊ฐ ์ ์๋ ๊ฒฝ๋ก ์ค ํ๋์ธ S → a → b → T ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ณ
ํด๋น ๊ฒฝ๋ก์ ์กด์ฌํ๋ ๊ฐ์ ๋ค์ ์์ฌ ์ฉ๋ ์ค, ๊ฐ์ฅ ์์ ๊ฐ์ธ 1์ ์ ๋์ผ๋ก ํ๋ ค๋ณด๋ธ ๋ค
ํด๋น ์ ๋์ ์์๊ฐ์ ์ทจํด, ์ญ๋ฐฉํฅ ๊ฐ์ ์๋ -1์ ํ๋ ค๋ณด๋ธ ๊ฒฐ๊ณผ์ด๋ค.
์ฆ, b์์ a๋ก 1๋งํผ์ ์ ๋์ ์ถ๊ฐ๋ก ํ๋ ค๋ณด๋ผ ์ ์๋ ๊ฒ์ ์ ์ ์๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ฐ์ (a,b)์ (b,a)๊ฐ ์์๋๋ฏ๋ก, ์๋์ ๊ฐ์ ์ ๋ต์ด ๋์ถ๋๋ค.
๐ฉ ํน์ง
DFS ๋ฐฉ์์ผ๋ก ์ฆ๊ฐ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ค.
๋นํจ์จ์ ์ผ๋ก ๋์ ๊ฐ๋ฅ cf. ๋ฌธ์ ์ ์ต๋ ์ ๋์ด ์ ๊ณ , ๊ฐ์ ์ด ๋ง์ผ๋ฉด ์คํ๋ ค DFS๊ฐ ํจ์จ์ ์ผ ์ ์๋ค.
์๊ฐ๋ณต์ก๋ O((E+V) * F)
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต์ฅ ๊ณตํต ๋ถ๋ถ ์์ด(LCS) cf. ์ต์ฅ ๊ณตํต ๋ฌธ์์ด (0) | 2024.04.29 |
---|---|
ํ๋ ฌ์ ์ฐ์์ ๊ณฑ์ (0) | 2024.04.29 |
ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ(์ต๋จ ๊ฒฝ๋ก) (0) | 2024.04.19 |
๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ(์ต๋จ ๊ฒฝ๋ก) (0) | 2024.04.19 |
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(์ต๋จ ๊ฒฝ๋ก) (1) | 2024.04.19 |