SlideShare a Scribd company logo
1 of 32
[ The Art of Computer Programming ] 2.3.4.5 경로 길이 아.꿈.사 Study 2011. 05. 28 김한솔 itsfitsol@gmail.com
목     록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
목     록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
1. 경로 길이 (Path Length) ,[object Object]
특히 이진트리는 실제 컴퓨터 표현과 매우 근접,[object Object]
특히 이진트리는 실제 컴퓨터 표현과 매우 근접Binary Tree Extended Binary Tree NULL
내부 노드n개, 외부 노드(NULL) s개 변의 개수 : n + s – 1 = 2n ∴ s = n + 1 (n = 0 일때도 성립) Extended Binary Tree
외부 경로 길이 : 루트에서 모든 외부 노드 각각 경로 길이의 합 Ex) 아래 그림에서, 외부 경로 길이 E = 3 + 3 + 2 + 3 + 4 + 4 + 3 + 3 = 25 Extended Binary Tree
내부 경로 길이 : 루트에서 모든 내부 노드 각각 경로 길이의 합 Ex) 아래 그림에서, 외부 경로 길이 I = 2 + 1 + 0 +2 + 3 + 1 + 2 = 11 Extended Binary Tree
E = I + 2n (n 은 내부 노드 수) 증명) 경로 길이 k, 자식 노드가 모두 외부 노드, 내부 노드V 삭제, E’ = (E – 2(k + 1)) + k = E – k - 2 I’ = I - k Extended Binary Tree V
Skewed(Degenerated) Tree 는 내부 경로 길이가 가장 크다. I = (n - 1) + (n - 2) + … + 1 + 0 = (n2 – n) / 2 Skewed Binary Tree
모든 이진트리들에 대한 “평균경로 길이” 는 n√n에근본적으로 비례한다.
모든 이진트리들에 대한 “평균경로 길이” 는 n√n에근본적으로 비례한다. ………. 왜 그럴까요?
목     록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
2. 완전 t 진 트리 (Complete t-ary Tree) ,[object Object]
특히 완전 이진 트리는 여러 알고리즘들의 계산         시간을 최소화 함,[object Object]
2. 완전 t 진 트리 (Complete t-ary Tree) ,[object Object]
자식을 t 로 확장하면 완전 t 진 트리 (단, t ≥ 2),[object Object]
위의 식을 일반화 시켜서 완전 t진 트리에 적용되는 식은? 노드k의 부모 :└ (k + t – 2) / t ┘ = ┌(k – 1) / t ┐ 노드k의 자식 : t(k – 1) + 2, t(k – 1) + 3, … , tk+ 1
목     록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
3-1. 가중 경로 길이 (Weighted Path Length) ,[object Object],[object Object]
3-1. 가중 경로 길이 (Weighted Path Length) ,[object Object]
단, 가중치가 모두 1로 같다면 Balanced Tree 가 최소의 가중 경로길이를 갖는다.8+6+9+11 = 34 6+12+33+2 = 53 6+4+8+22 = 40 11 2 4 3 11 4 3 2 3 2 11 4
3-2. 최적 검색 절차 (Optimal Search Procedure) ,[object Object]
대표적으로 D. Huffman 의 우아한(?) 알고리즘.이 트리를 찾는 방법 8+6+9+11 = 34 6+12+33+2 = 53 6+4+8+22 = 40 11 2 4 3 11 4 3 2 3 2 11 4
D. Hoffman 알고리즘 ,[object Object]
 주로 MPEG, JPG 등 영상, 이미지 압축에 많이 쓰인다.
 흔히 쓰는 알집에서도 사용.,[object Object]
D. Hoffman 알고리즘 Step 1. 가중치 리스트를 오름차순으로 정렬한다. List (2, 11, 5, 13, 3, 17, 7) List (2, 3, 5, 7, 11, 13, 17)
D. Hoffman 알고리즘 Step 2. 가중치 리스트에서 가장 작은 두 값을 찾는다. List (2, 3, 5, 7, 11, 13, 17) List (2, 3, 5, 7, 11, 13, 17)
D. Hoffman 알고리즘 Step 3. 작은 두 값을 더한 뒤, 더한 값을 부모 노드로 갖고 작은 두 값을 자식으로 갖는 노드로 치환한다. List (5, 5, 7, 11, 13, 17) 5 3 2
D. Hoffman 알고리즘 Step 4. 반복 ⁞ ⁞ ⁞ ⁞ ⁞ ⁞

More Related Content

Similar to 110528 taocp 2345

DP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdfDP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdfHo Jeong Im
 
5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)hyun soomyung
 
자료구조 Project5
자료구조 Project5자료구조 Project5
자료구조 Project5KoChungWook
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이NAVER D2
 
Shortest path
Shortest pathShortest path
Shortest pathslah007
 
제7장 비불리언 모델
제7장 비불리언 모델제7장 비불리언 모델
제7장 비불리언 모델Chang-yong Jung
 

Similar to 110528 taocp 2345 (6)

DP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdfDP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdf
 
5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)5장 그래프의 비밀 (Programming Game AI by Example)
5장 그래프의 비밀 (Programming Game AI by Example)
 
자료구조 Project5
자료구조 Project5자료구조 Project5
자료구조 Project5
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
 
Shortest path
Shortest pathShortest path
Shortest path
 
제7장 비불리언 모델
제7장 비불리언 모델제7장 비불리언 모델
제7장 비불리언 모델
 

110528 taocp 2345

  • 1. [ The Art of Computer Programming ] 2.3.4.5 경로 길이 아.꿈.사 Study 2011. 05. 28 김한솔 itsfitsol@gmail.com
  • 2. 록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
  • 3. 록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
  • 4.
  • 5.
  • 6. 특히 이진트리는 실제 컴퓨터 표현과 매우 근접Binary Tree Extended Binary Tree NULL
  • 7. 내부 노드n개, 외부 노드(NULL) s개 변의 개수 : n + s – 1 = 2n ∴ s = n + 1 (n = 0 일때도 성립) Extended Binary Tree
  • 8. 외부 경로 길이 : 루트에서 모든 외부 노드 각각 경로 길이의 합 Ex) 아래 그림에서, 외부 경로 길이 E = 3 + 3 + 2 + 3 + 4 + 4 + 3 + 3 = 25 Extended Binary Tree
  • 9. 내부 경로 길이 : 루트에서 모든 내부 노드 각각 경로 길이의 합 Ex) 아래 그림에서, 외부 경로 길이 I = 2 + 1 + 0 +2 + 3 + 1 + 2 = 11 Extended Binary Tree
  • 10. E = I + 2n (n 은 내부 노드 수) 증명) 경로 길이 k, 자식 노드가 모두 외부 노드, 내부 노드V 삭제, E’ = (E – 2(k + 1)) + k = E – k - 2 I’ = I - k Extended Binary Tree V
  • 11. Skewed(Degenerated) Tree 는 내부 경로 길이가 가장 크다. I = (n - 1) + (n - 2) + … + 1 + 0 = (n2 – n) / 2 Skewed Binary Tree
  • 12. 모든 이진트리들에 대한 “평균경로 길이” 는 n√n에근본적으로 비례한다.
  • 13. 모든 이진트리들에 대한 “평균경로 길이” 는 n√n에근본적으로 비례한다. ………. 왜 그럴까요?
  • 14. 록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. 위의 식을 일반화 시켜서 완전 t진 트리에 적용되는 식은? 노드k의 부모 :└ (k + t – 2) / t ┘ = ┌(k – 1) / t ┐ 노드k의 자식 : t(k – 1) + 2, t(k – 1) + 3, … , tk+ 1
  • 20. 록 경로 길이 (Path Length) 완전 t진 트리 (Complete t-ary Tree) 가중 경로 길이 (Weighted Path Length) 와 최적 검색 절차 (Optimal Search Procedure)
  • 21.
  • 22.
  • 23. 단, 가중치가 모두 1로 같다면 Balanced Tree 가 최소의 가중 경로길이를 갖는다.8+6+9+11 = 34 6+12+33+2 = 53 6+4+8+22 = 40 11 2 4 3 11 4 3 2 3 2 11 4
  • 24.
  • 25. 대표적으로 D. Huffman 의 우아한(?) 알고리즘.이 트리를 찾는 방법 8+6+9+11 = 34 6+12+33+2 = 53 6+4+8+22 = 40 11 2 4 3 11 4 3 2 3 2 11 4
  • 26.
  • 27. 주로 MPEG, JPG 등 영상, 이미지 압축에 많이 쓰인다.
  • 28.
  • 29. D. Hoffman 알고리즘 Step 1. 가중치 리스트를 오름차순으로 정렬한다. List (2, 11, 5, 13, 3, 17, 7) List (2, 3, 5, 7, 11, 13, 17)
  • 30. D. Hoffman 알고리즘 Step 2. 가중치 리스트에서 가장 작은 두 값을 찾는다. List (2, 3, 5, 7, 11, 13, 17) List (2, 3, 5, 7, 11, 13, 17)
  • 31. D. Hoffman 알고리즘 Step 3. 작은 두 값을 더한 뒤, 더한 값을 부모 노드로 갖고 작은 두 값을 자식으로 갖는 노드로 치환한다. List (5, 5, 7, 11, 13, 17) 5 3 2
  • 32. D. Hoffman 알고리즘 Step 4. 반복 ⁞ ⁞ ⁞ ⁞ ⁞ ⁞
  • 33. D. Hoffman 알고리즘 58 24 34 17 17 13 11 10 7 5 5 3 2
  • 34. D. Hoffman 알고리즘 58 24 34 결국 최소값만 찾아서 더해 가장 최소 가중치를 갖는 트리를 구축한다는 소리 17 17 13 11 10 7 5 5 3 2
  • 35. 끝.