Cílem je navrhnout nejefektivnější algoritmus pro Iterated Prisoner's Dilemma (IPD). Budete hrát proti svým spolužákům i historickým benchmarkům. Cílem je maximalizace vlastního bodového zisku v prostředí, kde se činy pamatují.
Každý zápas se skládá z minimálně 100 kol. Po 100. kole existuje klesající pravděpodobnost, že hra bude pokračovat. Bodování v každém kole:
| Moje / Soupeř | Spolupráce (1) | Zrada (0) |
|---|---|---|
| Spolupráce (1) | 3 / 3 (Odměna) | 0 / 5 (Naivita) |
| Zrada (0) | 5 / 0 (Pokušení) | 1 / 1 (Trest) |
Své řešení v podobně funkce v Pythonu zasílejte e-mailem v souboru se jménem [prijmeni].py.
play(my_history, opponent_history).int (0 nebo 1).Jednoduchá strategie, která kopíruje poslední tah soupeře.
def play(my_history, opponent_history):
# První kolo začni spoluprací
if not opponent_history:
return 1
# Vrať soupeři to, co udělal minule
return opponent_history[-1]
Nechť vyhraje ten nejsebestřednější a nejracionálněší :D.