GeneticMatch.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. ## Fichier : GeneticMatch.py
  2. # Auteur : Jovian Hersemeule
  3. # Exécute des matchs
  4. # à des fins statistiques.
  5. from Outils.Moteur_de_jeu import *
  6. from Outils.Moteur_de_jeu.Partie import *
  7. #from Outils import IA_MinMax
  8. #from Outils.IA_MinMax import *
  9. from Outils import IA_alphabeta
  10. from Outils.IA_alphabeta import *
  11. from ReseauNeurones import *
  12. from ReseauNeurones.cerveau import *
  13. #from Eval_v1 import fct_eval as fct1
  14. #from Eval_v2 import fct_eval as fct2
  15. from Eval_v3 import fct_eval as fct3
  16. fct_eval = [(lambda x, y : 0), (lambda x, y : 0), fct3]
  17. # Paramètres
  18. nom_session = "PurAleatoireFast2"
  19. incr = 1
  20. id_eval = 3
  21. prof = 1
  22. debug = False
  23. # Annonce
  24. print("Ajuster les paramètres puis lancer write_stats()")
  25. print("string: nom_session > nom de la session génétique à éprouver")
  26. print("int: incr > l'écart entre chaque génération")
  27. print("int: id_eval > heuristique utilisée pour l'aplhabeta de référence")
  28. print("int: prof > profondeur du MinMax de référence")
  29. print("bool: debug > permet d'avoir des retours dans le log"
  30. # Fonction de stats
  31. def write_stats():
  32. """
  33. Ecrit les statistiques d'une session génétique.
  34. """
  35. # Joueur de référence
  36. joueurRef = IA_minmax_alpha_beta("AlphaBeta-p" + str(prof)"-ev"+str(id_eval), fct_eval[id_eval], prof)
  37. # Ouverture du flux
  38. result_stream = open("ReseauNeurones/" + nom_session + "-VS-" joueurRef.nom + ".txt", "w")
  39. # Chargement d'un réseau
  40. myBrain = Cerveau()
  41. myBrain.charger_structure( "PrimitifEfficace.stc", debug = debug )
  42. myBrain.charger_poids( "PurAleatoireFast2/Generation50/individu0.pds", debug = debug )
  43. myBrain.build_network( debug = debug )
  44. # Match
  45. joueurA = IA_minmax("Genetic:Primitif", myBrain.fct_eval, 1 )
  46. joueurB = Humain("Humain")
  47. Global.partie = Partie(joueurA, joueurB, True, "")
  48. vainqueur = Global.partie.demarrer()
  49. # TODO : boucle etc ...