๋ชฉ๋กStudy/Algorithm (6)
๐ฉ๐ป๐พ

โกIntractability Polynomial-Time algorithm (๋คํญ์๊ฐ ์๊ณ ๋ฆฌ์ฆ) - W(n) ∈ O(p(n))์ธ ์๊ณ ๋ฆฌ์ฆ์ด๊ณ , ์ด๋ p(n)์ ์์๋ก๋ 2n, 3n^3 + 4n, n lg n ๋ฑ์ด ์๋ค. ex) Insertion Sort, Sequential Search, etc An Intractable Problem - polynomial - time ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐ์ด ๋ถ๊ฐ๋ฅํ ๋ฌธ์ ๋ฅผ intractable์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค. โกThe Three General Catagories of Problems 3 Categories of Problems Polynomial-Time algorithm found sorting, shortest paths problem, minimum spanning ..

โกInsertion Sort - ์ด๋ฏธ ์กด์ฌํ๋ ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๊ฐ์ ์ฝ์ ํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ ์ ๋ ฌ ๋ฐฉ๋ฒ 1. ์ฒซ๋ฒ์งธ (i - 1) ๋ฐฐ์ด ์๋ฆฌ๊ฐ ์ ๋ ฌ๋์๊ณ , x๊ฐ i๋ฒ์งธ ์๋ฆฌ์ ํค๋ผ๊ณ ๊ฐ์ ํ์ 2. x๋ณด๋ค ์์ ๊ฐ์ ์ฐพ์ ๋๊น์ง x๋ฅผ S[i - 1], S[i - 2] ๋ฑ๊ณผ ๋น๊ตํ๋ค. ์ด๋ฐ ์๋ฆฌ์ ์ธ๋ฑ์ค๋ฅผ j๋ก ๋์. 3. S[j + 1] ~ S[i - 1]์ ๊ฐ์ S[j + 2] ~ S[i]๋ก ์ด๋ํ๊ณ (j + 1)๋ฒ์งธ ์๋ฆฌ์ x๋ฅผ ์ฝ์ ํ๋ค. 4. ์ด ๊ณผ์ ์ i = 2์์ i = n๊น์ง ๋ฐ๋ณตํ๋ค. public static void insertionSort(int n, keyType[]S){ index i,j; keyType x; for(i = 2; i 0 && S[j] > x){ S[j + 1] = S[j..

Branch and Bound - Backtraking๊ณผ ๊ฐ์ด state-space tree๋ฅผ ์ฌ์ฉํ๋ค. - ํธ๋ฆฌ๋ฅผ ํ์ํ๋ ๋ฐฉ์์ ์ ํ์ ๋์ง ์๋๋ค. - ์ค์ง ์ต์ ํ ๋ฌธ์ ์๋ง ์ฌ์ฉ๋๋ค. BFS์ Best-First Search๋ฅผ ์ฌ์ฉํด์ ํ์์ ์งํํ๋๋ฐ ์ด๋ฒ ํฌ์คํ ์์๋ Best-First Search๋ก 0-1 Knapsack Problem์ ํด๊ฒฐํ๋ ๋ฐฉ์์ ๋ํด ์์ฑํ๋๋ก ํ๊ฒ ์ต๋๋ค. 0-1 Knapsack Problem using Best-First Search Basic Idea - ๋ ธ๋๊ฐ promisingํ์ง๋ก ๊ฒฐ์ ํ๊ธฐ๋ณด๋ค๋ bound๋ฅผ ์ฌ์ฉํด์ ๋ค์์ผ๋ก ํ์ฅํ ๋ ธ๋๋ฅผ ์ ํ - ๋ ธ๋์ bound๋ก ์ฐ์ ์์๊ฐ ์ ํด์ง๋ priority queue๋ฅผ ์ฌ์ฉ 1. item์ ๋ชจ๋ ๋ฃ์ง ์์์ ๋, b..

Backtracking ํด๋ฅผ ์ฐพ๋ ๋์ค ๋งํ๋ฉด ์ด์ ๋จ๊ณ๋ก ๋์๊ฐ์ ํด๋ฅผ ์ฐพ์๊ฐ๋ ๊ธฐ๋ฒ Backtracking์ ์ฌ์ฉํ๋ 3๊ฐ์ง ์์๋ฅผ ๋ณด์. 1. N-queens problem - N x N ํฌ๊ธฐ์ ์ฒด์ค๋ณด๋ํ์ N๊ฐ์ ํธ๋ค์ ์๋ก ์ํํ์ง ์๊ฒ ๋ฐฐ์นํ๋ ๋ฌธ์ 4 queens problem์ผ ๋ 16๊ฐ์ ์๋ฆฌ ์ค 4์๋ฆฌ๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ : C(16, 4) = 1820 ๋ ํธ์ด ๊ฐ์ ํ, ์ด ๋๋ ๋๊ฐ์ ์ ์์นํ ์ ์์ผ๋ฏ๋ก ๋ฐฐ์ ํ ์ ์๋ ๊ฒฝ์ฐ : 4 x 4 x 4 x 4 = 256 : iํ j์ด์ ํธ์ด ์์น ์ฒ์ ์์ํ ๋์, ์๋ง ํธ์ด ์์นํ ๋ -> ํ์ ๋ ธ๋์์ ๋ต์ ๋ฐ๊ฒฌํ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก promising , , ์ ํธ๋ค์ด ์์นํ ๋, ๊ฐ์ ์ด์ ์์นํ๋ฏ๋ก ๋ต์ด ๋ ์ ์์ผ๋ฏ๋ก nonpromisi..

Greedy Algorithm -๋งค ์๊ฐ ๊ฐ์ฅ ์ข์๋ณด์ด๋ ๊ฒ์ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ General Greedy Approach - ๋น ์งํฉ์ผ๋ก ์์ํ์ฌ ์งํฉ ์ธ์คํด์ค์ ๋ํ ๋ต์ ๋ํ๋ผ ๋๊น์ง ์งํฉ์ ์์ดํ ์ ์์๋๋ก ์ถ๊ฐ ์ ํ ์ ์ฐจ ( = Selection Procedure) ๊ทธ๋ฆฌ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ์งํฉ์ ์ถ๊ฐํ ๋ค์ ์์ดํ ์ ์ ํ ํ๋น์ฑ ํ์ธ ( = Feasibility Check) ์ธ์คํด์ค์ ๋ต์ ์ ๊ณตํ๋ ๋ฐฉ์์ผ๋ก ์งํฉ์ ์๋ฃํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธ ๋ต ํ์ธ ( = Solution Check) ์ ์งํฉ์ด ์ธ์คํด์ค์ ๋ํ ๋ต์ ๊ตฌ์ฑํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ Minimum Spanning Trees ์ ์ Undirected Graph Connected Graph Acyclic Graph Tree Spanning Tree..

Dynamic Programming์ด๋?์ต์ ํ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ์ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ. ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋๊ณ , ์ค๋ณต๋๋ ๋ถ๋ถ ๋ฌธ์ ์ ํด๋ฅผ ์ ์ฅํ์ฌ ์ค๋ณต ๊ณ์ฐ์ ํผํ ์ ์๊ณ , ์์ ๋ถ๋ถ ๋ฌธ์ ์ ํด๋ฅผ ์กฐํฉํ์ฌ ์ ์ฒด ๋ฌธ์ ์ ํด๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ(=Bottom-Up) 4๊ฐ์ง์ ์์๋ฅผ ํตํด Dynamic Programming์ ๋ํด ์์ธํ ์์๋ณด์.1. The Binomial CoefficientC(n, k) = C(n-1, k) + C(n-1, k-1) for 0