Re: 问题比方法更重要(HeK 20211009)

原文: https://blog.csdn.net/minfanphd/article/details/120666884

  1. 定义清楚问题
    输入、输出、优化目标、约束条件
    输入:1) 二维平面地图,地图的大小是已知的吗?2) 障碍是已知的吗(有可能走到面前才知道,并没有上帝视角)?3) 地图上的区域有差异吗(距离与路程是否一定成正比,如果有沼泽地就不一定了)?
    输出:从原点到终点的路径
    优化目标:1)路径最短;2)搜索时间最短。其实是多目标优化。
    约束条件:障碍物,导致有些顶点不可达

  2. 输入:起始点坐标,终点坐标,障碍物坐标以及其影响范围,这里使用的都是圆形障碍物,方便判断。1) 地图大小对算法本身来说是未知的,2)障碍物在什么地方也是未知的,如果经过障碍物区域或走到面前才知道3) 地图上的区域只分为障碍物区域以及非障碍物区域,障碍物区域不可达,非障碍物区域性质一致。如果中途未经障碍物区域,距离与路程一定成正比。
    输出:一条从起点达到终点的避开障碍物的路径。
    优化目标:1) 搜索时间最短 2) 路径长度最短或接近最短
    约束条件:路径需要避开障碍物,障碍物范围内不可达。

  3. 在本文中,起点:(0, 0),图中显示为绿色。
    终点:(15, 12),图中显示为红色。
    障碍物:设置了5个障碍物,均为黑色,不过半径不一样。
    实际地图范围:x轴0-15, y轴0-12。

图中,红色圆点为起点,标注为start。红色五角星为终点,标注为goal。在这里,使用的广度优先算法,dijkstra算法,遗传算法中的路径节点取值为离散的,即只走在整数坐标上(5,5)。每个节点可行的方向8个方向,即其周围相邻8个节点。在图中使用灰色线段画出,所有可行节点为灰色。图中标注了障碍物的中心坐标以及其影响范围。

在这里插入图片描述

  1. 给出一个最简单粗暴的算法,最好是确定性的
    穷举法、动态规划算法(自底向上)
    dijkstra算法,算法不赘述。
    规划结果如图,在非障碍物区域移动到下一节点的路径为节点间的距离 ,
[(0,0), (1,0), (2,0), (3,0), (4,0), (5,0), (6,1), (7,2), (8,3), (9,4), (10,5), (10,6), (10,7), (11,8), (12,9), (13,10), (14,11), (15,12)]

路径长度为21.142135623730955。
在这里插入图片描述

广度优先搜索,从起点开始遍历相邻8个节点。直至遍历到终点为止。
规划结果如图,路径节点分别为

[(0,0), (1,0), (2,0), (3,0), (4,0), (5,0), (6,1), (7,2), (8,3), (9,4), (10,5), (10,6), (10,7), (11,8), (12,9), (13,10), (14,11), (15,12)]

,路径长度为21.142135623730955。
在这里插入图片描述

在这里插入图片描述

  1. 寻找更优的算法,有可能是不确定性的智能算法
    分治法(减少时间的常用方法)
    遗传算法,算法思想比较简单。
    通过随机一定数量的初始化种群(理解为需要解决问题的解集),然后通过交叉(交换解的部分解值),变异(对解值做一定随机的变换),评估解的适应度(理解为解是否适合解决这个问题。在这里,使用路径长度,路径平滑度进行构造函数评估。),遗传,将生成的解集挑选部分解放入下次上述流程。直到达到最大迭代次数。
    遗传算法就是通过构造一定数量的解,只要解的数量足够多,就可能逼近或达到最优解。
    规划结果如图,路径节点分别为
[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 1), (7, 2), (7, 3), (8, 4), (9, 4), (10, 5),(10, 6), (10, 7), (11, 8), (12, 9), (13, 10), (14, 11), (15, 12)]

路径长度为22.313708498984766。
在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值