我的问题是我的遗传编程实现中是否可能在DEAP / Python中实现自定义适应性功能。
在搜索并阅读了DEAP的官方文档后,我没有找到任何关于它的信息,因此,如果你们中的一个可以帮助我,我将不胜感激。
谢谢。
答案 0 :(得分:1)
确定要自定义健身功能吗?
这有点令人困惑,但是您可能是指自定义评估函数。这应该返回一个数字,然后适应性函数会尝试将其最大化或最小化。
一个很好的例子是https://deap.readthedocs.io/en/master/examples/ga_onemax.html
在本教程中,设置了标准的最大化适应度功能:
extension UILabel {
/// The IBInspectable helps us to set localizable text in IB
@IBInspectable var localizableText: String? {
get { return text }
set(value) { text = value?.localized() }
}
/// The IBInspectable helps us to set localizable text in IB
@IBInspectable var localizableUppercaseText: String? {
get { return text }
set(value) { text = value?.localized().uppercased() }
}
}
extension String {
func localized(bundle: Bundle = .main, tableName: String = "Localizable") -> String {
return NSLocalizedString(self, tableName: tableName, value: "**\(self)**", comment: "")
}
}
接着是“自定义”评估功能:
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
然后将其注册到工具箱:
def evalOneMax(individual):
return sum(individual),