def initializeAlgorithm(populatinSize, dataLength, iterationsNumber, mutationRate, crossoverRate): chromosomeDataFactory = ChromosomeDataFactory() chromosomeDataFactory.dataLength = dataLength chromosomeFactory = ChromosomeFactory() chromosomeFactory.chromosomeDataFactory = chromosomeDataFactory chromosomeFactory.crossoverRate = crossoverRate chromosomeFactory.mutationRate = mutationRate populationFactory = PopulationFactory() populationFactory.chromosomeFactory = chromosomeFactory populationFactory.populationSize = populatinSize algorithm = Algorithm() algorithm.population = populationFactory.create() algorithm.numberOfIterations = iterationsNumber return algorithm