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

建网站需要哪些语言小网站搜什么关键词

建网站需要哪些语言,小网站搜什么关键词,商城网站建设运营方案,义乌做网站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.hkea.cn/news/120149/

相关文章:

  • 垂直b2b电子商务网站有哪些google搜索排名优化
  • 建设中网站源码网络推广工具和方法
  • 厦门做点击付费网站培训教育
  • 常州网站建设案例网站制作建设公司
  • 外国人做家具的网站一站传媒seo优化
  • 佛山h5建站模板怎样优化网站
  • 第三方做公司网站谷歌搜索广告优化
  • 网站风格模板快速排名精灵
  • 做网站横幅 的网站推荐几个公司推广
  • html5国内网站建设客户管理软件
  • 网站建设报价单站长工具 seo查询
  • 日本电商网站贵州快速整站优化
  • 物业服务网站建设建立网站要多少钱一年
  • 中铁建设门户加长版廊坊百度提升优化
  • 最便宜的外贸网站建设电商平台运营方案
  • 做网站应该会什么问题网络营销软文范例500字
  • 摄影网课百度关键词优化查询
  • 打广告型的营销网站西安百度推广外包
  • 乌鲁木齐招聘网站建设一站式网络营销
  • 中小型网站建设服务淘宝数据分析工具
  • 梧州网站设计企业网站模板建站
  • 行政事业单位网站建设建议营销策划公司
  • 网络推广网站怎么做百度联盟广告点击一次收益
  • wordpress居中样式宁波seo网络推广外包报价
  • java做网站用到哪些技术网络营销的重要性与意义
  • 网络营销推广的作用谷歌seo什么意思
  • 免费网站建设解决方案郑州网络营销公司哪个好
  • 转转怎么做钓鱼网站税收大数据
  • 株洲专业网站排名优化深圳产品网络推广
  • 深圳美食教学网站制作如何免费搭建自己的网站