class EvolutionaryAlgorithm: def __init__(self, queens, initialPopulation, iterations, mutationProbability, numberOfIndividues): print "Parametros:" print "Numero de reinas ", queens print "Poblacion inicial ", initialPopulation print "Iteraciones ", iterations print "Probabilidad de mutacion ", mutationProbability print "Torneo de ", numberOfIndividues print "\nSoluciones\n " global initialTime initialTime = clock() self.__queens = queens self.__initialPopulation = initialPopulation self.__iterations = iterations self.__mutationProbability = mutationProbability self.__numberOfIndividues = numberOfIndividues self.__boardManager = BoardManager(self.__queens, self.__initialPopulation) self.__operator = EvolutionaryOperators() def runAlgorithm(self): for i in range(self.__iterations): fathers = self.__boardManager.getFathers(self.__numberOfIndividues) sons = self.__operator.geneticCross(fathers[0],fathers[1]) for son in sons : self.__boardManager.insertBoard(son) if self.__operator.isThereMutation(self.__mutationProbability): board = self.__boardManager.extractBoard(random.randint(0,len(self.__boardManager.getBoards())-1)) self.__boardManager.insertBoard(self.__operator.geneticMutation(board)) def getSolutions(self): return self.__boardManager.getSolutions()
def __init__(self, queens, initialPopulation, iterations, mutationProbability, numberOfIndividues): print "Parametros:" print "Numero de reinas ", queens print "Poblacion inicial ", initialPopulation print "Iteraciones ", iterations print "Probabilidad de mutacion ", mutationProbability print "Torneo de ", numberOfIndividues print "\nSoluciones\n " global initialTime initialTime = clock() self.__queens = queens self.__initialPopulation = initialPopulation self.__iterations = iterations self.__mutationProbability = mutationProbability self.__numberOfIndividues = numberOfIndividues self.__boardManager = BoardManager(self.__queens, self.__initialPopulation) self.__operator = EvolutionaryOperators()