보강 4-2. 미지수와 기준을 만들기 Translating the World, Part 2 — 없던 것을 발명하는 두 가지 방식
앞 편에서는 미지수가 상황에 이미 이름을 갖고 있었다. 총산출, 가격, 할인계수,
재고 — 전부 누군가 이미 부르던 것이다. 사다리 첫째 칸이 어렵지 않았다.
이번 편은 다르다. 두 가지를 우리가 직접 만들어야 한다.
3막 에서는 없던 미지수를 발명한다. 부등호를 등호로 바꾸려면 이름 없는 양에
이름을 붙여야 하고, 아직 모르는 결과값 자체를 미지수 자리에 올려야 할 때가 있다.
4막 에서는 무엇을 최소로 할지 정한다. 답이 하나로 정해지지 않을 때
선형대수는 "여럿이다"까지만 말한다. 그중 하나를 고르는 것은 사람의 결정 이다.
앞 편의 도구를 그대로 쓴다. 여섯 상자 와 번역 사다리 다.
다만 이번에는 사다리 첫째 칸과 넷째 칸 에서 자주 막힌다.
3막 · 미지수를 만든다 ¶ 이 막에서 다섯 가지 발명 수법이 손에 남는다.
부등호를 등호로 바꾸는 여유변수 — 남는 양에 이름을 붙인다
아직 모르는 결과값을 미지수에 편입 — 게임의 값을 몰라도 계에 넣는다
쌍대 변수 — 제약 하나에 값을 하나씩 붙인다
노드마다 숫자 하나 — 간선을 다 세지 않고 최선임을 확인한다
배율을 미지수로 — 표 자체를 고치는 대신 행과 열의 배율을 찾는다
25. 아직 모르는 그 값을 미지수 자리에 올린다 ★★☆
세관이 인천과 부산 두 항구에 인력을 나눠 배치한다. 밀수업자도 두 항구 중 하나를
고른다. 세관이 인천에 집중했을 때 밀수업자가 인천으로 오면 연 4억원을 회수하고,
부산으로 가면 1억원을 회수한다. 세관이 부산에 집중했을 때는 각각 2억원과 3억원이다.
밀수업자는 세관 배치를 알아내려 애쓰고, 세관은 그걸 알면서 배치한다.
어느 한쪽으로 몰면 상대가 반대로 가 버린다.
담당관이 묻는다. “1년 365일을 두 항구에 어떻게 나눠야 합니까.”
그런데 그렇게 나눴을 때 연평균 얼마를 회수하게 되는지도 아직 모른다.
세우기 모르는 것이 둘이다. 배치 비율과, 그 결과 얻게 될 회수액.
둘째 것을 나중에 계산하려 하지 말고, 지금 미지수 자리에 같이 올려 보라.
사다리 이 문제에서 ① 세로로 세울 것 배치 비율 x 1 , x 2 x_1, x_2 x 1 , x 2 그리고 연평균 회수액 v v v , 셋 ② 이미 아는 수 ( 0 , 0 , 1 ) (0, 0, 1) ( 0 , 0 , 1 ) — 앞 둘은 “같아야 한다”, 마지막은 “합이 1”③ 규칙 한 줄 밀수업자의 선택 하나마다 한 줄, 그리고 합이 1. 셋 다 독립 ④ 어느 상자 상자 1 ⑤ 선대가 답하지 않는 것 두 순수전략이 정말 둘 다 쓰이는지 . 아니면 해에 음수가 나온다
먼저 확인할 것이 있다. 회수액 표를 놓고
A = [ 4 1 2 3 ] A = \begin{bmatrix}4&1\\2&3\end{bmatrix} A = [ 4 2 1 3 ] (1) 에서 각 행의 최소는 ( 1 , 2 ) (1, 2) ( 1 , 2 ) 라 그 최대가 2 이고, 각 열의 최대는
( 4 , 3 ) (4, 3) ( 4 , 3 ) 이라 그 최소가 3 이다. 둘이 다르므로 안장점이 없다.
곧 어느 한 항구에 몰빵하는 답은 없고 섞어야 한다.
세관이 비율 x \vv{x} x 로 섞으면, 밀수업자가 어느 쪽으로 오든 세관의 기대 회수액이
같아야 한다. 그렇지 않으면 밀수업자가 작은 쪽으로만 갈 것이기 때문이다.
4 x 1 + 2 x 2 = v , x 1 + 3 x 2 = v , x 1 + x 2 = 1 4x_1 + 2x_2 = v,
\qquad
x_1 + 3x_2 = v,
\qquad
x_1 + x_2 = 1 4 x 1 + 2 x 2 = v , x 1 + 3 x 2 = v , x 1 + x 2 = 1 (2) 의 세 줄에는 미지수가 셋(x 1 , x 2 , v x_1, x_2, v x 1 , x 2 , v ) 있다. v v v 를 왼쪽으로
넘기면 그냥 정방계다.
[ 4 2 − 1 1 3 − 1 1 1 0 ] [ x 1 x 2 v ] = [ 0 0 1 ] \begin{bmatrix}4&2&-1\\1&3&-1\\1&1&0\end{bmatrix}
\begin{bmatrix}x_1\\x_2\\v\end{bmatrix}
= \begin{bmatrix}0\\0\\1\end{bmatrix} ⎣ ⎡ 4 1 1 2 3 1 − 1 − 1 0 ⎦ ⎤ ⎣ ⎡ x 1 x 2 v ⎦ ⎤ = ⎣ ⎡ 0 0 1 ⎦ ⎤ (3) 의 행렬식은 4 라 가역이다. 풀면
x = ( 1 4 , 3 4 ) , v = 5 2 \vv{x} = \left(\tfrac14,\ \tfrac34\right),
\qquad
v = \tfrac52 x = ( 4 1 , 4 3 ) , v = 2 5 이다. 인천에 약 91일, 부산에 약 274일 이고 연평균 2.5억원을 회수한다.
검산. 밀수업자가 인천을 고르면 1 4 ( 4 ) + 3 4 ( 2 ) = 1 + 3 2 = 5 2 \frac14(4) + \frac34(2) = 1 + \frac32 = \frac52 4 1 ( 4 ) + 4 3 ( 2 ) = 1 + 2 3 = 2 5 ,
부산을 고르면 1 4 ( 1 ) + 3 4 ( 3 ) = 1 4 + 9 4 = 5 2 \frac14(1) + \frac34(3) = \frac14 + \frac94 = \frac52 4 1 ( 1 ) + 4 3 ( 3 ) = 4 1 + 4 9 = 2 5 로 같다.
어느 쪽으로 와도 같으니 밀수업자에게 유리한 선택이 없다.
밀수업자 쪽도 같은 방법으로 풀린다. 계수행렬만 전치하면
[ 4 1 − 1 2 3 − 1 1 1 0 ] y = [ 0 0 1 ] ⟹ y = ( 1 2 , 1 2 ) \begin{bmatrix}4&1&-1\\2&3&-1\\1&1&0\end{bmatrix}\vv{y} = \begin{bmatrix}0\\0\\1\end{bmatrix}
\qquad\Longrightarrow\qquad
\vv{y} = \left(\tfrac12,\ \tfrac12\right) ⎣ ⎡ 4 2 1 1 3 1 − 1 − 1 0 ⎦ ⎤ y = ⎣ ⎡ 0 0 1 ⎦ ⎤ ⟹ y = ( 2 1 , 2 1 ) 이고 (5) 의 값도 v = 5 2 v = \frac52 v = 2 5 로 같다. 두 사람이 서로 다른 계를 푸는데
답의 셋째 성분이 같다. 그것이 게임의 값이다.
빠지기 쉬운 곳 — 이 수법은 두 순수전략이 모두 양의 확률로 쓰인다 는 가정
아래에서만 성립한다. 지지집합이 더 작으면 해에 음수가 나오고, 그때는 선형계가 아니라
선형계획을 풀어야 한다. 그래서 안장점이 없다는 것을 먼저 확인한 것이다.
회수 : L03 역행렬 · L05 전치 · L20 크래머
26. 부등호를 등호로 바꾸려면 무엇에 이름을 붙여야 하는가 ★★☆
유리 새시 공장에 작업장이 셋 있다. 제품 1은 1공장에서만 시간을 쓰고, 제품 2는
2공장에서만 쓰고, 3공장은 둘 다 쓴다.
하루 가용 시간은 1공장 4시간, 2공장 12시간, 3공장 18시간이다. 제품 1은 1공장에서
1시간, 3공장에서 3시간을 쓴다. 제품 2는 2공장에서 2시간, 3공장에서 2시간을 쓴다.
이익은 제품 1이 대당 3만원, 제품 2가 5만원이다.
계획 담당자가 말한다. “지금 적어 놓은 조건은 전부 넘지 않는다는 조건 이라
딱 맞아떨어지는 줄이 하나도 없습니다. 이래서는 아무것도 못 풀겠는데요.”
세우기 담당자 말이 맞다. 지금은 등식이 하나도 없다.
무엇에 이름을 붙이면 등식이 되는가.
사다리 이 문제에서 ① 세로로 세울 것 생산량 둘 그리고 공장마다 노는 시간 셋 , 합쳐 다섯 ② 이미 아는 수 가용 시간 ( 4 , 12 , 18 ) (4, 12, 18) ( 4 , 12 , 18 ) ③ 규칙 한 줄 공장 하나의 시간 수지, 세 줄이고 셋 다 독립 ④ 어느 상자 상자 2 (줄보다 미지수가 많다) ⑤ 선대가 답하지 않는 것 x ≥ 0 \vv{x} \ge \vv{0} x ≥ 0 이라는 조건. 그것을 넣는 순간 선형계획이다
노는 시간에 이름을 붙인다. 공장 i i i 가 쉬는 시간을 s i s_i s i 라 하면 부등식이 등식이 된다.
x 1 + s 1 = 4 , 2 x 2 + s 2 = 12 , 3 x 1 + 2 x 2 + s 3 = 18 x_1 + s_1 = 4,
\qquad
2x_2 + s_2 = 12,
\qquad
3x_1 + 2x_2 + s_3 = 18 x 1 + s 1 = 4 , 2 x 2 + s 2 = 12 , 3 x 1 + 2 x 2 + s 3 = 18 (6) 의 세 줄을 쌓으면 이렇게 된다.
A x = b , A = [ 1 0 1 0 0 0 2 0 1 0 3 2 0 0 1 ] , b = ( 4 , 12 , 18 ) A\vv{x} = \vv{b},
\qquad
A = \begin{bmatrix}1&0&1&0&0\\0&2&0&1&0\\3&2&0&0&1\end{bmatrix},
\qquad
\vv{b} = (4,\ 12,\ 18) A x = b , A = ⎣ ⎡ 1 0 3 0 2 2 1 0 0 0 1 0 0 0 1 ⎦ ⎤ , b = ( 4 , 12 , 18 ) (7) 의 계는 줄 3개에 미지수 5개 다. L07의 계산 그대로 자유변수가
5 − 3 = 2 5 - 3 = 2 5 − 3 = 2 개다. 답이 무수히 많다.
그런데 여기서 L07이 준 것이 하나 더 있다. 다섯 열 중 셋을 골라 피벗 열로 삼고
나머지 둘을 0으로 두면 3 × 3 3\times3 3 × 3 계가 남는다. 고르는 방법이
( 5 3 ) = 10 \binom{5}{3} = 10 ( 3 5 ) = 10 가지다. (8) 중 두 가지는 고른 세 열이 종속이라 못 푼다.
남은 8가지가 기저해 다.
여기가 이 문제의 핵심이다. 기저해 하나가 그림에서 꼭짓점 하나다.
L07에서 "피벗 열을 고른다"는 것이 대수적 조작이었는데, 여기서는
실행가능 영역의 모서리를 고르는 일 이다. 같은 이야기다.
세 열을 골랐다면 남은 두 미지수는 0이고, 고른 세 열이 만드는 3 × 3 3\times3 3 × 3 계를 푼다.
B x B = b , B = A [ : , S ] , ∣ S ∣ = 3 B\,\vv{x}_B = \vv{b},
\qquad
B = A[:,\,S],
\qquad
\lvert S \rvert = 3 B x B = b , B = A [ : , S ] , ∣ S ∣ = 3 (9) 에서 det B ≠ 0 \det B \neq 0 det B = 0 이면 답이 하나 나온다. 열 a 1 \vv{a}_1 a 1 과
a 2 \vv{a}_2 a 2 를 함께 고르면서 여유변수를 하나만 남기는 두 경우가 종속이라 못 푼다.
여덟 기저해 중 성분이 전부 0 이상인 것이 다섯이다. 그 다섯이 꼭짓점이다.
꼭짓점 ( x 1 , x 2 ) (x_1, x_2) ( x 1 , x 2 ) 이익 z z z 원점 ( 0 , 0 ) (0, 0) ( 0 , 0 ) 0 ( 4 , 0 ) (4, 0) ( 4 , 0 ) 12 ( 4 , 3 ) (4, 3) ( 4 , 3 ) 27 ( 0 , 6 ) (0, 6) ( 0 , 6 ) 30 최적 ( 2 , 6 ) (2, 6) ( 2 , 6 ) 36 \mathbf{36} 36
나머지 셋은 각각 s 3 = − 6 s_3 = -6 s 3 = − 6 , s 1 = − 2 s_1 = -2 s 1 = − 2 , s 2 = − 6 s_2 = -6 s 2 = − 6 로 노는 시간이 음수 다.
그런 공장은 없다.
Figure 1: 왼쪽에서 점이 실행가능한 꼭짓점 다섯, 십자가 셋이 노는 시간이 음수로 나온 기저해다.
꼭짓점을 세는 일과 피벗 열을 고르는 일이 같은 일이다.
한걸음 더 — 이익이 최대인 곳이 왜 하필 꼭짓점인가. 목적함수가 선형이므로
같은 이익을 주는 점들이 직선을 이루고, 그 직선을 평행이동하면 영역을 벗어나기
직전에 반드시 꼭짓점에 닿는다. 그래서 꼭짓점만 세면 된다. 여기서는 다섯 개뿐이다.
빠지기 쉬운 곳 — x ≥ 0 \vv{x} \ge \vv{0} x ≥ 0 은 선형계가 아니다. 이 책은 여덟 개의
기저해를 전부 구한 뒤 부호를 눈으로 확인 했다. 실제 선형계획법은 그렇게 하지 않고
꼭짓점을 하나씩 옮겨 다닌다. 그 옮겨 다니는 일이 무엇인지가 다음 문제다.
회수 : L06 열공간 · L07 피벗과 자유변수 · L08 완전해 · L09 독립
27. 계획을 고칠 때마다 처음부터 다시 푸는가 ★★★
상황 의 공장을 그대로 쓴다. 계획 담당자가 시스템 개발자에게 항의한다.
“조건을 하나 바꿀 때마다 프로그램이 30초씩 걸립니다. 하루에 스무 번씩 고치는데
매번 처음부터 다시 푸는 것 같아요. 어제 푼 결과를 좀 쓸 수 없나요.”
개발자가 답한다. “쓰고 있습니다. 다만 저장하는 게 뭔지 설명하기가 좀 어렵네요.”
세우기 꼭짓점 하나에서 이웃 꼭짓점으로 옮길 때, 고른 세 열 중 하나만 바뀐다.
열 하나가 바뀌면 역행렬은 얼마나 바뀌는가.
사다리 이 문제에서 ① 세로로 세울 것 이번엔 벡터가 아니라 행렬 — 소거행렬 E E E ② 이미 아는 수 들어올 열 a s \vv{a}_s a s 와 나갈 자리 r r r ③ 규칙 한 줄 E a s = e r E\vv{a}_s = \vv{e}_r E a s = e r 이어야 한다④ 어느 상자 상자 1 ⑤ 선대가 답하지 않는 것 어느 열을 넣을지 고르는 규칙. 그건 최적화의 몫이다
기저 B B B 에서 열 하나만 바꿔 B ′ B' B ′ 이 될 때
( B ′ ) − 1 = E B − 1 (B')^{-1} = E\,B^{-1} ( B ′ ) − 1 = E B − 1 이고, (10) 의 E E E 는 단위행렬에서 한 열만 바뀐 것 이다.
축 원소를 a r s a_{rs} a rs 라 하면 E E E 의 r r r 번째 열이
( − a 1 s a r s , … , 1 a r s , … , − a m s a r s ) \left(-\frac{a_{1s}}{a_{rs}},\ \dots,\ \frac{1}{a_{rs}},\ \dots,\ -\frac{a_{ms}}{a_{rs}}\right) ( − a rs a 1 s , … , a rs 1 , … , − a rs a m s ) 이다. (11) 의 꼴이 L02의 소거행렬 그대로다. 한 열을 e r \vv{e}_r e r 로 만드는 일 이니
당연하다.
실제로 해 보자. 출발 기저는 여유변수 셋이라 B = I B = I B = I 다.
첫 걸음 — 제품 2를 넣는다. 그 열이 a 2 = ( 0 , 2 , 2 ) \vv{a}_2 = (0, 2, 2) a 2 = ( 0 , 2 , 2 ) 이고
b = ( 4 , 12 , 18 ) \vv{b} = (4, 12, 18) b = ( 4 , 12 , 18 ) 이므로, 어느 줄이 먼저 바닥나는지 비율로 본다.
12 2 = 6 ( 2행 ) , 18 2 = 9 ( 3행 ) ⟹ 2행이 축, 축 원소 2 \frac{12}{2} = 6\ (\text{2행}),
\qquad
\frac{18}{2} = 9\ (\text{3행})
\qquad\Longrightarrow\qquad
\text{2행이 축, 축 원소 } 2 2 12 = 6 ( 2 행 ) , 2 18 = 9 ( 3 행 ) ⟹ 2 행이 축 , 축 원소 2 (12) 에서 2행을 골랐으니 (11) 에 넣으면
E 1 = [ 1 0 0 0 1 2 0 0 − 1 1 ] , E 1 a 2 = ( 0 , 1 , 0 ) E_1 = \begin{bmatrix}1&0&0\\0&\tfrac12&0\\0&-1&1\end{bmatrix},
\qquad
E_1\vv{a}_2 = (0,\ 1,\ 0) E 1 = ⎣ ⎡ 1 0 0 0 2 1 − 1 0 0 1 ⎦ ⎤ , E 1 a 2 = ( 0 , 1 , 0 ) 이다. (13) 의 확인처럼 열이 정확히 e 2 \vv{e}_2 e 2 가 됐다.
둘째 걸음 — 제품 1을 넣는다. 같은 식으로
E 2 = [ 1 0 − 1 3 0 1 0 0 0 1 3 ] E_2 = \begin{bmatrix}1&0&-\tfrac13\\0&1&0\\0&0&\tfrac13\end{bmatrix} E 2 = ⎣ ⎡ 1 0 0 0 1 0 − 3 1 0 3 1 ⎦ ⎤ 가 나온다. (14) 까지 곱하면 최종 역행렬이다.
B − 1 = E 2 E 1 = [ 1 1 3 − 1 3 0 1 2 0 0 − 1 3 1 3 ] ⟹ x B = B − 1 b = ( 2 , 6 , 2 ) B^{-1} = E_2E_1 = \begin{bmatrix}
1 & \tfrac13 & -\tfrac13\\
0 & \tfrac12 & 0\\
0 & -\tfrac13 & \tfrac13
\end{bmatrix}
\qquad\Longrightarrow\qquad
\vv{x}_B = B^{-1}\vv{b} = (2,\ 6,\ 2) B − 1 = E 2 E 1 = ⎣ ⎡ 1 0 0 3 1 2 1 − 3 1 − 3 1 0 3 1 ⎦ ⎤ ⟹ x B = B − 1 b = ( 2 , 6 , 2 ) (15) 에서 기저가 ( s 1 , x 2 , x 1 ) (s_1, x_2, x_1) ( s 1 , x 2 , x 1 ) 이므로 s 1 = 2 s_1 = 2 s 1 = 2 , x 2 = 6 x_2 = 6 x 2 = 6 , x 1 = 2 x_1 = 2 x 1 = 2 다.
최적 꼭짓점 ( 2 , 6 ) (2, 6) ( 2 , 6 ) , 이익 36만원 으로 상황 의 답과 같다.
Figure 2: 세 꼭짓점을 지나며 이익이 0 → 30 → 36 0 \to 30 \to 36 0 → 30 → 36 으로 오른다. 저장한 것은 역행렬 아홉 칸이
아니라 소거행렬마다 바뀐 열 하나씩 이다.
개발자가 설명하기 어려웠던 것이 이것이다. 저장하는 것은 B − 1 B^{-1} B − 1 전체가 아니라
E E E 들의 목록 이고, E E E 하나는 숫자 세 개면 적힌다. 아홉 칸이 아니라 세 칸이다.
한걸음 더 — 걸음을 많이 걸으면 E E E 가 쌓여 곱셈이 늘고 반올림 오차도 쌓인다.
그래서 실무에서는 주기적으로 B B B 를 다시 분해한다. 보강 2가 말한 대로
빠른 갱신과 안정성이 맞바꿈 관계 다.
회수 : L02 소거행렬 · L03 역행렬 · L04 분해를 다시 하는 값 · L07 기저 교환
28. 잔업 한 시간에 얼마까지 쳐줄 것인가 ★★★
상황 의 공장이 최적으로 돌아가고 있다. 노무 담당자가 묻는다.
“2공장 사람들이 한 시간 잔업을 하겠다고 합니다. 시급을 얼마까지 쳐주면 남는 장사입니까.”
계획 담당자가 답한다. “다시 풀어 보면 알겠죠.” 그런데 세 공장 각각에 대해,
그리고 시간을 한 시간씩 늘려 가며 물으면 매번 다시 풀어야 하는가.
세우기 새로운 미지수를 만든다. 공장마다 "시간 한 단위의 값"을 붙여 보라.
그 값들이 만족해야 할 줄은 무엇인가.
사다리 이 문제에서 ① 세로로 세울 것 공장별 시간의 값 y 1 , y 2 , y 3 y_1, y_2, y_3 y 1 , y 2 , y 3 , 셋 ② 이미 아는 수 기저에 든 활동의 이익 c B \vv{c}_B c B ③ 규칙 한 줄 기저 열 하나마다 한 줄, 세 줄 ④ 어느 상자 상자 1 ⑤ 선대가 답하지 않는 것 이 값이 얼마나 멀리까지 유효한지. 기저가 바뀌면 값도 바뀐다
최적 기저에서 y \vv{y} y 가 만족해야 할 것은 이것이다.
B T y = c B B^{\mathsf T}\vv{y} = \vv{c}_B B T y = c B (16) 에 전치가 나오는 것이 이 문제의 전부다. 원문제는 열을 활동으로
읽었는데, 값을 물으면 행을 자원으로 읽게 된다. L05가 말한 그 전치다.
최적 기저는 열 ( a s 1 , a 2 , a 1 ) (\vv{a}_{s_1}, \vv{a}_2, \vv{a}_1) ( a s 1 , a 2 , a 1 ) 이므로
B = [ 1 0 1 0 2 0 0 2 3 ] , c B = ( 0 , 5 , 3 ) B = \begin{bmatrix}1&0&1\\0&2&0\\0&2&3\end{bmatrix},
\qquad
\vv{c}_B = (0,\ 5,\ 3) B = ⎣ ⎡ 1 0 0 0 2 2 1 0 3 ⎦ ⎤ , c B = ( 0 , 5 , 3 ) 이다. (17) 의 c B \vv{c}_B c B 에서 첫 성분이 0인 것은 여유변수 s 1 s_1 s 1 이
이익을 안 내기 때문이다. 전치해서 풀면
[ 1 0 0 0 2 2 1 0 3 ] y = [ 0 5 3 ] ⟹ y = ( 0 , 3 2 , 1 ) \begin{bmatrix}1&0&0\\0&2&2\\1&0&3\end{bmatrix}\vv{y} = \begin{bmatrix}0\\5\\3\end{bmatrix}
\qquad\Longrightarrow\qquad
\vv{y} = \left(0,\ \tfrac32,\ 1\right) ⎣ ⎡ 1 0 1 0 2 0 0 2 3 ⎦ ⎤ y = ⎣ ⎡ 0 5 3 ⎦ ⎤ ⟹ y = ( 0 , 2 3 , 1 ) (18) 의 답이 답이다. 1공장은 0원, 2공장은 1.5만원, 3공장은 1만원 이다.
1공장이 0인 것에 뜻이 있다. (15) 에서 s 1 = 2 s_1 = 2 s 1 = 2 였다. 1공장은 이미
2시간이 남아돌므로 한 시간 더 준다고 이익이 늘지 않는다.
검산. 2공장 가용시간을 12에서 13으로 올려 실제로 다시 풀어 보자.
x B = B − 1 ( 4 , 13 , 18 ) = ( 2 + 1 3 , 13 2 , 2 − 1 3 ) ⟹ x 1 = 5 3 , x 2 = 13 2 \vv{x}_B = B^{-1}(4,\ 13,\ 18) = \left(2+\tfrac13,\ \tfrac{13}{2},\ 2-\tfrac13\right)
\qquad\Longrightarrow\qquad
x_1 = \tfrac53,\quad x_2 = \tfrac{13}{2} x B = B − 1 ( 4 , 13 , 18 ) = ( 2 + 3 1 , 2 13 , 2 − 3 1 ) ⟹ x 1 = 3 5 , x 2 = 2 13 (19) 의 이익은 3 ( 5 3 ) + 5 ( 13 2 ) = 5 + 32.5 = 37.5 3(\frac53) + 5(\frac{13}{2}) = 5 + 32.5 = 37.5 3 ( 3 5 ) + 5 ( 2 13 ) = 5 + 32.5 = 37.5 다.
36 + 1.5 36 + 1.5 36 + 1.5 로 정확히 y 2 y_2 y 2 만큼 늘었다.
그러니 잔업 시급이 1.5만원 미만이면 남는 장사다. 다시 풀 필요가 없었다.
왜 y \vv{y} y 가 곧 값인지 한 줄로 보인다. 최적 이익은 z = c B T x B z = \vv{c}_B^{\mathsf T}\vv{x}_B z = c B T x B
이고 x B = B − 1 b \vv{x}_B = B^{-1}\vv{b} x B = B − 1 b 이므로
z = c B T B − 1 b = ( ( B T ) − 1 c B ) T b = y T b z = \vv{c}_B^{\mathsf T}B^{-1}\vv{b}
= \left(\left(B^{\mathsf T}\right)^{-1}\vv{c}_B\right)^{\mathsf T}\vv{b}
= \vv{y}^{\mathsf T}\vv{b} z = c B T B − 1 b = ( ( B T ) − 1 c B ) T b = y T b 이다. (20) 의 마지막 꼴에서 b \vv{b} b 의 성분 하나를 1만큼 올리면
이익이 정확히 그 자리의 y i y_i y i 만큼 는다. 기저가 안 바뀌는 동안은 그렇다.
한걸음 더 — 이 값이 영원히 유효한 것은 아니다. 시간을 계속 늘리면 어느 순간
다른 제약이 먼저 바닥나 기저가 바뀌고 그때 y \vv{y} y 도 달라진다.
"한 시간에 1.5만원"은 지금 기저가 유지되는 범위 안에서만 맞는 말이다.
회수 : L03 역행렬 · L05 전치 · L08 유일해 · L10 네 부분공간
29. 거점마다 숫자를 하나씩 붙인다 ★★★
공장에서 창고까지 하루 6톤을 보낸다. 중간에 거점이 둘 있고, 갈 수 있는 길이
다섯이다. 톤당 비용은 공장→거점1이 2만원, 거점1→거점2가 1만원, 공장→거점2가 4만원,
거점2→창고가 3만원, 거점1→창고가 5만원이다.
물류 담당자가 최선이라고 생각하는 경로를 찾았다. 그런데 상사가 묻는다.
“그게 정말 최선인지 어떻게 압니까. 가능한 경로를 다 세어 봤습니까.”
경로가 스무 개만 돼도 다 세는 것은 무리다.
세우기 경로를 다 세지 않고 최선임을 확인하려면 무엇이 필요한가.
거점마다 숫자를 하나씩 붙여 보라.
사다리 이 문제에서 ① 세로로 세울 것 길마다의 운송량 y \vv{y} y , 다섯 ② 이미 아는 수 노드별 순유출입 f = ( − 6 , 0 , 0 , 6 ) \vv{f} = (-6, 0, 0, 6) f = ( − 6 , 0 , 0 , 6 ) ③ 규칙 한 줄 노드 하나의 흐름 보존, 네 줄인데 독립은 셋 ④ 어느 상자 상자 2 ⑤ 선대가 답하지 않는 것 길마다의 용량 제한. 그것이 있으면 다시 선형계획이다
L12의 결합행렬을 그대로 쓴다. 간선을 행, 노드를 열로 놓고 꼬리에 -1, 머리에 +1 이다.
A = [ − 1 1 0 0 0 − 1 1 0 − 1 0 1 0 0 0 − 1 1 0 − 1 0 1 ] , A T y = f A = \begin{bmatrix}
-1&1&0&0\\ 0&-1&1&0\\ -1&0&1&0\\ 0&0&-1&1\\ 0&-1&0&1
\end{bmatrix},
\qquad
A^{\mathsf T}\vv{y} = \vv{f} A = ⎣ ⎡ − 1 0 − 1 0 0 1 − 1 0 0 − 1 0 1 1 − 1 0 0 0 0 1 1 ⎦ ⎤ , A T y = f (21) 에서 rank A = 4 − 1 = 3 \rank A = 4 - 1 = 3 rank A = 4 − 1 = 3 이다. 연결된 그래프의 결합행렬은 늘
노드 수보다 하나 작다(L12).
그러면 루프 공간의 차원이
5 − 3 = 2 = m − n + 1 = 5 − 4 + 1 5 - 3 = 2 = m - n + 1 = 5 - 4 + 1 5 − 3 = 2 = m − n + 1 = 5 − 4 + 1 이다. (22) 의 오일러 공식대로 독립인 루프가 둘 이다.
담당자의 답은 y = ( 6 , 6 , 0 , 6 , 0 ) \vv{y} = (6, 6, 0, 6, 0) y = ( 6 , 6 , 0 , 6 , 0 ) 이고 비용이 36만원이다. 검산하면
A T y = ( − 6 , 0 , 0 , 6 ) A^{\mathsf T}\vv{y} = (-6, 0, 0, 6) A T y = ( − 6 , 0 , 0 , 6 ) 로 흐름이 보존된다.
이제 최선임을 확인한다. 노드마다 숫자 x i x_i x i 를 붙이고, 간선의
축소비용 을 다음처럼 잰다.
c ˉ e = c e − ( x 머리 − x 꼬리 ) \bar{c}_e = c_e - (x_{\text{머리}} - x_{\text{꼬리}}) c ˉ e = c e − ( x 머리 − x 꼬리 ) (23) 의 값이 0 이상이면 그 간선을 쓰는 것이 이득이 아니다. 쓰고 있는
간선 셋에서 c ˉ e = 0 \bar{c}_e = 0 c ˉ e = 0 이 되도록 x \vv{x} x 를 정하면
x = ( 0 , 2 , 3 , 6 ) \vv{x} = (0,\ 2,\ 3,\ 6) x = ( 0 , 2 , 3 , 6 ) 이고, (24) 의 전위로 나머지 둘을 재면 안 쓰는 간선 e 3 e_3 e 3 와 e 5 e_5 e 5 에서
축소비용이 각각 4 − 3 = 1 4 - 3 = 1 4 − 3 = 1 과 5 − 4 = 1 5 - 4 = 1 5 − 4 = 1 이다. 둘 다 0 이상이므로 최선이다.
노드 넷에 숫자를 붙이고 간선 다섯을 한 번씩 재면 끝났다. 아홉 번의 계산으로
모든 경로를 확인한 셈이다.
경로를 직접 세어 보면 공장-거점1-거점2-창고가 2 + 1 + 3 = 6 2+1+3 = 6 2 + 1 + 3 = 6 , 공장-거점2-창고가
4 + 3 = 7 4+3 = 7 4 + 3 = 7 , 공장-거점1-창고가 2 + 5 = 7 2+5 = 7 2 + 5 = 7 로 실제로 첫 번째가 최선이다.
셋뿐이라 셀 수 있었지만, 노드가 스물이면 경로가 수천 개다.
빠지기 쉬운 곳 — x \vv{x} x 는 유일하지 않다. 전체에 상수를 더해도 차이가 안 바뀌기
때문이다. 곧 N ( A ) = span ( 1 ) N(A) = \operatorname{span}(\vv{1}) N ( A ) = span ( 1 ) 이고, 상황 의
기준 통화 이야기와 같은 구조다. 하나를 0으로 고정하면 나머지가 정해진다.
회수 : L07 자유변수 · L08 해집합 · L10 네 부분공간 · L12 결합행렬
30. 줄이 다섯인데 마음대로 정할 수 있는 것이 왜 둘인가 ★★☆
공장 둘에서 대리점 셋으로 물건을 보낸다. 공장 공급량은 30과 20이고, 대리점 수요는
20, 15, 15다. 합이 양쪽 다 50으로 맞는다.
배차 담당자가 표를 채우려 한다. 칸이 여섯이고 지켜야 할 줄이 다섯(공급 둘, 수요 셋)이니
“여섯에서 다섯을 빼면 하나만 마음대로 정하면 되겠네” 하고 시작했는데,
막상 해 보니 둘을 정해야 나머지가 채워진다.
담당자가 묻는다. “줄이 다섯 개인데 왜 하나가 아니라 둘입니까.”
세우기 줄 다섯 중 하나가 나머지에서 따라 나온다. 어느 것인가,
그리고 왜 그런가.
사다리 이 문제에서 ① 세로로 세울 것 여섯 칸 x 11 , … , x 23 x_{11}, \dots, x_{23} x 11 , … , x 23 ② 이미 아는 수 공급 ( 30 , 20 ) (30, 20) ( 30 , 20 ) 과 수요 ( 20 , 15 , 15 ) (20, 15, 15) ( 20 , 15 , 15 ) ③ 규칙 한 줄 공장 하나 또는 대리점 하나, 다섯 줄인데 독립은 넷 ④ 어느 상자 상자 2 ⑤ 선대가 답하지 않는 것 배차가 정수여야 한다는 것. 여기서는 다행히 저절로 정수가 나온다
T = [ 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 ] T = \begin{bmatrix}
1&1&1&0&0&0\\
0&0&0&1&1&1\\
1&0&0&1&0&0\\
0&1&0&0&1&0\\
0&0&1&0&0&1
\end{bmatrix} T = ⎣ ⎡ 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 ⎦ ⎤ (25) 의 각 열에 1이 정확히 둘 있다. 칸 하나는 공장 하나와 대리점
하나에 걸쳐 있기 때문이다. 이것이 완전이분그래프의 결합행렬이다.
이제 종속을 찾는다. 공급 줄을 다 더하면 전부 1이 되고, 수요 줄을 다 더해도 전부 1이 된다.
( 1행 ) + ( 2행 ) = ( 1 , 1 , 1 , 1 , 1 , 1 ) = ( 3행 ) + ( 4행 ) + ( 5행 ) (\text{1행}) + (\text{2행}) = (1,1,1,1,1,1) = (\text{3행}) + (\text{4행}) + (\text{5행}) ( 1 행 ) + ( 2 행 ) = ( 1 , 1 , 1 , 1 , 1 , 1 ) = ( 3 행 ) + ( 4 행 ) + ( 5 행 ) (26) 의 등식이 그 종속이다. "공급 총합 = 수요 총합"이라는 사실이 행 사이의
관계로 나타난 것 이다.
그래프가 연결이므로 종속은 이 하나뿐이고
rank T = 5 − 1 = 4 = m + n − 1 \rank T = 5 - 1 = 4 = m + n - 1 rank T = 5 − 1 = 4 = m + n − 1 이다. (27) 에서 자유변수가 6 − 4 = 2 6 - 4 = 2 6 − 4 = 2 개다. 담당자가 둘을 정해야 했던
이유가 이것이다.
북서코너부터 채우면 x 11 = 20 x_{11} = 20 x 11 = 20 , x 12 = 10 x_{12} = 10 x 12 = 10 , x 22 = 5 x_{22} = 5 x 22 = 5 , x 23 = 15 x_{23} = 15 x 23 = 15 이고
나머지 둘은 0이다. 0이 아닌 성분이 정확히 4개 = m + n − 1 m+n-1 m + n − 1 이고,
그 넷이 노드 다섯을 잇는 신장나무 를 이룬다.
빠지기 쉬운 곳 — 만약 공급 총합과 수요 총합이 다르면 (26) 의 종속이
깨지고 rank T = 5 \rank T = 5 rank T = 5 가 되지만, 그때는 해가 아예 없다. 랭크가 오르는 것이
좋은 소식이 아닌 드문 경우다.
회수 : L05 전치 · L07 자유변수 · L09 독립 · L12 결합행렬
31. 미지수를 여섯으로 늘렸는데도 답이 하나가 아니다 ★★★
회사가 사택 세 채를 직원 셋에게 배정하고 월세를 정한다. 직원마다 집마다 느끼는
값어치가 다르다. 표로 적으면 직원 1은 세 집을 12, 5, 3만원어치로 보고, 직원 2는
10, 8, 4로, 직원 3은 9, 6, 7로 본다.
총무팀이 원하는 것은 둘이다. 아무도 다른 집으로 옮기고 싶어 하지 않을 것 , 그리고
월세가 되도록 낮을 것.
배정은 정했다. 각자 자기가 가장 높게 본 집을 받았다. 이제 월세를 정해야 하는데,
숫자를 여섯 개(직원별 만족도 셋, 집별 월세 셋) 놓고 풀어도 답이 하나로 안 나온다.
세우기 미지수를 여섯으로 늘렸는데 답이 여전히 여럿이다.
남은 자유도 하나가 무엇을 뜻하는가.
사다리 이 문제에서 ① 세로로 세울 것 직원 잉여 u i u_i u i 셋과 집 월세 p j p_j p j 셋, 여섯 ② 이미 아는 수 값어치 표 ③ 규칙 한 줄 등식이 걸리는 쌍마다 한 줄, 다섯 줄이고 다섯 다 독립 ④ 어느 상자 상자 2 ⑤ 선대가 답하지 않는 것 월세가 0 이상이어야 한다는 것. 그것이 자유도를 잘라 준다
배정된 쌍에서는 값어치가 잉여와 월세로 정확히 갈리고, 나머지 쌍에서는
옮길 마음이 없어야 하므로 부등식이 된다.
u i + p j = v i j ( 배정된 쌍 ) , u i + p j ≥ v i j ( 나머지 ) u_i + p_j = v_{ij}\ \ (\text{배정된 쌍}),
\qquad
u_i + p_j \ge v_{ij}\ \ (\text{나머지}) u i + p j = v ij ( 배정된 쌍 ) , u i + p j ≥ v ij ( 나머지 ) 먼저 배정부터 확인하자. 값어치 표에서 대각선이 12 + 8 + 7 = 27 12 + 8 + 7 = 27 12 + 8 + 7 = 27 이고,
나머지 다섯 배정은 22, 22, 20, 19, 18 로 전부 작다. 대각선이 최적이다.
이제 (28) 에서 등식이 걸리는 쌍을 찾으면 ( 1 , 1 ) (1,1) ( 1 , 1 ) , ( 2 , 1 ) (2,1) ( 2 , 1 ) , ( 2 , 2 ) (2,2) ( 2 , 2 ) ,
( 3 , 1 ) (3,1) ( 3 , 1 ) , ( 3 , 3 ) (3,3) ( 3 , 3 ) 의 다섯이다. 이 다섯 줄을 미지수 여섯에 대해 쌓으면
A A A 가 5 × 6 5\times6 5 × 6 이고 각 행에 1이 정확히 둘 있다. 또 결합행렬이다.
rank A = 5 ⟹ dim N ( A ) = 6 − 5 = 1 \rank A = 5
\qquad\Longrightarrow\qquad
\dim N(A) = 6 - 5 = 1 rank A = 5 ⟹ dim N ( A ) = 6 − 5 = 1 (29) 의 영공간 기저가 무엇인지 보자.
n = ( 1 , 1 , 1 ∣ − 1 , − 1 , − 1 ) \vv{n} = (1,\ 1,\ 1\ |\ -1,\ -1,\ -1) n = ( 1 , 1 , 1 ∣ − 1 , − 1 , − 1 ) 확인은 한 줄이면 된다. 어느 등식이든 u i + p j u_i + p_j u i + p j 꼴이므로
( u i + 1 ) + ( p j − 1 ) = u i + p j (u_i + 1) + (p_j - 1) = u_i + p_j ( u i + 1 ) + ( p j − 1 ) = u i + p j 이고, (31) 의 좌변이 우변과 같으니 다섯 줄 전부가 그대로 유지된다.
곧 (30) 의 뜻은 이렇다. 모든 잉여를 1씩 올리고 모든 월세를 1씩 내려도
아무 등식도 깨지지 않는다.
곧 남은 자유도 하나는 회사와 직원 사이의 이득 배분 그 자체다.
선형대수는 그것을 정해 주지 않는다.
총무팀이 "월세가 되도록 낮게"라고 했으니 그 방향으로 끝까지 밀면
p = ( 2 , 0 , 0 ) , u = ( 10 , 8 , 7 ) \vv{p} = (2,\ 0,\ 0),
\qquad
\vv{u} = (10,\ 8,\ 7) p = ( 2 , 0 , 0 ) , u = ( 10 , 8 , 7 ) 이고, (32) 에서 더 내리면 월세가 음수가 된다. 해 전체는
( u ; p ) = ( 10 , 8 , 7 ∣ 2 , 0 , 0 ) + t ( − 1 , − 1 , − 1 ∣ 1 , 1 , 1 ) , t ≥ 0 (\vv{u};\vv{p}) = (10,8,7\,|\,2,0,0) + t\,(-1,-1,-1\,|\,1,1,1),
\qquad
t \ge 0 ( u ; p ) = ( 10 , 8 , 7 ∣ 2 , 0 , 0 ) + t ( − 1 , − 1 , − 1 ∣ 1 , 1 , 1 ) , t ≥ 0 이다. (33) 의 꼴이 L08의 “특수해 + 영공간” 그대로다.
검산. u 1 + p 1 = 10 + 2 = 12 = v 11 u_1 + p_1 = 10 + 2 = 12 = v_{11} u 1 + p 1 = 10 + 2 = 12 = v 11 ✓. 그리고 직원 1이 둘째 집을 보면
u 1 + p 2 = 10 + 0 = 10 ≥ 5 = v 12 u_1 + p_2 = 10 + 0 = 10 \ge 5 = v_{12} u 1 + p 2 = 10 + 0 = 10 ≥ 5 = v 12 이므로 옮길 마음이 없다.
아홉 쌍 전부 확인하면 여유가 최소 0이다.
빠지기 쉬운 곳 — 부등식 조건 p ≥ 0 \vv{p} \ge \vv{0} p ≥ 0 이 자유도를 잘라 주는 것이지
선형계가 잘라 주는 것이 아니다. "되도록 낮게"라는 총무팀의 말이
t t t 를 고르는 기준이었다. 4막에서 이 이야기를 본격적으로 한다.
회수 : L06 영공간 · L07 특수해 · L09 독립 · L12 결합행렬
32. 세 줄 중 하나를 버려도 되는 이유 ★★★
세 재화 시장의 초과수요를 모형으로 세웠다. 값을 조금 움직였을 때 초과수요가
얼마나 반응하는지를 아홉 칸 표로 추정했다.
J = [ 19 − 2 − 5 − 5 1 1 − 3 0 1 ] J = \begin{bmatrix}19&-2&-5\\-5&1&1\\-3&0&1\end{bmatrix} J = ⎣ ⎡ 19 − 5 − 3 − 2 1 0 − 5 1 1 ⎦ ⎤ 균형에서 초과수요가 셋 다 0이 되는 값을 찾으려는데, 연구원이 말한다.
“셋째 시장 조건은 앞의 둘에서 자동으로 따라옵니다. 그러니 버리고 두 줄만 풀면 됩니다.”
팀장이 되묻는다. “왜 따라옵니까. 그리고 셋 중 아무거나 버려도 됩니까.”
세우기 이 표는 두 가지 사실을 동시에 갖고 있다.
J J J 의 영공간에 무엇이 있고, 좌영공간에는 무엇이 있는가.
사다리 이 문제에서 ① 세로로 세울 것 균형가격 p \vv{p} p , 셋 ② 이미 아는 수 반응표 J J J ③ 규칙 한 줄 시장 하나의 청산, 세 줄인데 독립은 둘 ④ 어느 상자 상자 2 ⑤ 선대가 답하지 않는 것 균형이 존재하는지. 선형화는 균형 근처에서만 맞는다
두 가지 경제 법칙이 각각 하나씩 준다.
하나, 왈라스 법칙. 모든 값에서 p T z ( p ) = 0 \vv{p}^{\mathsf T}\vv{z}(\vv{p}) = 0 p T z ( p ) = 0 이다.
"사람들이 가진 돈만큼만 산다"는 뜻이다. 이것을 p \vv{p} p 로 미분하고 균형에서
z = 0 \vv{z} = \vv{0} z = 0 을 넣으면
p T J = 0 T ⟺ J T p ∗ = 0 \vv{p}^{\mathsf T}J = \vv{0}^{\mathsf T}
\qquad\Longleftrightarrow\qquad
J^{\mathsf T}\vv{p}^{*} = \vv{0} p T J = 0 T ⟺ J T p ∗ = 0 이다. (35) 의 식은 p ∗ \vv{p}^{*} p ∗ 가 좌영공간에 있다 는 말이다.
둘, 0차 동차성. 모든 값에 같은 배율을 곱해도 수요가 안 바뀐다. 곧
z ( λ p ) = z ( p ) \vv{z}(\lambda\vv{p}) = \vv{z}(\vv{p}) z ( λ p ) = z ( p ) 다. 오일러 정리를 쓰면
J p ∗ = 0 J\vv{p}^{*} = \vv{0} J p ∗ = 0 이다. (36) 의 식은 p ∗ \vv{p}^{*} p ∗ 가 영공간에 있다 는 말이다.
p ∗ = ( 1 , 2 , 3 ) \vv{p}^{*} = (1, 2, 3) p ∗ = ( 1 , 2 , 3 ) 을 넣어 검산하면 둘 다 0 \vv{0} 0 이 나온다.
그러므로 det J = 0 \det J = 0 det J = 0 이고 rank J = 2 \rank J = 2 rank J = 2 다. 연구원 말이 맞다.
이제 팀장의 둘째 물음이다. 아무거나 버려도 되는가.
셋째 값을 p 3 = 3 p_3 = 3 p 3 = 3 으로 고정하고 남은 둘로 2 × 2 2\times2 2 × 2 계를 만들면
[ 19 − 2 − 5 1 ] [ p 1 p 2 ] = [ 15 − 3 ] , det = 9 ⟹ ( p 1 , p 2 ) = ( 1 , 2 ) \begin{bmatrix}19&-2\\-5&1\end{bmatrix}\begin{bmatrix}p_1\\p_2\end{bmatrix}
= \begin{bmatrix}15\\-3\end{bmatrix},
\qquad
\det = 9
\qquad\Longrightarrow\qquad
(p_1,\ p_2) = (1,\ 2) [ 19 − 5 − 2 1 ] [ p 1 p 2 ] = [ 15 − 3 ] , det = 9 ⟹ ( p 1 , p 2 ) = ( 1 , 2 ) 가 나온다. 다른 줄을 버려도 마찬가지다. 세 경우의 행렬식이 각각 3, -6, 9 로
전부 0이 아니다. 이 표에서는 아무거나 버려도 된다.
한걸음 더 — 그런데 늘 그렇지는 않다. 어떤 재화의 균형가격이 0이면
(자유재라면) 이야기가 달라진다. p ∗ = ( 1 , 2 , 0 ) \vv{p}^{*} = (1, 2, 0) p ∗ = ( 1 , 2 , 0 ) 인 표를 만들어 보면
J ′ = [ 4 − 2 2 − 2 1 − 1 0 0 1 ] J' = \begin{bmatrix}4&-2&2\\-2&1&-1\\0&0&1\end{bmatrix} J ′ = ⎣ ⎡ 4 − 2 0 − 2 1 0 2 − 1 1 ⎦ ⎤ 이고 (38) 도 J ′ p ∗ = J ′ T p ∗ = 0 J'\vv{p}^{*} = J'^{\mathsf T}\vv{p}^{*} = \vv{0} J ′ p ∗ = J ′ T p ∗ = 0 을 만족한다.
그런데 p 3 = 0 p_3 = 0 p 3 = 0 을 고정하고 2 × 2 2\times2 2 × 2 를 만들면 어느 줄을 버려도 행렬식이 0 이다.
1행과 2행이 서로 비례하기 때문이다.
값이 0인 재화를 기준으로 잡으면 안 된다. 기준은 반드시 양의 값을 갖는
재화로 골라야 한다. 이것이 (37) 의 답이 우연히 잘 된 이유이기도 하다.
회수 : L06 영공간 · L09 독립 · L10 좌영공간 · L14 직교
33. 5년 전 표로 올해 표 만들기 ★★★
산업연관표는 5년마다 전수조사로 만든다. 지금은 그 사이 해라서 옛 표밖에 없는데,
행 합계와 열 합계만은 올해 것이 발표됐다.
옛 표는 네 칸이 10, 20, 30, 40조원이라 행 합계가 (30, 70)이고 열 합계가 (40, 60)이었다.
올해 발표된 합계는 행이 (40, 50), 열이 (50, 40)이다. 총합은 양쪽 다 90으로 같다.
담당자가 묻는다. “네 칸을 어떻게 채워야 합니까.” 칸이 넷이고 조건이 넷이니
풀릴 것 같은데, 그냥 풀면 옛 표와 아무 상관 없는 답이 나온다.
세우기 칸을 직접 미지수로 두면 옛 표의 정보가 버려진다.
옛 표를 살리면서 새 합계를 맞추려면 무엇을 미지수로 둘 것인가.
사다리 이 문제에서 ① 세로로 세울 것 칸이 아니라 행 배율 r \vv{r} r 과 열 배율 s \vv{s} s , 넷 ② 이미 아는 수 옛 표 Z 0 Z_0 Z 0 와 새 합계 ③ 규칙 한 줄 합계 하나마다 한 줄, 네 줄인데 독립은 셋 ④ 어느 상자 상자 2 ⑤ 선대가 답하지 않는 것 옛 구조가 아직 유효하다는 가정. 산업이 바뀌었으면 무의미하다
새 표를 이렇게 둔다.
Z = diag ( r ) Z 0 diag ( s ) ⟺ Z i j = r i ( Z 0 ) i j s j Z = \operatorname{diag}(\vv{r})\,Z_0\,\operatorname{diag}(\vv{s})
\qquad\Longleftrightarrow\qquad
Z_{ij} = r_i\,(Z_0)_{ij}\,s_j Z = diag ( r ) Z 0 diag ( s ) ⟺ Z ij = r i ( Z 0 ) ij s j (39) 에서 왼쪽 대각행렬이 행을 늘리고 오른쪽이 열을 늘린다.
옛 표의 0인 칸은 0으로 남는다. 구조가 보존된다는 뜻이고, 이것이 이 방법의 값이다.
미지수는 m + n = 4 m + n = 4 m + n = 4 개인데 자유도가 하나 모자란다. ( k r , s / k ) (k\vv{r},\ \vv{s}/k) ( k r , s / k ) 가
같은 Z Z Z 를 주기 때문이다.
실질 자유도 = m + n − 1 = 3 \text{실질 자유도} = m + n - 1 = 3 실질 자유도 = m + n − 1 = 3 조건도 넷인데 "행 합계의 총합 = 열 합계의 총합"이 이미 걸려 있어 독립인 것이 셋이다.
(40) 의 자유도와 딱 맞는다. 상황 의 m + n − 1 m+n-1 m + n − 1 이 여기서 또 나온다.
풀면 다음이 나온다.
r = ( 2 , 1 ) , s = ( 1 , 1 2 ) ⟹ Z = [ 20 20 30 20 ] \vv{r} = (2,\ 1),
\qquad
\vv{s} = \left(1,\ \tfrac12\right)
\qquad\Longrightarrow\qquad
Z = \begin{bmatrix}20&20\\30&20\end{bmatrix} r = ( 2 , 1 ) , s = ( 1 , 2 1 ) ⟹ Z = [ 20 30 20 20 ] (41) 의 행 합이 ( 40 , 50 ) (40, 50) ( 40 , 50 ) , 열 합이 ( 50 , 40 ) (50, 40) ( 50 , 40 ) 으로 발표값과 정확히 맞는다.
배율 자체는 유일하지 않다. ( r , s ) (\vv{r}, \vv{s}) ( r , s ) 를 ( 4 , 2 ) (4, 2) ( 4 , 2 ) 와 ( 1 2 , 1 4 ) (\frac12, \frac14) ( 2 1 , 4 1 ) 로
바꿔도 같은 Z Z Z 가 나온다. 정해지는 것은 곱 r i s j r_i s_j r i s j 뿐이다.
실무에서 푸는 법. 비선형계를 직접 풀지 않고 행과 열을 번갈아 맞춘다.
반복 Z Z Z 1회 [ 19.18 19.31 30.82 20.69 ] \begin{bmatrix}19.18 & 19.31\\ 30.82 & 20.69\end{bmatrix} [ 19.18 30.82 19.31 20.69 ] 2회 [ 19.99 19.99 30.01 20.01 ] \begin{bmatrix}19.99 & 19.99\\ 30.01 & 20.01\end{bmatrix} [ 19.99 30.01 19.99 20.01 ] 3회 [ 20.00 20.00 30.00 20.00 ] \begin{bmatrix}20.00 & 20.00\\ 30.00 & 20.00\end{bmatrix} [ 20.00 30.00 20.00 20.00 ]
회당 오차가 약 1 / 100 1/100 1/100 로 줄어 세 번이면 소수 넷째 자리까지 맞는다.
이것을 RAS 법 이라 부른다.
빠지기 쉬운 곳 — 옛 표에 0인 칸이 있으면 새 표에서도 0이다. 만약 옛 표가
[ 10 0 0 40 ] \begin{bmatrix}10&0\\0&40\end{bmatrix} [ 10 0 0 40 ] 이었다면 행 합이 ( 10 r 1 , 40 r 2 ) (10r_1, 40r_2) ( 10 r 1 , 40 r 2 ) 이고
열 합이 ( 10 r 1 , 40 r 2 ) (10r_1, 40r_2) ( 10 r 1 , 40 r 2 ) 라 행 합과 열 합이 같을 수밖에 없다.
목표가 ( 40 , 50 ) (40,50) ( 40 , 50 ) 과 ( 50 , 40 ) (50,40) ( 50 , 40 ) 이면 40 = 50 40 = 50 40 = 50 이라는 모순이 되어 답이 없다.
회수 : L03 대각행렬 곱 · L05 전치 · L09 자유도 세기
34. 합계만 공개된 표 — 복원 못 하는 정도를 세는 법 ★★☆
세우기 표를 합계로 보내는 것은 선형 사상 이다.
그 사상의 랭크와 영공간을 세면 답이 나온다.
사다리 이 문제에서 ① 세로로 세울 것 아홉 칸을 편 벡터, 아홉 ② 이미 아는 수 합계 여섯 ③ 규칙 한 줄 합계 하나마다 한 줄, 여섯 줄인데 독립은 다섯 ④ 어느 상자 상자 2 ⑤ 선대가 답하지 않는 것 칸이 음수가 아니라는 것. 그것이 범위를 더 좁혀 준다
미지수 9개, 방정식 6줄인데 총합이 양쪽에서 같아야 하므로 독립인 것이 5줄이다.
rank = 5 ⟹ dim N = 9 − 5 = 4 = ( 3 − 1 ) ( 3 − 1 ) \rank = 5
\qquad\Longrightarrow\qquad
\dim N = 9 - 5 = 4 = (3-1)(3-1) rank = 5 ⟹ dim N = 9 − 5 = 4 = ( 3 − 1 ) ( 3 − 1 ) (42) 의 ( m − 1 ) ( n − 1 ) (m-1)(n-1) ( m − 1 ) ( n − 1 ) 이 일반 공식이다. 일반적으로 세어 보면
dim N = m n − ( m + n − 1 ) = ( m − 1 ) ( n − 1 ) \dim N = mn - \left(m + n - 1\right) = (m-1)(n-1) dim N = mn − ( m + n − 1 ) = ( m − 1 ) ( n − 1 ) 이고, (43) 의 m + n − 1 m+n-1 m + n − 1 이 (27) 에서 본 그 수다.
합계를 만드는 사상의 랭크가 늘 m + n − 1 m+n-1 m + n − 1 이다.
3 × 3 3\times3 3 × 3 이면 2 × 2 = 4 2\times2 = 4 2 × 2 = 4 차원어치를 정할 수 없다.
영공간의 기저가 보기 좋다. i , j i, j i , j 가 1 또는 2일 때
E i j = [ ⋅ ] : ( i , j ) 에 + 1 , ( i , 3 ) 과 ( 3 , j ) 에 − 1 , ( 3 , 3 ) 에 + 1 E_{ij} = \begin{bmatrix}\cdot\end{bmatrix}
\quad\text{: } (i,j)\text{ 에 } +1,\ (i,3)\text{ 과 } (3,j)\text{ 에 } -1,\ (3,3)\text{ 에 } +1 E ij = [ ⋅ ] : ( i , j ) 에 + 1 , ( i , 3 ) 과 ( 3 , j ) 에 − 1 , ( 3 , 3 ) 에 + 1 인 네 개다. 예로 i = j = 1 i=j=1 i = j = 1 이면
E 11 = [ 1 0 − 1 0 0 0 − 1 0 1 ] E_{11} = \begin{bmatrix}1&0&-1\\0&0&0\\-1&0&1\end{bmatrix} E 11 = ⎣ ⎡ 1 0 − 1 0 0 0 − 1 0 1 ⎦ ⎤ 이고 (45) 의 행 합도 열 합도 전부 0이다. 이만큼을 더해도 합계가
안 바뀐다.
연구자의 둘째 물음에 답한다. 반례를 만들 수 있다.
Z = [ 10 20 30 20 30 10 30 10 20 ] , Z ′ = [ 15 15 30 15 35 10 30 10 20 ] Z = \begin{bmatrix}10&20&30\\20&30&10\\30&10&20\end{bmatrix},
\qquad
Z' = \begin{bmatrix}15&15&30\\15&35&10\\30&10&20\end{bmatrix} Z = ⎣ ⎡ 10 20 30 20 30 10 30 10 20 ⎦ ⎤ , Z ′ = ⎣ ⎡ 15 15 30 15 35 10 30 10 20 ⎦ ⎤ (46) 의 두 표는 여섯 합계가 모두 60으로 같은데 아홉 칸 중 넷이 다르다.
Z ′ = Z + 5 E 11 Z' = Z + 5E_{11} Z ′ = Z + 5 E 11 이기 때문이다.
한걸음 더 — 그러면 아예 손을 놓아야 하는가. 아니다. 두 가지가 남는다.
하나는 칸이 음수가 아니라는 조건이 범위를 좁혀 준다는 것이고, 다른 하나는
옛 표라는 추가 정보를 넣는 것 이다. 그게 상황 의 RAS 법이었다.
정보가 모자랄 때 답은 "못 푼다"가 아니라 "무엇을 더 가져올 것인가"다.
회수 : L06 영공간 · L07 자유변수 · L09 차원 · L10 네 부분공간
열 문제에서 미지수를 발명했다. 그런데 발명하고 나서도 답이 하나로 안 정해지는 일이
계속 있었다.
상황 에서 자유변수가 둘이었고, 상황 에서 이득을 나누는 방식이
자유였고, 상황 에서 4차원어치가 안 정해졌다.
선형대수는 "여럿이다"까지만 말한다. 그중 하나를 고르는 일은 다음 막의 몫이다.
4막 · 기준을 만든다 ¶ 답이 여럿일 때 하나를 고르려면 기준이 있어야 한다. 그리고 그 기준은
상황이 주지 않는다. 우리가 정한다.
이 막의 문제들은 전부 같은 모양이다. 줄이 모자라거나 아예 없고,
"무엇을 가장 작게 만들 것인가"를 정하는 순간 계가 결정된다.
35. 흔들림이 가장 작은 배분 ★★★
자산 셋에 돈을 나눠 넣는다. 셋의 수익률이 같이 움직이는 정도를 표로 재 뒀다.
1번과 2번은 어느 정도 같이 가고, 2번과 3번도 그렇지만, 1번과 3번은 서로 무관하다.
S = [ 2 1 0 1 2 1 0 1 2 ] S = \begin{bmatrix}2&1&0\\1&2&1\\0&1&2\end{bmatrix} S = ⎣ ⎡ 2 1 0 1 2 1 0 1 2 ⎦ ⎤ 운용역이 말한다. “지켜야 할 조건은 하나뿐입니다. 비중을 다 더하면 1이 돼야죠.”
조건이 하나에 미지수가 셋이니 답이 평면이다. 무수히 많다.
세우기 조건이 답을 정해 주지 않는다. 그러면 무엇이 정해 주는가.
사다리 이 문제에서 ① 세로로 세울 것 비중 w \vv{w} w , 셋 ② 이미 아는 수 1 하나뿐 ③ 규칙 한 줄 1 T w = 1 \vv{1}^{\mathsf T}\vv{w} = 1 1 T w = 1 , 한 줄 ④ 어느 상자 상자 2 → 기준을 정하면 상자 1 ⑤ 선대가 답하지 않는 것 S S S 를 어떻게 추정했는지. 표본에서 재면 오차가 크다
먼저 상황을 정직하게 적자. 미지수 셋에 줄 하나 다. 해집합이 평면이다.
선형대수는 여기서 할 말이 없다.
우리가 기준을 만든다. "흔들림이 가장 작게"를 고르면 최소화 대상이 정해진다.
min w w T S w subject to 1 T w = 1 \min_{\vv{w}}\ \vv{w}^{\mathsf T}S\vv{w}
\qquad\text{subject to}\qquad
\vv{1}^{\mathsf T}\vv{w} = 1 w min w T S w subject to 1 T w = 1 (48) 의 목적함수가 이차형식이다. L27에서 배운 그 이차형식 이고,
S S S 가 양의 정부호이므로 최솟값이 존재한다(고윳값이 0.586 , 2 , 3.414 0.586, 2, 3.414 0.586 , 2 , 3.414 로 전부 양수다).
제약 아래 최소를 찾는 조건을 쓴다. 라그랑주 승수 λ \lambda λ 를 붙이면
2 S w + λ 1 = 0 , 1 T w = 1 2S\vv{w} + \lambda\vv{1} = \vv{0},
\qquad
\vv{1}^{\mathsf T}\vv{w} = 1 2 S w + λ 1 = 0 , 1 T w = 1 이고, (49) 의 두 조건을 한 행렬에 쌓으면 4 × 4 4\times4 4 × 4 테두리 계 가 된다.
[ 4 2 0 1 2 4 2 1 0 2 4 1 1 1 1 0 ] [ w 1 w 2 w 3 λ ] = [ 0 0 0 1 ] \begin{bmatrix}4&2&0&1\\2&4&2&1\\0&2&4&1\\1&1&1&0\end{bmatrix}
\begin{bmatrix}w_1\\w_2\\w_3\\\lambda\end{bmatrix}
= \begin{bmatrix}0\\0\\0\\1\end{bmatrix} ⎣ ⎡ 4 2 0 1 2 4 2 1 0 2 4 1 1 1 1 0 ⎦ ⎤ ⎣ ⎡ w 1 w 2 w 3 λ ⎦ ⎤ = ⎣ ⎡ 0 0 0 1 ⎦ ⎤ (50) 의 왼쪽 위가 2 S 2S 2 S 이고 테두리가 제약이다. 미지수가 넷으로 늘었지만
줄도 넷이라 상자 1이 됐다.
닫힌 꼴로도 쓸 수 있다. (49) 의 첫 줄을 w \vv{w} w 에 대해 풀면
w = − λ 2 S − 1 1 \vv{w} = -\frac{\lambda}{2}\,S^{-1}\vv{1} w = − 2 λ S − 1 1 이고, (51) 의 식을 둘째 줄 1 T w = 1 \vv{1}^{\mathsf T}\vv{w} = 1 1 T w = 1 에 넣으면
− λ 2 1 T S − 1 1 = 1 ⟹ − λ 2 = 1 1 T S − 1 1 -\frac{\lambda}{2}\,\vv{1}^{\mathsf T}S^{-1}\vv{1} = 1
\qquad\Longrightarrow\qquad
-\frac{\lambda}{2} = \frac{1}{\vv{1}^{\mathsf T}S^{-1}\vv{1}} − 2 λ 1 T S − 1 1 = 1 ⟹ − 2 λ = 1 T S − 1 1 1 이다. (52) 의 값을 다시 (51) 에 넣으면 λ \lambda λ 가 사라지고
w = S − 1 1 1 T S − 1 1 \vv{w} = \frac{S^{-1}\vv{1}}{\vv{1}^{\mathsf T}S^{-1}\vv{1}} w = 1 T S − 1 1 S − 1 1 이다. det S = 4 \det S = 4 det S = 4 이고
S − 1 = 1 4 [ 3 − 2 1 − 2 4 − 2 1 − 2 3 ] ⟹ S − 1 1 = 1 4 ( 2 , 0 , 2 ) = ( 1 2 , 0 , 1 2 ) S^{-1} = \tfrac14\begin{bmatrix}3&-2&1\\-2&4&-2\\1&-2&3\end{bmatrix}
\qquad\Longrightarrow\qquad
S^{-1}\vv{1} = \tfrac14(2,\ 0,\ 2) = \left(\tfrac12,\ 0,\ \tfrac12\right) S − 1 = 4 1 ⎣ ⎡ 3 − 2 1 − 2 4 − 2 1 − 2 3 ⎦ ⎤ ⟹ S − 1 1 = 4 1 ( 2 , 0 , 2 ) = ( 2 1 , 0 , 2 1 ) 이므로 (54) 에서 1 T S − 1 1 = 1 \vv{1}^{\mathsf T}S^{-1}\vv{1} = 1 1 T S − 1 1 = 1 이고 답이 그대로 나온다.
w ∗ = ( 1 2 , 0 , 1 2 ) , w ∗ T S w ∗ = 1 , λ = − 2 \vv{w}^{*} = \left(\tfrac12,\ 0,\ \tfrac12\right),
\qquad
\vv{w}^{*\mathsf T}S\vv{w}^{*} = 1,
\qquad
\lambda = -2 w ∗ = ( 2 1 , 0 , 2 1 ) , w ∗ T S w ∗ = 1 , λ = − 2 가운데 자산에 0을 준다. 1번과 3번이 서로 무관해서 둘을 반씩 섞으면 흔들림이
가장 잘 상쇄되기 때문이다.
검산. 균등배분 ( 1 3 , 1 3 , 1 3 ) (\frac13,\frac13,\frac13) ( 3 1 , 3 1 , 3 1 ) 은 10 9 = 1.111 \frac{10}{9} = 1.111 9 10 = 1.111 ,
가운데를 공매도한 ( 1 , − 1 , 1 ) (1,-1,1) ( 1 , − 1 , 1 ) 은 2 로 둘 다 1보다 크다.
후보를 고를 때 성분합이 1인지 먼저 확인해야 한다. ( 1 , − 1 , 0 ) (1,-1,0) ( 1 , − 1 , 0 ) 처럼 합이 0인 것은
애초에 비교 대상이 아니다. 돈을 다 넣지 않은 배분이기 때문이다.
Figure 3: 왼쪽 등고선이 같은 흔들림을 주는 비중들이다. 가장 안쪽 점이 답이다.
제약(평면)이 답을 고른 것이 아니라 등고선(기준)이 골랐다.
빠지기 쉬운 곳 — w \vv{w} w 에 음수가 나올 수 있다. 여기서는 안 나왔지만
공분산이 조금만 달라도 나온다. 공매도가 안 되는 계좌라면 w ≥ 0 \vv{w} \ge \vv{0} w ≥ 0 을
넣어야 하고, 그러면 이차계획이 되어 이 책 밖이다.
회수 : L03 역행렬 · L08 유일해 · L25 대칭 · L27 양의 정부호
36. 제약이 붙으면 미지수가 하나 는다 ★★★
폐수 처리 라인이 셋이다. 하루 12톤을 셋에 나눠 보내야 하는데, 처리 요금이
보낸 양의 제곱에 비례 한다. 1번 라인은 계수가 1, 2번과 3번은 각각 2다.
현장 반장이 말한다. “1번이 제일 싸니까 12톤 전부 1번으로 보내죠.”
그렇게 하면 요금이 144만원이다. 균등하게 4톤씩 보내면 80만원이다.
관리자가 묻는다. “가장 싸게 나누는 방법은 무엇입니까.”
세우기 조건이 하나에 미지수가 셋이다. 문제 35 와 같은 모양이다.
이번엔 승수가 무슨 뜻인지까지 읽어 보라.
사다리 이 문제에서 ① 세로로 세울 것 라인별 처리량 x \vv{x} x 셋 그리고 승수 λ \lambda λ , 넷 ② 이미 아는 수 총량 12 ③ 규칙 한 줄 정류 조건 셋과 총량 하나, 넷 ④ 어느 상자 상자 1 (승수를 넣고 나면) ⑤ 선대가 답하지 않는 것 라인마다 처리 용량 상한. 그것이 있으면 다시 부등식이다
요금이 x 1 2 + 2 x 2 2 + 2 x 3 2 x_1^2 + 2x_2^2 + 2x_3^2 x 1 2 + 2 x 2 2 + 2 x 3 2 이므로 이차형식으로 쓰면 계수행렬이
Q = diag ( 2 , 4 , 4 ) Q = \operatorname{diag}(2, 4, 4) Q = diag ( 2 , 4 , 4 ) 다(2계 도함수라 두 배가 붙는다).
min 1 2 x T Q x subject to 1 T x = 12 \min\ \tfrac12\vv{x}^{\mathsf T}Q\vv{x}
\qquad\text{subject to}\qquad
\vv{1}^{\mathsf T}\vv{x} = 12 min 2 1 x T Q x subject to 1 T x = 12 정류 조건과 제약을 블록으로 쌓으면 KKT 계 가 된다.
[ Q 1 1 T 0 ] [ x λ ] = [ 0 12 ] \begin{bmatrix}Q & \vv{1}\\ \vv{1}^{\mathsf T} & 0\end{bmatrix}
\begin{bmatrix}\vv{x}\\\lambda\end{bmatrix}
= \begin{bmatrix}\vv{0}\\12\end{bmatrix} [ Q 1 T 1 0 ] [ x λ ] = [ 0 12 ] (57) 의 계를 풀면
x ∗ = ( 6 , 3 , 3 ) , λ = − 12 , det = − 32 \vv{x}^{*} = (6,\ 3,\ 3),
\qquad
\lambda = -12,
\qquad
\det = -32 x ∗ = ( 6 , 3 , 3 ) , λ = − 12 , det = − 32 이다. 요금은 36 + 18 + 18 = 72 36 + 18 + 18 = 72 36 + 18 + 18 = 72 만원 으로 반장의 144보다 훨씬 싸고
균등배분의 80보다도 싸다.
(57) 처럼 Q x + 1 λ = 0 Q\vv{x} + \vv{1}\lambda = \vv{0} Q x + 1 λ = 0 으로 쓰면 λ = − 12 \lambda = -12 λ = − 12 다.
Q x = 1 λ Q\vv{x} = \vv{1}\lambda Q x = 1 λ 로 쓰면 λ = + 12 \lambda = +12 λ = + 12 다. 같은 답이고 표기만 다르다.
뜻이 있는 것은 크기 12 다. 총량을 조금 늘렸을 때 요금이 느는 비율 이 그것이다.
d d t ( 1 2 t 2 ) ∣ t = 12 = 12 \frac{d}{dt}\left(\tfrac12 t^2\right)\bigg|_{t=12} = 12 d t d ( 2 1 t 2 ) ∣ ∣ t = 12 = 12 (59) 의 값이 승수다. 다만 한 톤을 통째로 늘리면 1 2 ( 1 3 2 − 1 2 2 ) = 12.5 \frac12(13^2-12^2) = 12.5 2 1 ( 1 3 2 − 1 2 2 ) = 12.5 라
정확히 12는 아니다. 목적함수가 이차라 승수가 미분이지 차분이 아니다.
상황 의 잠재가격은 목적함수가 1차라 둘이 같았다.
왜 ( 6 , 3 , 3 ) (6,3,3) ( 6 , 3 , 3 ) 인가. 정류 조건 Q x = − λ 1 Q\vv{x} = -\lambda\vv{1} Q x = − λ 1 을 성분으로 보면
2 x 1 = 4 x 2 = 4 x 3 = 12 2x_1 = 4x_2 = 4x_3 = 12 2 x 1 = 4 x 2 = 4 x 3 = 12 다. 곧 한계비용이 세 라인에서 같아야 한다.
싼 라인에 더 보내되, 제곱이라 무한정 보낼 수는 없다.
이 점이 정말 최소인가. N ( 1 T ) N(\vv{1}^{\mathsf T}) N ( 1 T ) 의 기저를 열로 세워
Z = [ − 1 − 1 1 0 0 1 ] Z = \begin{bmatrix}-1&-1\\1&0\\0&1\end{bmatrix} Z = ⎣ ⎡ − 1 1 0 − 1 0 1 ⎦ ⎤ 로 두면
Z T Q Z = [ 6 2 2 6 ] , 고윳값 = 4 , 8 Z^{\mathsf T}QZ = \begin{bmatrix}6&2\\2&6\end{bmatrix},
\qquad
\text{고윳값} = 4,\ 8 Z T QZ = [ 6 2 2 6 ] , 고윳값 = 4 , 8 이고 (60) 의 둘 다 양수다. 제약 위에서 곡률이 양수이므로 최소점이다.
Q Q Q 자체가 양의 정부호이니 이 확인은 사실 필요 없지만, 다음 문제에서는 필요하다.
회수 : L07 영공간의 기저 · L18 행렬식 · L25 대칭 · L27 정부호
37. 체증하는 품목이 하나 있는데도 최대인 이유 ★★★
소비자의 만족도를 세 품목(커피, 빵, 우유)에 대해 모형으로 세웠다. 2계 반응을
표로 적으면 커피만 부호가 다르다.
H = diag ( 1 , − 3 , − 3 ) H = \operatorname{diag}(1,\ -3,\ -3) H = diag ( 1 , − 3 , − 3 ) 곧 커피는 더 살수록 한 잔의 만족이 커진다. 나머지 둘은 줄어든다.
셋의 가격이 같고 예산이 정해져 있다. 연구원이 말한다. “커피가 체증하니까
이 점은 최대점일 리가 없습니다. 커피를 더 사면 계속 좋아질 테니까요.”
정말 그런가.
세우기 연구원은 H H H 를 통째로 봤다. 그런데 갈 수 있는 방향이 제한돼 있다.
그 제한 위에서 곡률을 재려면 무엇을 해야 하는가.
사다리 이 문제에서 ① 세로로 세울 것 갈 수 있는 방향 v \vv{v} v , 예산을 유지해야 하니 2차원 ② 이미 아는 수 반응표 H H H ③ 규칙 한 줄 p T v = 0 \vv{p}^{\mathsf T}\vv{v} = 0 p T v = 0 , 한 줄④ 어느 상자 상자 5 (크기와 방향을 잰다) ⑤ 선대가 답하지 않는 것 이 점이 1계 조건을 만족하는지. 여기서는 만족한다고 두었다
가격이 같으므로 p = ( 1 , 1 , 1 ) \vv{p} = (1,1,1) p = ( 1 , 1 , 1 ) 이고, 예산을 유지하며 갈 수 있는 방향은
p T v = 0 \vv{p}^{\mathsf T}\vv{v} = 0 p T v = 0 인 것들, 곧 N ( p T ) N(\vv{p}^{\mathsf T}) N ( p T ) 로 2차원 이다.
기저를 z 1 = ( 1 , − 1 , 0 ) \vv{z}_1 = (1,-1,0) z 1 = ( 1 , − 1 , 0 ) , z 2 = ( 1 , 0 , − 1 ) \vv{z}_2 = (1,0,-1) z 2 = ( 1 , 0 , − 1 ) 로 잡아
Z = [ 1 1 − 1 0 0 − 1 ] Z = \begin{bmatrix}1&1\\-1&0\\0&-1\end{bmatrix} Z = ⎣ ⎡ 1 − 1 0 1 0 − 1 ⎦ ⎤ 로 세운다. 그러면
H z 1 = ( 1 , 3 , 0 ) , H z 2 = ( 1 , 0 , 3 ) ⟹ Z T H Z = [ − 2 1 1 − 2 ] H\vv{z}_1 = (1,\ 3,\ 0),
\qquad
H\vv{z}_2 = (1,\ 0,\ 3)
\qquad\Longrightarrow\qquad
Z^{\mathsf T}HZ = \begin{bmatrix}-2&1\\1&-2\end{bmatrix} H z 1 = ( 1 , 3 , 0 ) , H z 2 = ( 1 , 0 , 3 ) ⟹ Z T H Z = [ − 2 1 1 − 2 ] 성분을 하나만 손으로 확인해 보자. ( 1 , 1 ) (1,1) ( 1 , 1 ) 자리는
z 1 T H z 1 = ( 1 , − 1 , 0 ) ⋅ ( 1 , 3 , 0 ) = 1 − 3 = − 2 \vv{z}_1^{\mathsf T}H\vv{z}_1 = (1,-1,0)\cdot(1,3,0) = 1 - 3 = -2 z 1 T H z 1 = ( 1 , − 1 , 0 ) ⋅ ( 1 , 3 , 0 ) = 1 − 3 = − 2 이고, ( 1 , 2 ) (1,2) ( 1 , 2 ) 자리는 z 1 T H z 2 = ( 1 , − 1 , 0 ) ⋅ ( 1 , 0 , 3 ) = 1 \vv{z}_1^{\mathsf T}H\vv{z}_2 = (1,-1,0)\cdot(1,0,3) = 1 z 1 T H z 2 = ( 1 , − 1 , 0 ) ⋅ ( 1 , 0 , 3 ) = 1 이다.
(63) 의 계산이 (62) 의 행렬 첫 칸과 맞는다.
그 행렬이 축소 헤시안 이다. 예산평면 위에서의 곡률이다.
고윳값을 구하면 -1 과 -3 으로 둘 다 음수 다.
곧 어느 방향으로 가도 만족이 줄어든다. 이 점은 최대점이 맞다.
연구원이 틀린 이유가 여기 있다. 커피만 늘릴 수는 없다. 예산이 정해져 있으니
커피를 늘리려면 다른 것을 줄여야 하고, 줄이는 쪽 손해가 늘리는 쪽 이득보다 크다.
제약 위에서의 정부호성은 H H H 자체의 정부호성과 다른 물음이다.
H H H 는 명백히 부정부호(1 , − 3 , − 3 1, -3, -3 1 , − 3 , − 3 )인데 Z T H Z Z^{\mathsf T}HZ Z T H Z 는 음의 정부호다.
검산 두 가지. 커피를 t t t 늘리고 빵을 t t t 줄이면 v = ( 1 , − 1 , 0 ) \vv{v} = (1,-1,0) v = ( 1 , − 1 , 0 ) 이고
v T H v = 1 − 3 = − 2 ⟹ 만족 변화 = 1 2 ( − 2 ) t 2 = − t 2 \vv{v}^{\mathsf T}H\vv{v} = 1 - 3 = -2
\qquad\Longrightarrow\qquad
\text{만족 변화} = \tfrac12(-2)t^2 = -t^2 v T H v = 1 − 3 = − 2 ⟹ 만족 변화 = 2 1 ( − 2 ) t 2 = − t 2 커피를 t t t 늘리고 빵과 우유를 t 2 \frac t2 2 t 씩 줄이면 v = ( 1 , − 1 2 , − 1 2 ) \vv{v} = (1,-\frac12,-\frac12) v = ( 1 , − 2 1 , − 2 1 ) 이고
v T H v = 1 − 3 4 − 3 4 = − 1 2 ⟹ 만족 변화 = 1 2 ( − 1 2 ) t 2 = − t 2 4 \vv{v}^{\mathsf T}H\vv{v} = 1 - \tfrac34 - \tfrac34 = -\tfrac12
\qquad\Longrightarrow\qquad
\text{만족 변화} = \tfrac12\left(-\tfrac12\right)t^2 = -\tfrac{t^2}{4} v T H v = 1 − 4 3 − 4 3 = − 2 1 ⟹ 만족 변화 = 2 1 ( − 2 1 ) t 2 = − 4 t 2 (65) 의 손해가 (64) 보다 작다. 손해를 나눠 지면 덜 아프다.
그래도 여전히 음수다.
같은 판정을 행렬식으로도 할 수 있다. 유테두리 행렬을 만들면
B = [ 0 1 1 1 1 1 0 0 1 0 − 3 0 1 0 0 − 3 ] , det B 3 × 3 = 2 , det B = − 3 B = \begin{bmatrix}0&1&1&1\\1&1&0&0\\1&0&-3&0\\1&0&0&-3\end{bmatrix},
\qquad
\det B_{3\times3} = 2,
\qquad
\det B = -3 B = ⎣ ⎡ 0 1 1 1 1 1 0 0 1 0 − 3 0 1 0 0 − 3 ⎦ ⎤ , det B 3 × 3 = 2 , det B = − 3 이고 (66) 의 부호가 + , − +, - + , − 로 번갈아 간다. 이것이 제약 아래 최대의
부호 규칙이다. 다만 규칙을 외우기보다 Z T H Z Z^{\mathsf T}HZ Z T H Z 로 환원하는 편이 안전하다.
회수 : L06 영공간 · L18 행렬식 · L19 여인수 · L27 정부호
38. 답이 평면이면 어느 점을 고르나 ★★☆
상황 의 세 부문 경제를 다시 쓴다. 농림 부문에서만 오염물질이 나오고,
총산출 1단위당 10단위가 나온다.
환경부가 목표를 정했다. “내년 총 배출을 296단위에 정확히 맞춰라.”
담당자가 계산해 보니 최종수요를 어떻게 잡든 그 목표를 맞출 방법이 무수히 많다.
농림을 늘리고 제조를 줄여도 되고, 반대로 해도 된다.
부처에서 묻는다. “그중 어느 조합을 권고안으로 낼 겁니까.”
세우기 줄이 하나에 미지수가 셋이다. 또 평면이다.
이번에는 무엇을 기준으로 고를 것인가.
사다리 이 문제에서 ① 세로로 세울 것 최종수요 d \vv{d} d , 셋 ② 이미 아는 수 목표 배출 296 ③ 규칙 한 줄 배출 총량, 한 줄 ④ 어느 상자 상자 3 (최소노름) ⑤ 선대가 답하지 않는 것 왜 하필 노름을 최소로 하는가. 다른 기준도 얼마든지 있다
배출은 총산출에서 나오고 총산출은 최종수요에서 나온다. 두 단계를 이으면
c T x = c T ( I − A ) − 1 d = a T d \vv{c}^{\mathsf T}\vv{x} = \vv{c}^{\mathsf T}(I-A)^{-1}\vv{d} = \vv{a}^{\mathsf T}\vv{d} c T x = c T ( I − A ) − 1 d = a T d 이고, (67) 의 a \vv{a} a 가 유발 배출계수 다. 계산하면
( I − A ) − 1 = [ 2.8 1.2 1.6 1.3 2.7 1.1 0.9 1.1 2.3 ] ⟹ a T = ( 10 , 0 , 0 ) ( I − A ) − 1 = ( 28 , 12 , 16 ) (I-A)^{-1} = \begin{bmatrix}2.8&1.2&1.6\\1.3&2.7&1.1\\0.9&1.1&2.3\end{bmatrix}
\qquad\Longrightarrow\qquad
\vv{a}^{\mathsf T} = (10,0,0)(I-A)^{-1} = (28,\ 12,\ 16) ( I − A ) − 1 = ⎣ ⎡ 2.8 1.3 0.9 1.2 2.7 1.1 1.6 1.1 2.3 ⎦ ⎤ ⟹ a T = ( 10 , 0 , 0 ) ( I − A ) − 1 = ( 28 , 12 , 16 ) 이다. (68) 의 계수가 뜻하는 바가 재미있다. 제조와 서비스는 직접 오염을
전혀 안 내는데도 유발계수가 12와 16이다. 그들이 농림 제품을 쓰기 때문이다.
조건은 한 줄뿐이다.
28 d 1 + 12 d 2 + 16 d 3 = 296 28d_1 + 12d_2 + 16d_3 = 296 28 d 1 + 12 d 2 + 16 d 3 = 296 (69) 의 줄은 1 × 3 1\times3 1 × 3 행렬이라 랭크 1, 영공간 2차원이다.
기저는 ( − 3 , 7 , 0 ) (-3, 7, 0) ( − 3 , 7 , 0 ) 과 ( − 4 , 0 , 7 ) (-4, 0, 7) ( − 4 , 0 , 7 ) 이고, 해집합이 평면 전체 다.
기준을 정한다. "어느 부문에도 치우치지 않게"를 노름 최소로 옮기면
답이 유일해진다. L33의 최소노름 해다.
왜 답이 a \vv{a} a 방향인지는 한 줄로 나온다. 해를 d = t a + n \vv{d} = t\,\vv{a} + \vv{n} d = t a + n
(n ∈ N ( a T ) \vv{n} \in N(\vv{a}^{\mathsf T}) n ∈ N ( a T ) ) 으로 쪼개면 두 조각이 직교하므로
∥ d ∥ 2 = t 2 ∥ a ∥ 2 + ∥ n ∥ 2 \lVert \vv{d} \rVert^2 = t^2\lVert\vv{a}\rVert^2 + \lVert\vv{n}\rVert^2 ∥ d ∥ 2 = t 2 ∥ a ∥ 2 + ∥ n ∥ 2 이고, (70) 에서 n \vv{n} n 은 목표에 아무 기여도 안 하면서 노름만 키운다.
그러니 n = 0 \vv{n} = \vv{0} n = 0 으로 두는 것이 최소다.
d ∗ = a 296 a T a = ( 28 , 12 , 16 ) ⋅ 296 1184 = ( 7 , 3 , 4 ) \vv{d}^{*} = \vv{a}\,\frac{296}{\vv{a}^{\mathsf T}\vv{a}}
= (28,12,16)\cdot\frac{296}{1184}
= (7,\ 3,\ 4) d ∗ = a a T a 296 = ( 28 , 12 , 16 ) ⋅ 1184 296 = ( 7 , 3 , 4 ) (71) 의 검산은 28 ( 7 ) + 12 ( 3 ) + 16 ( 4 ) = 196 + 36 + 64 = 296 28(7) + 12(3) + 16(4) = 196 + 36 + 64 = 296 28 ( 7 ) + 12 ( 3 ) + 16 ( 4 ) = 196 + 36 + 64 = 296 이다.
노름 제곱이 49 + 9 + 16 = 74 49+9+16 = 74 49 + 9 + 16 = 74 다.
다른 후보와 견줘 본다.
후보 ∥ d ∥ 2 \lVert\vv{d}\rVert^2 ∥ d ∥ 2 최소노름 ( 7 , 3 , 4 ) (7,3,4) ( 7 , 3 , 4 ) 74 \mathbf{74} 74 균등 배분 83.8 ( 10 , 0 , 1 ) (10,\ 0,\ 1) ( 10 , 0 , 1 ) 101 ( 0 , 8 , 12.5 ) (0,\ 8,\ 12.5) ( 0 , 8 , 12.5 ) 220.2
Figure 4: 왼쪽에서 평면 위 어느 점이든 296을 정확히 맞춘다. 원점에서 평면에 내린 수선의
발이 최소노름 해다. 오른쪽에서 넷 다 목표를 맞추지만 크기가 다르다.
검산 한 번 더. d ∗ \vv{d}^{*} d ∗ 를 넣으면 총산출이 ( 29.6 , 21.6 , 18.8 ) (29.6,\ 21.6,\ 18.8) ( 29.6 , 21.6 , 18.8 ) 이고
배출이 10 × 29.6 = 296 10 \times 29.6 = 296 10 × 29.6 = 296 으로 정확히 맞는다.
빠지기 쉬운 곳 — 최소노름이 “옳은” 답이 아니다. 단지 우리가 고른 기준일 뿐이다.
"기존 수요에서 가장 적게 바뀌게"를 기준으로 삼으면 다른 답이 나오고,
그것도 똑같이 정당하다. 다섯째 칸에 그것을 적어야 한다.
회수 : L07 영공간 · L08 해집합 · L09 차원 · L33 최소노름 해
39. 네 번밖에 못 도는 실험 ★★☆
상황 에서는 여덟 번을 돌렸다. 이번엔 예산이 깎여 네 번밖에 못 돈다.
그래도 세 인자(온도, 압력, 냉각)의 효과를 각각 알아내야 한다.
미지수가 넷(평균과 효과 셋)이고 실험이 넷이니 딱 맞는다. 그런데 어느 네 조합을
고르느냐 에 따라 결과의 신뢰도가 달라진다는 말을 들었다.
엔지니어가 묻는다. “조합을 고르는 데도 좋고 나쁨이 있습니까.”
세우기 네 조합을 고르면 4 × 4 4\times4 4 × 4 행렬이 하나 정해진다.
그 행렬의 무엇이 좋고 나쁨을 정하는가.
사다리 이 문제에서 ① 세로로 세울 것 평균과 세 효과, 넷 ② 이미 아는 수 네 번의 수율 ③ 규칙 한 줄 실험 한 번마다 한 줄, 네 줄 ④ 어느 상자 상자 5 (부피를 잰다) ⑤ 선대가 답하지 않는 것 인자끼리 함께 작용하는 효과. 네 줄로는 못 잰다
낮음을 -1, 높음을 +1 로 코드화하고 열을 (상수항, A, B, C)로 세운다.
세 가지 선택을 견줘 보자.
선택 1 — ( + , − , − ) (+,-,-) ( + , − , − ) , ( − , + , − ) (-,+,-) ( − , + , − ) , ( − , − , + ) (-,-,+) ( − , − , + ) , ( + , + , + ) (+,+,+) ( + , + , + )
X 1 = [ 1 1 − 1 − 1 1 − 1 1 − 1 1 − 1 − 1 1 1 1 1 1 ] , X 1 T X 1 = 4 I , ∣ det X 1 ∣ = 16 X_1 = \begin{bmatrix}1&1&-1&-1\\1&-1&1&-1\\1&-1&-1&1\\1&1&1&1\end{bmatrix},
\qquad
X_1^{\mathsf T}X_1 = 4I,
\qquad
\lvert\det X_1\rvert = 16 X 1 = ⎣ ⎡ 1 1 1 1 1 − 1 − 1 1 − 1 1 − 1 1 − 1 − 1 1 1 ⎦ ⎤ , X 1 T X 1 = 4 I , ∣ det X 1 ∣ = 16 (72) 에서 네 열이 서로 직교다. 상황 의 8 I 8I 8 I 와 같은 구조다.
선택 2 — 전부 낮음에서 시작해 하나씩만 올린다
X 2 = [ 1 − 1 − 1 − 1 1 1 − 1 − 1 1 − 1 1 − 1 1 − 1 − 1 1 ] , ∣ det X 2 ∣ = 8 X_2 = \begin{bmatrix}1&-1&-1&-1\\1&1&-1&-1\\1&-1&1&-1\\1&-1&-1&1\end{bmatrix},
\qquad
\lvert\det X_2\rvert = 8 X 2 = ⎣ ⎡ 1 1 1 1 − 1 1 − 1 − 1 − 1 − 1 1 − 1 − 1 − 1 − 1 1 ⎦ ⎤ , ∣ det X 2 ∣ = 8 (73) 의 값을 보려면 1행을 나머지에서 빼면 된다. ( 0 , 2 , 0 , 0 ) (0,2,0,0) ( 0 , 2 , 0 , 0 ) , ( 0 , 0 , 2 , 0 ) (0,0,2,0) ( 0 , 0 , 2 , 0 ) ,
( 0 , 0 , 0 , 2 ) (0,0,0,2) ( 0 , 0 , 0 , 2 ) 가 되어 행렬식이 1 × 2 3 = 8 1 \times 2^3 = 8 1 × 2 3 = 8 이다.
선택 3 — 냉각을 네 번 다 "높음"으로 둔다
∣ det X 3 ∣ = 0 \lvert\det X_3\rvert = 0 ∣ det X 3 ∣ = 0 (74) 의 값이 0인 이유가 명확하다. 냉각 열이 상수항 열과 똑같다.
열이 종속이므로 냉각 효과와 전체 평균을 갈라낼 수 없다.
선택 ∣ det X ∣ \lvert\det X\rvert ∣ det X ∣ det ( X T X ) \det(X^{\mathsf T}X) det ( X T X ) 판정 1 16 \mathbf{16} 16 256 \mathbf{256} 256 최선 2 8 64 부피가 절반 3 0 0 못 잰다
∣ det X ∣ \lvert\det X\rvert ∣ det X ∣ 가 왜 좋고 나쁨을 정하는가. L20에서 행렬식이 부피였다.
X X X 의 행들이 만드는 부피가 클수록 네 점이 서로 멀리 떨어져 있다 는 뜻이고,
그만큼 효과를 또렷이 가를 수 있다.
선택 1이 4차 하다마르 상한 16을 정확히 달성한다. 성분이 ± 1 \pm1 ± 1 인 4 × 4 4\times4 4 × 4 행렬이
가질 수 있는 최대 행렬식이 4 4 / 2 = 16 4^{4/2} = 16 4 4/2 = 16 이고, 그것은 열이 직교일 때만 나온다.
빠지기 쉬운 곳 — 선택 3은 실험을 아무리 반복해도 못 고친다. 자료의 양이
아니라 자료의 방향 문제 다. 상황 에서 본 것과 같은 이야기다.
회수 : L09 독립 · L16 최소제곱 · L18 행렬식 · L20 부피
40. 이론에 어긋난 추정표를 가장 덜 고치기 ★★★
수요 반응을 추정해 아홉 칸 표를 얻었다.
M = [ − 0.4 0.1 0.3 0.1 − 0.4 0.1 − 0.1 0.1 − 0.4 ] M = \begin{bmatrix}-0.4&0.1&0.3\\0.1&-0.4&0.1\\-0.1&0.1&-0.4\end{bmatrix} M = ⎣ ⎡ − 0.4 0.1 − 0.1 0.1 − 0.4 0.1 0.3 0.1 − 0.4 ⎦ ⎤ 이론은 이 표가 대칭이어야 한다 고 말한다. 1번 값이 3번 수요에 주는 영향과
3번 값이 1번 수요에 주는 영향이 같아야 한다는 것이다.
그런데 추정치는 +0.3 과 -0.1 로 다르다. 표본 잡음 때문이다.
연구자가 묻는다. “이론에 맞게 고치되 자료에서 가장 적게 벗어나려면
어떻게 고쳐야 합니까.”
세우기 아홉 칸을 R 9 \R^9 R 9 의 한 점 으로 보라. 그러면 "이론에 맞는 표들"은
무엇이고, "가장 적게 고친다"는 무슨 뜻인가.
사다리 이 문제에서 ① 세로로 세울 것 고친 표 S S S , 아홉 칸 ② 이미 아는 수 추정표 M M M ③ 규칙 한 줄 대칭 조건 세 줄 (s 12 = s 21 s_{12}=s_{21} s 12 = s 21 등) ④ 어느 상자 상자 3 ⑤ 선대가 답하지 않는 것 왜 프로베니우스 노름인가. 칸마다 정밀도가 다르면 가중해야 한다
행렬도 벡터다. 아홉 칸을 R 9 \R^9 R 9 의 점으로 보고 내적을 이렇게 정한다.
⟨ X , Y ⟩ = tr ( X T Y ) = ∑ i , j X i j Y i j \langle X, Y\rangle = \tr(X^{\mathsf T}Y) = \sum_{i,j}X_{ij}Y_{ij} ⟨ X , Y ⟩ = tr ( X T Y ) = i , j ∑ X ij Y ij (76) 의 내적이 그냥 성분끼리 곱해 더한 것이다. 행렬을 길게 편 벡터의
보통 내적 이다.
이제 R 9 \R^9 R 9 이 두 조각으로 갈린다.
{ X : X = X T } ⏟ 6 차원 ⊕ { X : X = − X T } ⏟ 3 차원 = R 9 \underbrace{\{X : X = X^{\mathsf T}\}}_{6\text{차원}}
\ \oplus\
\underbrace{\{X : X = -X^{\mathsf T}\}}_{3\text{차원}}
= \R^{9} 6 차원 { X : X = X T } ⊕ 3 차원 { X : X = − X T } = R 9 (77) 의 두 부분공간이 서로 직교 다. 대칭행렬 S S S 와 반대칭행렬 K K K 에 대해
⟨ S , K ⟩ = tr ( S T K ) = tr ( S K ) \langle S,K\rangle = \tr(S^{\mathsf T}K) = \tr(SK) ⟨ S , K ⟩ = tr ( S T K ) = tr ( S K ) 인데, 이 값은 전치를 취하면
부호가 뒤집혀 자기 자신의 음수가 되므로 0이다.
그러면 가장 가까운 대칭행렬은 직교사영 이다.
S = M + M T 2 = [ − 0.4 0.1 0.1 0.1 − 0.4 0.1 0.1 0.1 − 0.4 ] S = \frac{M + M^{\mathsf T}}{2}
= \begin{bmatrix}-0.4&0.1&0.1\\0.1&-0.4&0.1\\0.1&0.1&-0.4\end{bmatrix} S = 2 M + M T = ⎣ ⎡ − 0.4 0.1 0.1 0.1 − 0.4 0.1 0.1 0.1 − 0.4 ⎦ ⎤ 버려지는 조각은 반대칭 부분이다.
K = M − M T 2 : ( 1 , 3 ) 에 0.2 , ( 3 , 1 ) 에 − 0.2 , 나머지 0 K = \frac{M - M^{\mathsf T}}{2}
\quad\text{: } (1,3)\text{ 에 } 0.2,\ (3,1)\text{ 에 } -0.2,\ \text{나머지 } 0 K = 2 M − M T : ( 1 , 3 ) 에 0.2 , ( 3 , 1 ) 에 − 0.2 , 나머지 0 (78) 의 표와 (79) 에서 +0.3 과 -0.1 의 평균 0.1 을 양쪽에
넣고, 차이의 절반 0.2 를 버린 것이다.
피타고라스가 성립한다.
∥ M ∥ 2 = ∥ S ∥ 2 + ∥ K ∥ 2 ⟺ 0.62 = 0.54 + 0.08 \lVert M\rVert^2 = \lVert S\rVert^2 + \lVert K\rVert^2
\qquad\Longleftrightarrow\qquad
0.62 = 0.54 + 0.08 ∥ M ∥ 2 = ∥ S ∥ 2 + ∥ K ∥ 2 ⟺ 0.62 = 0.54 + 0.08 Figure 5: 왼쪽이 추정표, 가운데가 남긴 것, 오른쪽이 버린 것이다. 버린 조각이
남긴 것과 직교 하기 때문에 이것이 가장 적게 고친 결과다.
고친 표가 이론의 다른 조건도 만족하는가. 고윳값을 보면 − 0.2 , − 0.5 , − 0.5 -0.2, -0.5, -0.5 − 0.2 , − 0.5 , − 0.5 로
전부 음수다. 음의 정부호 이므로 "값이 오르면 수요가 준다"는 조건도 맞는다.
운이 좋았다 — 대칭으로 고친다고 정부호까지 따라오는 것은 아니다.
빠지기 쉬운 곳 — (76) 의 내적은 아홉 칸을 똑같이 중요하게 본다.
어떤 칸은 표본이 많아 정밀하고 어떤 칸은 아니라면, 가중 내적을 써야 하고
그러면 사영도 달라진다. 다섯째 칸에 적을 것이 이것이다.
회수 : L11 행렬공간 · L15 투영 · L25 대칭 · L27 정부호
41. "통제한다"는 말이 자료에 하는 일 ★★☆
상황 의 네 분기 자료를 다시 쓴다. 광고비 편차가 − 3 , − 1 , 1 , 3 -3,-1,1,3 − 3 , − 1 , 1 , 3 ,
가격 편차가 − 1 , − 1 , 1 , 1 -1,-1,1,1 − 1 , − 1 , 1 , 1 , 매출 편차가 − 6 , − 4 , 2 , 8 -6,-4,2,8 − 6 , − 4 , 2 , 8 이었다.
보고서에 두 숫자가 나란히 적혀 있다. “광고비만 놓고 보면 1천만원당 2.4억원,
가격을 통제하면 2.0억원.”
팀장이 묻는다. “'통제한다’는 게 자료에 정확히 무슨 짓을 하는 겁니까.
그리고 왜 2.4가 2.0으로 내려갑니까.”
세우기 다중회귀를 한 번에 푸는 대신 두 단계로 쪼개 보라.
그러면 "통제"가 눈에 보인다.
사다리 이 문제에서 ① 세로로 세울 것 두 계수 ② 이미 아는 수 매출 편차 ③ 규칙 한 줄 분기 하나마다 한 줄, 네 줄 ④ 어느 상자 상자 3 ⑤ 선대가 답하지 않는 것 통제해도 인과는 안 나온다. 빠진 변수가 또 있을 수 있다
먼저 답부터. X T X = [ 20 8 8 4 ] X^{\mathsf T}X = \begin{bmatrix}20&8\\8&4\end{bmatrix} X T X = [ 20 8 8 4 ] 이고
X T y = ( 48 , 20 ) X^{\mathsf T}\vv{y} = (48, 20) X T y = ( 48 , 20 ) 이므로
β = 1 16 [ 4 − 8 − 8 20 ] [ 48 20 ] = 1 16 ( 192 − 160 , − 384 + 400 ) = ( 2 , 1 ) \vv{\beta} = \frac{1}{16}\begin{bmatrix}4&-8\\-8&20\end{bmatrix}\begin{bmatrix}48\\20\end{bmatrix}
= \frac{1}{16}(192-160,\ -384+400) = (2,\ 1) β = 16 1 [ 4 − 8 − 8 20 ] [ 48 20 ] = 16 1 ( 192 − 160 , − 384 + 400 ) = ( 2 , 1 ) 이고 단순회귀는 x 1 T y / x 1 T x 1 = 48 / 20 = 2.4 \vv{x}_1^{\mathsf T}\vv{y}/\vv{x}_1^{\mathsf T}\vv{x}_1 = 48/20 = 2.4 x 1 T y / x 1 T x 1 = 48/20 = 2.4 다.
이제 두 단계로 쪼갠다. 이것이 FWL 정리다.
1단계. 광고비에서 가격으로 설명되는 부분을 뺀다.
x ~ 1 = x 1 − x 1 T x 2 x 2 T x 2 x 2 = ( − 3 , − 1 , 1 , 3 ) − 8 4 ( − 1 , − 1 , 1 , 1 ) = ( − 1 , 1 , − 1 , 1 ) \tilde{\vv{x}}_1 = \vv{x}_1 - \frac{\vv{x}_1^{\mathsf T}\vv{x}_2}{\vv{x}_2^{\mathsf T}\vv{x}_2}\vv{x}_2
= (-3,-1,1,3) - \frac{8}{4}(-1,-1,1,1) = (-1,\ 1,\ -1,\ 1) x ~ 1 = x 1 − x 2 T x 2 x 1 T x 2 x 2 = ( − 3 , − 1 , 1 , 3 ) − 4 8 ( − 1 , − 1 , 1 , 1 ) = ( − 1 , 1 , − 1 , 1 ) (82) 의 잔차가 가격으로 설명되지 않는 광고비 다. 이것이 통제의 실체다.
2단계. 그 잔차로 매출을 잰다.
x ~ 1 T y x ~ 1 T x ~ 1 = 6 + ( − 4 ) + ( − 2 ) + 8 4 = 8 4 = 2.0 \frac{\tilde{\vv{x}}_1^{\mathsf T}\vv{y}}{\tilde{\vv{x}}_1^{\mathsf T}\tilde{\vv{x}}_1}
= \frac{6+(-4)+(-2)+8}{4} = \frac{8}{4} = 2.0 x ~ 1 T x ~ 1 x ~ 1 T y = 4 6 + ( − 4 ) + ( − 2 ) + 8 = 4 8 = 2.0 (83) 의 값이 (81) 의 첫 성분과 정확히 같다.
한 번에 푼 것과 두 단계로 쪼갠 것이 같은 답을 준다.
"가격을 통제한다"는 말은 광고비 벡터에서 가격 벡터 방향을 사영해 빼는 것 이다.
남은 것으로만 매출을 잰다.
L15의 투영이 여기서 통계학 용어로 나타난 것이고, 두 언어가 정확히 같은 것을 가리킨다.
왜 2.4가 2.0으로 내려가는가. 차이를 분해하면
2.4 = 2.0 ⏟ 광고비의 몫 + 1.0 ⏟ 가격 계수 × 0.4 ⏟ x 1 T x 2 / x 1 T x 1 2.4 = \underbrace{2.0}_{\text{광고비의 몫}} + \underbrace{1.0}_{\text{가격 계수}}\times\underbrace{0.4}_{\vv{x}_1^{\mathsf T}\vv{x}_2/\vv{x}_1^{\mathsf T}\vv{x}_1} 2.4 = 광고비의 몫 2.0 + 가격 계수 1.0 × x 1 T x 2 / x 1 T x 1 0.4 (84) 의 0.4 는 가격을 광고비에 회귀했을 때의 기울기 다.
광고를 늘린 분기에 가격도 올렸으므로, 단순회귀의 2.4에는 가격의 몫이 섞여 있었다.
이것이 누락변수 편의 다. 편의의 크기는 (빠진 변수의 계수) × (두 변수의 관계)다.
검산. 잔차 e = ( 1 , − 1 , − 1 , 1 ) \vv{e} = (1,-1,-1,1) e = ( 1 , − 1 , − 1 , 1 ) 이 두 설명변수와 내적이 0이고,
피타고라스가 정수로 맞는다. y T y = 120 \vv{y}^{\mathsf T}\vv{y} = 120 y T y = 120 , 적합값 제곱합 116,
잔차 제곱합 4, R 2 = 116 / 120 = 29 / 30 R^2 = 116/120 = 29/30 R 2 = 116/120 = 29/30 .
회수 : L14 직교 · L15 투영 · L16 최소제곱
42. 두 공장을 한 덩어리로 놓으면 부호가 뒤집힌다 ★★☆
두 공장의 작업자 자료를 모았다. 경력(년)과 시간당 생산량이다.
가 공장: (1년, 10개), (2년, 11개), (3년, 12개)
나 공장: (5년, 4개), (6년, 5개), (7년, 6개)
인사팀이 여섯 점을 한꺼번에 놓고 직선을 그었더니 기울기가 음수 로 나왔다.
"경력이 쌓일수록 생산량이 준다"는 결론이 보고서에 실렸다.
현장 반장이 펄쩍 뛴다. “우리 공장에서는 경력이 쌓이면 분명히 늡니다.”
둘 다 자료를 옳게 계산했다.
세우기 여섯 점을 한꺼번에 놓은 것이 문제다.
공장 구분을 계에 넣으려면 무엇을 미지수로 더해야 하는가.
사다리 이 문제에서 ① 세로로 세울 것 기울기 하나 그리고 공장별 절편 둘 , 셋 ② 이미 아는 수 생산량 여섯 ③ 규칙 한 줄 작업자 하나마다 한 줄, 여섯 줄 ④ 어느 상자 상자 3 ⑤ 선대가 답하지 않는 것 공장이 왜 다른지. 설비인지 제품인지는 자료가 말 안 한다
통합 회귀부터. 전체 평균 ( 4 , 8 ) (4, 8) ( 4 , 8 ) 을 빼면
x c = ( − 3 , − 2 , − 1 , 1 , 2 , 3 ) \vv{x}_c = (-3,-2,-1,1,2,3) x c = ( − 3 , − 2 , − 1 , 1 , 2 , 3 ) , y c = ( 2 , 3 , 4 , − 4 , − 3 , − 2 ) \vv{y}_c = (2,3,4,-4,-3,-2) y c = ( 2 , 3 , 4 , − 4 , − 3 , − 2 ) 이고
기울기 = x c T y c x c T x c = − 32 28 = − 8 7 = − 1.143 \text{기울기} = \frac{\vv{x}_c^{\mathsf T}\vv{y}_c}{\vv{x}_c^{\mathsf T}\vv{x}_c}
= \frac{-32}{28} = -\frac87 = -1.143 기울기 = x c T x c x c T y c = 28 − 32 = − 7 8 = − 1.143 이다. (85) 의 기울기가 인사팀의 답이다. 계산은 맞다.
공장 더미를 넣는다. D D D 를 6 × 2 6\times2 6 × 2 공장 표시 행렬로 두고
y = x β + D α + u \vv{y} = \vv{x}\beta + D\vv{\alpha} + \vv{u} y = x β + D α + u 를 푼다.
D T D = diag ( 3 , 3 ) D^{\mathsf T}D = \operatorname{diag}(3,3) D T D = diag ( 3 , 3 ) 이므로 사영을 지우는 행렬이
M D = I − D ( D T D ) − 1 D T M_D = I - D(D^{\mathsf T}D)^{-1}D^{\mathsf T} M D = I − D ( D T D ) − 1 D T 이고, (86) 의 행렬이 블록대각이라 각 블록이 I 3 − 1 3 J 3 I_3 - \frac13 J_3 I 3 − 3 1 J 3 다.
곧 각 공장 안에서 평균을 빼는 것 이다. 계산할 필요도 없이 뜻이 읽힌다.
M D M_D M D 를 씌우고 기울기를 재면
β = ( M D x ) T ( M D y ) ( M D x ) T ( M D x ) = + 1 \beta = \frac{(M_D\vv{x})^{\mathsf T}(M_D\vv{y})}{(M_D\vv{x})^{\mathsf T}(M_D\vv{x})} = +1 β = ( M D x ) T ( M D x ) ( M D x ) T ( M D y ) = + 1 이다. (87) 에서 부호가 뒤집혔다. 공장별 절편은 가 공장 9,
나 공장 -1 이다.
Figure 6: 왼쪽이 인사팀의 그림이고 오른쪽이 반장의 그림이다. 같은 여섯 점이다.
두 덩어리의 높이 차이가 통합 직선을 아래로 끌어내렸다.
검산. 가 공장 2년차 예측이 9 + 1 ( 2 ) = 11 9 + 1(2) = 11 9 + 1 ( 2 ) = 11 로 실제와 같고, 나 공장 2년차가
− 1 + 1 ( 6 ) = 5 -1 + 1(6) = 5 − 1 + 1 ( 6 ) = 5 로 역시 같다. 잔차가 전부 0 이므로 각 공장 안에서 세 점이
정확히 한 직선 위에 있다. rank M D = 6 − 2 = 4 \rank M_D = 6 - 2 = 4 rank M D = 6 − 2 = 4 다.
무엇이 벌어진 것인가. 나 공장은 경력이 많은데 생산량이 낮다. 공장 자체가
다르기 때문이다(설비가 낡았든 제품이 어렵든). 그 차이를 모형에 넣지 않으면
공장 차이가 경력 효과로 잘못 읽힌다.
빠지기 쉬운 곳 — 반대 방향의 실수도 있다. 공장 더미를 넣으면 공장 사이의
정보를 통째로 버린다. 만약 "경력이 많은 사람이 좋은 공장으로 옮겨간다"가
알고 싶은 것이었다면, 더미를 넣는 순간 그 답을 못 보게 된다.
통제할 것과 안 할 것을 정하는 일은 자료가 아니라 물음이 정한다.
회수 : L10 네 부분공간 · L11 랭크 · L15 투영 · L16 최소제곱
43. 뒤집을 수 없는 표를 랭크를 낮춰 다시 짓기 ★★☆
자산 셋의 공분산을 추정해야 하는데 관측이 몇 달치뿐이라 표를 그대로 쓰면
뒤집을 수 없다.
분석가가 다른 길을 택했다. “셋이 모두 하나의 공통 요인에 반응한다고 보고,
반응 정도만 추정하자.” 반응 정도가 b = ( 1 , 2 , 3 ) \vv{b} = (1,2,3) b = ( 1 , 2 , 3 ) 으로 나왔고, 요인 자체의
분산은 1, 나머지 개별 잡음은 각각 1이다.
표를 직접 추정하는 대신 세 숫자로 표를 만든 것이다.
세우기 아홉 칸을 세 숫자로 줄였다. 그 대가로 무엇을 잃고 무엇을 얻는가.
사다리 이 문제에서 ① 세로로 세울 것 최소분산 비중 w \vv{w} w , 셋 ② 이미 아는 수 요인 반응 b \vv{b} b 와 잡음 분산 ③ 규칙 한 줄 합이 1, 한 줄 ④ 어느 상자 상자 5 (그리고 기준을 정하면 1) ⑤ 선대가 답하지 않는 것 요인이 정말 하나뿐인지. 둘이면 이 표가 틀린다
요인모형으로 공분산을 짓는다.
Σ = b b T + D = [ 2 2 3 2 5 6 3 6 10 ] , D = I \Sigma = \vv{b}\vv{b}^{\mathsf T} + D
= \begin{bmatrix}2&2&3\\2&5&6\\3&6&10\end{bmatrix},
\qquad
D = I Σ = b b T + D = ⎣ ⎡ 2 2 3 2 5 6 3 6 10 ⎦ ⎤ , D = I (88) 의 b b T \vv{b}\vv{b}^{\mathsf T} b b T 가 랭크 1 이다(L11).
0이 아닌 고윳값이 b T b = 14 \vv{b}^{\mathsf T}\vv{b} = 14 b T b = 14 하나뿐이므로
고윳값 ( Σ ) = 15 , 1 , 1 \text{고윳값}(\Sigma) = 15,\ 1,\ 1 고윳값 ( Σ ) = 15 , 1 , 1 이다. (89) 에서 큰 것 하나와 작은 것 둘 로 갈린다.
큰 쪽이 공통 요인, 작은 쪽이 개별 잡음이다. 보강 1의 주성분 이야기와 같은 그림이다.
역행렬도 닫힌 꼴로 나온다. 셔먼-모리슨을 쓰면
Σ − 1 = I − b b T 1 + b T b = I − b b T 15 \Sigma^{-1} = I - \frac{\vv{b}\vv{b}^{\mathsf T}}{1 + \vv{b}^{\mathsf T}\vv{b}}
= I - \frac{\vv{b}\vv{b}^{\mathsf T}}{15} Σ − 1 = I − 1 + b T b b b T = I − 15 b b T 이다. (90) 에서 3 × 3 3\times3 3 × 3 소거를 한 번도 안 했다.
아홉 칸을 세 숫자로 줄인 대가가 여기서 돌아온다.
(53) 의 공식에 넣으면
Σ − 1 1 = 1 − b ( b T 1 ) 15 = ( 1 , 1 , 1 ) − ( 1 , 2 , 3 ) 6 15 = ( 0.6 , 0.2 , − 0.2 ) \Sigma^{-1}\vv{1} = \vv{1} - \frac{\vv{b}(\vv{b}^{\mathsf T}\vv{1})}{15}
= (1,1,1) - (1,2,3)\frac{6}{15} = (0.6,\ 0.2,\ -0.2) Σ − 1 1 = 1 − 15 b ( b T 1 ) = ( 1 , 1 , 1 ) − ( 1 , 2 , 3 ) 15 6 = ( 0.6 , 0.2 , − 0.2 ) 이고 성분합이 0.6 이므로
w = ( 1 , 1 3 , − 1 3 ) , w T Σ w = 5 3 \vv{w} = \left(1,\ \tfrac13,\ -\tfrac13\right),
\qquad
\vv{w}^{\mathsf T}\Sigma\vv{w} = \tfrac53 w = ( 1 , 3 1 , − 3 1 ) , w T Σ w = 3 5 이다. (92) 의 셋째 성분이 음수다. 3번 자산을 공매도한다.
왜 그런가. 3번이 요인에 가장 세게 반응하므로(b 3 = 3 b_3 = 3 b 3 = 3 ), 그것을 팔아
포트폴리오 전체의 요인 노출을 줄인다. 실제로
w T b = 1 + 2 3 − 1 = 2 3 \vv{w}^{\mathsf T}\vv{b} = 1 + \tfrac23 - 1 = \tfrac23 w T b = 1 + 3 2 − 1 = 3 2 로 (93) 의 값이 개별 반응 1 , 2 , 3 1, 2, 3 1 , 2 , 3 어느 것보다도 작다.
검산이 예쁘다. 분산을 요인 몫과 잡음 몫으로 쪼개면
w T Σ w = ( w T b ) 2 + w T w = 4 9 + 11 9 = 15 9 = 5 3 \vv{w}^{\mathsf T}\Sigma\vv{w} = (\vv{w}^{\mathsf T}\vv{b})^2 + \vv{w}^{\mathsf T}\vv{w}
= \tfrac49 + \tfrac{11}{9} = \tfrac{15}{9} = \tfrac53 w T Σ w = ( w T b ) 2 + w T w = 9 4 + 9 11 = 9 15 = 3 5 로 (94) 의 등식이 맞는다.
빠지기 쉬운 곳 — 요인이 하나라는 가정이 틀리면 이 표 전체가 틀린다.
표를 못 뒤집는 문제를 구조를 가정해 푼 것이고, 그 가정이 새 위험이다.
자유도를 9에서 3으로 줄인 대가다.
회수 : L11 랭크 1 · L21 고윳값 · L25 대칭 · L29 SVD · L35 주성분
44. 미지수가 숫자가 아니라 회전이다 ★★☆
부품을 측정기에 올려 네 지점의 좌표를 쟀다. 도면상 네 지점은 중심에서
( 2 , 0 ) (2,0) ( 2 , 0 ) , ( 0 , 1 ) (0,1) ( 0 , 1 ) , ( − 2 , 0 ) (-2,0) ( − 2 , 0 ) , ( 0 , − 1 ) (0,-1) ( 0 , − 1 ) 만큼 떨어져 있다(10mm 단위).
측정값은 ( 1.2 , 1.6 ) (1.2, 1.6) ( 1.2 , 1.6 ) , ( − 0.8 , 0.6 ) (-0.8, 0.6) ( − 0.8 , 0.6 ) , ( − 1.2 , − 1.6 ) (-1.2, -1.6) ( − 1.2 , − 1.6 ) , ( 0.8 , − 0.6 ) (0.8, -0.6) ( 0.8 , − 0.6 ) 이었다.
부품이 비뚤게 놓여 있다. 검사원이 묻는다. “몇 도 돌려 놓고 비교해야 합니까.”
숫자 하나를 찾는 문제 같은데, 각도로 두고 풀면 사인과 코사인이 섞여 복잡하다.
세우기 각도를 미지수로 두면 비선형이 된다.
대신 무엇을 미지수로 두면 다룰 수 있는가.
사다리 이 문제에서 ① 세로로 세울 것 각도가 아니라 회전행렬 R R R 자체 ② 이미 아는 수 도면 좌표와 측정 좌표 ③ 규칙 한 줄 점 하나마다 두 줄, 여덟 줄. 미지수는 넷인데 제약이 붙는다 ④ 어느 상자 상자 3 + 상자 5 ⑤ 선대가 답하지 않는 것 부품이 늘어났거나 뒤집혔을 가능성. 회전만 허용했다
각도 θ \theta θ 를 미지수로 두면 cos θ \cos\theta cos θ , sin θ \sin\theta sin θ 가 섞여 1차가 아니다.
행렬 R R R 전체를 미지수로 올리고, 대신 조건을 붙인다.
min R ∥ A R T − B ∥ F 2 subject to R T R = I \min_{R}\ \lVert AR^{\mathsf T} - B\rVert_F^2
\qquad\text{subject to}\qquad
R^{\mathsf T}R = I R min ∥ A R T − B ∥ F 2 subject to R T R = I (95) 에서 A A A 의 행이 도면 점, B B B 의 행이 측정 점이다.
점을 행 에 쌓았으므로 회전은 a i ↦ R a i \vv{a}_i \mapsto R\vv{a}_i a i ↦ R a i 이고 행렬로는
A R T AR^{\mathsf T} A R T 다. 점을 열 에 쌓았다면 그냥 R A RA R A 다.
전치를 한 번 빠뜨리면 답이 R R R 대신 R T R^{\mathsf T} R T 로 나온다. 곧 반대 방향으로
같은 각도만큼 돌린 답이다. 실제로 실습에서 재 보면
∥ A R − B ∥ F 2 = 25.6 \lVert AR - B\rVert_F^2 = 25.6 ∥ A R − B ∥ F 2 = 25.6 이고 ∥ A R T − B ∥ F 2 = 0 \lVert AR^{\mathsf T} - B\rVert_F^2 = 0 ∥ A R T − B ∥ F 2 = 0 이다.
목적함수를 펼쳐 보자.
∥ A R T − B ∥ F 2 = ∥ A R T ∥ F 2 − 2 tr ( R A T B ) + ∥ B ∥ F 2 \lVert AR^{\mathsf T} - B\rVert_F^2
= \lVert AR^{\mathsf T}\rVert_F^2 - 2\tr\!\left(R A^{\mathsf T}B\right) + \lVert B\rVert_F^2 ∥ A R T − B ∥ F 2 = ∥ A R T ∥ F 2 − 2 tr ( R A T B ) + ∥ B ∥ F 2 (96) 의 첫 항은 회전이 길이를 안 바꾸므로
∥ A R T ∥ F 2 = ∥ A ∥ F 2 \lVert AR^{\mathsf T}\rVert_F^2 = \lVert A\rVert_F^2 ∥ A R T ∥ F 2 = ∥ A ∥ F 2 이고, 셋째 항도 R R R 과 무관하다.
R R R 이 들어 있는 것은 가운데 항뿐이고 앞에 -2 가 붙어 있다.
그러니 최소화가 최대화로 바뀐다.
max R T R = I tr ( R T M ) , M = ∑ i b i a i T = [ 4.8 − 1.6 6.4 1.2 ] \max_{R^{\mathsf T}R=I}\ \tr\!\left(R^{\mathsf T}M\right),
\qquad
M = \sum_i \vv{b}_i\vv{a}_i^{\mathsf T} = \begin{bmatrix}4.8&-1.6\\6.4&1.2\end{bmatrix} R T R = I max tr ( R T M ) , M = i ∑ b i a i T = [ 4.8 6.4 − 1.6 1.2 ] (97) 의 M M M 을 SVD 하면 답이 바로 나온다.
M = U Σ V T , σ = ( 8 , 2 ) , V = I , U = [ 0.6 − 0.8 0.8 0.6 ] M = U\Sigma V^{\mathsf T},
\qquad
\sigma = (8,\ 2),
\qquad
V = I,
\qquad
U = \begin{bmatrix}0.6&-0.8\\0.8&0.6\end{bmatrix} M = U Σ V T , σ = ( 8 , 2 ) , V = I , U = [ 0.6 0.8 − 0.8 0.6 ] (98) 에서 최적 회전이 R = U V T R = UV^{\mathsf T} R = U V T 다.
R = [ 0.6 − 0.8 0.8 0.6 ] , θ = arccos ( 0.6 ) ≈ 53.1 3 ∘ R = \begin{bmatrix}0.6&-0.8\\0.8&0.6\end{bmatrix},
\qquad
\theta = \arccos(0.6) \approx 53.13^{\circ} R = [ 0.6 0.8 − 0.8 0.6 ] , θ = arccos ( 0.6 ) ≈ 53.1 3 ∘ 검산. R a 1 = ( 1.2 , 1.6 ) = b 1 R\vv{a}_1 = (1.2, 1.6) = \vv{b}_1 R a 1 = ( 1.2 , 1.6 ) = b 1 이고 나머지 셋도 정확히 맞는다.
잔차가 0 이다. 부품은 멀쩡하고 그냥 비뚤게 놓였을 뿐이었다.
왜 SVD 가 답을 주는가. tr ( R T U Σ V T ) = tr ( V T R T U Σ ) \tr(R^{\mathsf T}U\Sigma V^{\mathsf T}) = \tr(V^{\mathsf T}R^{\mathsf T}U\Sigma) tr ( R T U Σ V T ) = tr ( V T R T U Σ )
이고, Z = V T R T U Z = V^{\mathsf T}R^{\mathsf T}U Z = V T R T U 도 직교행렬이라 대각 성분이 1을 넘을 수 없다. 그러니 tr ( Z Σ ) ≤ σ 1 + σ 2 \tr(Z\Sigma) \le \sigma_1 + \sigma_2 tr ( Z Σ ) ≤ σ 1 + σ 2 이고
등호는 Z = I Z = I Z = I , 곧 R = U V T R = UV^{\mathsf T} R = U V T 일 때다.
빠지기 쉬운 곳 — det R = − 1 \det R = -1 det R = − 1 이 나오면 회전이 아니라 반사 다.
부품을 뒤집어야 맞는다는 뜻이고, 대개는 측정을 잘못한 것이다.
막으려면 U U U 의 마지막 열 부호를 뒤집어 det = + 1 \det = +1 det = + 1 을 강제한다.
회수 : L16 최소제곱 · L17 직교행렬 · L29 SVD · L30 선형변환 · L34 다섯 분해
코다 · 표시가 없다 ¶ 앞의 스물처럼 위치가 답을 알려주지 않는다.
45. ★★☆
품질관리팀이 세 공정의 불량률을 매주 재고 있다. 세 공정이 서로 영향을 주고받아서,
한 공정 불량률이 오르면 다음 주에 다른 공정도 따라 오른다.
지난 자료로 주간 변화 규칙을 추정했더니 이렇게 나왔다.
A = [ 0.2 0.4 0.3 0.1 ] A = \begin{bmatrix}0.2&0.4\\0.3&0.1\end{bmatrix} A = [ 0.2 0.3 0.4 0.1 ] (두 공정만 남겼다.) 팀장이 묻는다. “이대로 두면 불량률이 발산합니까,
아니면 어딘가에 정착합니까.” 그리고 하나 더. “정착한다면 어느 공정 탓이
제일 큽니까. ”
사다리 이 문제에서 ① 세로로 세울 것 정착 상태, 그리고 “탓의 크기” ② 이미 아는 수 변화 규칙 A A A ③ 규칙 한 줄 x = A x + d \vv{x} = A\vv{x} + \vv{d} x = A x + d ④ 어느 상자 상자 4 ⑤ 선대가 답하지 않는 것 추정한 A A A 의 오차. 0.5 근처면 판정이 뒤집힐 수 있다
수렴하는지부터 본다. 대각합이 0.3, 행렬식이 0.02 − 0.12 = − 0.1 0.02 - 0.12 = -0.1 0.02 − 0.12 = − 0.1 이므로
특성방정식이 λ 2 − 0.3 λ − 0.1 = 0 \lambda^2 - 0.3\lambda - 0.1 = 0 λ 2 − 0.3 λ − 0.1 = 0 이고
λ = 0.5 , − 0.2 ⟹ ρ ( A ) = 0.5 < 1 \lambda = 0.5,\quad -0.2
\qquad\Longrightarrow\qquad
\rho(A) = 0.5 < 1 λ = 0.5 , − 0.2 ⟹ ρ ( A ) = 0.5 < 1 이다. (101) 에서 수렴한다. 상황 의 급수 조건 그대로다.
손으로 더 쉽게 보는 법이 있다. 두 열의 합이 각각 0.2 + 0.3 = 0.5 0.2+0.3 = 0.5 0.2 + 0.3 = 0.5 ,
0.4 + 0.1 = 0.5 0.4+0.1 = 0.5 0.4 + 0.1 = 0.5 로 같다. 곧
1 T A = 0.5 1 T \vv{1}^{\mathsf T}A = 0.5\,\vv{1}^{\mathsf T} 1 T A = 0.5 1 T 이므로 (102) 에서 0.5 가 왼쪽 고유벡터 1 \vv{1} 1 에 붙은 고윳값 이다.
상황 에서 열 합 0.8 을 읽은 것과 같다.
이제 총증폭을 잰다. 열 합이 전부 0.5 이므로
1 T ( I − A ) − 1 = 1 1 − 0.5 1 T = 2 1 T \vv{1}^{\mathsf T}(I-A)^{-1} = \frac{1}{1-0.5}\vv{1}^{\mathsf T} = 2\,\vv{1}^{\mathsf T} 1 T ( I − A ) − 1 = 1 − 0.5 1 1 T = 2 1 T 이고, (103) 에서 어느 공정에 충격을 주든 총 파급이 정확히 2배 다.
둘째 물음은 다른 벡터가 답한다. "탓이 크다"를 "정착 상태에서 차지하는 몫이 크다"로
읽으면 오른쪽 고유벡터를 봐야 한다.
A v = 0.5 v ⟹ v = ( 4 , 3 ) A\vv{v} = 0.5\,\vv{v}
\qquad\Longrightarrow\qquad
\vv{v} = (4,\ 3) A v = 0.5 v ⟹ v = ( 4 , 3 ) (104) 에서 1공정이 4 / 7 4/7 4/7 , 2공정이 3 / 7 3/7 3/7 을 차지한다.
왼쪽 1 \vv{1} 1 은 "충격 하나가 전체에 얼마나 퍼지는가"를 답하고,
오른쪽 ( 4 , 3 ) (4,3) ( 4 , 3 ) 은 "정착했을 때 어디에 얼마나 쌓이는가"를 답한다.
A A A 가 대칭이면 둘이 같아지지만, 이 행렬은 대칭이 아니다
(A 12 = 0.4 ≠ 0.3 = A 21 A_{12} = 0.4 \ne 0.3 = A_{21} A 12 = 0.4 = 0.3 = A 21 ). 그래서 두 물음의 답이 다르다.
빠지기 쉬운 곳 — 둘째 고윳값이 -0.2 로 음수 다. 수렴이 한쪽에서 다가가는
것이 아니라 위아래로 진동하며 다가간다. 주마다 오르내리는 것을 보고
"모형이 틀렸다"고 판단하면 안 된다.
회수 : L21 고윳값 · L22 급수 · L24 왼쪽·오른쪽 고유벡터
46. ★★★
주문이 밀려 납기를 맞추기 어렵다. 세 제품의 남은 작업량을 각각 얼마씩 줄일지
정해야 하는데, 총 감축량은 이미 위에서 12로 정해 내려왔다.
생산팀장이 말한다. “어느 제품을 줄이든 고객이 싫어하는 건 마찬가지죠.
셋을 똑같이 4씩 줄입시다. 공평하잖습니까.”
영업팀장이 반대한다. “제품마다 고객 반응이 다릅니다. 1번은 좀 늦어도 참지만
2번과 3번은 바로 항의가 들어옵니다.”
불만의 크기를 재 보니 각각 x 1 2 x_1^2 x 1 2 , 2 x 2 2 2x_2^2 2 x 2 2 , 2 x 3 2 2x_3^2 2 x 3 2 였다.
사다리 이 문제에서 ① 세로로 세울 것 제품별 감축량 셋, 그리고 승수 하나 ② 이미 아는 수 총 감축량 12 ③ 규칙 한 줄 총량 하나 ④ 어느 상자 상자 1 (기준을 정한 뒤) ⑤ 선대가 답하지 않는 것 "불만의 제곱"이 옳은 척도인지. 그건 영업의 판단이다
이것은 문제 36 와 완전히 같은 문제다. 폐수가 주문으로 바뀌었을 뿐이다.
Q = diag ( 2 , 4 , 4 ) , 1 T x = 12 ⟹ x ∗ = ( 6 , 3 , 3 ) Q = \operatorname{diag}(2,\ 4,\ 4),
\qquad
\vv{1}^{\mathsf T}\vv{x} = 12
\qquad\Longrightarrow\qquad
\vv{x}^{*} = (6,\ 3,\ 3) Q = diag ( 2 , 4 , 4 ) , 1 T x = 12 ⟹ x ∗ = ( 6 , 3 , 3 ) (105) 에서 총 불만이 72다. 생산팀장의 균등배분은 80이다.
여기서 볼 것은 답이 아니라 두 팀장의 말이다.
생산팀장의 "공평"은 감축량을 같게 하는 것 이고, 영업팀장의 "공평"은
불만을 같게 하는 것 이다. 후자를 계산해 보면 x 1 2 = 2 x 2 2 = 2 x 3 2 x_1^2 = 2x_2^2 = 2x_3^2 x 1 2 = 2 x 2 2 = 2 x 3 2 에
∑ x i = 12 \sum x_i = 12 ∑ x i = 12 를 걸어 x = ( 12 2 / ( 2 + 2 ) , … ) \vv{x} = (12\sqrt2/(\sqrt2+2),\ \ldots) x = ( 12 2 / ( 2 + 2 ) , … ) 이 되고,
어느 쪽도 ( 6 , 3 , 3 ) (6,3,3) ( 6 , 3 , 3 ) 이 아니다.
( 6 , 3 , 3 ) (6,3,3) ( 6 , 3 , 3 ) 은 셋째 기준, 곧 총 불만을 최소로 하는 것 의 답이다. 그때
한계 불만이 같아진다.
2 x 1 = 4 x 2 = 4 x 3 = 12 2x_1 = 4x_2 = 4x_3 = 12 2 x 1 = 4 x 2 = 4 x 3 = 12 빠지기 쉬운 곳 — 감축량에 상한이 있으면(제품 1의 남은 작업량이 5뿐이라면)
x 1 = 6 x_1 = 6 x 1 = 6 이 불가능하다. 그러면 부등식이 붙어 이차계획이 되고, 답이
( 5 , 3.5 , 3.5 ) (5,\ 3.5,\ 3.5) ( 5 , 3.5 , 3.5 ) 로 바뀐다. 선형계가 낸 답이 실행 가능한지 반드시 확인하자.
회수 : L25 대칭 · L27 정부호 · L07 영공간
이 편의 회수표 ¶ 문제 현실의 말 선형대수의 말 상자 회수 25 결과값도 아직 모른다 v v v 를 미지수에 편입, 3 × 3 3\times3 3 × 3 1 L03 L05 L20 26 등호로 된 줄이 없다 여유변수, ( 5 3 ) \binom53 ( 3 5 ) 기저해 2 L06 L07 L08 L09 27 매번 다시 푸나 B ′ − 1 = E B − 1 B'^{-1}=EB^{-1} B ′ − 1 = E B − 1 1 L02 L03 L04 L07 28 잔업 시급 얼마까지 B T y = c B B^{\mathsf T}\vv{y}=\vv{c}_B B T y = c B 1 L03 L05 L08 L10 29 경로를 다 세야 하나 노드 전위와 축소비용 2 L07 L08 L10 L12 30 왜 하나가 아니라 둘인가 rank T = m + n − 1 \rank T = m+n-1 rank T = m + n − 1 2 L05 L07 L09 L12 31 여섯인데 답이 여럿 dim N ( A ) = 1 \dim N(A)=1 dim N ( A ) = 1 , 이득 배분2 L06 L07 L09 L12 32 셋째 줄을 버려도 되나 J p = 0 J\vv{p}=\vv{0} J p = 0 과 J T p = 0 J^{\mathsf T}\vv{p}=\vv{0} J T p = 0 2 L06 L09 L10 L14 33 옛 표를 살리려면 diag ( r ) Z 0 diag ( s ) \operatorname{diag}(\vv{r})Z_0\operatorname{diag}(\vv{s}) diag ( r ) Z 0 diag ( s ) 2 L03 L05 L09 34 합계만으로 얼마나 아나 영공간 ( m − 1 ) ( n − 1 ) (m-1)(n-1) ( m − 1 ) ( n − 1 ) 2 L06 L07 L09 L10 35 조건이 하나뿐 테두리 계, S − 1 1 S^{-1}\vv{1} S − 1 1 2→1 L03 L08 L25 L27 36 가장 싸게 나누기 KKT, 한계비용 균등 1 L07 L18 L25 L27 37 체증인데 최대인가 Z T H Z Z^{\mathsf T}HZ Z T H Z 축소 헤시안5 L06 L18 L19 L27 38 권고안을 어느 것으로 최소노름 해 3 L07 L08 L09 L33 39 어느 넷을 고를까 ∣ det X ∣ \lvert\det X\rvert ∣ det X ∣ , 하다마르5 L09 L16 L18 L20 40 가장 덜 고치기 대칭 부분공간으로의 사영 3 L11 L15 L25 L27 41 통제한다는 게 뭔가 FWL, 두 번의 잔차화 3 L14 L15 L16 42 부호가 뒤집혔다 M D M_D M D 로 더미를 지운다3 L10 L11 L15 L16 43 못 뒤집는 표 랭크1 + 대각, 셔먼-모리슨 5 L11 L21 L25 L29 L35 44 몇 도 돌릴까 R = U V T R=UV^{\mathsf T} R = U V T 3·5 L16 L17 L29 L30 L34 45 발산하나 정착하나 왼쪽·오른쪽 고유벡터 4 L21 L22 L24 46 공평하게 나누기 세 가지 공평, 세 가지 답 1 L07 L25 L27
경제 12문제, 산업공학 10문제다.
마치며... ¶ 3막에서 없던 미지수를 발명했고 , 4막에서 무엇을 최소로 할지 정했다.
부등호를 등호로 바꾸려면 이름을 붙여야 한다. 노는 시간에 이름을 주는 순간
상황 의 부등식이 A x = b A\vv{x}=\vv{b} A x = b 가 됐고, 꼭짓점이 곧 피벗 열 선택이 됐다.
아직 모르는 결과값도 미지수 자리에 올릴 수 있다. 상황 에서
게임의 값 v v v 를 왼쪽으로 넘기니 그냥 정방계였다.
m + n − 1 m+n-1 m + n − 1 이 세 번 나왔다. 상황 의 수송표, 상황 의 배정,
상황 의 RAS. 전부 결합행렬이라 그렇다.
제약이 답을 고르지 않는다. 상황 , 상황 , 상황 에서
줄이 하나뿐이었고, 답을 정한 것은 우리가 고른 기준이었다.
같은 자료가 반대 결론을 준다. 상황 에서 부호가 뒤집혔다.
무엇을 통제할지는 자료가 아니라 물음이 정한다.
다음 편에서는 마지막 일을 한다. 지금까지 우리가 정한 것들이 틀렸는지를
우리가 재는 법 이다. 5막의 제목이 "의심한다"인 이유가 그것이다.
이번 글의 내용을 파이썬으로 확인해 보려면 보강 4-2 실습 노트북 으로
넘어가면 된다. 스물둘의 답을 전부 검산하고, 기준을 바꿔 가며 답이 어떻게 움직이는지
보고, 전치를 빠뜨렸을 때 회전이 반대로 나오는 것과 자유재를 기준으로 잡았을 때
계가 무너지는 것을 직접 확인할 수 있다.