내시 균형
시간 제한1초메모리 제한128 MB
두 플레이어 A와 B의 m×n 보수 행렬이 주어질 때, 서로가 상대 행동에 대한 최선 응답이 되는 행동 쌍을 모두 찾는다.
문제
두 참가자 와 가 벌이는 2인 정규형 게임(normal-form game)은 다음 네 가지로 완전히 정의된다.
- : 참가자 가 선택할 수 있는 행동들의 집합
- : 참가자 가 선택할 수 있는 행동들의 집합
- : 참가자 의 보수 행렬(payoff matrix)
- : 참가자 의 보수 행렬
두 참가자는 행동을 동시에 선택한다. 예를 들어 가 를, 가 를 선택했다고 하자. 이때 각 참가자의 보수는 보수 행렬에서 결정되어 는 를, 는 를 받는다. 각 참가자의 목표는 자신의 보수를 최대화하는 것이다.
가 특정 행동 를 골랐을 때, 의 최선 반응(best response) 은 의 보수를 최대로 만드는 행동 , 즉 를 만족하는 모든 이다. 마찬가지로 가 특정 행동 를 골랐을 때, 의 최선 반응은 를 만족하는 모든 이다.
행동의 쌍 가 서로에게 최선 반응일 때, 즉 가 에 대한 최선 반응이고 동시에 가 에 대한 최선 반응일 때, 이 쌍을 순수 전략 내시 균형(pure-strategy Nash equilibrium) 이라 한다.
두 보수 행렬 와 가 주어질 때, 이 게임의 모든 순수 전략 내시 균형을 찾아 나열하여라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다.
각 테스트 케이스의 첫 줄에는 두 정수 과 이 주어진다 (). 이어지는 개의 줄에는 보수 행렬 의 각 행이, 그다음 개의 줄에는 보수 행렬 의 각 행이 주어지며, 각 행은 개의 정수로 이루어진다. 모든 보수 값은 이상 이하의 정수이다.
입력의 끝은 0 0인 줄로 표시되며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스에 대해, 게임의 순수 전략 내시 균형의 개수를 이라 하자. 다음을 출력한다.
- 정수 이 적힌 한 줄
- 이어서 개의 줄. 각 줄에는 두 정수 와 (1부터 시작)를 출력하며, 이는 가 내시 균형임을 뜻한다.
내시 균형은 사전식 순서로 나열해야 한다. 즉 이거나, 이면서 일 때 을 보다 먼저 출력한다.
힌트
참가자 와 가 각각 두 개의 행동을 가지며, 보수 행렬이 아래와 같은 게임을 생각해 보자.

가 을 선택하면, 는 을 선택할 때 보수를 최대화한다. 이기 때문이다. 마찬가지로 가 을 선택하면, 는 을 선택할 때 보수를 최대화한다. 이기 때문이다. 따라서 은 에 대한 최선 반응이고 그 반대도 성립하므로, 은 이 게임의 순수 전략 내시 균형이다.
반면 는 내시 균형이 아니다. 가 를 선택하면 의 최선 반응은 인데, 이기 때문이다.