27

math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap05.pdf · ê(Ê f&_ W99.E< \@&'ÃF8ß y Ê "_ ÷= æ Ê "$ 8ß æ Ê "_ 6y Ê "$ 8ß Ê "_ 6á Ê < \@&'@ê9H ÷= ¤¤(97

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

5.1 행렬 경기와 경기 전략 95

5. 게임이론

비교적 새로운 수학의 분야인 게임 이론(the theory of games)은 주로 상반되

는 이해관계와, 유능한 경기자들에 의해 선택된 “최고”의 전략을 포함하는 이성적인 행

위에 관한 이론이다. 게임 이론은 최근, 실내 게임(브리지, 포커, 체스, tick-tack-toe)과

스포츠 뿐 만 아니라 경제, 정치, 사회, 군사 작전에 관계된 문제들에 폭 넓게 적용되어

지고 있다. 게임의 경기자(player)로는, 경쟁사에 종사하는 상업적 라이벌, 노동 계약에

합의하고자 하는 노조 대표나 경영자, 어떤 정당에게 투표하도록 노력하는 선거 책임

자, 전쟁에서 이기려는 군대의 장군, 혹은 고객에게 최고의 조건을 얻게 해 주려는 소

송 변호사 등등이 될 수 있다. 게임이론은 게임에 참여하는 경기자의 수에 따라 몇 가

지로 분류된다. 한 사람의 경기자를 가진 대자연 게임, 상반된 목적을 가진 두 사람의

경기자가 참여하는 2인 게임, 세 사람 이상이 참여하는 다수 게임 등등이 있다.

2인 게임 이론에서는 정반대의 목적을 가지고 있는 두 명의 경기자가, 각기 자

신들의 최고의 전략을 사용하며 경기를 진행해 나간다. 우리가 이 장에서 다루려고 하

는 2인 경기는, 두 명의 경기자가 서로 상반된 이해관계를 가지고 각각의 지혜와 전략

을 사용하는 경기이다. 많은 2인 경기의 경우, 한 경기자가 일정한 값을 잃으면 다른

사람은 같은 값을 얻게 된다. 이와 같이 두 명의 경기자가 얻을 수 있는 이익의 합이

일정할 때, 이러한 2인 경기를 제로섬(zero-sum) 게임이라 한다. 이러한 2인 게임은 경

우에 따라서는 각자의 이해를 최대한 반영한 결과로 경기가 끝날 수도 있지만, 많은 경

우에는 서로 적절한 타협점을 찾는 것이 상호의 이해에 가장 부합되는 결과를 가져오

기도 한다. 이러한 2인 게임의 전략과 그 결과에 대한 계산을 행렬 연산을 이용하여 쉽

게 할 수 있는 방법에 대해 살펴보자.

5.1 행렬 경기와 경기 전략

두 명의 경기자, R과 C가 하는 제로섬 경기에서, 경기자 R은 R1, R2, …, Rm

같이 m개의 가능한 선택이 있고, 다른 경기자인 C는 C1, C2, …, Cn 중에서 하나를 선

택한다고 가정하자. 이 두 경기자는, 상대방이 무엇을 선택했는지 모르는 상태에서 동

시에, 자신의 선택을 결정하여야 한다. 그러면 두 경기자의 선택은 경기의 규칙에 따라

승리자에게 일정한 분배액(payoff)이 주어진다. 수치 값으로 할당된 분배액은 다음과

같은 m×n 분배행렬(payoff matrix) 혹은 게임행렬(game matrix)로 표현된다.

96 5. 게임이론

player C

A = player R

a 11 a 12 … a 1n

a 21 a 22 … a 2n

‥ ‥a m1 a m2 … a mn

.

행렬의 각 행은 경기자 R이 움직일 수 있는 m개의 가능성들을 보여주고, 반면에 각각

의 열은 n개의 가능성을 가진 C의 선택을 의미한다. 원소 aij는 R이 Ri의 움직임을 선

택하고 C가 Cj의 움직임을 선택할 때의 R의 지급액을 표시한다. 예를 들어, 케이시(C)

는 종이에 숫자 1이나 2 중 하나를 쓰고, 동시에 릭(R) 역시 다른 종이 위에 1이나 2

둘 중 하나를 쓴다. 이때, 릭과 케이시가 종이에 각각 1을 쓴다면 릭은 케이시에 4센트

를 받고, 둘 다 2를 썼다면 8센트를 받는다. 만약 숫자가 같지 않으면, 릭은 케이시에게

5센트를 주어야 한다. 이러한 경우를 분배행렬을 이용하여 표시하면 아래와 같다.

Casey

1 2

A = Rick1 4¢ -5¢

2 -5¢ 8¢

게임 이론에서 생각되는 중요한 질문은 이익을 최대로 만들기를(또는 적어도

손해를 최소로 만들기를) 원하는 경기자들을 위해 최고의 선택(best move)을 어떻게

결정할 것인가 하는 것이다. 이를 알아보기 위해 두 경기자 리키와 카드월이 행하는 게

임의 예를 살펴보자. 두 경기자 모두 이익을 최대화하기를 원한다고 가정하고, 각 경기

자를 위한 가장 좋은 선택과 그 때의 분배액을 결정하고자 한다. 리키가 집합 {1, 2, 3}

중에서 하나의 숫자를 선택한다. 동시에 상대방이 무엇을 선택했는지 알지 못하는 카드

월은 집합 {1, 2, 3, 4}로부터 하나를 선택한다. 그러면 심판이 숫자를 비교해서 아래의

분배행렬(payoff matrix)에 따라 주어진 분배액을 리키에게 지급한다.

Caldwall

1 2 3 4

1 4 2 3 9

A = Ricci 2 5 6 5 7

3 6 8 4 3

만약 카드월이 무엇을 선택할지 미리 알고 있었다면, 리키는 쉽게 결정을 내릴

수 있을 것이고, 최고의 선택을 결정하기 위해 힘들게 전문가의 도움을 찾지 않았을 것

이다. 만약 카드월이 첫 번째나 두 번째 열을 선택한다면, 리키는 아무 어려움 없이 세

번째 행을 선택했을 것이고, 카드월이 세 번째 열을 선택한다면, 리키는 두 번째 행을

선택했을 것이고, 카드월이 네 번째 열을 선택한다면, 리키는 첫 번째 행을 선택했을

것이다. 이러한 각각의 선택은 리키의 상금을 최대로 만들 것이다. 유사하게, 카드월도

5.1 행렬 경기와 경기 전략 97

상대방의 선택을 알았다면 손쉽게 경기를 했을 것이다. 만약 리키가 1행을 선택하면,

카드월은 2열을 선택하고, 리키가 2행을 선택하면 그는 1열과 3열을 선택하고, 리키가

3행을 선택하면 그는 4열을 선택했을 것이다. 이렇게 함으로써, 카드월은 각각의 경우

에 그의 손해를 최소화할 수 있을 것이다. 그러나 불행하게도, 어떤 경기에서도 상대방

은 자신의 것을 보여주지 않으므로, 각각의 경기자들은 상대방의 움직임을 알지 못하는

상태에서 자신의 반응을 생각해야만 한다.

이러한 경우, 각 행의 최소 값과 각 열의 최대 값은 최고의 선택을 위한 결정

을 하는데 있어서 중요한 역할을 한다. 우선, 리키의 관점에서 경기를 생각하자. 만약

첫 번째 행을 선택했다면, 상대방이 어떤 것을 택하는지에 따라서 $4, $2, $3, $9를 각

각 얻을 것이다. 어떤 경우에도 리키는 적어도 첫 번째 행의 최소 값인 $2를 얻을 것

이다. 만약 리키가 두 번째 행을 선택했다면, 카드월이 무엇을 선택하든 적어도 $5를

얻는다. 리키가 세 번째 행을 선택한다면 카드월의 선택에 상관없이 적어도 $3을 얻게

된다. 따라서 리키가 각 행에서 얻을 수 있는 최소량은 다음과 같다. 1행:

min{4,2,3,9}=2, 2행: min{5,6,5,7}=5, 3행: min{6,8,4,3}=3. 명백하게, 리키는 2행을 택할

때 적어도 $5를 얻을 수 있다. 이제는 리키의 선택을 전혀 모르는 카드월의 관점에서

설명하자. 카드월이 잃을 수 있는 최대량은 1열: max{4,5,6}=6, 2열: max{2,6,8}=8, 3열:

max{3,5,4}=5, 4열: max{9,7,3}=9와 같다. 카드월은 최대한 적게 잃는 것에 관심이 있기

때문에 3열을 선택하는 것이 최고의 선택이 될 것이다. 리키는 상대방이 그가 가진 것

보다 더 많이 잃지 않으려고 선택할 수 있는 모든 가능한 방법을 생각하고 있는 것에

상관없이 가능한 많이 확실하게 상금을 얻는 것에 관심이 있다. 그러므로 리키는 2행을

선택하고 반면에 카드월은 3열을 선택한다. 이 선택은 리키가 $5를 얻는 것을 보장한

다. 또한 이것은 이 경기에서 카드월이 잃는 양이기도 한다.

이와 같은 2인 경기에 있어서 자신의 이익을 극대화하거나, 피해를 최소화하기

위해서 각각의 가능성 중에 무엇을 선택할 것인가를 결정하여야 한다. 위의 경우에서

리키와 카드월의 선택은 단순하였으나, 가위-바위-보 경기에서와 같이 한 경기자의 최

선의 선택은 매번 바뀌어야 될 수도 있다. 한 경기자가 가위-바위-보 세 가지 중 늘

하나만을 선택한다면 상대는 쉽게 이 경기자를 이길 수 있게 된다. 따라서 가위-바위-

보를 똑같은 비율로 선택하여야만 한다. 이러한 경우 경기자의 전략(strategy)은 각각

의 가능성을 선택할 확률로만 표시되어질 수 있다. 예를 들어, 경기 행렬(game matrix)

A=

a 11 a 12 … a 1n

a 21 a 22 … a 2n

‥ ‥a m1 a m2 … a mn

가 주어진 경우, R의 전략(strategy)은 m차 행벡터(m-dimensional row vector)

P = (p1 , p2 , … , pm) , pi≥0, i = 1, 2, …, m이고 ∑pi = 1

와 같이 주어진다. 유사하게, 경기자 C에 대한 전략은 n차 열벡터(n-dimensional

column vector)

98 5. 게임이론

Q = (q1 , q2 , … , qn)T, qj≥0, j = 1, 2, …, n이고 ∑qj = 1

와 같이 주어진다. 이것은 경기자 R이 확률 p1을 가지고 1행을, 확률 p2를 가지고 2행

을, 이런 식으로 확률 pm을 가지고 m행을 선택하고, 경기자 C는 확률 q1을 가지고 1열

을, 확률 q2를 가지고 2열을, 이렇게 확률 qn을 가지고 n열을 선택함을 의미한다. 만약

행벡터 P = (p1 , p2 , … , pm)가 어떤 i에 대하여만 pi=1이고 나머지는 pl=0, l≠i이면,

P를 경기자 R의 순수한 전략(pure strategy)이라고 한다. 유사하게, 열벡터 Q = (q1

, q2 , … , qn)T가 어떤 j에 대해서만 qj = 1이고 나머지는 모두 0일 때, Q를 경기자 C

에 대한 순수전략이라고 부른다.

2×2 게임 행렬(game matrix) A= ( )a 11 a 12

a 21 a 22

가 주어진 경우, P = (p1, p2)와

Q = ( )q 1

q 2

가 각각 경기자 R과 C의 전략이라 하자. R이 aij를 얻을 확률은 piqj인데, 이

것은 만약 pi가 R이 i행을 선택할 확률이고, qj는 C가 j열을 선택할 확률이라면 곱 piqj는 R이 i행을 선택하고 C가 j행을 선택할 조합된 확률(the combined probability)이 되

기 때문이다. 그러므로 R이 a11, a12, a21, a22를 얻을 확률은 각각 p1q1, p1q2, p2q1, p2q2로

주어진다. R이 얻을 수 있는 기대값은

p 1q 1a 11+p 1q 2a 12+p 2q 1a 21+p 2q 2a 22

인데 이것은 행렬 곱(matrix product) PAQ로 나타낼 수 있다. 이를 일반화하여 경기행

렬 A와 경기자의 전략 P와 Q에 대하여 경기의 기대값(expected value) E(P ,Q)는

다음과 같이 정의된다.

E(P, Q) = PAQ

이때, 기대값이 0인 경기를 공정한 경기(fair game)라 한다.

예제 1.1 (경기값과 공정한 경기)>> A = [5 3 9; 8 10 11; 6 2 8], P = [0 1 0], Q = [1 0 0]' % 3x3 행렬경기A = 5 3 9 8 10 11 6 2 8P = 0 1 0Q = 1 0 0>> E = P * A * Q % 경기자 R은 항상 2행을 선택하고 C는 항상 1열을 선택하면, % R은 $8을 얻는 것이 보장되고 C는 그만큼을 잃을 것이다.E = 8

5.2 최상의 전략과 경기값 99

>> A = [0 -1 1; 1 0 -1; -1 1 0] % 가위-바위-보 경기의 분배행렬 A = 0 -1 1 1 0 -1 -1 1 0>> P=[1/3 1/3 1/3], Q=[1/3 1/3 1/3]'P = 0.3333 0.3333 0.3333Q = 0.3333 0.3333 0.3333

>> E= P * A * Q % 모든 선택 확률이 동일하면 이 경기는 공정한 경기이다.E = 0>> E = [.50 .25 .25] * A * [1/3 1/3 1/3]' % 한 사람이 동일한 확률인 경우E = 0>> E = [.50 .25 .25] * A * [.25 .50 .25]' % 선택 확률이 서로 다른 경우E = -0.0625

5.2 최상의 전략과 경기값

경기자 R에 대한 최상의 전략(optimal strategy)은 상대방이 어떠한 선택을

하는지에 상관없이 이익을 최대로 하는 전략을 말한다. 반대로 경기자 C의 최상의 전

략은 R이 무슨 전략을 세우든지 간에 손실을 최소화할 수 있는 전략을 말한다.

정의 2.1 A를 m×n 행렬 경기(matrix game)라고 하자. 만약 모든 가능한 m차 행벡터 P

와 n차 열벡터 Q중에서,

P *=(p *1 p *

2 … p *m), p *

i≥0 and ∑m

i= 1p *

i=1 ,

Q *=(q *1 q *

2 … q *n )

T, q *i≥0 and ∑

n

i= 1q *

i=1

가 존재하여 모든 열벡터 Q에 대해서 P*AQ≥v이고, 모든 행벡터 P에 대해서 PAQ*≤v

인 실수 v가 존재하면, P*와 Q*를 그 경기에 대한 최상의 전략(optimal strategy)라고

부르고 이때, v를 경기값(the value of the game)이라고 부른다.

100 5. 게임이론

게임 이론의 기본적인 결과는 다음의 명제(Proposition)에서 알 수 있다.

명제 2.2 모든 유한한(finite) 경기에 대해서, 경기자 R과 C에 대한 적어도 하나이상의

최상의 전략(optimal strategy) P*와 Q*가 각각 존재한다. 즉 C의 모든 열벡터 Q에 대해

서 P*AQ≥v이고, R의 모든 행벡터 P에 대해서 PAQ*≤v인 실수 v가 존재한다. 이때, P*

가 R의 최상의 전략이기 때문에, C의 모든 선택인 Q에 대해서 P*AQ≥v이다. 특히,

P*AQ*≥v이다. 유사하게, Q*가 C의 최상의 전략이므로, P*를 포함하는 R의 모든 선택 P

에 대하여 PAQ*≤v이고, P*AQ*≤v이다. 따라서, E(P*, Q*) = P*AQ* = v가 경기값이 된다.

예제 2.3 (최상의 전략과 경기값)>> A = [4 5 6; 5 3 2] % 2x3 행렬 경기의 분배행렬A = 4 5 6 5 3 2>> Ps = [2/3 1/3], Qs = [2/3; 1/3; 0] % 최상의 전략Ps = 0.6667 0.3333Qs = 0.6667 0.3333 0>> Ps * A * Qs % 경기 값은 최상의 전략에 대한 기대값이다.ans = 4.3333

>> Q=rand(size(Qs)); Q=Q/sum(Q), E=Ps*A*Q % 전략 Ps는 어떠한 전략 Q 경우에도 경기 값보다 큰 분배값을 준다.Q = 0.1183 0.7986 0.0831E = 4.3610>> for i=1:7; Q=rand(size(Qs)); Q=Q/sum(Q); E(i)=Ps*A*Q; end>> EE = 4.5117 4.4215 4.4218 4.4210 4.5007 4.4983 4.4876

>> P=rand(size(Ps)); P=P/sum(P), E = P * A * Qs % 전략 Qs는 어떠한 전략 P 경우에도 경기 값보다 작은 분배값을 준다.P = 0.6953 0.3047E = 4.3333

5.2 최상의 전략과 경기값 101

>> for i=1:7; P=rand(size(Ps)); P=P/sum(P); E(i)=P*A*Qs; end>> EE = 4.3333 4.3333 4.3333 4.3333 4.3333 4.3333 4.3333

명제 2.4 A는 m×n 행렬 게임(matrix game)이고 여기에서 P*와 Q*가 각각 경기자 R과

C의 최상의 전략이라고 하자. 그러면 v가 경기값(value of the game)이라는 것의 필요

충분조건은

P*A≥vEn와 AQ*≤vEmT

이다. 이 때, En과 EmT는 각각 원소의 합이 1인 n차 행벡터이고 m차 열벡터이고, P*A≥

vEn은 행벡터 P*A의 각각의 원소들이 v와 크거나 같다는 것을 의미한다. 마찬가지로,

AQ*≤vEmT은 행벡터 AQ*의 각각의 원소들이 v와 작거나 같다는 것을 의미한다.

((증명)) 우선, 만약 v가 경기값이라면,

P*A≥vEn와 AQ*≤vEmT.

P*는 R의 최상의 전략이기 때문에, C의 모든 선택 Q에 대해서 P*AQ≥v가 된다. Q1 =

[1 0 ... 0 ]T이 C의 순수한 전략(pure strategy)이라고 하자. 그러면

P *AQ 1=p *1 a 11+p *

2a 21+…+p *ma m1≥v.

유사하게, 만약 C가 전략 Q2 = [0 1 0 ... 0 ]T를 사용한다면,

P *AQ 2=p *1 a 12+p *

2a 22+…+p *ma m2≥v.

일반적으로, 만약 Qi가 i번째에 1을 가지고 나머지가 0인 열벡터라면,

P *AQ i=p *1 a 1i+p *

2a 2i+…+p *ma mi≥v, for all i = 1, 2, …, n.

그러므로 P*A의 각각의 원소들은 v보다 크거나 같다. 따라서 벡터 표시법에 의해,

P*A≥vEn,

여기서 En는 원소의 합이 1인 n차 행벡터이다. AQ*≤vEmT의 증명은 이와 유사하므로

연습문제로 해보기 바란다. 역으로, 만약 P*A≥vEn이면,

P*AQ*≥vEnQ* = v. (1)

유사하게, 만약 AQ*≤vEmT이면,

P*AQ*≤P*vEmT = v(P*Em

T) = v. (2)

그러므로, (1)과 (2)에 의해,

P*AQ* = v. ▨

명제 2.5 만약 m×n 지급 행렬(payoff matrix) A 안의 모든 원소가 k만큼 증가하면, 그

경기의 값도 똑같이 k만큼 증가한다. 그러나 경기자들의 전략에는 아무런 영향을 끼치

지 않는다.

((증명)) A를 P*와 Q*를 각각 경기자 R과 C의 최상의 전략으로 가지는 다음과 같은

m×n 지급 행렬(payoff matrix)이라고 하고 v를 그 경기값이라고 하자.

102 5. 게임이론

A=

a 11 a 12 … a 1n

a 21 a 22 … a 2n

‥ ‥a m1 a m2 … a mn

그러면

A+K=

a 11+k a 12+k … a 1n+ka 21+k a 22+k … a 2n+k

‥ ‥a m1+k a m2+k … a mn+k

이고 P*(A + K)Q = P*AQ + P*KQ ≥ v + P*KQ이다. 이 때,

P *K=(kP *1+kP *

2+…+kP *m,…,kP *

1+kP *2+…+kP *

m)=kE n ,

여기서 En는 원소의 합이 1인 n차 행벡터이다.

P*KQ = (kEn)Q = k(EnQ) = k.

그러므로 모든 선택 Q에 대해서,

P*(A + K)Q ≤ v + k.

P(A + K)Q* = v + k 역시 위와 유사하게 증명된다. 따라서 이 두 가지 결과에 의해

P*(A + K)Q* = v + k ,

이 때 P*와 Q*는 행렬 게임 A+K의 최상의 전략이고 v+k는 경기값이다. ▨

예제 2.6 (최상의 전략과 경기값)땅에 밀이나 옥수수를 심을 수 있는 한 농부가 있다. 이 농작물에 대한 이윤은 정부가 해외로 수출하는데 어떤 정책을 가지고 있느냐에 따라 변하는데 아래의 지급 행렬(payoff matrix)로 보여진다.

government exports

wheat corn

farmer plantswheat 15 12

corn 13 18

만약 P*=(0.60 0.40)와 Q*=(0.40 0.60)T가 농부와 정부 정책의 최상의 전략이라면 농부에게 기대되는 이윤은 얼마인가?

>> A = [15 12; 13 18], Ps = [5/8 3/8], Qs = [6/8; 2/8]A = 15 12 13 18Ps = 0.6250 0.3750Qs = 0.7500 0.2500>> E = Ps*A*QsE =

5.3 결정된 게임과 우월 관계 103

14.2500

>> K = mean(mean(A)), B=A-K % mean(mean(A)) = sum(sum(A))/prod(size(A))K = 14.5000B = 0.5000 -2.5000 -1.5000 3.5000>> Ps*B*Qsans = -0.2500>> Ps*B*Qs + Kans = 14.2500

5.3 결정된 게임과 우월 관계

경기자 R과 C의 분배 행렬(payoff matrix)이 아래와 같은 경우를 생각해보자.

player C

player R

5 0 -33 1 2

-4 -2 6

$6을 타기를 원하는 경기자 R이 3행을 선택하였다면 경기의 결과는 상대방 C에 의해

결정된다. 만약 C가 1열을 선택한다면 C는 $4를 얻을 것이고 2열을 선택한다면 $2를

얻을 것이다. 따라서, 최대 기대값을 얻기 위해서 3행을 선택하는 것이 R에게 올바른

결과를 가져다주지는 못한다. 경기자 R은 최대한 주의해서 전략을 세우고, 심지어 상대

방 C가 R에 대한 최악의 선택을 하더라도 만족스러운 결과를 얻을 수 있도록 전략을

세워야한다. 상대인 C는 R이 각 행에서 가능한 최소량이 가지도록 최선의 선택을 할

것이므로, R은 각 행에서 최소값을 얻을 수 있을 것으로 생각해야 한다. R이 각 행에

서 얻을 수 있는 최소량은 다음과 같다.

1행: min{5,0,-3}=-3, 2행: min{3,1,2}=1, 3행: min{-4,-2,6}=-4

그러므로, 각 행을 선택하였을 때의 최소기대값 {-3, 1, -4}들 중에서 최대값을 얻으려

면 2행을 선택하여야 한다. 이때, R이 얻을 수 있는 기대값은 max{-3, 1, -4} = 1이 된

다. 반면에 경기자 C는 상대인 R이 그에게 가장 유리한 각 열의 최대값을 선택할 때를

고려하여야 한다. 각 행의 최대값을 살펴보면,

1열: max{5,3,-4}=5, 2열: max{0,1,-2}=1, 3열: max{-3,-2,6}=6

이므로, C는 2열을 선택하여 손실을 min{5, 1, 6} = 1로 최소화하여야 한다. 이러한 경

우에 각 행의 최소값의 최대값은 정확하게 각 열의 최대값의 최소값과 똑같다. 따라서

2행과 2열을 선택하는 것이 두 경기자 각각의 이해를 최대화시키는 선택이 된다. 즉,

104 5. 게임이론

경기자 R의 최상의 순수한 전략은 2행을 선택하는 것이고 경기자 C의 최상의 순수한

전략은 2열을 선택하는 것이다.

예제 3.1 (결정된 경기와 순수전략)밥과 스티브는 집합 {0, 1, 2}로부터 숫자를 선택한다. 다음과 같은 분배 행렬에 대해 밥과 스티브에 대한 최상의 순수한 전략을 결정해라. 이것은 공정한 경기인가?

Bob

0 1 2

0 0 2 4

Steve 1 -2 0 2

2 -4 -2 0

>> A = [0 2 4; -2 0 2; -4 -2 0] % 분배 행렬A = 0 2 4 -2 0 2 -4 -2 0>> ri = min(A')', r=max(ri) % 각 행의 최소 원소 중 최대값ri = 0 -2 -4r = 0>> cj = max(A), c=min(cj) % 각 열의 최대 원소 중 최소값cj = 0 2 4c = 0

이와 같이 만약 m×n 행렬 경기(matrix game) A의 한 원소가, 그 원소가 속

한 행에서는 최소이고 그 원소가 속한 열에서는 최대일 때, 이 원소를 안장점(saddle

point)이라고 부른다. 또한 안장점을 가진 경기는 정확히 결정된다(strictly

determined)고 말하고, 안장점의 값 v가 바로 그 경기의 경기값(the value of the

game)이 된다. 정확히 결정되는(strictly determined) 경기에서, v를 포함한 행은 경기

자 R에 대한 최상의 순수한 전략(optimal pure strategy)이고, v를 포함한 열은 경

기자 C에 대한 최고의 가능한 순수한 전략(pure strategy)이다. m×n 행렬은 하나 또는

그 이상의 안장점을 가지는 것이 가능하다. 이런 경우에, 각 경기자는 하나 이상의 최

상의 전략(optimal strategy)을 가지게 되지만 그 경기의 값(the value of the game)은

변하지 않고 남아 있다.

5.3 결정된 게임과 우월 관계 105

정확히 결정되는 경기(strictly determined game)를 풀기 위해 경기자 R은 간

단히 지급 행렬(payoff matrix)의 각 행 안의 최소값을 결정하고 가장 큰 값을 찾아 둔

다. 반면에 경기자 C는 각 열에서 최대값을 각각 찾아 그 중 가장 작은 값을 찾아 둔

다. 예를 들어, 다음과 같은 지급 행렬이 있다고 하자:

player C

6 4 5 11

player

R7 8 7 9

8 10 6 5

row minimum

4

7

5

column maximum 8 10 7 11

명백하게, 밑줄 친 원소는 동일하고 7은 경기의 값이 된다. 경기자 R과 C의 최상의 전

략은 각각 2행, 3열이다.

위의 예에서 경기자 R은 먼저 i-행에서의 최소값을 결정한다. 즉, ri = min(

ai1, ai2, ... , ain) = min{j=1,..,n} (aij). 그리고 나서 그의 최상의 전략으로서 최소값들 중 가

장 큰 값 r=max(r1, r2, ... , rn)에 상응하는 행을 선택한다. 경기자 C는 우선 j-열에서의

최대값을 결정한다. 즉, cj = max(a1j, a2j, ... , amj) = max{i=1,..,m} (aij). 그런 후 그의 최상

의 전략으로서 최대값들 중 가장 작은 값 c=min(c1, c2, ... , cm)에 상응하는 행을 선택

한다. 만약 r=c이면 정확히 결정되는 경기(strictly determined game) 안에서 안장점을

가진다고 하고 최고의 전략은 경기자들에 대한 순수한 전략(pure strategy)이다.

예제 3.2 (결정된 경기와 순수전략)function [v, P, Q]=pure(A)% Find game value v, and pure strategies P,Q for strictly determined game% [v, P, Q]=pure(A)

[m, n] = size(A);% Find minium elements for each rowfor i = 1:m ri(i) = A(i,1); for j = 2:n if ( A(i,j) < ri(i) ) ri(i) = A(i,j); end endend% Find maximum elements of min(A(i,:))r = ri(1);for i = 2:m if ( ri(i) > r )

106 5. 게임이론

r = ri(i); endend

% Find minumum of column maximums = min( max(A(:,j)) )c = Inf;for j = 1:n cj = A(1,j); imax_cj = 1; for i = 2:m if ( A(i,j) > cj ) cj = A(i,j); imax_cj = i; end end if ( cj < c ) c = cj; imax_c = imax_cj; jmax_c = j; endend

% Check if r=max(min(A')) == c=min(max(A))if ( r == c ) v = c; P = zeros(1,m); P(imax_c) = 1; Q = zeros(n,1); Q(jmax_c) = 1;else disp('Not a strictly determined game'); v = []; P = []; Q = [];end

>> pure([4 -2; -5 3])Not a strictly determined gameans = []>> [v, p, q] = pure([2 4 8; 9 7 10; 1 5 7])v = 7p = 0 1 0q = 0 1 0

각 경기자들은 상대방의 최상의 전략과 그에 따른 움직임을 결정할 수 있기

5.3 결정된 게임과 우월 관계 107

때문에, 정확히 결정된 경기(strictly determined game)의 해를 쉽게 찾을 수 있다. 그

러나, 불행하게도 대부분의 지급 행렬은 안장점을 갖지 않는다. 하지만, 때때로 어떤 행

이나 열을 잘 없애는 것에 의해 복잡해 보이는 많은 행렬 경기들은 해결될 가능성이

있다. 예를 들어, 다음과 같은 지급 행렬(payoff matrix)을 가진 간단한 경기를 생각해

보자.

player C

player

R

-4 -1 3

3 2 5

2행의 모든 원소는 1행보다 각각 크다. 경기자 R이 그의 상대방의 선택에 관계없이 1

행보다 2행이 더 많은 것을 보장할 때 1행을 선택하는 것은 현명하지 못하다. 더 작은

원소를 가진 1행은 더 큰 원소를 가진 2행에게 우위를 빼앗기고, 따라서 그 경기자의

최상의 전략이나 경기의 값에 영향을 끼치는 것 없이 충분한 고찰에 의해 제거된다. 이

것은 그 문제를 경기자 R에게 남은 유일한 전략인 경기 행렬(game matirx) ( 3 2 5 )

로 축소시킨다. 명백히, 경기자 C의 최상의 전략은 만약 그가 손해를 최소화하길 원한

다면 2열을 선택하는 것이다. 경기의 값은 2이다. 이와 같이 한 행이 다른 행보다 크거

나, 한 열이 다른 열보다 적을 때, 우리는 우열관계(Relations of Dominance)가 있

다고 말하고, 최상의 전략은 열등한 선택을 제외할 수 있으므로 보다 용이하게 얻을 수

있다.

다음의 지급 행렬을 따르는 정확히 결정되는(strictly determined) zero-sum의

2-사람 경기를 또 다른 예로 생각해보자.

player C

player

R

4 2 7

5 4 94

8 -2 4

명백히, 2행에 모든 원소들이 1행의 원소들보다 각각 크기 때문에, R에 대한 어떤 최상

의 전략도 1행에 긍정적인 확률을 할당하지 않는다. 그러므로 다음의 행렬을 가지고 경

기를 풀어 간다.

( )5 4 98 -2 4

경기의 값은 똑같이 남고 경기자들은 양쪽 경기에 똑같은 전략을 가진다. 이 새로운 행

렬에서 2열의 모든 원소는 3열의 모든 원소보다 더 작다. 즉, 2열은 3열에 의해 우위를

빼앗긴다. 경기자 C는 R에게의 지급을 최소화하길 원하므로 3열을 빼는 것은 합당하

고, 그러므로 다음과 같은 2×2 행렬이 남는다.

( )5 48 -2

108 5. 게임이론

이전에 논했던 정확히 결정된 경기(strictly determined games)에 대한 테크닉을 이용

해서 R의 최상의 전략이 1행을 선택하는 것이고 반면에 C의 최고의 전략이 2열을 선

택하는 것임을 쉽게 증명할 수 있을 것이다. 경기의 값은 4이다.

예제 3.3 (우열관계 구하기)function A = domin(A);% Eliminate dominated rows and columns in game matrix% A = domin(A)

[m, n] = size(A);idom = [];for i = 1:m for i2 = [1:i-1 i+1:m] if ( all(A(i,:)>=A(i2,:)) ) idom=[i2 idom]; end endendA(idom,:) = [];

jdom = [];for j = 1:n-1 for j2 = [1:j-1 j+1:n] if ( all(A(:,j)<=A(:,j2)) ) jdom=[j2 jdom]; end endendA(:,jdom) = [];

if ( m~=size(A,1) | n~=size(A,2) ) A = domin(A);end

>> A = [7 8 2; 4 5 1; 5 6 6; 3 4 0]A = 7 8 2 4 5 1 5 6 6 3 4 0 >> domin(A)ans = 7 2 5 6

5.4 n×n행렬 경기의 혼합 전략 109

우열관계에 의해서도 안장점(saddle point)이 존재하지 않는 다음과 같은 예제

를 생각해 보자.

player C

player

R

4 -5 2

-1 2 -34

7 -4 6

여기서, 경기자 R은 3행이 1행보다 유리하다는 것을 인식하고 다음과 같은 줄어든 행

렬을 풀 필요가 있다.

( )-1 2 -37 -4 6

지급을 최소화하기 위한 의도에서 경기자 C는 즉시 1열이 3열보다 좋지 않음을 인식한

다. 그러므로 다음의 행렬을 분석하면 된다.

( )2 -3-4 6

이 경기 행렬은 정확히 결정되지 않았기 때문에 경기자들은 순수 전략을 사용할 수 없

게 된다. 이 경기의 최상의 선택은 P*=(0, 1/3, 2/3), Q* = (0, 3/5, 2/5)T이고 경기값은

v=P*AQ*=0 이다. 이와 같이 우열관계와 순수 전략만으로 구할 수 없는 경기에 대해서

는 다음절에서 다루려고 한다.

5.4 n×n행렬 경기의 혼합 전략

정확히 결정된 경기(strictly determined game)가 아닌 경우에는 순수한 전략

(pure strategies)이 경기자들에게 최상의 전략이 될 수 없다. 예를 들어, 안장점을 전혀

가지고 있지 않은 다음과 같은 2×2 행렬 경기를 생각해보자.

player C

player

R

-1 7

6 -2 .

만약 경기자들이 단 한번만 경기를 하기로 한다거나 순수 전략을 이용하여 매번 같은

선택을 하여야 한다면, 우리는 경기자들에게 어떤 전문적인 조언도 해줄 수 없을 것이

다. 그러나, 행렬 경기(matrix games)는 일반적으로 한번 이상 행해진다.

위 경기의 경기자 R에 대한 적당한 방법은 1행을 선택하는 것인데, 왜냐하면

상금을 $7 얻거나 최악으로 잃어도 $1이기 때문이다. 그러나 R이 이 전략을 너무 자주

사용하면, 상대방은 1열을 선택하는 것으로 이를 뒤엎을 것이고, 그에게 $7을 잃는 것

110 5. 게임이론

대신 $1을 얻을 것이다. 또한, R이 때때로 2행을 택해서 최고로 $6을 얻거나 $2를 잃

는 것은 적당한 방법이 될 것이다. 그러므로, C는 만약 상대방 R이 1행을 선택하면 1

열을 선택하는 것이 좋고, 만약 2행을 선택하면 2열을 선택하는 것이 좋다. 만약 R이

무엇을 할 생각인지 정확히 안다면 이것은 정말 C에게 좋은 방법일 것이다. 경기자 C

가 먼저 시작하고 1열을 선택했다고 가정하자. 이 경우에, R은 $6를 얻을 것을 확신하

고 2행을 선택했다. 만약 C가 2열을 선택한다면, 경기자 R은 1행을 선택하는 것이 현

명한 것이고 $7을 얻을 것이다.

게임 이론(game theory)에서 중요한 측면은 (적어도 상대방에게) 그들의 전략

을 드러내지 않는 것이다. 어떤 경기의 규칙은 간단히 종이 위에 숫자 1이나 2를 경기

자들이 각각 적고 심판에게 준다. 각 경기자들은 상대방보다 한 수위가 되도록 노력하

기 때문에 양쪽 다 똑같이 어떤 패턴도 전혀 세울 수 없도록 자신들의 전략을 섞는다.

혼합 전략(mixed strategy)은 오랜 시간이 흐른 후에 R이 너무 많은 상금을 가지는

것을 막고, C가 너무 많이 잃는 것을 보호해준다. 이런 혼합된 전략들이 중요한 역할이

되어 경기를 풀기 위한 여러 가지 방법들이 있다. 특히, 어떤 유한한(finite) 경기는 유

한개의 선형 연립방정식(a system of linear equations)을 푸는 것으로 해결할 수 있다.

다음과 같은 2×2 분배 행렬을 가진

A=( )a bc d

경기(matrix game)가 결정되지 않는다(non-strictly determined)는 것과 필요충분

조건은 (1) a와 d 둘 다 b와 c 두 개보다 더 크고 (2) b와 c는 둘 다 a와 d 둘보다 커

야 된다는 것이다.

명제 4.1 어떤 결정되지 않는 2×2 행렬 경기 A=( )a bc d

에서 경기자 R과 C의 최상의

전략(optimal strategies) P = (p1, p2)와 Q = (q1, q2)T는 다음과 같이 주어진다.

p 1=d-c

a+d-b-cp 2=

a-ba+d-b-c

q 1=d-b

a+d-b-cq 2=

a-ca+d-b-c

또한 경기의 값(the value of the game)은

v=ad-bc

a+d-b-c

이다.

((증명)) P = (p1, p2)가 경기자 R의 최상의 전략이라고 가정하자. 그러면

PA= (p 1 p 2)( )a bc d

= (ap 1+cp 2 bp 1+dp 2) .

R은 그의 상금을 최대로 하길 원하기 때문에, 다음이 성립한다 ;

만약 C가 1열을 선택한다면, ap 1+c(1-p 1)≥v,

만약 C가 2열을 선택한다면, bp 1+d(1-p 1)≥v.

5.4 n×n행렬 경기의 혼합 전략 111

이 때, p2 = 1 - p1이다. 이것은 R이 상대방의 모든 전략에 대해 적어도 v만큼은 얻기

를 확신하기 위해 최상의 전략을 결정하려고 함을 의미한다. 그러므로,

ap 1+c(1-p 1)=bp 1+d(1-p 1)

이것으로부터,

p 1=d-c

a+d-b-c, p 2=1-p 1=

a-ba+d-b-c

.

이제 C의 관점에서 경기를 분석해보도록 하자. Q = (q1, q2)T가 C의 최상의 전략이라고

가정하자. 그러면

AQ=( )a bc d ( )q 1

q 2

= ( )aq 1+bq 2

cq 1+dq 2

.

당연히, C는 v보다 더 많이 잃기를 원치 않는다. 이것은

만약 R이 1행을 선택한다면, aq 1+b(1-q 1)≤v,

만약 R이 2행을 선택한다면, cq 1+d(1-q 1)≤v,

을 따르고, 이 때, q2 = 1 - q1이다. 그러므로 C는 상대방 R의 모든 가능한 전략에 대

해 v 이상 초과해서 잃지 않도록 보장하기 위해 최상의 전략을 택하길 원한다. 따라서,

aq 1+b(1-q 1)=cq 1+d(1-q 1).

따라서,

q 1=d-b

a+d-b-cq 2=1-q 1=

a-ca+d-b-c

이고, 경기의 값은

v=ap 1+cp 2=a(d-c)+c(a-b)

a+d-b+c=

ad-bca+d-b+c

. ▨

예제 4.2 (2x2 경기의 혼합전략과 경기값)경기자들의 최상의 전략과 경기

A=( )3 -2-4 7

의 값을 결정하라. 이것은 공정한 경기(fair game)인가?

>> A = [3 -2; -4 7], adbc=A(1,1)+A(2,2)-A(1,2)-A(2,1)A = 3 -2 -4 7adbc = 16>> format rat>> P = [A(2,2)-A(2,1) A(1,1)-A(1,2)] / adbcP = 11/16 5/16 >> Q = [A(2,2)-A(1,2); A(1,1)-A(2,1)] / adbcQ =

112 5. 게임이론

9/16 7/16 >> v = det(A) / adbc % 이것은 공정한 경기가 아니다.v = 13/16

이제 보다 일반적인 n×n (n>2) 행렬 게임을 생각해보자.

명제 4.3 n×n 행렬 경기의 분배 행렬 A가 아래와 같이 주어져 있고,

A=

a 11 a 12 … a 1n

a 21 a 22 … a 2n

‥ ‥a m1 a m2 … a mn

A의 행렬식이 0이 아닐 때, Aij는 원소 aij의 cofactor라고 하자. 그러면 경기자 R과 C의

최상의 전략이

p i=R i

∑m

i= 1R i

q j=C j

∑n

j= 1C j

, R i= ∑n

j= 0A ij, C j= ∑

m

i= 0A ij

이 되기 위한 필요충분조건은 Ri와 Cj가 모두 같은 기호(same sign)인 것이다. 이때, 경

기의 값은

v=|A|

∑m

i= 1R i

이다.

이 때 |A|는 행렬 A의 determinant이다.

예제 4.4 (n×n경기에서 전략과 경기값)다음과 같은 3×3 행렬 경기에서 최상의 전략과 경기값을 구하시오.

A=

1 2 36 1 23 5 1

function [v, P, Q] = nxn(A)% Find game value v, and optimal strategies P,Q for nxn game% [v, P, Q] = nxn(A)% it works only when% 1. det(A)~=0% 2. All R_i have the same sign% 3. All C_j have the same sign

[m, n] = size(A);

% Compute Cofactor matrixfor i = 1:m for j = 1:n

5.4 n×n행렬 경기의 혼합 전략 113

Cofac(i,j) = (-1)^(i+j) * det(A( [1:i-1 i+1:m], [1:j-1 j+1:n] )); endend

R = sum(Cofac');C = sum(Cofac)';

D = det(A);Rsum = sum(R);Csum = sum(C);

if ( D~=0 & all(R/Rsum>=0) & all(C/Csum>=0) ) v = D / Rsum; P = R / Rsum; Q = C / Csum;else if (D==0); disp('This function is not valid since Det(A)==0'); end if (any(R/Rsum<0)); disp('This function is not valid since R/Rsum<0'); end if (any(C/Csum<0)); disp('This function is not valid since C/Csum<0'); end v = []; P = []; Q = [];end

>> format rat>> A = [1 2 3; 6 1 2; 3 5 1]A = 1 2 3 6 1 2 3 5 1 >> [v P Q] = nxn(A)v = 12/5 P = 3/5 1/5 1/5 Q = 1/6 4/15 17/30

>> v = nxn([1 0 0; 0 1 0; 0 0 -1])This function is not valid since R/Rsum<0This function is not valid since C/Csum<0v = []

114 5. 게임이론

5.5 m×2 혹은 2×m 행렬 경기의 혼합 전략

안장점을 하나도 가지고 있지 않은 m×2나 2×m 경기를 그래픽한 방법

(graphical methods)으로 생각해보자. 예를 들어, 지급 행렬이 다음과 같은 경기를 생각

해보자.

player C

player

R

6 5 1

2 3 4

전처럼 경기자 R은 가능한 많이 얻도록 전략을 택하고 반면에 경기자 C는 손해를 최

소화하도록 택한다. 그러므로,

경기자 R의 상금 ≥ v 이고 경기자 C의 손해 ≤ v .

경기자 R은 확률 p인 1행과 확률 1-p인 2행을 선택한다고 가정하자. 그러면 기대되는

상금은

만약 상대방 C가 1열을 택한다면 6p + 2(1-p) ≥ v 또는 4p + 2 ≤ v,

만약 상대방 C가 2열을 택한다면 5p + 3(1-p) ≥ v 또는 2p + 3 ≤ v,

만약 상대방 C가 3열을 택한다면 p + 4(1-p) ≥ v 또는 -3p +4 ≤ v.

이제 각각의 p를 표현하는 부등식은 x축을 따라서, 기대되는 수익(expected earnings)

은 y축을 따라서 그래프로 나타내볼 것이다.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

1

2

3

4

5

6

위 그림은 세 개의 선형 부등식(linear inequality)을 표현한다. 경기자 R은 상금을 최대

한으로 하길 원하기 때문에 그를 위한 최적의 p는 그의 수익을 가능한 크게 만드는 것

5.6 m×n 행렬 경기와 선형 계획법 115

이다. 영역 내에서 v의 가장 높은 값은 선형 연립방정식(linear equations) v = 4p +2

와 v = 4 -3p의 교차점에서 발생한다. 이 때의 교점 p = 2/7이고 여기 상응하는 v =

22/7이다. 그러므로, R을 위한 최적의 전략은 확률 2/7의 1행과 확률 5/7의 2행을 선택

하는 것이다. 이 전략은 적어도 평균 22/7의 이익을 안겨준다.

경기자 C를 위한 최상의 전략을 결정하기 위해, 경기자 R의 최상의 전략이 경

기 행렬(game matrix)에서 마지막 2열을 사용하는 것에 의해 얻어지는 선형 방정식의

교차점으로부터 계산되어짐을 인식한다. 원래의 2×3 행렬에서 1열을 없애고 얻은 다음

의 2×2 행렬을 생각해보자.

( )5 13 4

이것은 a=5, b=1, c=3, d=4를 가지는 결정되지 않는 행렬 경기이다. 명제 4.1에 의해,

q2=3/5이고 q3=2/5이다. 그러므로 R과 C의 최상의 전략은 각각 P= (27

57)과

Q= (0, 35,

25 )

T

이다.

5.6 m×n 행렬 경기와 선형 계획법

어떤 행렬 경기는, 정확히 결정되거나, 열세한 행(dominated rows)과 우세한

열(dominating columns)을 없애는 것에 의해 상응하는(equivalent) 2×m 혹은 m×2 행

렬로 줄일 수 있어 쉽게 최상의 전략을 얻을 수 있다. 그러나 많은 행렬 경기는 이러한

방법들에 의해서는 최상의 전략이 결정되지 않는다. 이 절에서는 이러한 일반적인

m×n 행렬 경기를 해결할 수 있는 방법인 선형 계획법(linear programming)에 대해

생각해보자. 첫 번째 단계로 다음과 같은 경기 행렬을 두고 이 행렬의 모든 원소들이

양수라고 가정하자.

A=

a 11 a 12 a 13 … a 1n

a 21 a 22 a 23 … a 2n

… … …a m1 a m2 a m3 … a mn

만약 원소들 중 어떤 것이 음이라면, 적당한 상수 k를 행렬의 모든 원소에 더해서 모

든 새로운 원소들이 양이 되도록 한다. 이 과정은 경기의 값(the value of the game)을

상수 k만큼 증가시키지만 경기자의 전략에는 아무런 영향을 미치지 않는다.

경기자 R과 C가 다음과 같은 혼합된 전략(mixed strategies) P와 Q를 가지고

v는 경기의 값이라고 가정하자.

P=(p 1 p 2 … p m), Q= ( )q 1 q 2 ⋯ q nT

116 5. 게임이론

경기자 R은 v를 최대로 하기 위한 최상의 전략을 선택하기 때문에, A의 행벡터 P와

어떤 열벡터의 곱은 v보다 크거나 같아야만 한다는 것을 따른다. 그러므로,

p 1a 11+p 2a 21+…+p ma m1≥v

p 1a 12+p 2a 22+…+p ma m2≥v

․․․

p 1a 1n+p 2a 2n+…+p ma mn≥v

v가 양이기 때문에, 각 부등식을 v로 나누면,

a 11y 1+a 21y 2+…+a m1y m≥1

a 12y 1+a 22y 2+…+a m2y m≥1 (1)

․․․

a 1ny 1+a 2ny 2+…+a mn y m≥1 ,

여기서 모든 i = 1, 2, …, m에 대하여 yi = pi/v 이다. 이제, 이 문제는 선형제약(linear

constrains) (1)에 관한 목적함수(objective function)

M=y 1+y 2+…+y m=1v

를 최소로 줄이는 문제로 생각할 수 있다. 경기자 R은 v의 최대값을 구하기 위해 1/v

의 최소값을 결정해야 한다.

이제 경기자 C의 관점에서 상황을 생각해보자. 그는 상대방에게 기대되는 지

급을 최소화할 최상의 전략을 선택하는데 관심이 있다. 이것은 행렬 A의 어떤 행벡터

와 열벡터 Q의 곱으로 알 수 있다. 다시 말해서,

a 11q 1+a 12q 2+…+a 1nq n≤v

a 21q 1+a 22q 2+…+a 2nq n≤v

․․․

a m1q 1+a m2q 2+…+a mn q n≤v

또는

a 11x 1+a 12x 2+…+a 1nx n≤1

a 21x 1+a 22x 2+…+a 2nx n≤1 (2)

․․․

a m1x 1+a m2x 2+…+a mnx n≤1

이 때 모든 i = 1, 2, …, n에 대하여 xj = qj/v. 그러므로, 이 문제는 선형제약 (2)에 관

한 목적함수

N=x 1+x 2+…+x n= 1/v

의 최소로 줄여 생각할 수 있다. 그러나 이것은 이미 심프렉스법(simplex method)에

5.6 m×n 행렬 경기와 선형 계획법 117

의해 풀릴 수 있는 기본적인 선형계획법(linear programming problem)의 종류이

다. N의 최대값과 M의 최소값은 같은 값이다. 마지막 방정식들에 나타난 xi는 최대 선

형 프로그래밍 문제(maximum linear programming problem)의 해와 동일하고, 반면에

값 yi는 최소 선형 프로그래밍 문제의 해와 같다.

심프렉스법을 이용하여 경기자 R과 C의 최상의 전략을 구하는 방법을 다음과

같은 2×2 행렬 경기에 예를 통해 설명해 보자.

player C

player

R

2 -2

-4 -1

위 행렬의 어떤 원소들은 음이기 때문에, 모든 새로운 원소들이 양이 되도록 각각에 적

당한 상수 k=5를 더하면, 새로운 행렬은 A=( )7 31 4

가 된다. 경기자 C가 다음과 같은

최상의 전략 Q=( )q 1

q 2

를 가진다고 가정하자.

( )7 31 4 ( )q 1

q 2

≤ ( )vv즉, 7q 1+3q 2≤v, q 1+4q 2≤v이다. 이 때 xi = qi/v, i=1,2를 이용하면,

Maximize N=x1+x2 subject to 7x 1+3x 2≤1, x 1+4x 2≤1 , x 1≥0, x 2≥0 .

와 같은 선형 계획법 문제로 바꿀 수 있다.

슬랙 변수(slack variables) x3과 x4를 더한 후에, 초기 심플렉스 행렬(initial

simplex tableau)은 아래와 같이 주어진다.

x1 x2 x3 x4 N Const

pivotal row--> *7 3 1 0 0 1

1 4 0 1 0 1

(Objective function) -1 -1 0 0 1 0

↳ pivotal column

1열을 pivot 열로 선택해서, 7을 pivot element로 잡는다. 1행의 원소들을 7로 나누면,

x1 x2 x3 x4 N

1 3/7 1/7 0 0 1/7

1 4 0 1 0 1

-1 -1 0 0 1 0

행 연산(row operations) R2'=R2+(-1)R1, R3'=R3+R1 은 다음과 같이 바꿀 수 있다.

118 5. 게임이론

x1 x2 x3 x4 N

1 3/7 1/7 0 0 1/7

0 *25/7 -1/7 1 0 6/7

0 -4/7 1/7 0 1 0

마지막 행에 음수인 원소가 존재하기 때문에, 새로운 pivot을 선택해야만 한다. 이 새로

운 pivot에 의해 2행을 나누면,

x1 x2 x3 x4 N

1 3/7 1/7 0 0 1/7

0 1 -1/25 7/25 0 6/25

0 -4/7 1/7 0 1 1/7

2행에 적합한 수를 곱해서 나머지 행에 더하면, 다음의 tableau을 얻을 수 있다.

x1 x2 x3 x4 N

1 0 4/25 -3/25 0 1/25

0 1 -1/25 7/25 0 6/25

0 0 3/25 4/25 1 7/25

N = x1+x2+x3 = 1/v의 최대값은 7/25. 그러므로, v = 25/7, x1=1/25, x2=6/25. x1=q1/v,

x2 = q2/v이기 때문에, q1 = x1․v = (1/25)․(25/7) = 1/7, q2 = x2․v = (6/25)․(25/7)

= 6/7이 된다. 그러므로 Q=( )1/76/7

이 경기자 C의 최상의 전략이다.

마지막 행 안의 slack variables y1 = 3/25, y2 = 4/25는 최소 선형 프로그래밍

문제(minimum linear programming problem)의 해와 같다. y1 = p1/v, y2 = p2/v이기

때문에, p1 = y1 v = (3/25)․(25/7) = 3/7, p2 = y2 v = (4/25)․(25/7) = 4/7. 따라서 P

= (3/7, 4/7)은 경기자 R의 최상의 전략이다. 원래의(original) 행렬의 값은 25/7 - k =

25/7 - 5 = -10/7가 된다.

예제 6.1 (Simplex Method)simplex method를 사용해서 다음의 행렬 경기의 경기자들의 최상의 전략을 결정하고 경기 값을 구하라.

( )3 4 54 2 1

((답)) 경기자 C는 Q=( )q 1 q 2 q 3T를 최상의 전략으로 가진다고 가정하자.

그러면

3q 1+4q 2+5q 3≤v, 4q 1+2q 2+q 3≤v

또는 3x 1+4x 2+5x 3≤1, 4x 1+2x 2+x 3≤v,

이 때, i=1,2,3에 대하여 xi = qi/v. 위의 linear constraints에 관한 N = x1+x2+x3 = 1/v을 최대로 하려고 한다.

>> A = [3 4 5; 4 2 1]

5.6 m×n 행렬 경기와 선형 계획법 119

A = 3 4 5 4 2 1>> [m, n] = size(A)m = 2n = 3

>> format rat>> P = [ [A; -ones(1,n)] eye(m+1) [ones(m,1); 0] ]P = 3 4 5 1 0 0 1 4 2 1 0 1 0 1 -1 -1 -1 0 0 1 0>> % Object중 음의 값인 (-1)을 가진 1열 원소 중 가장 큰 (4)로 pivoting>> P(2,:)=P(2,:)/P(2,1);>> P(1,:)=P(1,:)-P(1,1)*P(2,:); P(3,:)=P(3,:)-P(3,1)*P(2,:)P = 0 5/2 17/4 1 -3/4 0 1/4 1 1/2 1/4 0 1/4 0 1/4 0 -1/2 -3/4 0 1/4 1 1/4

>> % Object중 음의 값인 (-3/4)을 가진 3열 원소 중 가장 큰 (17/4)로 pivoting>> P(1,:)=P(1,:)/P(1,3);>> P(2,:)=P(2,:)-P(2,3)*P(1,:); P(3,:)=P(3,:)-P(3,3)*P(1,:)P = 0 10/17 1 4/17 -3/17 0 1/17 1 6/17 0 -1/17 5/17 0 4/17 0 -1/17 0 3/17 2/17 1 5/17

>> % Object중 음의 값인 (-1/17)을 가진 2열 원소 중 가장 큰 (10/17)로 pivoting>> P(1,:)=P(1,:)/P(1,2);P(2,:)=P(2,:)-P(2,2)*P(1,:); P(3,:)=P(3,:)-P(3,2)*P(1,:)P = 0 1 17/10 2/5 -3/10 0 1/10 1 0 -3/5 -1/5 2/5 0 1/5 0 0 1/10 1/5 1/10 1 3/10

그러므로, x1 = 1/5, x2 = 1/10, x3 = 0이고, 1/v = 3/10, 즉, v = 10/3이다. 또한, y1 = 1/5, y2 = 1/10이다. j=1,2,3에 대하여 xj = qj/v이고, i=1,2에 대해서 yi = pi/v이기 때문에, q1 = 2/3, q2 = 1/3, q3 = 0이고 p1 = 2/3, p2 = 1/3이다. 그러므로, P=(2/3, 1/3), Q=(2/3, 1/3, 0)T 가 각각 경기자 R과 C의 최상의 전략이고, 경기의 값은 v = 17/5이다.

120 5. 게임이론

5.7 연습문제

#1. 다음과 같이 주어진 게임행렬 A와 경기 전략 (P,Q)에 대한 경기 값 R을 구하여라.

(a) A= [ ]3 1 4-2 3 2

, P= [ ]12

12, Q= [ ]1

545

0T

(b) A=

3 -2 -12 -3 1

-2 1 3, P= [ ]1

525

25, Q= [ ]1

349

29

T

#2. 다음에 주어진 경기행렬 안에 우열 관계를 가진 행과 열이 있는지를 판단하여라.

(Hint: 예제 3.3의 domin(A)를 이용한다.)

(a) A=

- 4 1 -33 2 45 -2 -1

(b) A=

-3 2 -11 1 -2

-2 -3 1

#3. 가위-바위-보의 경기가 결정된 경기인가를 판단하고, 경기행렬 안에 우열관계가 있

는지를 판단하기 위한 MATLAB 명령문을 작성하여라.

#4. 다음의 게임행렬에 대하여, 명제 4.3에서 이야기하는 조건과 같이, 여인수 행렬의

행과 열의 합들이 같은 부호를 가지는 가를 예제 4.4의 프로그램을 이용하여 판단하

고, 조건을 만족하면 최상의 전략을 계산하여라.

#5. 다음의 주어진 게임행렬에 대한 최상의 전략을 계산하여라.

(a) A=

- 4 1 -33 2 45 -2 -1

(b) A=

-3 2 -11 1 -2

-2 -3 1

#6. 주어진 경기행렬 A에 대하여, 우열관계를 가진 행과 열을 소거한 경기 행렬과, 우

열관계에 의해 소거되지 않은 행과 열의 색인 값을 함께 계산하는 MATLAB 함수를

작성하여라. (Hint: 예제 3.3의 domin(A)를 function [i, j, A] = domin(i, j, A)로 수정하

여, domin(1:size(A,1), 1:size(A,2), A)와 같이 실행하면, i=[1 3], j=[1 3], A=[7 2; 5 6]의

결과가 나오도록 한다.)

5.7 연습문제 121

#7.(Challenging) 다음과 같은 Simplex 알고리즘에 의해 주어진 경기행렬 A로부터 최상

의 전략 (P, Q)과 경기 값 (v)을 구하는 프로그램을 작성하여라. (Hint: 예제6.1)

A. k=min(min(A))가 양수가 아니면, A = A-k+1을 수행하여 모든 원소를 양으로 한다.

B. [m, n] = size(A)에 대하여 심플랙스 행렬

S = [ [A; -ones(1,n)] eye(m+1) [ones(m,1);0] ]

을 작성한다.

C. 마지막 행에서 음수 값을 가지는 원소가 있으면,

음수 값을 가지는 열에서 가장 큰 수를 이용하여 나머지 원소를 Pivoting 한다.

D. 마지막 행의 모든 원소가 영이상일 때까지, C를 반복한다.

E. v=1/S(m+1, m+n+2)+k-1; P=S(m+1,1:n)/v; Q=S(1:m,m+n+2)/v를 반환한다.

#8.(Challenging) 다음과 같은 알고리즘에 의해 주어진 경기행렬 A로부터 최상의 전략

(P, Q)과 경기 값 (v)을 구하는 프로그램을 작성하여라.

A. 경기값 계산에 사용되는 행 i=1:size(A,1)과 열 j=1:size(A,2)을 초기화한다.

B. 우열 관계가 있는 행과 열은 소거하고 남아있는 행 i와 열 j를 수정한다.

C1. A가 결정된 경기 (3.2)이면 순수전략을 이용하여 Ps, Qs를 계산하고 D로 이동.

C2. A가 2x2 경기 (4.1)이면 혼합전략을 이용하여 Ps, Qs를 계산하고 D로 이동.

C3. A의 여인수 행렬의 행, 열들의 합이 같은 부호 (4.3)이면, 여인수를 이용하여

Ps, Qs를 계산하고 D로 이동.

C4. Simplex 방법을 이용하여 Ps, Qs를 계산하고 D로 이동 하거나

Simplex 방법에 해당하는 프로그램이 없으면 계산불능임을 출력하고 종료.

D. P=zeros(1,size(A,1)); P(i)=Ps; Q=zeros(size(A,2),1); Q(j)=Qs; v=Ps*A*Qs를 반환.