示例#1
0
    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()
示例#2
0
 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(_)