![](https://img-blog.csdnimg.cn/2021050511175170.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图论
文章平均质量分 57
图论是一个非常大的话题,本专栏记录遇到的所有图论问题。
音程
这个作者很懒,什么都没留下…
展开
-
(完全解决)如何输入一个图的邻接矩阵(每两个点的亲密度矩阵affinity),然后使用sklearn进行谱聚类
网上倒是有一些关于使用sklearn进行谱聚类的教程,但是这些教程的输入都是一些点的集合,然后根据谱聚类的原理,其会每两个点计算一次亲密度(可以认为两个点距离越大,亲密度越小),假设一共有N个点,那么就是。参数其实就是距离计算公式你选用哪个的意思,比如我们常常知道的欧式距离,曼哈顿距离,当然谱聚类里面不是这些。总之,实际使用中,哪个效果好用哪个,建议官方提供的距离你都可以试一试。然后算法再根据这些亲密度进行聚类,即亲密度越大的点,他们应该聚在一起。,注意邻接矩阵需要为正数,否则报错,所以我们下面用了指数。原创 2023-10-22 20:25:59 · 1444 阅读 · 0 评论 -
使用networkx查看某一个节点的一阶/二阶/三阶邻居
一般情况下,貌似这些图之类的包,只提供查询一个节点的一阶邻居,但是有的时候我们需要二阶甚至三阶,那么该如何做呢?注意一下,本文的方法仅可以针对二阶或者三阶,更高阶的代码没有提供。假设有下面这个图。原创 2023-06-23 16:49:20 · 2083 阅读 · 0 评论 -
networkx的基本使用
1.初始化#导入包并初始化一个图。import networkx as nxg=nx.Graph()2.构造一个图#添加(删除)节点和边nodes=[1,2,3]edges=[(1,2),(2,3),(1,3)]g.add_nodes_from(nodes)#g.remove_nodes_from(nodes)g.add_edges_from(edges)#g.remove_nodes_from(edges)3.查看图的节点和边#查看图的节点和边gg.nodesg.e原创 2021-09-10 11:06:42 · 860 阅读 · 0 评论 -
指派问题
指派问题:在生活中经常遇到这样的问题,某单位需完成n项任务,恰好有n个人可承担这些任务。由于每人的专长不同,各人完成不同任务=所花费的时间不同。于是产生应指派哪个人去完成哪项任务,使完成n项任务的总时间最小。这类问题称为指派问题。举个例子:混合泳就是蝶泳、仰泳、蛙泳、自由泳各自100米的游泳,但要接力,所以肯定不能一个人同时上场两次。注意:指派问题的难度在于:按照蝶泳最好成绩来选是乙,仰泳是乙,蛙泳是乙,自由泳也是乙,但是乙只能上场一次,所以哪次上场?效益最高?难度在这!...原创 2021-04-24 22:07:27 · 1377 阅读 · 0 评论 -
二分图的匹配问题以及求解算法
概念二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V被分割为两个互不相交的顶点子集(A,B),并且边集E中的每条边(vi,vj)所关联的两个顶点vi和vj分别属于这两个不同的顶点集(比如vi in A,vj in B或者vi in B,vj in A),则称图G为一个二分图。举例如下:我们发现,A内部的顶点之间是没有边的,B也是,只有A,B相互之间连接,这就是二分图。问题定义在介绍二分图的匹配问题之前,先看个直观的例子。我们日常中听过最多的图的匹配原创 2021-04-16 21:52:18 · 1594 阅读 · 0 评论 -
图的概念以及常见的图论问题介绍
最大团问题:团就是完全子图,最大团就是最大完全子图。完全子图:给定无向图G=(V,E)。如果U⊆\subseteq⊆V,且对任意u,v∈\in∈U 有(u,v) ∈\in∈E,则称U是G的完全子图。G 的最大团是指G中所含顶点数最多的团。比如给定一个无向图:其最大团有3个,都有3个顶点。...原创 2021-04-18 21:37:21 · 1196 阅读 · 0 评论 -
TSP问题中:如果有n个顶点,那么一共有多少种不同的环游
如果有n个顶点,那么一共有多少种不同的环游?答: (n−1)!2\frac{(n-1)!}{2}2(n−1)!1.首先是全排列n!n!n!,然后由于1,2,3,。。。,n 和 2,3,。。。,n,1等等n个是一样的,所以要除以n。即下面几个是一样的。2.总之除以nnn之后为(n−1)!(n-1)!(n−1)!。3.又因为顺序和逆序是一样的,即我们在上面默认顺序都是从左往右,我们也可以反过来呀。4.从而还要除以2,(n−1)!2\frac{(n-1)!}{2}2(n−1)!。不过原创 2021-04-23 19:59:08 · 445 阅读 · 0 评论 -
深入理解网络最大流和Ford-Fulkson算法
第一部分设有如下图G:请问:使用观察法可以得知,最多是2条。但是目前是这样的,要你使用计算机编一个算法来求解这个问题,你会吗?我猜你不会哈哈。所以我下面提供一种思路,就是每一次找一条s-t路径,然后删去这条路径上的边,在剩下的图继续找。但是,这个算法有缺点:如果第一次找了一条下面的s-t路径那么删除之后就只剩下了红色的边:这个时候,找不到s-t路径了,所以算法就得出结论:最多只有1条不相交的s-t路径,这是错误的。所以我们要改进这个算法!改进的思路是:纠正以前走错了的路径。比如对于原创 2021-04-25 19:26:22 · 2175 阅读 · 0 评论 -
路,链(迹),割的概念
链(迹):路:原创 2021-04-24 20:49:53 · 1800 阅读 · 0 评论