내시 균형

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

두 참가자 AABB가 벌이는 2인 정규형 게임(normal-form game)은 다음 네 가지로 완전히 정의된다.

  • {a1,,am}\{a_1, \dots, a_m\}: 참가자 AA가 선택할 수 있는 행동들의 집합
  • {b1,,bn}\{b_1, \dots, b_n\}: 참가자 BB가 선택할 수 있는 행동들의 집합
  • PAP_A: 참가자 AAm×nm \times n 보수 행렬(payoff matrix)
  • PBP_B: 참가자 BBm×nm \times n 보수 행렬

두 참가자는 행동을 동시에 선택한다. 예를 들어 AAaia_i를, BBbjb_j를 선택했다고 하자. 이때 각 참가자의 보수는 보수 행렬에서 결정되어 AAPA[i,j]P_A[i,j]를, BBPB[i,j]P_B[i,j]를 받는다. 각 참가자의 목표는 자신의 보수를 최대화하는 것이다.

BB가 특정 행동 bjb_j를 골랐을 때, AA최선 반응(best response)AA의 보수를 최대로 만드는 행동 aia_i, 즉 PA[i,j]=maxiPA[i,j]P_A[i,j] = \max_{i'} P_A[i',j]를 만족하는 모든 aia_i이다. 마찬가지로 AA가 특정 행동 aia_i를 골랐을 때, BB의 최선 반응은 PB[i,j]=maxjPB[i,j]P_B[i,j] = \max_{j'} P_B[i,j']를 만족하는 모든 bjb_j이다.

행동의 쌍 (ai,bj)(a_i, b_j)가 서로에게 최선 반응일 때, 즉 aia_ibjb_j에 대한 최선 반응이고 동시에 bjb_jaia_i에 대한 최선 반응일 때, 이 쌍을 순수 전략 내시 균형(pure-strategy Nash equilibrium) 이라 한다.

두 보수 행렬 PAP_APBP_B가 주어질 때, 이 게임의 모든 순수 전략 내시 균형을 찾아 나열하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 두 정수 mmnn이 주어진다 (1m,n201 \le m, n \le 20). 이어지는 mm개의 줄에는 보수 행렬 PAP_A의 각 행이, 그다음 mm개의 줄에는 보수 행렬 PBP_B의 각 행이 주어지며, 각 행은 nn개의 정수로 이루어진다. 모든 보수 값은 100-100 이상 100100 이하의 정수이다.

입력의 끝은 0 0인 줄로 표시되며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스에 대해, 게임의 순수 전략 내시 균형의 개수를 NN이라 하자. 다음을 출력한다.

  1. 정수 NN이 적힌 한 줄
  2. 이어서 NN개의 줄. 각 줄에는 두 정수 iijj(1부터 시작)를 출력하며, 이는 (ai,bj)(a_i, b_j)가 내시 균형임을 뜻한다.

내시 균형은 사전식 순서로 나열해야 한다. 즉 i1<i2i_1 < i_2이거나, i1=i2i_1 = i_2이면서 j1<j2j_1 < j_2일 때 (ai1,bj1)(a_{i_1}, b_{j_1})(ai2,bj2)(a_{i_2}, b_{j_2})보다 먼저 출력한다.

힌트

참가자 AABB가 각각 두 개의 행동을 가지며, 보수 행렬이 아래와 같은 게임을 생각해 보자.

예시 게임의 보수 행렬

AAa1a_1을 선택하면, BBb1b_1을 선택할 때 보수를 최대화한다. PB[1,1]=1>0=PB[1,2]P_B[1,1] = 1 > 0 = P_B[1,2]이기 때문이다. 마찬가지로 BBb1b_1을 선택하면, AAa1a_1을 선택할 때 보수를 최대화한다. PA[1,1]=1>0=PA[2,1]P_A[1,1] = 1 > 0 = P_A[2,1]이기 때문이다. 따라서 a1a_1b1b_1에 대한 최선 반응이고 그 반대도 성립하므로, (a1,b1)(a_1, b_1)은 이 게임의 순수 전략 내시 균형이다.

반면 (a2,b2)(a_2, b_2)는 내시 균형이 아니다. AAa2a_2를 선택하면 BB의 최선 반응은 b1b_1인데, PB[2,1]=5>3=PB[2,2]P_B[2,1] = 5 > 3 = P_B[2,2]이기 때문이다.