Exemplo n.º 1
0
 def run(self,prog,gp=None):
     """
     prog est un ProgramGenetic
     gp est un GeneratePercept optionnel
     
     crée l'aspirateur Aspirateur_PG
     ajoute l'information panne à l'aspirateur
     met un compteur a 0
     détermine quels environnements seront utilisables 0, 1, 2
     pour chaque environnement
          s'il n'est pas utilisable : continue
          creer m = MondeSimulation(aspirateur,1,nbCol)
          pour chaque position a tester
              compteur = compteur + m.simulation(nbIter,table,position)
     renvoyer compteur
     
     renvoie le score total obtenu pour chaque simulation,
     on aurait pu prendre non pas le score de la simulation mais
     celui de la performance de l'agent ou une combinaison des deux
         exemple: alpha perfGlobale + beta getEvaluation()
         total_sim = 0 ; total_agent = 0
         alpha = .5 ; beta = 1 - alpha
         ....
         for p in _lpos:
             total_sim += m.simulation( .... )
             total_agent += m.agent.getEvaluation()
         ...
         return alpha * total_sim + beta * total_agent
     """
     aspi = Aspirateur_PG(prog,gp,self.__lcap)
     aspi.panne = self.panne
     _total = 0
     # détermination de l'ensemble des typ_ admis en fonction de __lcap
     _ltyp = [0,1,2]
     if aspi.capteurs == []: _ltyp.remove(1)
     else: _ltyp.remove(0)
     for e in self.__envt.values():
         _typ,_nbCol,_table,_lpos = e
         if _typ not in _ltyp: continue
         m = MondeSimulation(aspi,1,_nbCol)
         for p in _lpos:
             _total += m.simulation(self.__nbMaxIter,_table,p)
     return _total
Exemplo n.º 2
0
# utilise-t-on des pannes
panne = False
# if capteurs != []:
#     _ok = "oO0Yy"
#     _rep = input("L'aspirateur peut etre en panne [oui in {}] ? ".format(_ok))
#     panne = _rep in _ok
     
actions = "Aspirer Gauche Droite Repos".split()
aspirateurs = {}
# aspirateurs['genetique'] = Aspirateur_PG(prog, gp, capteurs)
# assert aspirateurs['genetique'].program.program == chrom, "something odd is happening"

aspirateurs['aleatoire'] = Aspirateur_KBE(0, capteurs, actions )
aspirateurs['apprenant'] = Aspirateur_KBE(.75, capteurs, actions, True)
aspirateurs['genetique_kapt_panne'] = Aspirateur_PG(prog, gp, capteurs)
aspirateurs['genetique_kapt_npanne'] = Aspirateur_PG(prog, gp, capteurs)
aspirateurs['genetique_nkapt'] = Aspirateur_PG(prog, gp)
aspirateurs['genetique_kapt_panne'].panne = True
aspirateurs['genetique_kapt_npanne'].panne = False

# for k in aspirateurs:
#     aspirateurs[k].panne = panne

stocker_eval = dict()
stocker_perf = dict()    
# création des mondes et récupérations des résultats
# on manipule une copie de l'environnement pour éviter les pbs
resultats = {}

#===============#