당한 만큼 갚아 주는 「눈에는 눈」은 누구나 아는 말이다. 1980년 한 컴퓨터 대회에서 이 말대로 두는 프로그램은 어느 상대보다도 점수를 더 받은 적이 없는데 1위를 했다. 먼저 배신하는 법이 없는 규칙과는 거의 끝까지 협력해 한 대결에 600점 가까이 받았다. 첫 수는 협력하고 그다음엔 상대가 직전에 한 대로 따라 하는 이 전략을 팃포탯(Tit for Tat)이라고 한다.
점수로 순위를 매기는 대회라면 상대를 가장 많이 이긴 쪽이 위에 서리라고 생각하기 쉽다. 여기서 이긴다는 것은 둘이 붙은 대결에서 상대보다 점수를 더 받는 것이다. 1980년 컴퓨터 대회에서 1위를 한 팃포탯은 열네 상대 가운데 한 상대도 이기지 못했다. 상대를 한 번도 이기지 못한 팃포탯은 죄수의 딜레마 대회에서 어떻게 1위를 했을까?
팃포탯은 한 대결도 이기지 않고, 먼저 배신하지 않는 상대들과 거의 내내 협력하며 점수를 모아 총점 1위를 했다. 원문에 적힌 설명대로 다시 짠 15 규칙 대회를 1,000번 돌리면, 팃포탯이 1위인 경우는 30번뿐이다. 점수표를 바꾸거나 실수를 섞으면 순위는 더 내려간다.
죄수의 딜레마를 200번 거듭하면?
두 사람이 협력과 배신 가운데 하나를 동시에 고른다. 한 번 고르는 것을 한 수라고 하고, 점수는 둘이 낸 것의 짝으로 정해진다. 1980년 대회에서 쓴 점수표는 다음과 같고, 칸 안의 앞 숫자가 내 점수, 뒤 숫자가 상대 점수다.
| 상대가 협력 | 상대가 배신 | |
|---|---|---|
| 내가 협력 | 3 · 3 | 0 · 5 |
| 내가 배신 | 5 · 0 | 1 · 1 |
한 번만 두면 상대가 무엇을 내든 배신하는 쪽이 점수가 높다. 상대가 협력하면 배신해서 5점을 받고, 상대가 배신하면 배신해서 1점이라도 받는다. 그래서 둘 다 배신해 1점씩 받는데, 둘 다 협력했다면 3점씩 받을 수 있었다. 저마다 자기 점수를 따르면 둘 다 손해를 보는 이 짜임을 죄수의 딜레마라고 부른다.
같은 단골 가게나 이웃처럼 같은 상대를 되풀이해 만나면 사정이 달라진다. 이번 수의 배신이 다음 수에 그대로 돌아올 수 있어서다. 한 번 배신해 5점을 받아도 상대가 그다음부터 배신으로 갚으면, 그 뒤로는 3점 대신 1점씩 받게 된다.
미국 정치학자 로버트 액설로드(Robert Axelrod)는 이 게임을 같은 상대와 여러 번 두는 컴퓨터 대회를 열었다. 출품작은 사람이 직접 두는 수가 아니라 규칙이었다. 지금까지 둘이 낸 수를 보고 다음 수를 정하는 규칙을 프로그램으로 써서 낸 것이다. 경제학자·수학자·정치학자·심리학자·사회학자가 낸 프로그램 열넷에, 반반 확률로 협력과 배신을 고르는 무작위 규칙 하나가 더해져 15개가 겨뤘다. 모두가 모두와 한 번씩 붙었고, 자기와 똑같은 프로그램과도 붙었다. 대결 한 번은 정확히 200수였고, 이 대진 전체를 다섯 번 되풀이해 모두 12만 수를 두었다.
성적은 대결 한 번당 평균 점수로 매겼다. 200수 내내 서로 협력하면 둘 다 600점, 내내 서로 배신하면 둘 다 200점이다. 원문은 600점을 아주 좋은 성적의 기준으로, 200점을 아주 나쁜 성적의 기준으로 삼았고, 받을 수 있는 점수는 0점에서 1,000점까지다.
600점은 상대도 똑같이 600점을 받을 때 나오는 점수다. 한쪽만 배신해 5점을 받는 수에서는 상대가 0점을 받으니, 둘의 합은 서로 협력할 때의 6점보다 적은 5점이다. 둘 다 배신하는 수에서는 합이 2점까지 내려간다. 두 쪽이 함께 가져가는 점수는 서로 협력할 때 가장 크다.
팃포탯 전략을 한 대결씩 떼어 보면?
팃포탯(Tit for Tat)은 첫 수에 협력하고, 그다음부터는 상대가 직전 수에 한 대로 따라 하는 규칙이다. 상대가 협력했으면 협력하고, 배신했으면 다음 수에 한 번 배신으로 갚는다. 받은 대로 갚는 셈이다. 액설로드는 이 규칙이 오래된 「눈에는 눈」과 같은 것이라고 적었다.
토론토대학교의 아나톨 라포포트(Anatol Rapoport)가 낸 이 프로그램은 프로그래밍 언어 포트란으로 네 줄짜리였고, 대결당 평균 504점으로 1위를 했다. 원문에 따르면 참가자 대부분은 팃포탯을 알고 그보다 낫게 고치려 했다. 그렇게 낸 규칙 가운데 팃포탯만큼 점수를 받은 것은 없었다.
그런데 팃포탯은 짜임새상 한 대결에서 상대보다 점수를 더 받을 수 없다. 팃포탯은 상대가 직전 수에 배신했을 때만 배신한다. 그래서 한 대결 안에서 팃포탯만 배신한 수는 상대만 배신한 수보다 많을 수 없고, 따져 보면 같거나 하나 적다. 한쪽만 배신한 수에서는 배신한 쪽이 5점을 받고 다른 쪽은 0점이니, 두 쪽의 점수 차는 0이거나 상대가 5점 많다.
예를 들어 상대가 10번째 수에 배신하고 팃포탯은 협력했다고 하자. 그 수에서 상대가 5점을 앞서고, 팃포탯은 11번째 수에 배신으로 갚는다. 그 수에 상대가 협력으로 돌아와 있으면 이번에는 팃포탯이 5점을 받아 차가 메워진다. 상대가 그 수에도 배신하면 둘 다 1점이라 차는 그대로다. 상대가 마지막 수에 배신하면 팃포탯은 갚을 수가 없어서, 그 5점 차는 그대로 남는다.
1980년 대회의 원 결과표로 이것을 확인할 수 있다그림 1. 팃포탯은 열네 상대 가운데 점수로 앞선 상대가 하나도 없었다. 같은 점수가 일곱, 진 상대가 일곱이었고, 진 칸도 차이는 5점을 넘지 않았다. 진 일곱 가운데 둘은 팃포탯과 붙어서 마지막 두 수에만 배신한 규칙이었다(595 대 600). 원문 설명대로 다시 짠 대회의 대결 98,000번에서도 팃포탯과 상대의 점수 차는 0이거나 상대가 5점 많은 것, 두 가지뿐이었다.
상대를 많이 이긴 규칙이 위에 선 것도 아니다. 짝으로 따져 가장 많은 열두 상대를 이긴 두 규칙은 11위와 12위였다. 그렇다고 이기는 쪽이 늘 아래였던 것도 아니어서, 2위 규칙은 열한 상대를 이기고도 2위였다. 이긴 상대 수와 순위는 같이 가지 않았다.
이 블로그의 상호협력보다 더 뜯어내는 전략 편은 같은 상대와 되풀이하는 죄수의 딜레마에서 상대보다 더 가져가도록 짠 갈취 전략의 수학을 다뤘다. 여기서는 거꾸로, 상대를 한 번도 앞서지 못하게 짜인 팃포탯이 대회 총점 1위를 한 일을 본다. 이 대회의 1위는 상대를 이겨서 얻는 자리가 아니라 모든 대결의 점수를 더해 정하는 자리였다.
두 규칙을 붙여 보고 대회 전체로 넓히면?
아래 그림에서 두 규칙과 몇 번째 대결인지를 고르면, 미리 계산해 둔 200수 대결 기록이 나온다그림 2. 왼쪽에 팃포탯을 두고 오른쪽 상대를 바꿔 보면, 팃포탯 점수가 상대보다 높아지는 대결이 있는지 직접 볼 수 있다. 처음 보이는 것은 팃포탯과 90%만 따라 하는 규칙의 첫째 대결이다. 이 규칙은 대개 상대를 따라 하지만, 상대가 협력해도 열 번에 한 번쯤은 먼저 배신한다.
대회 전체로 넓히면 먼저 배신하느냐가 위아래를 갈랐다. 원문은 마지막 몇 수 전에는, 이를테면 199번째 수 전에는 먼저 배신하지 않는 규칙들을 따로 묶었다. 팃포탯도 그런 규칙이고, 마지막 두 수에만 배신하는 규칙도 이 묶음에 든다. 이런 규칙끼리 만나면 어느 쪽도 배신을 시작하지 않으니, 마지막 몇 수를 빼면 200수 내내 협력이 이어진다.
이런 규칙 여덟이 1위부터 8위까지를 다 차지했고, 나머지 일곱은 전부 그 아래였다. 위 여덟끼리는 서로 거의 600점씩 주고받아, 가장 낮은 칸도 594점이었다. 위 여덟의 점수는 472~504점이었고, 아래 일곱 가운데 가장 높은 점수는 401점이었다. 두 묶음 사이에 70점이 넘는 빈자리가 있었던 셈이다.
원문 설명대로 다시 짠 대회 1,000번에서도 매번 같은 갈림이 나왔고, 따로 돌린 400번에서도 그랬다. 다시 짠 대회에서 위 여덟은 199번째 수 전에 먼저 배신한 대결이 하나도 없었고, 아래 일곱은 저마다 대결의 절반 넘게에서 먼저 배신했다. 적어도 이 첫 대회에서는 먼저 배신하지 않는 쪽이 이득이었다.
한 번 갚고 바로 돌아오면?
앞 절은 먼저 배신하지 않는 것만 봤다. 위 여덟은 서로 붙으면 거의 600점씩 받았으니, 그 여덟 사이의 순위는 아래 일곱과 붙은 점수에서 갈렸다. 원문은 먼저 배신하느냐가 위 절반과 아래 절반을 갈랐다고 적었다. 위 절반 안의 순위는 배신을 당한 뒤 얼마나 용서하느냐로 대부분 설명된다는 것이다.
원문은 팃포탯을 「한 수 동안은 용서하지 않지만, 그 뒤로는 한 번의 배신을 완전히 용서한다」고 적었다. 배신을 한 번씩만 갚아서, 상대가 낸 배신이 두 쪽 사이를 오갈 때 그것을 더 키우지 않았다는 설명도 붙였다. 이 성질이 어떤 차이를 내는지는 90%만 따라 하는 규칙과 붙인 대결에서 보인다. 이 규칙은 상대가 배신하면 늘 배신으로 받고, 상대가 협력해도 열에 아홉만 협력으로 따라 한다. 팃포탯에 열 번에 한 번 정도 배신을 더 넣은 셈이다.
원문에 실린 두 규칙의 한 대결에서는 90%만 따라 하는 규칙이 여섯째 수에 낸 배신 하나가 두 규칙 사이를 한 수씩 번갈아 오갔다. 한쪽이 갚으면 다른 쪽이 그 갚음을 다시 갚는 식이다. 스물다섯째 수에 이 규칙이 한 번 더 무작위로 배신하자, 그 뒤로는 둘 다 끝까지 배신만 했다. 그 대결은 236 대 241로 끝났고, 다섯 번 대결의 평균도 225 대 230으로 둘 다 낮았다. 90%만 따라 하는 규칙은 대회 전체에서 304점으로 12위였다. 이 배신은 실수가 아니라 규칙이 일부러 섞은 무작위 배신이다.
앞 절 그림의 첫째 대결에서도 같은 일이 열다섯째 수에서 시작된다그림 2. 상대의 배신을 팃포탯이 다음 수에 갚고, 그 갚음을 상대가 다시 갚으며 배신이 한 수씩 번갈아 오간다. 스무째 수에 상대가 무작위로 한 번 더 배신하자, 그 뒤로는 둘 다 끝까지 배신만 한다. 이 대결은 233 대 238로 끝났다. 둘이 같은 수에 배신하게 되자, 배신에는 배신으로 받는 두 규칙 가운데 어느 쪽도 먼저 협력으로 돌아오지 않았다.
원문은 위 여덟의 순위가 단 두 상대와의 성적으로 거의 다 설명된다고 적었다. 하나는 처음부터 상대를 믿지 않는 규칙이고, 다른 하나는 50수 뒤에 한 번 일부러 배신해 보는 규칙이다. 앞의 규칙은 상대가 자기 수에 반응하지 않는다고 가정하고 시작해, 첫 두 수를 배신한다. 원 표에서 이 상대를 만난 팃포탯은 597점을 받았다. 한 번 배신당하면 끝까지 갚는 규칙은 207점, 처음 10수 뒤에 배신을 봤으면 끝까지 갚는 규칙은 194점이었다. 팃포탯은 첫 두 수의 배신을 다음 수마다 그대로 갚고 나서 이 상대와 다시 협력했지만, 끝까지 갚는 두 규칙은 서로 배신하는 데 머물렀다.
더 잘 용서하는 규칙도 있었다. 두 번 연달아 배신당해야 갚는 규칙은 참가자들에게 제출 예시로 보낸 프로그램이었는데, 아무도 이것을 내지 않았다. 원문은 참가자들이 흔히 팃포탯보다 덜 용서해서 이득을 보려 했지만, 실제로는 더 용서하는 쪽에 큰 이득이 있었다고 적었다. 원문은 이 규칙이 같은 15 규칙을 상대로 평균 532점을 받았을 것이라고 계산했다. 팃포탯의 504점보다 높다.
원 대회에 없던 이 규칙을 다시 짠 15 규칙 상대에 넣어 계산해도 539.8점이 나왔다. 같은 계산에서 팃포탯은 508.5점이었다. 다만 이 규칙은 반반 무작위 규칙을 만나면 크게 밀려, 우리 계산 1,000 대결 평균이 373.8 대 626.8이었다. 같은 상대에게 팃포탯은 평균 448.9점을 받았다. 이 규칙과 팃포탯 가운데 평균 점수가 높은 쪽은 상대가 15 규칙 전체냐 반반 무작위 하나냐에 따라 바뀌었다.
대회를 원문 설명대로 다시 돌리면?
여기서부터의 대회는 원본이 아니라 설명대로 다시 짠 것이다. 1980년 대회의 원래 프로그램은 남아 있지 않아서, 원문 부록의 설명대로 15 규칙을 다시 짰다. 일곱은 설명만으로 그대로 짤 수 있었고, 다섯은 우리 해석이 들어갔으며, 셋은 설명이 모자라 근사로 짰다. 대결 200수, 다섯 번 되풀이, 점수표는 원 대회와 같다. 원 대회는 한 번 치렀지만, 다시 짠 대회는 1,000번 돌렸다.
원문 설명대로 다시 짠, 근사 셋까지 넣은 15 규칙 대회를 1,000번 돌리면 팃포탯이 1위인 경우는 30번이었고, 그 가운데 한 번은 다른 규칙과 공동 1위였다. 대개는 2위(439번)나 3위(500번)였고, 평균은 2.54위였다그림 3. 따로 돌린 400번에서도 1위는 14번(3.5%)이었다. 무작위가 든 규칙이 있어서 대회를 돌릴 때마다 점수가 조금씩 달라진다. 1,000번의 평균 점수로는 팃포탯이 508.5점, 원 대회 2위 규칙이 508.7점으로 0.2점 차였다. 두 규칙의 점수가 이렇게 가까워, 팃포탯은 대회마다 2위와 3위를 오갔다.
1위는 대부분(95.1%) 팃포탯처럼 두되 15수마다 상대가 무작위로 구는지 검사하는 규칙이 차지했다. 이 규칙도 먼저 배신하지 않는 규칙이다. 그런데 이 결과는 근사로 짠 규칙과 붙은 칸에서 갈렸다. 앞 절에서 순위를 갈라 놓았다고 한 두 상대는 이 재구성에서 둘 다 근사로 짠 규칙이다. 이 두 상대를 만난 그 규칙의 점수가 원 표에서는 200점과 319점인데, 다시 짠 대회에서는 평균 450점과 522점이었다. 그러니 이 결과만으로 그 규칙이 팃포탯보다 강했다고 말할 수는 없다.
공개 라이브러리 Axelrod-Python도 1차 대회를 다시 짜 보고 팃포탯이 대개 1위를 하지 못한다고 적었다. 원래 코드를 구할 수 없어 구현이 원래 규칙과 다를 수 있다는 이유도 같은 문장에 붙였다. 이 재구성에서는 설명대로 그대로 짠 규칙끼리도 원 표와 크게 어긋나는 칸이 있었다. 그런 칸은 모두 지난 세 수로 정하는 규칙과 엇갈린 뒤에는 대개 배신하는 규칙이 90%만 따라 하는 규칙이나 반반 무작위와 붙은 칸이었다.
근사로 짠 셋을 빼고 열두 규칙으로 대회를 1,000번 다시 돌리면 순위가 크게 바뀐다. 팃포탯은 1,000번 가운데 840번 8위였다. 먼저 배신하지 않는 여덟 가운데 맨 아래 자리다. 1위의 98.9%는 지난 세 수를 보고 다음 수를 정하는 규칙이 차지했는데, 이 규칙은 앞에서 원 표와 크게 어긋나는 칸이 있던 그 규칙이다. 평균 점수는 먼저 배신하지 않는 여덟이 505.4~552.0점, 나머지 넷이 320.3~347.5점이었다. 위아래의 갈림은 이 대회에서도 그대로였다.
우리 재구성은 원 대회의 순위를 정하지 못하고, 팃포탯의 순위는 참가한 규칙에 따라 2·3위에서 8위까지 흔들렸다. 504점 1위는 그 참가자들 사이에서 한 번 치른 대회의 결과였다. 같은 설명으로 다시 짜도 1위 자리는 늘 같은 규칙에게 돌아가지 않았다.
점수표를 바꾸거나 실수가 섞이면?
팃포탯의 1위에는 그 대회의 조건이 붙어 있었다. 먼저 점수표다. 둘 다 배신할 때 받는 점수를 1점에서 2점으로 올리면, 원문 저자의 계산으로는 팃포탯이 4위로 내려간다. 그 점수표로 다시 짠 15 규칙 대회를 돌리면 1,000번 모두 6위였다. 원문 저자도 참가자들이 다른 점수표를 알았다면 몇몇은 다른 프로그램을 냈을 것이라고 덧붙였다.
다음은 실수인데, 원 대회에는 실수가 없었으니 이것은 원 대회 밖의 조건이다. 원 출품자들은 실수가 섞인다는 것을 모르고 규칙을 짰다. 두 번째 대회를 다시 돌린 연구진도 실수를 섞어 원 출품작을 평가하는 것은 온전히 공정하지 않다고 적었다. 실수가 규칙에 있었다면 많은 출품자가 실수를 바로잡거나 용서하는 장치를 넣었을 것이라는 이유였다.
내려던 수가 백 번에 한 번 뒤집히면, 팃포탯끼리도 앞의 대결과 같은 일을 겪는다. 한쪽의 실수 배신을 다른 쪽이 갚고, 그 갚음을 다시 갚으며 배신이 두 쪽을 번갈아 오간다. 우리 계산으로는 실수가 없을 때 100%였던 서로 협력한 수가 40.1%로 떨어지고, 점수는 493.8점이 된다. 배신당해도 세 번에 한 번은 협력으로 받는 팃포탯끼리는 94.3%를 지키고 약 594점씩 받는다.
실수를 섞은 우리 15 규칙 대회 400번에서 팃포탯은 한 번도 1위가 아니었다. 1위의 59.2%는 처음부터 상대를 믿지 않는 규칙, 곧 먼저 배신하는 규칙이 차지했는데, 이 규칙은 우리가 근사로 짠 것이다. 근사로 짠 셋을 빼고 열두 규칙으로 400번 다시 돌리면 결과가 달라진다. 먼저 배신하지 않는 규칙들이 매번 나머지를 모두 앞섰고, 1위는 원 표와 크게 어긋나는 칸이 있던 두 규칙이 나눠 가졌다. 팃포탯은 이 대회에서도 3~7위에 머물렀고, 1위는 한 번도 없었다.
이 블로그의 흡혈박쥐 편에서는 받은 상대에게 먼저 돌려주는 셈이 우리 박쥐 무리 시뮬에서 굶는 박쥐를 더 줄이지 못했다. 여기서는 받은 대로 갚는 규칙이 점수 대회에서 1위를 한 조건을 보고 있다. 액설로드 자신도 팃포탯의 1위를 넓게 읽지 말라고 적었다.
This should serve as a warning against the facile belief than an eye for an eye is necessarily the best strategy. 눈에는 눈이 반드시 최선의 전략이라는 손쉬운 믿음을 경계해야 한다는 말이다(원문의 than은 인쇄된 그대로 옮겼다).
Robert Axelrod, 「Effective Choice in the Prisoner’s Dilemma」, *Journal of Conflict Resolution* 24(1), 1980그는 같은 글에서 대회 한 번의 결과로는 결정적이지 않다고도 적었다. 어떤 전략이 잘하는지는 그 전략만이 아니라 함께 겨루는 다른 전략들에 달려 있다는 이유였다. 두 번째 대회에는 62개가 출품됐고, 팃포탯이 다시 1위를 했다. 남아 있는 출품 코드로 그 두 번째 대회를 다시 꾸려 25,000번 돌린 2026년 연구에서는 그 가운데 63.3%에서 팃포탯이 1위였다. 이 값은 두 번째 대회의 것이고, 앞의 3.0%는 우리가 다시 짠 첫 번째 대회의 값이다.
원 대회에서 1위부터 8위까지는 먼저 배신하지 않는 규칙이 차지했다. 원문 설명대로 다시 짠 실수 없는 대회에서도, 근사 셋을 넣은 15 규칙과 뺀 12 규칙 모두 그 여덟이 매번 나머지를 앞섰다. 팃포탯이 2위로 밀리든 8위로 밀리든 그 위아래는 바뀌지 않았다. 실수 없이 같은 상대와 200수를 거듭 두는 대회에서 총점을 높이려면, 상대를 이기는 것보다 먼저 배신하지 않는 것이 더 중요했다.
더 읽기
- Robert Axelrod, 「Effective Choice in the Prisoner’s Dilemma」, Journal of Conflict Resolution 24(1):3–25, 1980 — https://doi.org/10.1177/002200278002400101
- Robert Axelrod, William D. Hamilton, 「The Evolution of Cooperation」, Science 211(4489):1390–1396, 1981 — https://doi.org/10.1126/science.7466396
- Vincent Knight 외, 「Reviving, reproducing, and revisiting Axelrod’s second tournament」, Communications AI & Computing 1:12, 2026(원고 arXiv:2510.15438, 2025) — https://doi.org/10.1038/s44488-026-00016-w
- Amnon Rapoport, Darryl A. Seale, Andrew M. Colman, 「Is Tit-for-Tat the Answer? On the Conclusions Drawn from Axelrod’s Tournaments」, PLoS ONE 10(7): e0134128, 2015 — 대회 형식·점수표에 따라 팃포탯의 성적이 달라진다는 재분석 — https://doi.org/10.1371/journal.pone.0134128
- Axelrod-Python 튜토리얼 「Running Axelrod’s First Tournament」 — https://axelrod.readthedocs.io/en/stable/tutorials/running_axelrods_first_tournament/index.html
- 로버트 액설로드, 『협력의 진화』, 이경식 옮김, 시스테마
- 자료: 이 글의 재현은 원문 부록의 설명으로 짠 15 규칙(그대로 7 · 해석 5 · 근사 3)을 200수 · 다섯 번 되풀이로 1,000번, 따로 400번 돌린 것이다. 근사 셋을 뺀 12 규칙 대회도 따로 돌렸다. 표준 파이썬 라이브러리만 썼다.
- 관련 글: 상호협력보다 더 뜯어내는 전략 — 죄수의 딜레마의 제로-결정자 갈취 — 상대를 앞서도록 짠 갈취 전략의 수학을 다룬 글로, 여기서는 상대를 앞설 수 없는 규칙이 총점 1위를 한 일을 본다.
- 관련 글: 흡혈박쥐는 왜 피를 나눠 줄까 — 받은 상대에게 돌려주는 셈이 박쥐 무리 시뮬에서 무엇을 바꿨는지 다룬 글로, 여기서는 받은 대로 갚는 규칙이 1위를 한 조건을 다룬다.