๋ฐ˜์‘ํ˜•
Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-06 00:00
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กํŒŒ์ด์ฌ (13)

์žฌ๋ƒฅ์ด๐Ÿ˜ป

Traveling Salesman Problem(TSP) - ์ตœ๊ณ  ์šฐ์„  ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ํ•œ์ • ๋ถ„๊ธฐ(Branch and Bound)

Traveling Salesman Problem(TSP) ์ตœ๊ณ  ์šฐ์„  ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ํ•œ์ • ๋ถ„๊ธฐ(Branch and Bound) ์„œ๋ก  Traveling Salesman Problem(TSP) : ์™ธํŒ์›์ด ์ž์‹ ์˜ ์ง‘์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋„์‹œ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ๋‹ค๋ฅธ ๋„์‹œ๋“ค์„ "๊ฐ๊ฐ ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ฐฉ๋ฌธ"ํ•˜๊ณ , "๋‹ค์‹œ ์ž๊ธฐ ๋„์‹œ๋กœ ๋Œ์•„์˜ค๋Š”" ๊ฐ€์žฅ ์งง์€ ์ผ์ฃผ์—ฌํ–‰๊ฒฝ๋กœ(tour)๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฌธ์ œ ์ตœ๊ณ  ์šฐ์„  ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ํ•œ์ • ๋ถ„๊ธฐ(Branch and Bound) ์ „๋žต - ๊ฐ ๋…ธ๋“œ๋Š” ์ถœ๋ฐœ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ์˜ ์ผ์ฃผ์—ฌํ–‰๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋ƒ„ - ๋‹จ๋ง๋…ธ๋“œ์— ์žˆ๋Š” ์ผ์ฃผ์—ฌํ–‰๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ๋น„์šฉ์ด ๋‚ฎ์€ ์ผ์ฃผ์—ฌํ–‰๊ฒฝ๋กœ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. (๋ฌด์ž‘์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜: Brute Force ์ „๋žต) - ๋ถ„๊ธฐํ•œ์ • ๊ฐ€์ง€์น˜๊ธฐ๋กœ ์ตœ๊ณ ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ ๋…ธ๋“œ์˜ ํ•œ๊ณ„์น˜..

ํŒŒ์ด์ฌ 2022. 6. 15. 23:50
0-1 Knapsack Problem - ์ตœ๊ณ  ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ (Branch and Bound)

0-1 Knapsack Problem ์ตœ๊ณ  ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ (Branch and Bound) ์„œ๋ก  ํ•œ์ • ๋ถ„๊ธฐ ์ „๋žต์˜ ๋™๊ธฐ : ๋˜์ถ”์ ์˜ ๋น„ํšจ์œจ๋˜์ถ”์ ์˜ ํƒ์ƒ‰ ๊ณผ์ •์—์„œ Valid๊ฐ€ ์ ์šฉ๋˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ์ƒ๋‹นํ•œ ๋น„์œจ์˜ ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•„๋„ ๋จ์„ ๋ฐœ๊ฒฌ ๋˜์ถ”์ ์˜ ๋น„ํšจ์œจ ํ•ด๊ฒฐ์ฑ… : ๊ฐ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ํ•œ๊ณ„์น˜(bound)๋ฅผ ๊ณ„์‚ฐ ํ•œ๊ณ„์น˜(Bound) : ํ•ด๋‹น ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ง€๋ฅผ ๋ป—์–ด๋‚˜๊ฐ€์„œ(branch) ์–ป์„ ์ˆ˜ ์žˆ๋Š” ํ•ด๋‹ต์น˜์˜ ํ•œ๊ณ„ ๊ฐ’ 0/1 Knapsack Problem์˜ ์ตœ๊ณ  ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ(Branch and Bound) ์ „๋žต 1. ๊ทธ ๋…ธ๋“œ์˜ profit๊ณผ weight๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 2. ๊ทธ ๋…ธ๋“œ์˜ bound๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 3. ํ˜„์žฌ ๋…ธ๋“œ์˜ profit์ด maxprofit๋ณด๋‹ค ํฌ๋ฉด maxpr..

ํŒŒ์ด์ฌ 2022. 6. 15. 22:42
0-1 Knapsack Problem - ๋„ˆ๋น„ ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ (Branch and Bound)

0-1 Knapsack Problem ๋„ˆ๋น„ ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ (Branch and Bound) ์„œ๋ก  ํ•œ์ • ๋ถ„๊ธฐ ์ „๋žต์˜ ๋™๊ธฐ : ๋˜์ถ”์ ์˜ ๋น„ํšจ์œจ๋˜์ถ”์ ์˜ ํƒ์ƒ‰ ๊ณผ์ •์—์„œ Valid๊ฐ€ ์ ์šฉ๋˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ์ƒ๋‹นํ•œ ๋น„์œจ์˜ ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•„๋„ ๋จ์„ ๋ฐœ๊ฒฌ ๋˜์ถ”์ ์˜ ๋น„ํšจ์œจ ํ•ด๊ฒฐ์ฑ… : ๊ฐ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ํ•œ๊ณ„์น˜(bound)๋ฅผ ๊ณ„์‚ฐ ํ•œ๊ณ„์น˜(Bound) : ํ•ด๋‹น ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ง€๋ฅผ ๋ป—์–ด๋‚˜๊ฐ€์„œ(branch) ์–ป์„ ์ˆ˜ ์žˆ๋Š” ํ•ด๋‹ต์น˜์˜ ํ•œ๊ณ„ ๊ฐ’ ๊ธฐ์กด ๊นŠ์ด ์šฐ์„  ๊ฒ€์ƒ‰(DFS) ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ถ„๊ธฐํ•œ์ •์˜ ํŠน์„ฑ์„ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ณ  ์žˆ์ง€ ๋ชปํ•จ. ๊ทธ๋ ‡๋‹ค๋ฉด… ๋„ˆ๋น„ ์šฐ์„  ๊ฒ€์ƒ‰(BFS)์„ ์ˆ˜์ •ํ•˜์—ฌ ๊ตฌํ˜„ 0/1 Knapsack Problem์˜ ๋„ˆ๋น„ ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ(Branch and Bound) ์ „๋žต 1. ๊ทธ ๋…ธ๋“œ์˜ p..

ํŒŒ์ด์ฌ 2022. 6. 15. 21:55
0-1 Knapsack Problem - ๊นŠ์ด ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ (Branch and Bound)

0-1 Knapsack Problem ๊นŠ์ด ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ (Branch and Bound) ์„œ๋ก  ํ•œ์ • ๋ถ„๊ธฐ ์ „๋žต์˜ ๋™๊ธฐ : ๋˜์ถ”์ ์˜ ๋น„ํšจ์œจ๋˜์ถ”์ ์˜ ํƒ์ƒ‰ ๊ณผ์ •์—์„œ Valid๊ฐ€ ์ ์šฉ๋˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ์ƒ๋‹นํ•œ ๋น„์œจ์˜ ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•„๋„ ๋จ์„ ๋ฐœ๊ฒฌ ๋˜์ถ”์ ์˜ ๋น„ํšจ์œจ ํ•ด๊ฒฐ์ฑ… : ๊ฐ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ํ•œ๊ณ„์น˜(bound)๋ฅผ ๊ณ„์‚ฐ ํ•œ๊ณ„์น˜(Bound) : ํ•ด๋‹น ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ง€๋ฅผ ๋ป—์–ด๋‚˜๊ฐ€์„œ(branch) ์–ป์„ ์ˆ˜ ์žˆ๋Š” ํ•ด๋‹ต์น˜์˜ ํ•œ๊ณ„ ๊ฐ’ 0/1 Knapsack Problem์˜ ๊นŠ์ด ์šฐ์„  ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•œ ํ•œ์ •๋ถ„๊ธฐ(Branch and Bound) ์ „๋žต 1. ๊ทธ ๋…ธ๋“œ์˜ profit๊ณผ weight๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 2. ๊ทธ ๋…ธ๋“œ์˜ bound๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 3. ํ˜„์žฌ ๋…ธ๋“œ์˜ profit์ด maxprofit๋ณด๋‹ค ํฌ๋ฉด maxpr..

ํŒŒ์ด์ฌ 2022. 6. 15. 19:56
์ƒ‰์น  ๋ฌธ์ œ - ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking) ์ƒํƒœ ๊ณต๊ฐ„ ํŠธ๋ฆฌ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ƒ‰์น  ๋ฌธ์ œ - ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking) ์ƒํƒœ ๊ณต๊ฐ„ ํŠธ๋ฆฌ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„œ๋ก  ์ƒํƒœ ๊ณต๊ฐ„ ํŠธ๋ฆฌ(State Space Tree)๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •์˜ ์ค‘๊ฐ„ ์ƒํƒœ๋ฅผ ๊ฐ๊ฐ ํ•œ ๋…ธ๋“œ๋กœ ๋‚˜ํƒ€๋‚ธ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking)์€ ์ƒํƒœ ๊ณต๊ฐ„ ํŠธ๋ฆฌ์—์„œ ์ƒˆ๋กœ์šด ํƒ์ƒ‰์ด ๋ฌด์˜๋ฏธํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด, ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•œ ์„ ํƒ ํฌ์ธํŠธ(choice point)๋กœ backtrackํ•˜์—ฌ ์ƒˆ๋กœ์šด ํƒ์ƒ‰์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ์˜ ์„ ํƒ ํฌ์ธํŠธ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด, ํƒ์ƒ‰์€ ์‹คํŒจ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๋˜์ถ”์ ์€ ๊ฐˆ๋ฆผ๊ธธ์— ํ‘œ์‹œ๋ฅผ ํ•ด๋‘๊ณ  ๋ง‰๋‹ค๋ฅธ ๊ณจ๋ชฉ์— ๋‹ค๋‹ค๋ฅด๋ฉด ๊ฐˆ๋ฆผ๊ธธ๊นŒ์ง€ ๋˜๋Œ์•„๊ฐ€์„œ ๋‹ค๋ฅธ ๊ณจ๋ชฉ์œผ๋กœ ๊ฐ€๋ณด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰๊ณผ ๊ด€๋ จ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ‰์น  ๋ฌธ์ œ(Coloring Problem)๋Š” ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์—์„œ ์ธ์ ‘ํ•œ ์ •์ ์€ ๊ฐ™์€ ์ƒ‰์„ ์น ํ•  ์ˆ˜..

ํŒŒ์ด์ฌ 2022. 6. 11. 18:04
[ํŒŒ์ด์ฌ/Python] ํ—ˆํ”„๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•œ ์ตœ์  ์ด์ง„ ๋ฌธ์ž ์ฝ”๋“œ ๊ตฌ์ถ• ๊ณผ์ • ๋ถ„์„ํ•˜๊ธฐ ( ํ—ˆํ”„๋งŒ ์ฝ”๋“œ )

ํ—ˆํ”„๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•œ ์ตœ์  ์ด์ง„ ๋ฌธ์ž ์ฝ”๋“œ ๊ตฌ์ถ• ๊ณผ์ • ๋ถ„์„ํ•˜๊ธฐ (ํ—ˆํ”„๋งŒ ์ฝ”๋“œ) ์„œ๋ก  ํ—ˆํ”„๋งŒ ์ฝ”๋“œ(Huffman Code)๋ž€ ๋ฌธ์ž๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ฌธ์ž ๊ฐ๊ฐ์„ ์ฝ”๋“œํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋” ์ž์ฃผ ์ถœํ˜„ํ•˜๋Š” ๋ฌธ์ž์— ๋Œ€ํ•˜์—ฌ ๋” ์งง์€ ์ฝ”๋“œ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ตœ์  ์ด์ง„ ์ฝ”๋”ฉ ๋ฌธ์ œ(Optimal Binary Code)๋Š” ์ฃผ์–ด์ง„ ํ…์ŠคํŠธ ํŒŒ์ผ์— ์žˆ๋Š” ๋ฌธ์ž๋“ค์„ ์ด์ง„ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋น„ํŠธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ์ด์ง„ ๋ฌธ์ž ์ฝ”๋“œ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ์ตœ์  ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์ตœ์  ์ด์ง„ ๋ฌธ์ž ์ฝ”๋“œ(Huffman code)๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ณธ๋ก  ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ ๋ฌธ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1) Priority Queue ..

ํŒŒ์ด์ฌ 2022. 6. 3. 19:06
[ํŒŒ์ด์ฌ/Python] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ( Floyd-washall )

[ํŒŒ์ด์ฌ/Python] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ( Floyd-washall ) ์„œ๋ก  [ํŒŒ์ด์ฌ/Python] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ( Dijkstra / Bellman-ford / floyd-warshall ) ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ( Dijkstra / Bellman-ford / floyd-warshall ) ์„œ๋ก  ์ตœ๋‹จ ๊ฒฝ๋กœ(Shortest Paths)๋Š” ๋‘ ์ •์  ์‚ฌ์ด์˜ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์ตœ์†Œ์ธ ๊ฒฝ๋กœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋‹จ ๊ฒฝ.. develop247.tistory.com ์ด์ „ ์‹œ๊ฐ„ ๊ตฌํ˜„ํ•˜์˜€๋˜ Floyd-washall ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™์›๋ฆฌ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ก  ๋ฌธ์ œ 1. Floyd-washall ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ์œ„ ๊ทธ..

ํŒŒ์ด์ฌ 2022. 6. 3. 15:20
[ํŒŒ์ด์ฌ/Python] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ( Dijkstra )

[ํŒŒ์ด์ฌ/Python] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ( Dijkstra ) ์„œ๋ก  [ํŒŒ์ด์ฌ/Python] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ( Dijkstra / Bellman-ford / floyd-warshall ) ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ( Dijkstra / Bellman-ford / floyd-warshall ) ์„œ๋ก  ์ตœ๋‹จ ๊ฒฝ๋กœ(Shortest Paths)๋Š” ๋‘ ์ •์  ์‚ฌ์ด์˜ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์ตœ์†Œ์ธ ๊ฒฝ๋กœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋‹จ ๊ฒฝ.. develop247.tistory.com ์ด์ „ ์‹œ๊ฐ„ ๊ตฌํ˜„ํ•˜์˜€๋˜ Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™์›๋ฆฌ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ก  ๋ฌธ์ œ 1. Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ์œ„ ๊ทธ๋ž˜ํ”„์˜ v4๋ฅผ ์‹œ์ž‘์œผ๋กœ ํ•˜๋Š”..

ํŒŒ์ด์ฌ 2022. 6. 2. 23:52
[ํŒŒ์ด์ฌ/Python] ์ตœ์†Œ ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ( Prim / Kruskal )

์ตœ์†Œ ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ( Prim / Kruskal ) ์„œ๋ก  [ํŒŒ์ด์ฌ/Python] ์ตœ์†Œ ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ( Prim / Kruskal ) ์ตœ์†Œ ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ ์„œ๋ก  ์‹ ์žฅ ํŠธ๋ฆฌ(Spanning tree)๋ž€ ์—ฐ๊ฒฐ๋œ ๋น„๋ฐฉํ–ฅ์„ฑ ๊ทธ๋ž˜ํ”„์—์„œ, ๋…ธ๋“œ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„๋กœ, ์ˆœํ™˜๊ฒฝ๋กœ(cycle)๊ฐ€ ์—†์–ด์ง€๋„๋ก ์ด์Œ์„ ์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ตฌ์„ฑํ•œ ์—ฐ๊ฒฐ๋œ develop247.tistory.com ์ด์ „ ์‹œ๊ฐ„ ๊ตฌํ˜„ํ•˜์˜€๋˜ Prim, Kruskal ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™์›๋ฆฌ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ก  ๋ฌธ์ œ 1. Prim ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ์œ„ ๊ทธ๋ž˜ํ”„์˜ ์ตœ์†Œ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์„ ์ œ์‹œํ•˜์‹œ์˜ค. ์ฒ˜์Œ start_node = 1์ด๋ฏ€๋กœ, d[1] =..

ํŒŒ์ด์ฌ 2022. 6. 2. 04:34
[ํŒŒ์ด์ฌ/Python] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ ๊ณ„์‚ฐํ•˜๊ธฐ ( Brute-Force Algorithm )

๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ ๊ณ„์‚ฐํ•˜๊ธฐ ( Brute-Force Algorithm ) ์„œ๋ก  ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Dynamic Programming)์€ ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(Optimal Substructure)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์žฌ๊ท€ ํ˜ธ์ถœ ์‹œ ๋น„ํšจ์œจ์ ์ธ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ(Overlapping Recursive Calls) ์‚ฌ์šฉํ•˜๋ฉด ํšจ๊ณผ์ ์ด๋‹ค. ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(Optimal Substructure)๋ž€ ํฐ ๋ฌธ์ œ์˜ ์ตœ์  ์†”๋ฃจ์…˜์— ์ž‘์€ ๋ฌธ์ œ์˜ ์ตœ์  ์†”๋ฃจ์…˜์ด ํฌํ•จ๋˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€ ๋จผ์ € ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ๋Œ€ํ‘œ์ ์ธ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ๋กœ ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ์— ๋Œ€ํ•ด ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ ์šฉํ•ด๋ณด์ž. ๋ณธ๋ก  i × j ํ–‰๋ ฌ๊ณผ j × ํ–‰๋ ฌ์„ ๊ณฑํ•˜๊ธฐ ์œ„ํ•ด์„œ..

ํŒŒ์ด์ฌ 2022. 6. 2. 00:00