알고리즘
Dynamic Programming #1
강원대학교 컴퓨터공학과 최우혁
지난 시간에…
2
지난 시간에…
3
지난 시간에…
4
강의 순서
5
이번 시간에…
6
동적 계획법?
7
어원
동적 계획법?
8
나는 RAND에서 1950년의 가을을 보냈다. 여기에서 내게 주어진 첫 과제는 다단계Multi-stage 의사 결정 프로세스에 대해 적절한 용어를 명명하는 것이었다. '동적 계획법'이라는 이름이 어디에서 왔는지 궁금하지 않은가? 1950년대는 내가 수학에 대해 연구하기에는 좋지 못한 시기였다. 우리는 그 때 워싱턴에서 윌슨이라는 사람과 함께 일하고 있었다. 윌슨은 연구라는 것에 대해 굉장히 병적인 공포를 가지고 있었다. 사람들이 그 앞에서 연구라는 단어를 쓰면 그는 완전히 미치다시피 했다. 그러나 불행히도 RAND는 공군 소속의 회사였고, 윌슨은 그 공군의 간부인 국방 위원장 이었다. 그래서, 나는 윌슨과 공군으로부터 내가 수학을 연구하고 있다는 사실을 숨길 필요가 있었다. 어떤 단어를 선택해야 했을까? 처음에는 Planning. Decision Making, Thinking 등의 단어를 고려했었다. 하지만, 몇 가지 이유로 해당 단어들이 좋은 선택이 아님을 깨달았고, 대신 사람들이 알지 못하게 Programming이라는 단어를 선택했다. 또한 나는 이 방법이 다단계Multi-stage로 이루어져 있고, 시가변적Time-varying이며, 동적Dynamic이라는 개념이 전달되길 원했다. 특히, 동적Dynamic이라는 형용사는 어떤 단어와 조합해도 긍정적인 의미가 있다고 생각했다. 그래서, 동적 계획법Dynamic Programming이 좋은 이름이라고 생각했으며, 내가 하는 연구를 윌슨과 공군으로부터 숨기는 데 사용했다.
- Richard E. Bellman의 자서전, 태풍의 눈Eyes of Hurricane 중
Richard Ernest Bellman, 응용수학자
동적 계획법Dynamic Programming, 벨만 방정식Bellman Equation, 차원의 저주Curse of Dimensionality 등을 제시
어원
동적 계획법?
9
Richard Ernest Bellman, 응용수학자
동적 계획법Dynamic Programming, 벨만 방정식Bellman Equation, 차원의 저주Curse of Dimensionality 등을 제시
특징
동적 계획법?
10
Memoization vs. Tabulation
동적 계획법?
11
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
12
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
13
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
14
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
15
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
16
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
17
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
18
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
19
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
20
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
21
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
22
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
23
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
24
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
25
Memoization vs. Tabulation: 예. 피보나치 수
동적 계획법?
26
Memoization vs. Tabulation: Pros & Cons
동적 계획법?
27
| Memoization | Tabulation |
난이도 및 가독성 | 해결책을 만들기가 상대적으로 쉽고, 코드 또한 간단함 | 해결책을 만들기가 어렵고, 코드 또한 복잡함 |
속도 | 재귀 호출 및 함수 값 반환으로 인하여 상대적으로 느림 | 재귀 호출 없이 반복문만 활용하므로 빠름 |
작은 문제의 해결 | 일부 작은 문제들은 해결할 필요가 없을 때 유용 | 모든 작은 문제들이 최소 한 번 이상은 해결되어야 할 때 유용 |
최적 부분 구조: 예
동적 계획법?
28
최적 부분 구조: 예
동적 계획법?
29
최적 부분 구조Optimal Substructure
동적 계획법?
30
최적 부분 구조: 예
동적 계획법?
31
최적 부분 구조: 예
동적 계획법?
32
최적 부분 구조와 동적 계획법
동적 계획법?
33
분할 정복 vs. 동적 계획법
동적 계획법?
34
코딩 테스트와 동적 계획법
동적 계획법?
35
이항 계수Binomial Coefficient
36
이항 계수?
이항 계수Binomial Coefficient
37
이항 계수?
이항 계수Binomial Coefficient
38
문제 정의
이항 계수Binomial Coefficient
39
재귀 관계식
이항 계수Binomial Coefficient
40
재귀 관계식
이항 계수Binomial Coefficient
41
분할 정복 알고리즘: 의사 코드
이항 계수Binomial Coefficient
42
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
43
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
44
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
45
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
46
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
47
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
48
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
49
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
50
분할 정복 알고리즘: 분석
이항 계수Binomial Coefficient
51
동적 계획법 알고리즘: 아이디어
이항 계수Binomial Coefficient
52
동적 계획법 알고리즘: 의사 코드
이항 계수Binomial Coefficient
53
이항 계수 C(n, k)에서 k ≤ n 이므로,
현재 구하려는 C(i, k)에서 k ≤ i 여야 함
동적 계획법 알고리즘: 분석 - 시간 복잡도
이항 계수Binomial Coefficient
54
동적 계획법 알고리즘: 분석 - 시간 복잡도
이항 계수Binomial Coefficient
55
i의 값 | j의 범위 | 단위 연산 수 |
1 | [0, 1] | 2 |
2 | [0, 2] | 3 |
⋮ | ||
k - 1 | [0, k-1] | k |
k | [0, k] | k + 1 |
k + 1 | [0, k] | k + 1 |
⋮ | ||
n | [0, k] | k + 1 |
동적 계획법 알고리즘: 분석 - 시간 복잡도
이항 계수Binomial Coefficient
56
i의 값 | j의 범위 | 단위 연산 수 |
1 | [0, 1] | 2 |
2 | [0, 2] | 3 |
⋮ | ||
k - 1 | [0, k-1] | k |
k | [0, k] | k + 1 |
k + 1 | [0, k] | k + 1 |
⋮ | ||
n | [0, k] | k + 1 |
동적 계획법 알고리즘: 분석 - 시간 복잡도
이항 계수Binomial Coefficient
57
i의 값 | j의 범위 | 단위 연산 수 |
1 | [0, 1] | 2 |
2 | [0, 2] | 3 |
⋮ | ||
k - 1 | [0, k-1] | k |
k | [0, k] | k + 1 |
k + 1 | [0, k] | k + 1 |
⋮ | ||
n | [0, k] | k + 1 |
동적 계획법 알고리즘: 분석 - 시간 복잡도
이항 계수Binomial Coefficient
58
i의 값 | j의 범위 | 단위 연산 수 |
1 | [0, 1] | 2 |
2 | [0, 2] | 3 |
⋮ | ||
k - 1 | [0, k-1] | k |
k | [0, k] | k + 1 |
k + 1 | [0, k] | k + 1 |
⋮ | ||
n | [0, k] | k + 1 |
동적 계획법 알고리즘: 분석 - 공간 복잡도
이항 계수Binomial Coefficient
59
공간 복잡도의 개선
이항 계수Binomial Coefficient
60
B | j | ||||||
0 | 1 | 2 | 3 | ⋯ | k | ||
i | 1 | 1 | 1 | | | | |
2 | | | | | | | |
3 | | | | | | | |
4 | | | | | | | |
⋮ | | | | | | | |
n | | | | | | |
공간 복잡도의 개선
이항 계수Binomial Coefficient
61
B | j | ||||||
0 | 1 | 2 | 3 | ⋯ | k | ||
i | 1 | 1 | 1 | | | | |
2 | 1 | 2 | | | | | |
3 | | | | | | | |
4 | | | | | | | |
⋮ | | | | | | | |
n | | | | | | |
공간 복잡도의 개선
이항 계수Binomial Coefficient
62
B | j | ||||||
0 | 1 | 2 | 3 | ⋯ | k | ||
i | 1 | 1 | 1 | | | | |
2 | 1 | 2 | 1 | | | | |
3 | 1 | 3 | | | | | |
4 | | | | | | | |
⋮ | | | | | | | |
n | | | | | | |
공간 복잡도의 개선
이항 계수Binomial Coefficient
63
B | j | ||||||
0 | 1 | 2 | 3 | ⋯ | k | ||
i | 1 | 1 | 1 | | | | |
2 | 1 | 2 | 1 | | | | |
3 | 1 | 3 | 3 | | | | |
4 | | | | | | | |
⋮ | | | | | | | |
n | | | | | | |
공간 복잡도의 개선
이항 계수Binomial Coefficient
64
B | j | ||||||
0 | 1 | 2 | 3 | ⋯ | k | ||
i | 1 | 1 | 1 | | | | |
2 | 1 | 2 | 1 | | | | |
3 | 1 | 3 | 3 | 1 | | | |
4 | 1 | 4 | 6 | 4 | 1 | | |
⋮ | | | | | | | |
n | | | | | | |
공간 복잡도의 개선
이항 계수Binomial Coefficient
65
B | j | ||||||
0 | 1 | 2 | 3 | ⋯ | k | ||
i | 1 | 1 | 1 | | | | |
2 | 1 | 2 | 1 | | | | |
3 | 1 | 3 | 3 | 1 | | | |
4 | 1 | 4 | 6 | 4 | 1 | | |
⋮ | | | | | B[n-1][k-1] | B[n-1][k] | |
n | | | | | | B[n][k] |
공간 복잡도의 개선: 아이디어
이항 계수Binomial Coefficient
66
공간 복잡도의 개선: 아이디어
이항 계수Binomial Coefficient
67
공간 복잡도의 개선: 아이디어
이항 계수Binomial Coefficient
68
공간 복잡도의 개선: 의사 코드
이항 계수Binomial Coefficient
69
j의 값을 감소시키면서
이항 계수를 계산
공간 복잡도의 개선: 제언
이항 계수Binomial Coefficient
70
다음 시간에…
71
알고리즘
Dynamic Programming #1
강원대학교 컴퓨터공학과 최우혁
강의 순서
73
지난 시간에…
74
지난 시간에…
75
이번 시간에…
76
최장 길이 부분열Longest Common Subsequence
77
공통 문자열Common Substring
최장 길이 공통 부분열Longest Common Subsequence
78
문자열 A | A | B | C | D | E | F |
문자열 B | G | B | C | D | F | |
공통 부분열Common Subsequence
최장 길이 공통 부분열Longest Common Subsequence
79
문자열 A | A | B | C | D | E | F |
문자열 B | G | B | C | D | F | |
용도
최장 길이 공통 부분열Longest Common Subsequence
80
문제 정의
최장 길이 공통 부분열Longest Common Subsequence
81
무차별 대입Brute-Force 알고리즘
최장 길이 공통 부분열Longest Common Subsequence
82
아이디어
최장 길이 공통 부분열Longest Common Subsequence
83
| 1 | 2 | 3 | 4 | 5 | 6 |
A | A | B | C | D | E | F |
B | G | B | C | D | F | |
| 1 | 2 | 3 | 4 | 5 | 6 |
A | A | B | C | D | E | F |
B | G | B | C | D | F | |
아이디어
최장 길이 공통 부분열Longest Common Subsequence
84
| 1 | 2 | 3 | 4 | 5 | 6 |
A | A | B | C | D | E | F |
B | G | F | B | C | D | |
| 1 | 2 | 3 | 4 | 5 | 6 |
A | A | B | C | D | E | F |
B | G | F | B | C | D | |
| 1 | 2 | 3 | 4 | 5 | 6 |
A | A | B | C | D | E | F |
B | G | F | B | C | D | |
아이디어
최장 길이 공통 부분열Longest Common Subsequence
85
아이디어
최장 길이 공통 부분열Longest Common Subsequence
86
재귀 관계식
최장 길이 공통 부분열Longest Common Subsequence
87
재귀 관계식
최장 길이 공통 부분열Longest Common Subsequence
88
재귀 관계식
최장 길이 공통 부분열Longest Common Subsequence
89
재귀 관계식
최장 길이 공통 부분열Longest Common Subsequence
90
의사 코드
최장 길이 공통 부분열Longest Common Subsequence
91
의사 코드: 예.
최장 길이 공통 부분열Longest Common Subsequence
92
L | B | |||||||
0 | 1 | 2 | 3 | 4 | 5 | |||
- | G | B | C | D | F | |||
A | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | A | | | | | | | |
2 | B | | | | | | | |
3 | C | | | | | | | |
4 | D | | | | | | | |
5 | E | | | | | | | |
6 | F | | | | | | |
의사 코드: 예.
최장 길이 공통 부분열Longest Common Subsequence
93
L | B | |||||||
0 | 1 | 2 | 3 | 4 | 5 | |||
- | G | B | C | D | F | |||
A | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | A | 0 | 0 | 0 | 0 | 0 | 0 | |
2 | B | 0 | 0 | 1 | | | | |
3 | C | | | | | | | |
4 | D | | | | | | | |
5 | E | | | | | | | |
6 | F | | | | | | |
의사 코드: 예.
최장 길이 공통 부분열Longest Common Subsequence
94
L | B | |||||||
0 | 1 | 2 | 3 | 4 | 5 | |||
- | G | B | C | D | F | |||
A | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | A | 0 | 0 | 0 | 0 | 0 | 0 | |
2 | B | 0 | 0 | 1 | 1 | | | |
3 | C | | | | | | | |
4 | D | | | | | | | |
5 | E | | | | | | | |
6 | F | | | | | | |
의사 코드: 예.
최장 길이 공통 부분열Longest Common Subsequence
95
L | B | |||||||
0 | 1 | 2 | 3 | 4 | 5 | |||
- | G | B | C | D | F | |||
A | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | A | 0 | 0 | 0 | 0 | 0 | 0 | |
2 | B | 0 | 0 | 1 | 1 | 1 | 1 | |
3 | C | 0 | 0 | 1 | 2 | 2 | 2 | |
4 | D | 0 | 0 | 1 | 2 | 3 | | |
5 | E | | | | | | | |
6 | F | | | | | | |
의사 코드: 예.
최장 길이 공통 부분열Longest Common Subsequence
96
L | B | |||||||
0 | 1 | 2 | 3 | 4 | 5 | |||
- | G | B | C | D | F | |||
A | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | A | 0 | 0 | 0 | 0 | 0 | 0 | |
2 | B | 0 | 0 | 1 | 1 | 1 | 1 | |
3 | C | 0 | 0 | 1 | 2 | 2 | 2 | |
4 | D | 0 | 0 | 1 | 2 | 3 | 3 | |
5 | E | | | | | | | |
6 | F | | | | | | |
의사 코드: 예.
최장 길이 공통 부분열Longest Common Subsequence
97
L | B | |||||||
0 | 1 | 2 | 3 | 4 | 5 | |||
- | G | B | C | D | F | |||
A | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | A | 0 | 0 | 0 | 0 | 0 | 0 | |
2 | B | 0 | 0 | 1 | 1 | 1 | 1 | |
3 | C | 0 | 0 | 1 | 2 | 2 | 2 | |
4 | D | 0 | 0 | 1 | 2 | 3 | 3 | |
5 | E | 0 | 0 | 1 | 2 | 3 | 3 | |
6 | F | 0 | 0 | 1 | 2 | 3 | 4 |
분석: 시간 복잡도
최장 길이 공통 부분열Longest Common Subsequence
98
분석: 시간 복잡도
최장 길이 공통 부분열Longest Common Subsequence
99
분석: 공간 복잡도
최장 길이 공통 부분열Longest Common Subsequence
100
공간 복잡도의 개선
최장 길이 공통 부분열Longest Common Subsequence
101
공간 복잡도의 개선
최장 길이 공통 부분열Longest Common Subsequence
102
공간 복잡도의 개선: 의사 코드
최장 길이 공통 부분열Longest Common Subsequence
103
연쇄 행렬 곱셈Matrix-Chain Multiplication
104
행렬 곱셈의 원소 단위 곱셈 횟수
연쇄 행렬 곱셈Matrix-Chain Multiplication
105
행렬 곱셈의 원소 단위 곱셈 횟수
연쇄 행렬 곱셈Matrix-Chain Multiplication
106
세 개 이상의 행렬 곱셈
연쇄 행렬 곱셈Matrix-Chain Multiplication
107
세 개 이상의 행렬 곱셈
연쇄 행렬 곱셈Matrix-Chain Multiplication
108
문제 정의
연쇄 행렬 곱셈Matrix-Chain Multiplication
109
무차별 대입Brute-force 알고리즘
연쇄 행렬 곱셈Matrix-Chain Multiplication
110
무차별 대입Brute-force 알고리즘
연쇄 행렬 곱셈Matrix-Chain Multiplication
111
아이디어
연쇄 행렬 곱셈Matrix-Chain Multiplication
112
아이디어
연쇄 행렬 곱셈Matrix-Chain Multiplication
113
A2A3A4를
곱하는
최적의 순서
아이디어
연쇄 행렬 곱셈Matrix-Chain Multiplication
114
아이디어
연쇄 행렬 곱셈Matrix-Chain Multiplication
115
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
116
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
117
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
118
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
119
두 부분으로 나누는 경우들 중 최소의 원소 단위 곱셈 횟수를 찾아야 함
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
120
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
121
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
122
재귀 관계식
연쇄 행렬 곱셈Matrix-Chain Multiplication
123
의사 코드
연쇄 행렬 곱셈Matrix-Chain Multiplication
124
하나의 행렬을 곱하는
횟수는 없으므로 0으로 초기화
연쇄 행렬 곱셈의 길이: l + 1
연쇄 행렬 곱셈의 시작 위치: i
연쇄 행렬 곱셈의 종료 위치: j
Ai⋯Aj개의 행렬을 두 부분으로 나누는 모든 방법에 대해, 최소 원소 단위 곱셈 횟수를 구함
의사 코드: 예. 초기 상태
연쇄 행렬 곱셈Matrix-Chain Multiplication
125
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | | | | |
2 | | 0 | | | | |
3 | | | 0 | | | |
4 | | | | 0 | | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 1
연쇄 행렬 곱셈Matrix-Chain Multiplication
126
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | | | |
2 | | 0 | | | | |
3 | | | 0 | | | |
4 | | | | 0 | | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 1
연쇄 행렬 곱셈Matrix-Chain Multiplication
127
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | | | |
2 | | 0 | 24 | | | |
3 | | | 0 | | | |
4 | | | | 0 | | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 1
연쇄 행렬 곱셈Matrix-Chain Multiplication
128
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | | | |
2 | | 0 | 24 | | | |
3 | | | 0 | 72 | | |
4 | | | | 0 | 168 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 2
연쇄 행렬 곱셈Matrix-Chain Multiplication
129
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | 64 | | |
2 | | 0 | 24 | | | |
3 | | | 0 | 72 | | |
4 | | | | 0 | 168 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 2
연쇄 행렬 곱셈Matrix-Chain Multiplication
130
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | 64 | | |
2 | | 0 | 24 | 72 | | |
3 | | | 0 | 72 | | |
4 | | | | 0 | 168 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 2
연쇄 행렬 곱셈Matrix-Chain Multiplication
131
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | 64 | | |
2 | | 0 | 24 | 72 | | |
3 | | | 0 | 72 | 198 | |
4 | | | | 0 | 168 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 3
연쇄 행렬 곱셈Matrix-Chain Multiplication
132
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | 64 | 132 | |
2 | | 0 | 24 | 72 | | |
3 | | | 0 | 72 | 198 | |
4 | | | | 0 | 168 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
의사 코드: 예. l = 4
연쇄 행렬 곱셈Matrix-Chain Multiplication
133
M | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 30 | 64 | 132 | 226 |
2 | | 0 | 24 | 72 | 156 | |
3 | | | 0 | 72 | 198 | |
4 | | | | 0 | 168 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
분석
연쇄 행렬 곱셈Matrix-Chain Multiplication
134
분석
연쇄 행렬 곱셈Matrix-Chain Multiplication
135
분석
연쇄 행렬 곱셈Matrix-Chain Multiplication
136
분석
연쇄 행렬 곱셈Matrix-Chain Multiplication
137
분석
연쇄 행렬 곱셈Matrix-Chain Multiplication
138
최적의 곱셈 순서: 아이디어
연쇄 행렬 곱셈Matrix-Chain Multiplication
139
최적의 곱셈 순서: 예. l = 1
연쇄 행렬 곱셈Matrix-Chain Multiplication
140
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | | | |
2 | | 0 | 2 | | | |
3 | | | 0 | 3 | | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. l = 2
연쇄 행렬 곱셈Matrix-Chain Multiplication
141
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | | |
2 | | 0 | 2 | | | |
3 | | | 0 | 3 | | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. l = 2
연쇄 행렬 곱셈Matrix-Chain Multiplication
142
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | | |
2 | | 0 | 2 | 3 | | |
3 | | | 0 | 3 | | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. l = 3
연쇄 행렬 곱셈Matrix-Chain Multiplication
143
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | |
2 | | 0 | 2 | 3 | | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. l = 4
연쇄 행렬 곱셈Matrix-Chain Multiplication
144
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | 1 |
2 | | 0 | 2 | 3 | 4 | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. 출력
연쇄 행렬 곱셈Matrix-Chain Multiplication
145
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | 1 |
2 | | 0 | 2 | 3 | 4 | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. 출력
연쇄 행렬 곱셈Matrix-Chain Multiplication
146
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | 1 |
2 | | 0 | 2 | 3 | 4 | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. 출력
연쇄 행렬 곱셈Matrix-Chain Multiplication
147
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | 1 |
2 | | 0 | 2 | 3 | 4 | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. 출력
연쇄 행렬 곱셈Matrix-Chain Multiplication
148
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | 1 |
2 | | 0 | 2 | 3 | 4 | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 예. 출력
연쇄 행렬 곱셈Matrix-Chain Multiplication
149
P | j | |||||
1 | 2 | 3 | 4 | 5 | ||
i | 1 | 0 | 1 | 1 | 1 | 1 |
2 | | 0 | 2 | 3 | 4 | |
3 | | | 0 | 3 | 4 | |
4 | | | | 0 | 4 | |
5 | | | | | 0 |
D | 0 | 1 | 2 | 3 | 4 | 5 |
5 | 2 | 3 | 4 | 6 | 7 |
최적의 곱셈 순서: 의사 코드
연쇄 행렬 곱셈Matrix-Chain Multiplication
150
다음 시간에…
151