我有以下问题: 对于遗传算法,我创建5个突变并将它们存储在准备好的列表中(参见下面的代码)。
这是我的功能,我想附加变异的驱动程序:
def startNewRunFromScratch(self):
self.log.logBlue('Starting new run from scratch', 2, 0)
parameterSet = []
parameterSet.append(Parameter('TEST', 0.5, 0, 1))
defaultGDriver = GDriver(parameterSet)
gDriverList = []
gDriverList.append(defaultGDriver)
m = Mutation(self.mutationRate)
for i in range(1, self.populationSize, 1):
g = m.mutate(defaultGDriver)
self.log.log('After mutaion: '+str(g.parameterSet[0].value), 0, 2)
gDriverList.append(g)
self.startSuite(gDriverList)
这里是startSuite原型函数:
def startSuite(self, gDriverList):
self.log.logSuccess('Starting suite', 1, 0)
for g in gDriverList:
self.log.log('Inside suite: '+str(g.parameterSet[0].value), 0, 2)
问题是,输出与我的逻辑不匹配:
Starting new run from scratch
After mutaion: 0.5
After mutaion: 0.5
After mutaion: 0.5
After mutaion: 0.740296236666
Starting suite
Inside suite: 0.740296236666
Inside suite: 0.740296236666
Inside suite: 0.740296236666
Inside suite: 0.740296236666
Inside suite: 0.740296236666
预期产出:
Inside suite: 0.5
Inside suite: 0.5
Inside suite: 0.5
Inside suite: 0.5
Inside suite: 0.740296236666
有没有人知道如何解决这个问题?也许我错过了什么。
答案 0 :(得分:1)
您反复追加相同的Mutation
,最后在列表中对其进行多次引用。如果您想要不同的Mutations
,则必须制作新的display: flex
。 (我认为你认为"问题",因为你从未明确说出输出有什么问题。)