我在使用PYGAD的GA模块编写遗传编程,我想使用锦标赛选择方法来匹配父代,但我不知道如何使用print()来调试父代选择方法,以下是我的代码:
import numpy as np
import pygad
def fitness_func(ga_instance, solution, solution_idx):
return sum(solution)
population = np.array([[9, 9, 9], [6, 6, 6], [7, 7, 7], [8, 8, 8],[1,1,1],[2,2,2],[3,3,3],[0,0,0],[4,4,4],[5,5,5]])
ga_instance = pygad.GA(initial_population=population,
parent_selection_type="tournament",
K_tournament = 3)
# 计算初始种群的适应度
fitness = ga_instance.cal_pop_fitness()
我想查看下一代选择的父代,如何打印它们来调试内置的父代选择方法,非常感谢
回答:
有两种方法:
- 使用
on_parents()
参数。它被分配一个回调函数/方法,该函数/方法接收选定的父代。
def on_parents(ga_instance, selected_parents):
print("on_parents()")
ga_instance = pygad.GA(...,
on_parents=on_parents,
...)
- 使用
last_generation_parents
实例属性。你可以从任何地方使用pygad.GA
类的实例来获取这个属性的值。