Howto GT-Native-002: 3P Prisoners’ Dilemma

Executable code

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

"""
Ver. 1.0.1 (2024-01-05)

This module shows how to run a game, namely 3P Prisoners' Dilemma with two solvers, such as random
solver and min greedy policy.

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 mlpro.gt.native.basics import *
from mlpro.gt.pool.native.games.prisonersdilemma_3p import *
from pathlib import Path



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=PrisonersDilemma3PGame,
        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 "PrisonersDilemma3PGame": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "RandomSolver": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "MinGreedyPolicy": 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 1 is switching to solver MinGreedyPolicy 1
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Prisoner 1": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Prisoner 1": Player of Prisoner 1 added.
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "RandomSolver": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "MinGreedyPolicy": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Player of Prisoner 2": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Player of Prisoner 2": Player 2 is switching to solver RandomSolver 2
...
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Training "Native GT Training": Training completed

Cross Reference