Howto GT-Native-004: 3P Supply and Demand

Executable code

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

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

This module shows how to run a 3 sellers competition game of supply and demand.

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.supplydemand_3p 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=SupplyDemand_3P,
        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 Game "SupplyDemand_3P": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "MaxGreedyPolicy": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Seller 1": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Seller 1": Seller 1 is keeping the same solver 0
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Seller 1": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Seller 1": Seller 1 added.
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "MaxGreedyPolicy": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Seller 2": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Seller 2": Seller 2 is keeping the same solver 1
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Seller 2": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Seller 2": Seller 2 added.
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Solver "RandomSolver": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Seller 3": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Player "Seller 3": Seller 3 is keeping the same solver 2
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Seller 3": Instantiated
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Coalition "Coalition of Seller 3": Seller 3 added.
...
YYYY-MM-DD  HH:MM:SS.SSSSSS  I  GT Training "Native GT Training": Training completed

Cross Reference