首页 > 其他分享 >基础绘图(有向、无向、权重、迪杰斯特拉)

基础绘图(有向、无向、权重、迪杰斯特拉)

时间:2023-04-30 14:34:24浏览次数:54  
标签:plot G2 权重 graph 迪杰 Edges 无向 斯特拉

在线绘图网站:

Graph Editor (csacademy.com)

1.基础绘图

1.1无权重图

graph(s,t)可以在s和t中的对应节点之间创建边并生成图
s和t必须具有相同的元素数
注意:编号从1开始,且是连续的编号

s1 = [1,2,3,4];
t1 = [2,3,1,1];
G1 = graph(s1,t1);
plot(G1)

% 通过下面这句可以不显式坐标轴
% set(gca,'XTick',[],'YTick',[]);



1.2有权重图

graph(s,t,w)
其中plot(G2,'EdgeLabel',G2.Edges.Weight)注意一定要写后面两个参数,不然不会显示权重

矩阵特点:对称矩阵,主对角线元素为0

s2 = [1,2,3,4];
t2 = [2,3,1,1];
w2 = [3,8,9,2];
G2 = graph(s2,t2,w2);
plot(G2,'EdgeLabel',G2.Edges.Weight)

 1.3有向图

无权重:digraph(s,t)

有权重:digraph(s,t,w)

有权重的矩阵特点:大多数不是对称矩阵,主对角线为0,Dij指第i到j节点的权重

1.迪杰斯特拉Dijkstra算法

app推荐: 算法动画图解  

迪杰斯特拉不能处理负权重

每次都是找最短路径,然后不断延伸

初始:

 

 

s = [9 9 1 1 2 2 2 7 7 6 6 5 5 4];
t = [1 7 7 2 8 3 5 8 6 8 5 3 4 3];
w = [4 8 3 8 2 7 4 1 6 6 2 14 10 9];
G = graph(s,t,w);
plot(G,'EdgeLabel',G.Edges.Weight,'linewidth',2)
[p,d] = shortestpath(G,9,4)
% 高亮最短路径
myplot=plot(G,'EdgeLabel',G.Edges.Weight,'linewidth',2);
highlight(myplot,p,'EdgeColor',"red")

% 求任意两点的最短路径矩阵
D = distances(G)
D(1,2) %1-->2最短路径
D(9,4) %9-->4最短路径

% 查找给定的节点内所有的点
%[nodeIDs,dist] = nearest(G,s,d,['方法']) s:节点,d距离
%nodeIDs返回序号,dist返回距离
[nodeIDs,dist] = nearest(G,2,10)

 

 

 

//2.贝尔曼-福特Bellman-Ford算法

 

标签:plot,G2,权重,graph,迪杰,Edges,无向,斯特拉
From: https://www.cnblogs.com/hmy22466/p/17364456.html

相关文章

  • 51nod 1212 无向图最小生成树(最小生成树)
    1212 无向图最小生成树基准时间限制:1 秒空间限制:131072 KB分值: 0 难度:基础题 收藏 关注Input第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000)第2 - M + 1行:每行......
  • 2023-04-11 无向图的匹配问题
    无向图的匹配问题之所以把无向图的这个匹配问题放到最后讲是因为匹配问题借鉴了有向图中一些算法的思想1最大匹配和完美匹配二分图回顾二分图:把一个图中的所有顶点分成两部分,如果每条边的两端分别属于不同部分,则这个图是二分图。更多二分图内容参考第4章二分图相关最大......
  • 2023-04-08 无向有权图之最短路径问题
    无向有权图之最短路径问题1有权图的最短路径问题什么是有权图的最短路径问题?从图中的一个点到另一个点的路径中,权值总和最小的路径就是最短路径最短路径的应用场景高德导航两个地点之间的路线,一般都是规划地最短路径互联网中对数据进行路由,一般都是选最优的路径进行数据......
  • 2023-04-07 无向有权图之最小生成树问题
    无向有权图之最小生成树问题前10章我们讲解地都是无向无权图,本章我们将讲解无向有权图,以及无向有权图的经典问题:最小生成树问题(MST:MinimumSpanningTree)1~2无向有权图的实现主要是用TreeMap代替了无向无权图的TreeSet本节用到的图上面的graph.txt对应的图如下:最......
  • 迪杰斯特拉算法(Dijkstra算法)
    洛谷P1821[USACO07FEB]CowPartyShttps://www.luogu.com.cn/problem/P1821一、递归/*B1631[Usaco2007Feb]CowParty====关键词================================......
  • 无向图
    无向图题目描述:小W在研究图论!现在,小W有一张n个点m条边的无向简单图。每个点都有点权,第i个点的权值为ai。小W现在需要删掉若干个点删掉某个点时,会将与这个点相连的边也全部......
  • 从 s 点到 t 点的最短路(简单模板)(迪杰斯特拉)
    迪杰斯特拉简单版#include<bits/stdc++.h>usingnamespacestd;intm,n;constintinf=0x3f3f3f3f;intdis[1005];intgra[405][405];intvis[1005];voidd......
  • 数据结构与算法-求最短路径之迪杰斯特拉(Dijkstra)算法
    迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径,它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。1.......
  • 使用栅格地图复现迪杰斯特拉算法
    Dijkstra算法可以计算出在有权图中从某个起点出发到其他任何一点的最短路径长度算法思想:迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最......
  • C语言最短路径[迪杰斯特拉算法][2023-01-16]
    C语言最短路径[迪杰斯特拉算法][2023-01-16]算法与数据结构课程设计要求一、 题目:最短路径二、课程设计报告要求1、设计目的(1)要求熟练掌握C语言的基本知识和编程技......