[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ์ต๋จ๊ฒฝ๋ก(Shortest Path)
Shortest Path(์ต๋จ ๊ฒฝ๋ก)
๋ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์์ ์ด๋ค ์ ์ ์์ ๋ค๋ฅธ ์ ์ ์ผ๋ก ์ด๋ํ๊ธฐ๊น์ง ๊ฐ์ฅ ์งง์ ๊ฐ์ค์น์ ํฉ์ผ๋ก ๋ชฉ์ ์ง์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ ์ํ ์ ๋ต์ด๋ค.
์ต๋จ ๊ฒฝ๋ก๋ฌธ์ ๋ ๋ช๊ฐ์ง ์ ํ์ผ๋ก ๋๋์ด์ง๋ค.
- Single Source: ํ๋์ ๋ ธ๋๋ก๋ถํฐ ์ถ๋ฐํด์ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์
- Single Destination: ๋ชจ๋ ๋ ธ๋๋ก๋ถํฐ ํ๋์ ๋ชฉ์ ์ง ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์
- Single Pair: ์ฃผ์ด์ง ํ๋์ ๋ ธ๋๋ก๋ถํฐ ํ๋์ ๋ชฉ์ ์ง๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์
- All pair: ๋ชจ๋ ๋ ธ๋ ์์ ๋ํ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์
์ด๋ฒ ์์
์์ ์ฃผ๋ก ๋ค๋ฃฐ ๋ด์ฉ์ SSP
๋ผ๊ณ ๋ ๋ถ๋ฅด๋ Single-source Shortest Path ์ด๋ค.
Lemma
์ผ๋จ Shortest Path ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํ ์ ์์์ง ์๊ฐํด๋ณด์.
๋ช
์ :
์์ ๊ฐ์ด ์ด๋ค ์ง์ U๋ก ๋ถํฐ V๊น์ง ๊ฐ๋ ๊ฒฝ๋ก๊ฐ ์๋ค๊ณ ํ๊ณ ์ด ๊ฒฝ๋ก๊ฐ U์์ V๋ก ๊ฐ๋ ๊ฐ๋ฅํ ์งง์ ๊ฒฝ๋ก๋ผ๊ณ ํด๋ณด์. ์ฆ, ๊ฒฝ๋ก UV๋ U์์ V๋ก ๊ฐ๋ SSP์ Global Optimal Solution
์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ฒฝ๋ก ์์ ์ํ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ๋ก๋ ํด๋น ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก์ด๋ค. ์ฆ, Optimal Sub Structure
๊ฐ ์กด์ฌํ๋ค.
์ฆ๋ช
:
Proof by Contradiction์ผ๋ก ์ฆ๋ช
ํด๋ณด์. ๋ง์ฝ ๊ฒฝ๋ก UV๊ฐ ์ต๋จ ๊ฒฝ๋ก์ผ ๋, ํด๋น ๊ฒฝ๋ก์ ์ํ๋ subpath ๊ฐ Optimal substructure ๊ฐ ์๋๋ผ๋ฉด, ํด๋น subpath ๋ณด๋ค ๋ ์งง์ subpath๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ํ์ฌ subpath ๋ณด๋ค ์งง์ subpath ๊ฐ ์๋ค๋ฉด, global optimal solution์ ์ํด์๋ ํด๋น subpath์ ์ต์ข
solution์ ๋ฐ๋์ ํฌํจํด์ผ ํ๊ณ , ์ด๋ ๊ณง ์ด๊ธฐ์ ์ค์ ํ๋ ๊ฒฝ๋ก UV๊ฐ ๋ ์ด์ ์ต๋จ๊ฒฝ๋ก๊ฐ ๋ ์ ์์์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์ ์ด๋ค ์ต๋จ ๊ฒฝ๋ก๊ฐ ์๋ค๋ฉด, ๊ทธ ์์ ์ํ ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ๋ก๋ค๋ ์ต๋จ ๊ฒฝ๋ก์ด๋ค.
Properties
์ ์ฆ๋ช ์ ๋ฐ๋ผ ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๋ก ์ ๋ผ ์ ์๋ค.
- ์ด๋ค ๊ฒฝ๋ก UV๊ฐ ์ต๋จ ๊ฒฝ๋ก๋ผ๋ฉด, ์ด ๊ฒฝ๋ก์ ๊ธธ์ด๋ ๊ทธ๋ํ ๋ด์ ๋ค๋ฅธ ์ ์ ๋ค์ ๊ฑฐ์ณ์ ์ค๋ ๋ชจ๋ ๊ฒฝ๋ก๋ณด๋ค ๊ฐ๊ฑฐ๋ ์๋ค.
Negative-Weight Cycle
๊ทธ๋ํ์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ฒ์ ๊ทธ๋ํ์ negative-weight cycle ์ด ์์ ๋๋ง ๊ฐ๋ฅํ๋ค. Negative-Weight Edge
๋ ์์๋ฅผ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ์ธ๋ฐ ์ด ๊ฐ์ ์ด ๊ทธ๋ํ์ ํฌํจ๋์ด ์๊ณ , ๋ค๋ฅธ ๊ฐ์ ๊ณผ ์ฌ์ดํด์ ๋ง๋ ๋ค๊ณ ์๊ฐํด๋ณด์.
์ ๊ทธ๋ํ์์ ์ ์ A์ ์ ์ B๊ฐ ๋ง๋๋ ์ฌ์ดํด์ ๋๋ฌํ๊ฒ ๋๋ฉด, ์ฌ์ดํด์ ๋ง๋๋ ๋ ๊ฐ์ค์น์ ํฉ์ด -7์ด๊ธฐ ๋๋ฌธ์, ํ์์ ๊ฑฐ๋ญํ ๋๋ง๋ค. ๊ฐ์ค์น์ ํฉ์ด ๊ณ์ํด์ ์์์ง๋ฉด์ ๊ฒฐ๊ตญ -∞ ์ ์๋ ดํ๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์ฐ๋ฆฌ๋ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๊ตฌํ ์๊ฐ ์๊ฒ๋๋ค.
Other Cycles?
๊ทธ๋ผ ์ด๋ฐ ์๋ฌธ์ด ๋ค ์๋ ์๋ค. "๋จ์ํ ์ฌ์ดํด์ด ๋ฌธ์ ์ธ๊ฐ?"
. ์ ๋ต์ "์๋๋ค" ์ด๋ค. Negative weight cycle ์ธ์ ๊ฐ๋ฅํ ๋ค๋ฅธ ์ฌ์ดํด๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
- Postivie Weight Cycle: ์ด ์ฌ์ดํด์ ํ์์ ๊ฑฐ๋ญํ ์๋ก ์์ ๊ฐ์ผ๋ก ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ์ +∞ ๋ก ๊ธธ์ด๊ฐ ์๋ ดํ๊ฒ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ตฌํ๊ณ ์ ํ๋ ๊ฐ์ ์ต๋จ ๊ฑฐ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ด์ฐจํผ ์์ ๋ฌดํ๋๋ก ์๋ ดํ๋ ์ฌ์ดํด์ด๋ผ๋ฉด ์ด ์ฌ์ดํด์ ๊ทธ๋ฅ ๋ฌด์ํด๋ ์ฐ๋ฆฌ๊ฐ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋๋ฐ๋ ์๋ฌด ์ง์ฅ์ด ์์ ๊ฒ์ด๋ค.
- Zero-Weight Cycle: ์ด ์ฌ์ดํด์ ์ฌ์ดํด์ ์ด๋ฃจ๋ ๋ ๊ฐ์ ์ ํฉ์ด 0์ผ ๋ ์๊ธฐ๋ ์ฌ์ดํด์ธ๋ฐ, ์ด ์ฌ์ดํด์ ํฌํจํ๋ ํฌํจํ์ง๋ง ์๋ ์ ์ฒด ์ต๋จ ๊ฒฝ๋ก์ ๊ฐ์ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํ์ง ์์๋ ๋๋ค.
Algorithm Strategy for SSP
์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ ์ ๊ทผ์ ์์๋ณด๊ธฐ ์ ์ SSP ์๊ณ ๋ฆฌ์ฆ ์ ๊ทผ์ ํต์ฉ๋๋ ๋ช๊ฐ์ง ์ฉ์ด์ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด์. ์ผ๋จ SSP๋ ์ด๋ค ์ ์ ์ ๋ํด ๋ค๋ฅธ ๋ชจ๋ ์ ์ ์ผ๋ก์ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์ ๋ต์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ตํ์.
Distance
์ด๋ค ๋ ์ ์ ์ฌ์ด์ ๊ธธ์ด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ค. d[v]
๋ ์์์ ์ผ๋ก ๋ถํฐ ์ ์ v๊น์ง์ ์ต๋จ ๊ธธ์ด๋ฅผ ์ ์ฅํ๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ๊ฒฝ๋ก๊ฐ ๋ฐ๊ฒฌ๋ ๋ ๊ฐ์ฅ ๊ธธ์ด๊ฐ ์งง์ ๊ฒฝ๋ก์ ๊ธธ์ด ํฉ์ ์ด ๋ฐฐ์ด์ ์ ์ฅํด์ผํ๋ค. ์ต๋จ ๊ธธ์ด๋ฅผ ์ ์ฅํด์ผํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์ด๊ธฐ๊ฐ์ +∞๋ก ์ง์ ๋์ด์ผ ํ ๊ฒ์ด๋ค.
Predecessor
์ด๋ค ์ ์ ์์ ์ต๋จ๊ฒฝ๋ก๋ก ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ์ ์ ์ ํํํ๊ธฐ ์ํด์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ค. p[v]
๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌ์ฑํ๋ ์ ์ ๋ค ์ค v์ ๋ถ๋ชจ๋
ธ๋๊ฐ ๋๋ ์ ์ ์ ์ ์ฅํ๋ค.
Relaxation
์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์์ ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ๊ฒ์ด ์ด relaxation ๊ธฐ๋ฒ์ด๋ค. Relaxation
์ ์ด๋ค ํ ์ ์ ์ผ๋ก๋ถํฐ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ ์ ์ ํ์ํ๊ณ ๊ทธ ์ค์์ ๊ฐ์ฅ ๊ธธ์ด๊ฐ ์งง์ ์ ์ ์ ์ฐพ์ Shortest Path๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
Relax (u, v, w){
if(d[v] > d[u]+w)
then
d[v] = d[u]+w;
p[v] = u;
}
์๋์ฝ๋๋ ์์ ๊ฐ๋ค. ํ์ฌ๊น์ง ์๊ณ ์๋ ์ต๋จ ๊ฒฝ๋ก๊ฐ s->v ๋ผ๊ณ ํ์ ๋, s์์ u๋ฅผ ๊ฑฐ์ณ v์ ๋๋ฌํ ๋ ๊ทธ ๊ธธ์ด๊ฐ ๋ ์งง๋ค๋ ๊ฒ์ด ๋ฐ๊ฒฌ๋๋ค๋ฉด, ํด๋น ๊ฐ์ ์ต๋จ๊ฒฝ๋ก๋ก ์ง์ ํ๋ ๊ฒ์ด๋ค.
'๐ฎ ์จ-์์ค > ๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(Dijkstra Algorithm) (0) | 2021.07.18 |
---|---|
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ(Bellman-Ford Algorithm) (0) | 2021.07.18 |
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ(Prim's Algorithm) (0) | 2021.07.18 |
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ(Kruskal Algorithm) (0) | 2021.07.18 |
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ์ต์ ์ ์ฅ ํธ๋ฆฌ(MST) (1) | 2021.07.18 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote