当前位置: 首页 > news >正文

wordpress 月光博客广州seo招聘

wordpress 月光博客,广州seo招聘,3d建模怎么做网站旋转,阿里巴巴吧网站建设1. 前言 前文的迪杰斯特拉算法不能求解有负边的图的最短路径的问题。而此文的Bellman-Ford可以处理含负权边的图算法,并且能检测出图中是否存在负环(权重和为负数的环). 2. 基本思想 1. 初始化: 对于所有顶点 v ∈ V \ {s}&am…

1. 前言

前文的迪杰斯特拉算法不能求解有负边的图的最短路径的问题。而此文的Bellman-Ford可以处理含负权边的图算法,并且能检测出图中是否存在负环(权重和为负数的环).

2. 基本思想

1. 初始化:

  • 对于所有顶点 v ∈ V \ {s}(除了起点 s),设其到起点的距离为无穷大(表示不可达)。
  • 起点 s 到自身的距离设为 0。


2. 松弛操作:

  • 遍历图中的每条边 (u, v) ∈ E,执行松弛操作 `Relax(u, v, w)`。松弛操作尝试通过边 (u, v) 更新从起点 s 到顶点 v 的已知最短距离。
  • 如果存在一条从起点 s 到顶点 u 的更短路径,并且这条路径加上边 (u, v) 的权重小于目前记录的从起点 s 到顶点 v 的距离,则更新顶点 v 的距离值。
  • 这个过程需要重复进行 |V| - 1 次(V 是顶点集)。因为在没有负权环的情况下,任何从起点到某个顶点的最短路径最多包含 |V| - 1 条边。

3. 检查负权环:

  •  在进行了 |V| - 1 轮松弛操作之后,再进行一轮松弛操作。如果在这个过程中仍然能够进一步减少某个顶点的距离值,那么说明图中存在一个可以被利用来无限降低路径成本的负权环。

3. 顶点类代码

public class Vertex {// 顶点的名字,用来区分顶点String name;// 与该顶点有关的边的集合List<Edge> edges;// 判断是否已经被遍历boolean visited = false;// 初始距离为无穷大int dist = INF;// INF表示无穷大final static int INF = Integer.MAX_VALUE;// 该顶点在最短路径中的前一个顶点Vertex prev = null;public Vertex(String name) {this.name = name;}public String getName() {return name;}
}

顶点图:

4. Bellman-Ford算法代码

public class BellmanFord {public static void main(String[] args) {Vertex v1 = new Vertex("1");Vertex v2 = new Vertex("2");Vertex v3 = new Vertex("3");Vertex v4 = new Vertex("4");v1.edges = new ArrayList<>();v1.edges.add(new Edge(v2, 2));v1.edges.add(new Edge(v3, 1));v2.edges = new ArrayList<>();v2.edges.add(new Edge(v3, -2));v3.edges = new ArrayList<>();v3.edges.add(new Edge(v4, 1));v4.edges = new ArrayList<>();List<Vertex> graph = new ArrayList<>();graph.add(v1);graph.add(v2);graph.add(v3);graph.add(v4);// v1作为起始点bellmanford(graph, v1);}public static void bellmanford(List<Vertex> graph, Vertex source){// 将起始点的距离设置为0,其余点的距离都是无穷大source.dist = 0;int size = graph.size();// 进行 顶点数-1 次处理for(int k = 0; k < size - 1; k++) {// 遍历所有的边for(Vertex v : graph){for(Edge e : v.edges){// 处理每条边if(v.dist != Integer.MAX_VALUE &&v.dist + e.weight < e.linked.dist){e.linked.dist = v.dist + e.weight;e.linked.prev = v;}}}}for(Vertex v : graph){System.out.println("v" + v.name + "  " + v.dist);}}
}

打印的结果:

v1  0
v2  2
v3  0
v4  1
http://www.khdw.cn/news/70892.html

相关文章:

  • 怎么弄免费的php空间做网站现在比较好的营销平台
  • 做pc端网站流程营销策划36计
  • 成都建站价格网站seo方案案例
  • 电话销售做网站的术语查找关键词的工具叫什么
  • 专业的网站制作公司如何申请网站域名流程
  • 做外挂网站嘉兴seo外包公司
  • 大庆网站建设优化营销型网站外包
  • 微网站建设哪家强seo交流论坛
  • 云南网站建设专业品牌搜狗收录查询
  • 网站访问量咋做百度官网网页版
  • 青岛做网站公司网站seo优化徐州百度网络
  • 给几个那方面网站网址网络营销毕业论文范文
  • 国际外贸网站在线网站建设
  • 怎样用java做网站厦门网站制作
  • 关于京东商城网站建设的实践报告seo是啥意思
  • 红河网站建设网站流量数据分析
  • 宣武门网站建设seo入门教程seo入门
  • 网站经常修改好不好排名优化推广
  • 怎样在在农行网站上做风险评估关键词搜索名词解释
  • 学生为学校做网站lol今日赛事直播
  • 苏州企业网站企业营销策划合同
  • 做网站为什么先交定金网页优化方案
  • 迪士尼网站是谁做的易搜搜索引擎
  • 网站开发和网页设计的区别东莞网站推广大全
  • 静态网站跟动态互联网广告营销方案
  • meetsh网站建设怎么申请一个网站
  • 做搜狗手机网站优化排天津百度推广网络科技公司
  • 修改动态网站内容任何小说都能搜到的软件
  • 可以做直播卖产品的网站百度指数搜索热度大学
  • 做土特产的网站哈尔滨百度推广联系人