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

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

by UKHYUN22 2022. 3. 20.
728x90

 

Optimal Substructure
๊ฐ๊ฐ์˜ ์ ์„ ์ฐ์œผ๋ฉด ์„ธ๋กœ์˜ ์ขŒํ‘œ๋ถ€ํ„ฐ ๊ฐ€๋กœ์˜ ์ขŒํ‘œ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋œ๋‹ค. Diagonol ํ•œ ๊ฒƒ์€ ์ž๊ธฐ ์ž์‹ ์— ๋Œ€ํ•ด ๋Œ€์‘ํ•˜๋ฏ€๋กœ 0์œผ๋กœ ์ฑ„์›Œ์ ธ์žˆ๋‹ค. (1,3) ๋ถ€ํ„ฐ๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ๊ด„ํ˜ธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋กœ ๋‚˜๋‰  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰ Solution์€ (1,6)์— ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. (3,6)์˜ ๊ฒฝ์šฐ, A3๋ถ€ํ„ฐ A6๊นŒ์ง€ ๊ณฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. Sub Problem์— ๋Œ€ํ•œ Solution์ด ์กด์žฌํ•ด์•ผ ํ•˜๊ณ  ๊ทธ๊ฒƒ๋“ค์ด Optimal ํ•ด์•ผ ํ•œ๋‹ค. Optimal Solution์„ ๊ตฌํ•  ๋•Œ ์ด ์ „์˜ Sub Problem์˜ Solution์€ Optimal ํ•˜๋‹ค๋Š” ๊ฐ€์ •์„ ๊ฐ€์ง€๊ณ  ๊ณ„์‚ฐ์„ ํ•˜๋ฏ€๋กœ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” Bottom up ๋ฐฉ์‹์ด๋‹ค. 

 

 

Optimal Substruction
Bottom ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ญ‰์ญ‰ ์˜ฌ๋ผ๊ฐ€๊ณ  ๊ทธ๋•Œ์˜ ๊ตฌํ•œ ๊ฐ’๋“ค์„ ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. Optimalํ•œ Solution์˜ ๊ฐ’์ด๋‹ค. 

 

 

Development of DP algorithms
optimal substructure๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋ฐฉ๊ธˆ ์‚ดํŽด๋ณธ ํ–‰๋ ฌ์˜ ๊ณฑ์˜ ๊ฒฝ์šฐ A1๋ถ€ํ„ฐ An๊นŒ์ง€ ๊ตฌํ•˜๋Š”๋ฐ Sub Problem์„ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด๋ฅผ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ด ๋œ๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ, Sub problem๊ณผ ์–ด๋–ค ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์ˆ˜์‹์„ ์ •ํ•ด์•ผ ํ•œ๋‹ค. ์„ธ ๋ฒˆ์งธ๋กœ, ์ •ํ•œ ์‹์— ๋”ฐ๋ผ์„œ Solution์„ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ณ„์‚ฐํ•œ ๊ฐ’์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•œ solution๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. MCM ๋ฌธ์ œ์—์„œ ๊ณฑํ•˜๊ธฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๊ฒƒ์„ ์ค‘์‹ฌ์œผ๋กœ ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•œ ๊ฒƒ์€ ์–ด๋–ป๊ฒŒ Split์„ ํ•˜๋Š” ์ง€๋ฅผ ์•Œ๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. 

 

 

 

Step 2
m[i,j] ๋ผ๋Š” term์„ ์ •์˜ํ•œ๋‹ค. Ai ๋ถ€ํ„ฐ Aj๊นŒ์ง€ ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ๊ณ„์‚ฐ ๊ฐœ์ˆ˜์ด๋‹ค. ์•„๊นŒ square ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ M[i,j] ๊ฐ€ ๋œ๋‹ค. Split์ด Ak์™€ Ak+1์—์„œ ์ผ์–ด๋‚ฌ๋‹ค๊ณ  ํ•˜๋ฉด Diagonalํ•œ ๊ณณ์—๋Š” 0์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค(๊ณฑํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ). AiAi+1,,, Ak Ak+1 ,,, Aj Split์ด k์™€ k+1 ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚œ๋‹ค. 

 

 

Computing the optimal costs
์ด์ „์— ์‚ฌ์šฉํ•œ ๊ฐ’๊ณผ ํ–‰๋ ฌ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ๊ณฑ์…ˆ์˜ ํšŸ์ˆ˜๋ฅผ ๋”ํ•˜๊ฒŒ ๋œ๋‹ค. p๊ฐ€ ํ–‰๋ ฌ์˜ ํฌ๊ธฐ๊ฐ€ ๋œ๋‹ค. k = 3,4,5์ผ๋•Œ ๊ณฑ์…ˆ์˜ ํšŸ์ˆ˜์— ๋”ฐ๋ผ์„œ min ๊ฐ’ ์„ ํƒํ•ด์„œ 3,6์— ์ €์žฅ์„ ํ•ด ๋†“๋Š”๋‹ค.