function [minD,path] = BellmanFord(w,start,terminal)

%求单源最短路径的Bellman-Ford算法(图论)

%调用格式:[minD,path] = BellmanFord(w,start,terminal)

%输入:

% w------------图的带权邻接矩阵(可以是有向图,权值可正可负,但不能有负环,

% 如果两点之间没有边直连,则边权为无穷大)

% start--------源点标号

% terminal-----目的点标号

%输出:

% minD---------起点到终点的最短距离

% path---------是一个向量,存储了从源点到目的点的路径。如果没有输入目的点,则

% 第i位存储的是源点到节点i的最短路径上i的前驱结点

G = sparse(w); % 构造邻接矩阵w的稀疏矩阵

[u,v,c] = find(G); % 记录边的始点和终点

V = size(w,1); % 节点数量

E = length(u); % 边的数量

f = zeros(1,V); % 存放源点到该点最短路径上该点的前驱结点

% 初始化

dist = inf(1,V);

dist(start) = 0;

% 主循环

for k = 1:(V-1)

for e = 1:E

i = u(e); j = v(e);

if dist(j) > dist(i) + c(e)

d

matlab结束外循环,求单源最短路径的BellmanFord算法的matlab实现及其优化相关推荐

  1. 最短路径:Dijkstra算法(求单源最短路径)Floyd算法(求各顶点之间最短路径)

    最短路径: 在一个带权图中,顶点V0到图中任意一个顶点Vi的一条路径所经过边上的权值之和,定义为该路径的带权路径长度,把带权路径最短的那条路径称为最短路径. DiskStra算法: 求单源最短路径,即 ...

  2. C语言基本数据结构之三(图的广度及深度遍历,求单源最短路径的Dijkstra算法)

    上一篇主要讲了二叉树的先序,中序,后序遍历算法以及深度和节点的算法,这篇就讲一讲图的基本算法. 一.图的基本概念 1.1有向图G1: 有向图G是由两个集合V(G)和E(G)组成的,其中:V(G)是顶点 ...

  3. JAVA编程求单源最短路径_【算法】单源最短路径——dijkstra算法

    一,概念 单源最短路径 给定一个带权有向图G=(V,E),其中每条边的权是一个实数.另外,还给定V中的一个顶点,称为源.要计算从源到其他所有各顶点的最短路径长度.这里的长度就是指路上各边权之和.这个问 ...

  4. Dijkstra算法求单源最短路径

    1.最短路径 在一个连通图中,从一个顶点到另一个顶点间可能存在多条路径,而每条路径的边数并不一定相同.如果是一个带权图,那么路径长度为路径上各边的权值的总和.两个顶点间路径长度最短的那条路径称为两个顶 ...

  5. Spark组件之GraphX学习9--使用pregel函数求单源最短路径

    http://www.voidcn.com/blog/xubo245/article/p-5930144.html 1解释 使用pregel函数求单源最短路径 GraphX中的单源点最短路径例子,使用 ...

  6. Dijkstra(迪杰斯特拉)算法求单源最短路径问题

    Dijkstra(迪杰斯特拉)算法求单源最短路径问题 重要的事情说三遍:代码不是我写的!代码不是我写的!代码不是我写的! 第一个算法是严蔚敏数据结构(C语言版)上写的,第二个算法是王道数据结构上写的, ...

  7. 51nod 1445 变色DNA ( Bellman-Ford算法求单源最短路径)

    1445 变色DNA 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1 ...

  8. 【2023王道数据结构】【图】通过C++实现图的BFS(广度优先遍历)算法求单源最短路径问题C、C++完整实现(可直接运行)

    ~~~笔锋至此又怎能平淡而终,故事开始便不承认普通✌✌✌ ✌ 题目及题解持续更新中 [2023王道数据结构目录]课后算法设计题C.C++代码实现完整版大全 题目: 通过C++实现图的BFS(广度优先遍 ...

  9. 图的最短路径之Dijkstra求单源最短路径算法(C++)

    一个有向带权图求它的单源最短路径可以使用Dijkstra算法. 单源最短路径是指:从图中的某个顶点出发,到其余各个顶点权值最小的路径. Dijkstra算法需要用到三个辅助数组: dist[max]: ...

最新文章

  1. 推荐一个.NET下转Json的利器,FastJson
  2. golang map 存储函数
  3. C#中equal与==的区别
  4. Vue 之 qs.parse()、qs.stringify()使用方法
  5. Android Service(7)--完结篇
  6. 主键约束、外键约束、唯一约束、检查约束、默认值约束实例
  7. 由胡润百富榜联想到的
  8. 记一次 .NET 某市附属医院 Web程序 偶发性CPU爆高分析
  9. Android之Lollipop DevicePolicyManager学习(上)
  10. spring boot之session的创建,销毁,超时,监听等等小结
  11. Visual Studio Code快速删除空行及几个常用快捷键总结
  12. Com 方法默认参数值设置
  13. CCF-201703-1 分蛋糕
  14. CS106 错误拒绝访问
  15. IIS中启用ASP并连接Access数据库的解决办法
  16. windows 7 安装 db2 v11.1 下载 安装教程
  17. linux查看cpu核数命令,Linux系統下如何查看CPU型號、核心數量、頻率和溫度?
  18. 容联云通讯_提供网络通话、视频通话、视频会议、云呼叫中心、IM等融合通讯能力开放平台。...
  19. 大数据学习一般都需要学习哪些知识
  20. LeetCode 347. 前 K 个高频元素(C++)*

热门文章

  1. 基于51单片机的遥控小车
  2. StarUML的使用
  3. javascript高级编程学习
  4. android 视频画面拼接,Android实现视频剪切、视频拼接以及音视频合并
  5. 缺失数据的Bootstrap与Jackknife方法:《Statistical Analysis with Missing Data》习题5.1 5.2
  6. 带约束的多目标优化进化算法综述
  7. Creator 使用代码编辑九宫格
  8. RTOS内功修炼记(七)—— 内存管理
  9. 可以搜索相似网站的网站
  10. 微信小程序webview识别二维码长按点击识别二维码