๋ฐ˜์‘ํ˜•

 

๊ตญ๋ฏผ๋Œ€ํ•™๊ต์—์„œ "์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜" ๊ต์žฌ๋ฅผ ์ด์šฉํ•œ
 ๋ฐ•ํ•˜๋ช… ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜ ๊ต์•ˆ์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์—… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค

 

 

NP-Completeness ๊ฐœ์š”

 

 

P : ๋‹คํ•ญ์‹œ๊ฐ„์— ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒฐ์ • ๋ฌธ์ œ ์ง‘ํ•ฉ

 

NP : ๋น„๊ฒฐ์ •๋ก ์ ์œผ๋กœ ๋‹คํ•ญ์‹œ๊ฐ„์— ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒฐ์ • ๋ฌธ์ œ ์ง‘ํ•ฉ

 

=> ๋‹ต์„ ๋‹คํ•ญ์‹œ๊ฐ„์— ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ
(๋‹คํ•ญ์‹œ๊ฐ„์— ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์œผ๋ฉด NP ๋ฌธ์ œ)

 

NP-Hard : ๋ชจ๋“  NP ๋ฌธ์ œ์—์„œ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜๋˜๋Š” ๋ฌธ์ œ ์ง‘ํ•ฉ

 

=> ๊ฒ€์ฆ์ด ์•ˆ๋  ์ˆ˜ ๋„ ์žˆ์Œ (NP - Complete์™€์˜ ์ฐจ์ด)

 

NP-Complete : NP-Hard ์ด๋ฉด์„œ NP์ธ ๋ฌธ์ œ

(๊ฒฐ๊ตญ NP์ด๊ธฐ์— yes/no์˜ ๊ฒฐ์ •๋ฌธ์ œ ์ง‘ํ•ฉ์ž„)

 

NP-Hard ์ฆ๋ช… ๋ฐฉ๋ฒ•

 

๋ฌธ์ œ A๊ฐ€ NP-Hard ์ž„์„ ์ฆ๋ช…ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Œ

 

1. NP-Hard ์ •์˜์— ๋”ฐ๋ผ ๋ชจ๋“  NP๋ฌธ์ œ๋ฅผ ๋ฌธ์ œ A๋กœ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜ํ•ด๋ด„

 

=> ์ด๊ฑด ์‚ฌ์‹ค์ƒ ๋ถˆ๊ฐ€๋Šฅ
(๋ชจ๋“  NP ๋ฌธ์ œ๋ฅผ ์ผ์ผ์ด ๋ณ€ํ™”ํ•ด์•ผํ•จ)

 

2. NP-Hard์ธ ๋ฌธ์ œ B๋ฅผ ๋ฌธ์ œ A๋กœ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜ํ•ด๋ด„

 

=> NP-Hard์ธ ๋ฌธ์ œ B๋ฅผ ๋ฌธ์ œ A๋กœ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋ฌธ์ œ A๋Š” NP-Hard์ž„

 

๋ฌธ์ œ A๊ฐ€ NP-Hard์ž„์„ ์ฆ๋ช…ํ•˜๊ณ  NP์ž„๋„ ์ฆ๋ช…

 

NP-Complete ์ฆ๋ช… ๋ฐฉ๋ฒ•

 

๋ฌธ์ œ A๊ฐ€ NP-Hard ์ž„์„ ์ฆ๋ช…ํ•˜๊ณ  NP์ž„๋„ ์ฆ๋ช…ํ•˜๋ฉด๋จ

 


์•Œ๋ ค์ง„ NP-Hard ๋ฌธ์ œ์—์„œ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜ํ•ด์„œ NP-Hard ์ž„์„ ์ฆ๋ช…ํ•˜๊ณ 

 

๋‹ต์ด ๋‹คํ•ญ์‹œ๊ฐ„์— ๊ฒ€์ฆ๋˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ NP์ž„๋„ ์ฆ๋ช…ํ•˜๋ฉด๋จ

 

NP-Complete ๋ฌธ์ œ๋“ค

 

NP-Complete ๋ฌธ์ œ๋“ค์€ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ  ์–ด๋ ค์›€

 

=> ๋‹คํ•ญ์‹œ๊ฐ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์Œ
(P = NP๊ฐ€ ์ฆ๋ช… X)

 

NP-Complete ๋ฌธ์ œ๋Š” NP-Hard ์ •์˜์— ๋”ฐ๋ผ ์„œ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•จ

=> NP-Hard๋Š” ๋ชจ๋“  NP๋ฌธ์ œ๋ฅผ ๋‹คํ•ญ ์‹œ๊ฐ„ ๋‚ด์— ํ’€ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•˜๋Š”๋ฐ ๊ฒฐ๊ตญ ๋ชจ๋“  NP-Complete ๋ฌธ์ œ๋Š” NP์ด๊ธฐ์— ์„œ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ

 

NP-Complete๊ฐ€ ๊ฐ€์ง€๋Š” ์˜๋ฏธ

 

์ผ๋‹จ ํ˜„์žฌ๋Š” P = NP๊ฐ€ ์ฆ๋ช…๋˜์ง€ ์•Š์•˜๊ธฐ์— NP ๋ฌธ์ œ๋ฅผ ๋‹คํ•ญ์‹œ๊ฐ„์— ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„์ง ๋ชจ๋ฆ„

(๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‹คํŒจํ•จ)

 

๋งŒ์•ฝ P = NP๋ผ๋ฉด NP-Complete๋„ P์ž„

 

 

 

๋งŒ์ผ NP-Complete ๋ฌธ์ œ ์ค‘ ๋‹จ ํ•˜๋‚˜๋งŒ์ด๋ผ๋„ ๋‹คํ•ญ์‹œ๊ฐ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐœ๊ฒฌํ•˜๋ฉด, ๋ชจ๋“  NP๋ฌธ์ œ๋ฅผ ๋‹คํ•ญ์‹œ๊ฐ„์— ํ’€ ์ˆ˜ ์žˆ์Œ

 

=> ๋ชจ๋“  NP ๋ฌธ์ œ๋Š” NP-Complete ๋ฌธ์ œ๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋–„๋ฌธ

 

TSP = NP-Complete?

 

TSP๋Š” ์ด์ „์— ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ ์™ธํŒ์› ์ˆœํ™˜ ๋ฌธ์ œ๋ผ๊ณ ํ•ด์„œ ๋ชจ๋“  ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜๊ณ  ์‹œ์ž‘ ์ •์ ์œผ๋กœ ๋Œ์•„์˜ค๋Š” ๊ธธ์ด K์ดํ•˜์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๋Š”๊ฐ€? ์— ๋Œ€ํ•œ ๋ฌธ์ œ์ž„

 

TSP๊ฐ€ NP-Complete์ž„์„ ์ฆ๋ช…ํ•˜๋ ค๋ฉด

 

1. NP-Hard์ž„์„ ์ฆ๋ช… 

 

=> HAM-CYCLE์„ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜
(HAM-CYCLE์€ NP-Hard์ž„)

 

2. NP์ž„์„ ์ฆ๋ช…

 

=> ์–ด๋–ค ์ˆœํ™˜ ๊ฒฝ๋กœ๊ฐ€ ๋‹ต์œผ๋กœ ์ฃผ์–ด์ง€๋ฉด

 

  • ์ด ๊ฒฝ๋กœ๊ฐ€ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ง€๋‚˜๋Š”์ง€
  • ๊ฒฝ๋กœ์˜ ํ•ฉ์ด K์ดํ•˜์ธ์ง€ ๋‹คํ•ญ์‹œ๊ฐ„์— ํ™•์ธ๊ฐ€๋Šฅ

 

 

 

NP-Complete์ธ HAM-CYCLE์„ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฆ๋ช…

 

=> HAM-CYCLE์˜ ์ž…๋ ฅ G๋ฅผ TSP์˜ ์ž…๋ ฅ G'๋กœ ๋ณ€ํ™˜

 

  • G์˜ ๋ชจ๋“  ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๋ฅผ 1๋กœ ์„ค์ •

  • ์—†๋Š” ๊ฐ„์„ ์€ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ€์ค‘์น˜๋ฅผ ๋ฌดํ•œ๋Œ€๋กœ ์„ค์ •

  • ์ •์ ์˜ ์ˆ˜๊ฐ€ n์ผ ๋•Œ, O(n^2)์˜ ์‹œ๊ฐ„ ํ•„์š”

 

K=n์ธ TSP ๋ฌธ์ œ์˜ ์ •๋‹ต์€ HAM-CYCLE์˜ ์ •๋‹ต๊ณผ ๋™์ผํ•˜๋ฏ€๋กœ

 

Longest Path = NP-Complete?

 

LONGEST-PATH๋Š” ๋‘ ์ ์„ ์ž‡๋Š” ๊ธธ์ด๊ฐ€ K ์ด์ƒ์ธ ๋‹จ์ˆœ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ

 

์งˆ๋ฌธ์€ s์—์„œ t๋กœ ๊ฐ€๋Š” ๊ธธ์ด๊ฐ€ K ์ด์ƒ์ธ ๋‹จ์ˆœ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๋Š”๊ฐ€?
(๋‹จ์ˆœ ๊ฒฝ๋กœ๋ž€ ๊ฐ™์€ ์ •์ ์ด ๋‘ ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ)

 

Longest Path๋Š” NP ์ธ๊ฐ€?

 

ํ•œ ๊ฒฝ๋กœ๊ฐ€ ๋‹ต์œผ๋กœ ์ œ์‹œ๋˜์—ˆ์„ ๋•Œ ์˜ฌ๋ฐ”๋ฅธ ๋‹ต์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š”๋ฐ ๋‹คํ•ญ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ

 

  • s์—์„œ t๋กœ ๋๋‚˜๋Š”๊ฐ€? -> O(1)
  • ๊ฒฝ๋กœ๊ฐ€ ๋‹จ์ˆœ ๊ฒฝ๋กœ์ธ๊ฐ€? -> O(n)
  • ๊ฒฝ๋กœ์˜ ๊ธธ์ด๊ฐ€ K ์ด์ƒ์ธ๊ฐ€? -> O(n)
Longest Path๋Š” NP-Hard ์ธ๊ฐ€?

 

NP-Complete์ธ Hamiltonian Path ๋ฌธ์ œ๋ฅผ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฆ๋ช…

 

HAM-PATH-2-POINTS๋Š” ๋‘ ์ ์„ ์ž‡๋Š” hamiltonian path๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ž„

 

=> s์—์„œ t๋กœ ๊ฐ€๋Š” hamiltonian path๊ฐ€ ์กด์žฌํ•˜๋Š”๊ฐ€?
(hamiltonian path๋Š” ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ์„ ํ•œ ๋ฒˆ์”ฉ ์ง€๋‚˜๋Š” ๊ฒฝ๋กœ์ž„)

 

HAM-PATH-2-POINTS => LONGEST-PATH

 

 

 

HAM-PATH ์˜ ์ž…๋ ฅ G๋ฅผ LONGEST-PATH ์ž…๋ ฅ G'์œผ๋กœ ๋ณ€ํ™˜

 

G์˜ ๋ชจ๋“  ๊ฐ„์„ ์— weight๋ฅผ 1๋กœ ๋ถ€์—ฌํ•˜์—ฌ G' ์ƒ์„ฑํ•˜๊ณ 
(๋ณ€ํ™˜์‹œ๊ฐ„์€ O(n^2))

 

G',s,t๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” LONGEST-PATH ๋ฌธ์ œ์˜ ๋‹ต (K = n - 1 ์ผ ๋•Œ) ์ด

 

G,s,t๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” HAM-PATH-2-POINTS ๋ฌธ์ œ์˜ ๋‹ต๊ณผ ๋™์ผํ•จ

 

NP-Hardness of Optimization Problems

 

๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜์˜ ์ •์˜๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ตœ์ ํ™” ๋ฌธ์ œ์— ์ ์šฉ

 

 

 

=> ์ด์ „์— ๋‹ค๋ค˜๋˜ ๋‹คํ•ญ์‹œ๊ฐ„ ๋ณ€ํ™˜์˜ ์ •์˜๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Œ

 

  • ๋ณ€ํ™˜์€ ๋‹คํ•ญ์‹œ๊ฐ„์— ์ด๋ค„์ง„๋‹ค.

  • ๋‘ ์‚ฌ๋ก€์˜ ๋‹ต์ด ์ผ์น˜ํ•œ๋‹ค.

    => ฮฒ์˜ ๋‹ต์„ ์ด์šฉํ•˜์—ฌ ฮฑ์˜ ๋‹ต์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

[TSP] : TSP ๋ฌธ์ œ์˜ ๊ฒฐ์ • ๋ฌธ์ œ ๋ฒ„์ „

 

Weighted, undirected, complete ๊ทธ๋ž˜ํ”„ G์—์„œ ๊ธธ์ด๊ฐ€ K ์ดํ•˜์ธ Hamiltonian cycle์ด ์กด์žฌํ•˜๋Š”๊ฐ€?

 

NP-Complete์ธ optimization problem ์กด์žฌ? => X

 

 

[OPT-TSP] : TSP ๋ฌธ์ œ์˜ ์ตœ์ ํ™” ๋ฌธ์ œ ๋ฒ„์ „

 

Weighted, undirected, complete ๊ทธ๋ž˜ํ”„ G์—์„œ ๊ฐ€์žฅ ์งง์€ Hamiltonian cycle์˜ ๊ธธ์ด๋Š”?

 

NP-Complete์— ํฌํ•จ์ด ์•ˆ๋˜๋Š” NP-hard
(NP๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ)

 

OPT-TSP๋Š” NP-Hard ์ž„

 

์ตœ์ ํ™” ๋ฌธ์ œ๋Š” NP๊ฐ€ ์•„๋‹˜ (NP๋Š” ๋ฌด์กฐ๊ฑด ๊ฒฐ์ • ๋ฌธ์ œ)

 

  • TSP์˜ ์ž…๋ ฅ์„ OPT-TSP์— ๋„ฃ์–ด ์ตœ๋‹จ ๊ฒฝ๋กœ ๊ธธ์ด x๋ฅผ ๊ณ„์‚ฐ

  • x๊ฐ€ K ์ดํ•˜์ด๋ฉด "Yes" ๋ฅผ, K ๋ณด๋‹ค ํฌ๋ฉด "No"๋ฅผ ์ถœ๋ ฅ

 

=> OPT-TSP๋Š” NP-Hard์ธ TSP ๋ฌธ์ œ๋ฅผ ๋ณ€ํ™˜ํ•œ ๊ฒƒ ์ด๋ฏ€๋กœ NP-Hard ์ธ๋ฐ ๊ฒฐ์ •๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ NP๊ฐ€ ์•„๋‹˜ 
(๊ทธ๋Ÿฌ๋ฏ€๋กœ NP-Complete๋„ ๋  ์ˆ˜ ์—†์Œ)

 

=> NP-Complete์ธ Optimization ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค (X)

 

๋‹ค๋ฅธ NP-Complete ๋ฌธ์ œ์˜ ์ตœ์ ํ™” ๋ฒ„์ „๋„ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ NP-Hard ์ž„์„ ์ฆ๋ช… ๊ฐ€๋Šฅ

 

 

 

 

 

๋ฐ˜์‘ํ˜•

'๐Ÿ”ฅ Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

L17 - A* Algorithm  (3) 2024.12.07
L16 - NP-Completeness (1)  (0) 2024.12.03
L15 - Boyer-Moore Algorithm  (0) 2024.11.30
L14 - KMP Algorithm  (1) 2024.11.30
L13 - Topological Sorting  (0) 2024.11.29