我想为自己的TSP问题编写自己的成本函数。我不想使用mlrose,因为我想随着时间的推移优化真正的坐标。
首先,我创建了一个coords_List,它看起来像这样:[(49.321,8.213(,[50.2321,9.124]…(
然后我创建了自己的适应度函数,它接受猜测数组并返回一个浮点值。
fitnessF = mlrose.CustomFitness(coords_list)
现在我设置了mlRose:
problem_fit = mlrose.TSPOpt(length = len(coords_list),fitness_fn =fitnessF, maximize=False)
best_state, best_fitness = mlrose.genetic_alg(problem_fit, random_state = 2)
返回:
Exception: fitness_fn must have problem type 'tsp'.
现在我设置了这样的代码:
fitnessF = mlrose.TravellingSales(check_fitness)
现在它将返回:
object of type 'function' has no len()
提前感谢
Ps:我也准备通过电子邮件分享我的笔记本
我可以弄清楚问题出在哪里。我必须定义我的自定义适应度函数,这是正确的,但对于TSP,我必须添加问题类型:
fitnessF=mlrose。CustomFitness(coords_list,"tsp"(
现在它会起作用的。