zoukankan      html  css  js  c++  java
  • A*算法

    博客看的:

    d[v] = d[u] + w  其中d[v]表示从起点到点v的距离,w为u点到v点的距离

    h[u]表示点u到终点的距离 (为曼哈顿距离)

    从起点开始每次都选择d[u] + h[u]最小的相邻点为待处理结点,并且更新待处理结点相邻结点的d

    并将被更新的相邻结点v的父节点变为u

    if(d[v] < d[u] + w) {d[v] = d[u] + w; f[v] = u;}

    注意每个点走一次,忽略障碍物,直至走到终点t,则从f[t]开始遍历f即为最优路径

    算法设计课讲解:

    d[u]为起点s沿u的前一个结点这条路径到达u的距离

    h[u]为u的最小出边

    每次相邻的走d[u] + h[u]最小的边即可(dijkstra是一种退化的A*,走h[u]最小的边)

    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    简单题
    bzoj2131
    bzoj1706
    bzoj3531
    bzoj3744
    bzoj2724
    bzoj3343
    bzoj1005
    编程中、遇到问题、bug多思考
    线上系统奇怪问题总结,性能问题不能依赖经验
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/14440373.html
Copyright © 2011-2022 走看看