Skip to content
Extraits de code Groupes Projets
plot.py 1,54 ko
Newer Older
  • Learn to ignore specific revisions
  • Adrien Payen's avatar
    Adrien Payen a validé
    import numpy as np
    import random as rd
    import matplotlib.pyplot as plt
    from tmc import TransitionMatrixCalculator as tmc
    
    Adrien Payen's avatar
    Adrien Payen a validé
    from test_files.markovDecision_testing import markovDecision as mD
    
    Adrien Payen's avatar
    Adrien Payen a validé
    from validation import Validation
    
    def plot_results(validation_instance):
        results_markov = validation_instance.simulate_game('markov')
        results_safe = validation_instance.simulate_game([1]*15)
        results_normal = validation_instance.simulate_game([2]*15)
        results_risky = validation_instance.simulate_game([3]*15)
        results_random = validation_instance.simulate_game(np.random.randint(1, 4, size=15))
    
        plt.figure(figsize=(12, 8))
        plt.plot(range(len(validation_instance.layouts)), results_markov, label='Markov')
        plt.plot(range(len(validation_instance.layouts)), results_safe, label='SafeDice')
        plt.plot(range(len(validation_instance.layouts)), results_normal, label='NormalDice')
        plt.plot(range(len(validation_instance.layouts)), results_risky, label='RiskyDice')
        plt.plot(range(len(validation_instance.layouts)), results_random, label='Random')
    
        plt.xticks(range(len(validation_instance.layouts)), range(len(validation_instance.layouts)))
        plt.xlabel('Layout Number', fontsize=13)
        plt.ylabel('Average Number of Turns', fontsize=13)
        plt.legend(loc='upper left', bbox_to_anchor=(1, 1), ncol=1)
        plt.show()
    
    # Example usage
    layouts = [
        [0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 1, 0],
        # Add more layouts as needed
    ]
    
    validation_instance = Validation(layouts, circle=False, n_iterations=10000)
    plot_results(validation_instance)