๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸจ Algorithm

์•Œ๊ณ ๋ฆฌ์ฆ˜ 5์ฃผ์ฐจ ์›”์š”์ผ ๊ฐ•์˜

by UKHYUN22 2022. 4. 4.
728x90

Greedy Algorithm

 


Dynamic Programming is Blind


๋ญ”๊ฐ€ ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํƒœ์—์„œ ํ‘ธ๋Š” ๋ฌธ์ œ์˜ ๋Š๋‚Œ์ด๋ผ๋Š” ๊ฒƒ. matrix chain์ด๋‚˜ LCS๊ฐ™์€ ๊ฒฝ์šฐ์˜ Time Complexity๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์„ธํƒ€๋ผ๊ณ  ํ‘œํ˜„์„ ํ•ด์•ผ ํ•œ๋‹ค. (์ •์ • ํ•„์š”) LCS์˜ ๊ฒฝ์šฐ M๊ณผ N์ด order๊ฐ€ ๋น„์Šทํ•˜๋‹ค๊ณ  ํ•˜๋ฉด ์„ธํƒ€ M^2๊นŒ์ง€ ๊ฐ€๋Šฅํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค. ๋น„๊ต์  ์ฐจ์ˆ˜๊ฐ€ ๋†’๊ฒŒ ๋‚˜์˜จ๋‹ค. ์™œ ๊ทธ๋Ÿฐ๊ฐ€? Optimal solution์„ ๊ณ„์‚ฐํ•  ๋•Œ ์„ ํƒ์ด ๊ต‰์žฅํžˆ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ ์„ ํƒ์ด ์–ด๋Š๊ฒŒ ์˜ณ์€ ์„ ํƒ์ธ์ง€ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 


Example: MCM


๋งจ์ฒ˜์Œ (1,6)์— ์žˆ๋Š” ๊ฒƒ ์ค‘ ์ตœ์ ์˜ ๊ฐ’์„ ์œ„ํ•ด์„œ ์ด 5๋ฒˆ์˜ ๊ณฑ์…ˆ์„ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ ์ค‘ ์ตœ์ ์˜ ๊ฐ’์ธ ๋…ธ๋ž€์ƒ‰์ด ์ฑ„ํƒ์ด ๋œ๋‹ค. ์–ด๋Š ๊ฒƒ์ด ์ตœ์ ์˜ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— Blind ํ•˜๋‹ค๊ณ  ํ‘œํ˜„์„ ํ•œ๋‹ค. ์ƒ‰์น ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒƒ๋“ค๋„ ๋‹ค ๊ณ„์‚ฐํ•˜๋Š๋ผ ์‹œ๊ฐ„ ๋‚ญ๋น„๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. MCM ๋ฌธ์ œ๋Š” ๋ฌผ๋ก  ๊ทธ๋ ‡๊ฒŒ ์ ์€ ์‹œ๊ฐ„์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ํ•„์š” ์—†๋Š” ๋ถ€๋ถ„์„ ๊ณ„์‚ฐํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ์‚ฌ๋ก€๋กœ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด๋‹ค. DP ๋งˆ์ €๋„ ๋ถˆํ•„์š”ํ•œ ์ธก๋ฉด์ด ์กด์žฌํ•˜๊ฒŒ ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ์–ด๋–ค ์„ ํƒ์ด ์ตœ๊ณ ์ธ์ง€ ์ตœ์„ ์˜ ์„ ํƒ์ธ์ง€ ์ œ์•ฝํ•˜๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค๋ฉด ํ•„์š”์—†๋Š” ๊ณ„์‚ฐ์„ ํ•˜์ง€ ์•Š๊ณ ๋„ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ? ๋ผ๋Š” ๊ฒƒ์œผ๋กœ ๋ถ€ํ„ฐ
์ถœ๋ฐœ์„ ํ•œ๋‹ค. Greedy Algorithm์€ ์–ด๋–ค ๊ฒƒ์ด ์ตœ์ ์˜ ์„ ํƒ์ธ์ง€ ์ฐพ๊ธฐ ์œ„ํ•ด ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 


Greedy Algorithm


์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ์–ด๋–ค ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๋“ค์€ Greedy ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ์ˆœ๊ฐ„์—  ์ตœ์ ์œผ๋กœ ๋ณด์ด๋Š” ์„ ํƒ๋“ค์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ตœ์ ์˜ ์„ ํƒ์„ ๊ณ„์†ํ•ด์„œ ํ•ด๋‚˜๊ฐ„๋‹ค. local optimum์ด๋ž€ ๋งค ์ˆœ๊ฐ„์˜ ์ตœ์„ ์˜ ์„ ํƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ฒฐ๊ตญ ๋งˆ์ง€๋ง‰ ์ˆœ๊ฐ„์— ๊ฐ”์„ ๋•Œ Globalํ•˜๊ฒŒ ๋ดค์„ ๋•Œ ์ตœ์ ์˜ ์„ ํƒ์ด์—ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์€ Greedy๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 

 


Coin change


์ž”๋ˆ์„ ์ค„ ๋•Œ ์ตœ์†Œํ•œ์˜ ๊ฐœ์ˆ˜๋กœ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌํ•˜๋Š” ๊ฒƒ. 760์—์„œ ๊ฐ€์žฅ ํฐ denomination์€ 500์›์ด๋‹ค. 760์—์„œ 500์„ ๋บ€ 260 ์ด๊ณ  260์—์„œ 100์›์งœ๋ฆฌ 2๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 60์›์ด ๋‚จ๋Š”๋‹ค. 60์—์„œ ๋‹ค์Œ ๊ฒƒ์€ 50์›์„ ๋นผ๋Š” ๊ฒƒ์ด๊ณ  10์›์ด ๋‚จ์œผ๋ฉด 10์› ํ•˜๋‚˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

An activity-selection problem


์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค์ผ€์ค„์„ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ณตํ†ต์˜ ์ž์›์„ ํ•„์š”๋กœ ํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค. maximum size set of mutually compatible activities ๊ฐ€์žฅ ๋งŽ์€ ์ˆ˜์˜ activity๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด๋‹ค. ์‹œ๊ฐ„์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€์˜ set์ด ์กด์žฌํ•œ๋‹ค. ๋งŒ์•ฝ mutually exclusiveํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ด ๊ฒฝ์šฐ 4๊ฐœ๊ฐ€ maximum size๊ฐ€ ๋œ๋‹ค. ai๋ผ๋Š” activity๋ฅผ [si, fi) ๋กœ ํ‘œํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. sorting์„ ํ•˜๋Š”๋ฐ finish time์„ ๊ฐ€์ง€๊ณ  sorting์„ ์ง„ํ–‰ํ•œ๋‹ค.

 


An activity selection problem
Mutually compatibleํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์‹œ์ž‘๊ณผ ๋์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฒน์น˜์ง€ ์•Š๋Š” ์‹œ๊ฐ„๋Œ€์˜ set์„ ์˜๋ฏธํ•œ๋‹ค. 

 


The Structure of an Optimal Schedule
S์ค‘์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ. ๋๋‚œ ํ›„์— ์‹œ์ž‘ํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋๋‚˜๋Š” ๊ฒƒ. ai๊ฐ€ ๋๋‚œ ํ›„ ์‹œ์ž‘๋˜๊ณ  aj๊ฐ€ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋๋‚˜๋Š” ๊ฒƒ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

 


The Structure of an Optimal Schedule
DP๋กœ ํ‘ธ๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋ณด์ž. 

 


An activity selection problem
local optimum ์ด global optimal ํ•˜๊ฒŒ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 

 


Theorem
Empty Set์ด ์•„๋‹ˆ๊ณ  am์„ ๊ฐ€์žฅ ๋นจ๋ฆฌ ๋๋‚˜๋Š” activity๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.