数模打怪(八)之图论模型

一、作图

图的数学语言描述:

G( V(G), E(G) ),G(graph):图,V(vertex):顶点集,E(edge):边集

1、在线作图

https://csacademy.com/app/graph_editor

2、matlab作图

%1、无权重
%graph(s,t): 可在s和t的对应节点之间生成边,从而连成一个图
%s和t必须有相同的元素个数,这些元素的值是1,2,3...(连续正整数),或者是字符串元胞数组s1=[1,2,3,4]
t1=[2,3,1,1]
G1=graph(s1,t1)
plot(G1)s2=["学校","电影院","网吧","酒店"]
t2=["电影院","酒店","酒店","KTV"]
G2=graph(s2,t2)
plot(G2,'LineWidth',2) %设置线宽
%set(gca,'XTick',[],'YTick',[]); %画图不显示坐标%2、有权重
%graph(s,t,w): 在s和t中的对应节点之间生成全中为w的边,从而生成一个图
s=[1,2,3,4]
t=[2,3,1,1]
w=[3,8,9,2]
G=graph(s,t,w)
%'EdgeLabel' 是一个参数,用于指定边的标签
%G.Edges.Weight 获取图 G 中每条边的权重,并将这些权重作为边的标签进行显示
plot(G,'EdgeLabel',G.Edges.Weight,'LineWidth',2)
set(gca,'XTick',[],'YTick',[])%有向图,把graph换成digraph即可
s1=[1,2,3,4,1,2]
t1=[2,3,1,1,4,2]
G1=digraph(s1,t1)
plot(G1)

二、Dijkstra算法计算最短路径

1、计算方法(流程图)

 关键点:

  • 贪心策略:每次选择当前距离起点最近的点,这个选择是最优的,逐步扩展最短路径集合。
  • 优先队列:通常使用一个优先队列(如最小堆)来高效地找到当前距离最近的点。

2、该算法的缺点

迪杰斯特拉算法的一个缺点:

不能处理负权重(虽然可以用于有向图) 

3、matlab代码

(1)计算最短路径

 (2)计算距离矩阵 

 (3)找出给定范围内的所有点

 

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)
myplot=plot(G,'EdgeLabel',G.Edges.Weight,'LineWidth',2) %将图赋给一个变量
highlight(myplot,P,'EdgeColor','red') %在图中高亮出最短路径
set(gca,'XTick',[],'YTick',[])
[P,d]=shortestpath(G,9,4)%求出任意两点的最短路径矩阵
D=distances(G)
D(1,2) %1->2的最短路径
D(9,4) %9->4的最短路径%找出给定范围内的所有点 nearest(G,s,d)
%返回图G中与节点s的距离在d之内的所有节点
[nodelDs,dist]=nearest(G,2,10)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386658.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自闭症儿童能否上学:家长的选择与困惑

在自闭症儿童的成长旅程中,上学这一关键议题常常使家长陷入异常艰难的抉择和无尽的困惑之中。对于自闭症儿童究竟能否上学,家长们不得不面对众多纷繁复杂且至关重要的考量因素。 一方面,家长们怀揣着美好的期望,渴望孩子能够融入正…

C# 使用pythonnet 迁入 python 初始化错误解决办法

pythonnet 从 3.0 版本开始,必须设置Runtime.PythonDLL属性或环境变量 例如: string pathToVirtualEnv ".\\envs\\pythonnetTest"; Runtime.PythonDLL Path.Combine(pathToVirtualEnv, "python39.dll"); PythonEngine.PythonHom…

知识图谱增强的RAG(KG-RAG)详细解析

转自:知识图谱科技 这是一个与任务无关的框架,它将知识图谱(KG)的显性知识与大型语言模型(LLM)的隐含知识结合起来。这是该工作的arXiv预印本 https://arxiv.org/abs/2311.17330 。 我们在这里利用一个名为…

linux中mysql的安装使用(普通版版本+docker版本)

linux中mysql的安装使用 一、普通安装1.下载安装包2.流程 二、用docker安装1.拉取mysql镜像2.启动镜像3.开启权限第一种情况第二种情况 三、用Navicat连接 一、普通安装 1.下载安装包 挑选个你喜欢的目录,用wget下载并且解压 wget http://dev.mysql.com/get/Down…

Java人力资源招聘社会校招类型招聘系统PC端

🔍【揭秘】人力资源新利器!社会校招一站式PC端招聘系统全攻略🚀 🌈 开篇引言:招聘新纪元,效率为王! Hey小伙伴们,你是否还在为繁琐的招聘流程头疼不已?🤯 面…

京东商品详情API:多规格商品的返回值处理

处理京东商品详情API中关于多规格商品的返回值,首先需要了解京东API的返回数据结构。通常,对于多规格商品(如不同颜色、尺寸等选项的商品),API会返回一个包含多个规格选项和对应价格、库存等信息的复杂数据结构。 以下…

【“微软蓝屏”事件暴露了网络安全哪些问题?】建设安全稳固的网络基础设施

目录 前言一、软件更新流程中的风险管理和质量控制机制(一)测试流程及风险识别(二)风险管理策略(三)质量控制措施 二、预防类似大规模故障的最佳方案或应急响应对策(一)冗余系统设计…

.NET 一款获取主流浏览器存储密码的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【解决方案】华普微基于CMT2150A自发电无线遥控解决方案

一、方案概述 自发电无线遥控设备的概念是指设备自身能够通过能量收集技术,如太阳能、动能收集或其他可再生能源,产生所需的电能来供电,而无需更换电池或外部电源。这种技术的应用可以减少对电池的依赖,降低对环境的影响&#xf…

github好用工具分享——lux:一键获取视频指令

我们在学习工作中需要大量的数据信息,然而这些数据有什么获取很麻烦,尤其是视频下载资源,那么有没有一种工具即简单方便又实用呢? 接下来我会向大家介绍lux工具的使用,lux是非常方便的获取视频资源指令,只需…

前端拥抱AI:LangChain.js 入门遇山开路之PromptTemplate

PromptTemplate是什么 PromptTemplate是一个可重复使用的模板,用于生成引导模型生成特定输出的文本。与Prompt的区别: PromptTemplate相对于普通Prompt的优势,即其灵活性和可定制性。 简单了解PromptTemplate后,咱们就来聊聊LangChain里的P…

C语言——运算符及表达式

C语言——运算符及表达式 运算符运算符的分类(自增运算符)、--(自减运算符)赋值运算符逗号运算符(顺序求值运算符) 表达式 运算符 运算符的分类 C语言的运算符范围很宽,除了控制语句和输入输出…

如何安装python

以下的安装仅针对Windows10系统 一、下载python和解释器 解释器下载 第一步,找到下载的地方 1.找到官网 2.直接点击地址链接 Python Release Python 3.7.2 | Python.org 第二步,找到对应的版本进行安装 进入页面之后,下滑,…

【学术会议征稿】第六届土木建筑与城市工程国际学术会议(ICCAUE 2024)

第六届土木建筑与城市工程国际学术会议(ICCAUE 2024) 2024 6th International Conference on Civil Architecture and Urban Engineering (ICCAUE 2024) 第六届土木建筑与城市工程国际学术会议(ICCAUE 2024)将于2024年11月15-17…

学习008-02-04-08 Localize UI Elements(本地化UI元素)

Localize UI Elements(本地化UI元素) This lesson explains how to localize an XAF application. It describes how to translate UI elements into German and create a multi-language application. 本课介绍如何本地化XAF应用程序。它描述了如何将U…

二次开发必备:开源在线海报图片设计器——poster-design

一、介绍 poster-design是一个最酷的开源在线海报图片设计器,漂亮易用且功能强大。它适用于多种场景:海报图片生成、电商分享图、文章长图、视频/公众号封面等,无需下载软件即可轻松实现创意、迅速完成排版。使用Vue3 、Vite5 、Vuex 、Elem…

Vite + Vue3 + TS项目配置前置路由守卫

在现代前端开发中,使用 Vue 3 和 TypeScript 的组合是一种流行且高效的开发方式。Vite 是一个极速的构建工具,可以显著提升开发体验。本文博主将指导你如何在 Vite Vue 3 TypeScript 项目中配置前置路由守卫(Navigation Guards)…

使用JavaFx Fxml笔记

使用JavaFx Fxml实现账号密码登录 HelloApplication.java:package com.example.dr295cmonth7;import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.Scene; i…

敏感信息泄露wp

1.右键查看网页源代码 2.前台JS绕过,ctrlU绕过JS查看源码 3.开发者工具,网络,查看协议 4.后台地址在robots,拼接目录/robots.txt 5.用dirsearch扫描,看到index.phps,phps中有源码,拼接目录,下载index.phps …

##__VA_ARGS__的作用

参考文章:https://blog.csdn.net/u013073067/article/details/125356313 ##__VA_ARGS__前面加上##的作用是:当可变参数的个数为0时,这里的##可以把把前面多余的","去掉,否则会编译出错。 在linux内核中随处可见这种宏定义的用法 #include &…