Howto GT-Native-001: 2P Prisoners’ Dilemma

Executable code

## -------------------------------------------------------------------------------------------------
## -- Project : MLPro - A Synoptic Framework for Standardized Machine Learning Tasks
## -- Package : mlpro.gt.examples
## -- Module  : howto_gt_native_001_prisoners_dilemma_2p.py
## -------------------------------------------------------------------------------------------------
## -- History :
## -- yyyy-mm-dd  Ver.      Auth.    Description
## -- 2023-09-22  0.0.0     SY       Creation
## -- 2023-12-12  1.0.0     SY       Release of first version
## -- 2024-01-05  1.0.1     SY       Renaming
## -- 2025-07-18  1.1.0     DA       Refactoring
## -------------------------------------------------------------------------------------------------

"""
Ver. 1.1.0 (2025-07-18) 

This module shows how to run a game, namely 2P Prisoners' Dilemma.

You will learn:
    
1) How to set up a game, including solver, competition, coalition, payoff, and more
    
2) How to run the game

3) How to analyse the game
    
"""

from pathlib import Path

from mlpro.bf import Log
from mlpro.gt.native import *
from mlpro.gt.pool.native.games.prisonersdilemma_2p import *




if __name__ == "__main__":
    cycle_limit = 10
    logging     = Log.C_LOG_ALL
    visualize   = False
    path        = str(Path.home())

else:
    cycle_limit = 1
    logging     = Log.C_LOG_NOTHING
    visualize   = False
    path        = None

training = GTTraining(
        p_game_cls=PrisonersDilemma2PGame,
        p_cycle_limit=cycle_limit,
        p_path=path,
        p_visualize=visualize,
        p_logging=logging
        )

training.run()

Results

YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Training "Native GT Training": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Game "PrisonersDilemma2PGame": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "RandomSolver": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Player of Prisoner 1": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Player of Prisoner 1": Player of Prisoner 1 is keeping the same solver 1
...
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Training "Native GT Training": Training completed

Cross Reference