def __init__(self, num=0): self._playernum = num self._finalboard = fbc.FinalBoardComponent() self._penalty = p.Penalty() self._prepboard = pbc.PrepBoardComponent(self._finalboard, self._penalty) self._score = 0 self._firstplayer = False self._projfinalboard = fbc.FinalBoardComponent()
def __init__(self, chromosome, resEval, penEval, fitnessEval, pop): self.Chromosome = chromosome self.ResEval = resEval self.PenEval = penEval self.FitnessEval = fitnessEval self.PopulationSize = 400 self.Elitism = 2 self.SelectionOp = TournamentSelectionOperator(2, 2) self.RecombinationOp = DrunkRecombinationOperator() self.MutationOp = None self.PenEval.Evaluate(pop) self.FitnessEval.Evaluate(pop) pop.SortByFitness() self.Population = pop rdb = Surrogate.ResponseDatabaseFromPopulation(self.Population) sdb = Surrogate.SuccessDatabaseFromPopulation(self.Population) self.ResponseModel = Surrogate.RBFNetwork() self.ResponseModel.Train(rdb) self.SuccessModel = Surrogate.RBFNetwork() self.SuccessModel.Train(sdb) self.SurrogateResEval = SurrogateResponseEvaluator( self.ResponseModel, self.SuccessModel, self.Chromosome) self.SurrogateChromosome = self.Chromosome.Clone() self.SurrogateChromosome.Responses.append( Value("TorczonMerit", "FLOAT", 0.0)) self.SurrogatePenEval = copy.deepcopy(self.PenEval) self.SurrogatePenEval.ObjectivePenalties.append( Penalty("MAXIMIZE", "TorczonMerit", exponent=1.0)) # self.SurrogatePenEval.ConstraintPenalties.append(Penalty("LOWER_BOUND", "__SUCCESS__", 100.0, 1.0, 0.5)) self.TrustRegion = TrustRegion(self.SurrogateChromosome) self.TrustRegionSize = 1.0 self.TrustRegionCoeffWhenImproved = 1.3 # 1.2 self.TrustRegionCoeffWhenNotImproved = 0.9 # 0.7 self.TrustRegionSizeMinimum = 0.05 self.MeritWeight = 0.01 self.HistoryOutput = open("history.dat", "w")