def __init__(self,prog=None,gp=None,lCap=[]): # gestion du GeneratePercept choisir la variable de stockage if gp is not None: generatep = gp elif lCap == []: generatep = None else: generatep = GeneratePercept(lCap,objetsStatiques) #Création du programme génétique if prog is None: # choisir le nom de votre variable, remplacez les ... dicaction={"A":"Aspirer","G":"Gauche","D":"Droite","R":"Repos"} if lCap==[]: programme = ProgramGenetic(1,8,['A','G','D','R'],dicaction) else: programme = ProgramGenetic(1,generatep.howMany,['A','G','D','R'],dicaction) elif isinstance(prog,ProgramGenetic): if lCap!=[]: if gp.howMany!=len(prog): raise AssertionError("the generatepercept don't match the program") programme = prog else: raise AssertionError("{} expected got {}" .format(ProgramGenetic,type(prog))) # récupération des actions depuis votre variable # attention ce n'est pas une 'list' c'est un 'set' lAct = list(programme.actions) super().__init__(lCap,lAct) self._dicAspi["gp"]=generatep self._dicAspi["programme"]=programme # choisir la variable pour energie self._dicAspi["energie"]= 100 self._dicAspi["cpt"]=0 self.reset()
def __init__(self, nbIteration, fichier, capteurs, envt, nbIndiv, szGene, alphabet, decodeur, panne=False): self.__sim = Simulateur(nbIteration, fichier, capteurs, panne) if capteurs == []: self.__nbG = 20 self.__gp = None else: self.__gp = GeneratePercept(capteurs, envt) self.__nbG = self.__gp.howMany self.__prog = ProgramGenetic(szGene, self.__nbG, alphabet, decodeur) super().__init__(nbIndiv, self.__nbG, szGene, alphabet) for x in self.popAG: x.fitness = lambda _: self.simEval(_)