Ejemplo n.º 1
0
class RrtGa:
    '''
    结合RRT和GA算法来
    解决路径规划问题
    输入图,遗传算法的一些参数
    '''
    def __init__(self, my_map):
        self.map = my_map
        self.pop_num = 20  # 种群数量
        self.rrt = RRT(self.map)
        self.mutate_rate = 0.0001  # 突变概率
        self.iterations = 100
        self.cross_rate = 0.9

    def init_pop(self):
        paths = []
        for _ in range(self.pop_num):
            path = self.rrt.find_path()
            paths.append(path)
        return paths

    def find_path(self):
        self.pop = self.init_pop()  # 生成初始种群
        self.fits = [self.map.get_fitness(path)
                     for path in self.pop]  # 计算初始种群的fitness值
        for iteration in range(self.iterations):
            pass