Matlab:toposort

news2024/9/20 14:56:34

语法:

n = toposort(G)            %调用toposort函数,对有向图G进行拓扑排序,并将排序结果存储在变量n中
n = toposort(G,'Order',algorithm)   
[n,H] = toposort(___)   %使用了两个输出参数的形式来调用toposort函数。除了返回排序结果n外,还将拓扑排序结果的有向边存储在变量H中。变量H是一个有向图的边列表

节点的拓扑排序:

示例:创建一个有向图,表示一些学科之间的关系,并使用 plot 函数将其可视化

A = [0 1 1 0 0 0 0
     0 0 0 1 0 0 0
     0 1 0 1 0 0 1
     0 0 0 0 1 1 0
     0 0 0 0 0 0 0
     0 0 0 0 1 0 0
     0 0 0 0 1 0 0];
%定义一个7x7的邻接矩阵A,用于表示学科之间的关系。每个元素A(i,j)表示学科i到学科j是否有边,1表示有,0表示没有

names = {'Calculus I','Linear Algebra','Calculus II', ...
    'Multivariate Calculus','Topology', ...
    'Differential Equations','Real Analysis'};
%定义一个cell数组 names,包含了7个字符串元素,分别对应7个学科的名称

G = digraph(A,names);
%使用digraph函数创建一个有向图G,其中第一个输入参数是邻接矩阵A,第二个输入参数是学科名称数组 names。digraph函数会返回一个代表有向图的对象

plot(G)            %可视化
N = toposort(G)
G.Nodes.Name(N,:)        %找出课程的拓扑排序来确定正确的课程完成顺序

稳定拓扑排序:

示例:使用逻辑邻接矩阵创建有向图,然后绘制图

rng default;
A = tril(sprand(10, 10, 0.3), -1)~=0;
%使用sprand函数生成一个大小为10x10的稀疏矩阵,其中非零元素的概率为0.3,并将其转换为逻辑型矩阵。tril函数将矩阵的上三角部分置零,得到一个下三角矩阵。最后,通过~=0将非零元素转换为逻辑值(1表示存在边,0表示无边)得到邻接矩阵A

G = digraph(A);        %使用digraph函数创建一个有向图 G,其中输入参数是邻接矩阵 A。digraph 函数会返回一个代表有向图的对象

[~,G] = toposort(G);        %调用 toposort 函数对有向图G进行拓扑排序(此处使用波浪线 (~) 忽略了排序结果的返回值)

plot(G)
toposort(G)
toposort(G,'Order','stable')

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp 编译后文字乱码的解决方案

问题: 新建的页面中编写代码,其中数字和图片都可以正常显示,只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~

bootloader学习笔记及SD卡启动盘制作

Bootloader介绍 在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统) Bootloader基本功能 1、初始化软硬件环境 2、引导加载linux内核 3、给linux…

golang实现rpc方法二:使用jsonrpc库【跨平台】

首先在golang实现rpc方法一net/rpc库中实现了RPC方法,但是那个方法不是跨平台的,没法在其他语言中调用这个实现的RPC方法,接下来我们可以通过jsonroc库实现跨语言的RPC方法。俩种实现方式的代码其实也是差不多的,大差不差&#xf…

变更数据捕获:概述、原因及最佳实践

当今的企业,尤其是那些已将数字化转型置于优先地位的企业,需要接近实时的数据。每周和每月的批处理已不再适用。然而,从多种来源获取实时数据以自动化流程并做出动态优化决策并非易事。 最近,在为客户重新架构遗留系统并将单体架构…

强化学习应用(六):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…

大模型实战营Day4 XTuner大模型单卡低成本微调实战

FINETUNE简介 LLM下游应用中,增量预训练和指令跟随是经常会用到的两种微调模式 指令跟随微调 使用场景:让模型学会对话模板,根据人类指令进行对话 训练数据:高质量的对话,问答数据 为什么需要指令微调? 因为…

YZ虚拟资源下载源码-支持对接公众号-对接支付

这款系统内置的模板是电脑系统下载站的类型,当然你也可以用作其他类型,例如软件下载,其他类型的资源下载,知识付费下载等,改下文字内容即可。 支持商城系统,后台可配置支付。青狐修改增加了很多可用性。 …

遭受慢速连接攻击怎么办?怎么预防

慢速连接攻击是一种常见的网络攻击方式,其原理是利用HTTP协议的特性,在建立了与Http服务器的连接后,尽量长时间保持该连接,不释放,达到对Http服务器的攻击。 慢速连接攻击的危害包括以下几个方面: 1.资源…

Python Flask教程

Flask Doc: https://rest-apis-flask.teclado.com/docs/course_intro/what_is_rest_api/Github: https://github.com/tecladocode/rest-apis-flask-python 1. 最简单的应用 最小应用 from flask import Flaskapp Flask(__name__)app.route("/") def hello_world()…

Qt6安装教程

由于QT在5.14版本后不再有离线安装版本,均需要通过在线安装 1.下载exe安装包 打开Open Source Development | Open Source License | Qt,往下拉,找到红框所示的按钮 点进去后点击Download即可 2 安装 下载完成后可得到qt-unified-windows…

AI大模型学习笔记一

一、商业观点:企业借助大模型获得业务增长可能 二、底层原理:transformer 1)备注 ①下面每个步骤都是自回归的过程(aotu-regressive):已输出内容的每个字作为输入,一起生成下一个字 ②合起来就…

Windows平台RTMP推送|轻量级RTSP服务录像模块如何支持中文路径?

技术背景 我们在做Windows平台RTMP推送、轻量级RTSP服务录像模块的时候,部分开发者抱怨路径无法设置中文,只能设置为英文。 以C#的接口为例,早期的设计如下: /** 设置本地录像目录, 必须是英文目录,否则会失败*/[DllI…

软考学习笔记--操作系统-进程管理

进程管理是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,是系统进行资源分配和调度的基本单位。相对于程序,进程是动态的概念,而程序是静态的概念,是指令的集合。进程具有动态性和并发性,需要一定…

SwiftUI之深入解析如何使用SwiftUI Charts创建折线图

一、简单折线图 苹果在 WWWDC 2022 上推出了 SwiftUI 图表,这使得在 SwiftUI 视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。本文展示了如何用比以前从头开始创建同样的折线图少得多的代码轻松创建折线…

Android WiFi Service启动-Android13

Android WiFi Service启动 - Android13 1、SystemServer中入口2、WifiService启动2.1 关键类概要2.2 启动时序图 Android WiFi基础概览 AOSP > 文档 > 心主题 > WiFi概览 1、SystemServer中入口 编译生成对应的jar包:"/apex/com.android.wifi/javalib…

十三、QPalette的简单使用(Qt5 GUI系列)

目录 一、设计需求 二、实现代码 三、代码解析 四、总结 一、设计需求 在实际应用中,经常需要改变某个控件的颜色外观,如背景、文字颜色等。Qt提供的调色板类 QPalette 专门用于管理对话框的外观显示。QPalette 类相当于对话框或是控件的调色板&…

1222. 密码脱落(dp划分)

题目&#xff1a; 1222. 密码脱落 - AcWing题库 思路&#xff1a; 代码&#xff1a; #include<cstdio> #include<cstring> using namespace std; const int N1010; int f[N][N];//表示以L和R为两端点的字符串的“最长”回文序列长度 char s[N];//存储输入的字符串…

【Docker篇】使用Docker操作镜像

文章目录 &#x1f6f8;镜像&#x1f33a;基本操作⭐docker --help⭐docker pull [ 参数 ]⭐docker images⭐docker save -- 导出⭐docker rmi -- 删除⭐docker load -- 导入 &#x1f6f8;镜像 镜像是指在计算机领域中&#xff0c;通过复制和创建一个与原始对象相似的副本的过…

js逆向第20例:猿人学第19题乌拉乌拉乌拉

文章目录 一、前言二、定位关键参数1、JA3/TLS指纹怎么查看2、加密值长度对比三、代码实现四、参考文献一、前言 任务十九:抓取这5页的数字,计算加和并提交结果 此题在以前用python写逆向代码是存在缺陷的,直到今年有个大佬开源了curl_cffi库,并且支持 JA3/TLS 和 http2 指…

计算机组成原理 CPU的功能和基本结构和指令执行过程

文章目录 CPU的功能和基本结构CPU的功能CPU的基本结构 指令执行过程指令周期概念指令执行方案指令数据流取周期数据流析指周期数据流执行周期数据流中断周期数据流 数据通路的功能和基本结构数据通路的功能数据通路的结构单总线 CPU的功能和基本结构 #mermaid-svg-jr0QOEyC6Q92…