Turnaj strategií IPD 2026

Cílem je navrhnout nejefektivnější algoritmus pro iterované vězňovo dilema (Iterated Prisoner’s Dilemma, IPD). Budete hrát proti svým spolužákům i proti historickým benchmarkům. Jde o maximalizaci vlastního bodového zisku v prostředí, kde se činy pamatují.

1. Pravidla hry a výplatní matice

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:

Já / 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)

2. Technické odevzdání

Své řešení v podobě funkce v Pythonu zasílejte e-mailem v souboru se jménem [prijmeni].py.

3. Ukázka — benchmark Tit-for-Tat

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]
Odměna pro vítěze: 100 $

Nechť vyhraje ten nejsebestřednější a nejracionálnější. :)