图论的实际应用

图的应用

最短路径

带 权 图 G = < V , E , w > , 其 中 w : E − − > R , ∀ e ∈ E , w ( e ) 称 作 e 的 权 。 e = ( v i , v j ) , 记 w ( e ) = w i j . 若 v i , v j 不 相 邻 , 记 w i j = ∞ 带权图G=<V,E,w>, 其中w:E-->R, \forall e \in E , w(e)称作e的权。 e=(vi,vj), 记w(e)=wij . 若vi,vj不相邻, 记wij = \infty G=<V,E,w>,w:E>R,eE,w(e)ee=(vi,vj),w(e)=wij.vi,vj,wij=
通路L的权: L的所有边的权之和, 记作w(L)
u和v之间的最短路径: u和v之间权最小的通路

这里的带权图很好理解,举个栗子,就相当于地铁线路,每个站点就是图的顶点,站点之间有通车就画一条边,那么权可以是每段区间的距离、时间、票价等。
在这里插入图片描述

而最短路径即为,如果我要从站点A到站点B,如果地铁线路足够多,那么各种换成方案是非常多的,甚至可以绕城一周再回来(一般人不会这么做),通常我们会选择总票价最少的路线,或者时间最少的路线,或者距离最短的路线,而这里就是图论的应用–最少最短即为最短路径。

Dijkstra算法

最常见的求解最短路径的算法即为迪杰斯特拉(Dijkstra)算法,它的主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。
这篇文章已经讲得很好了:https://blog.csdn.net/wang13342322203/article/details/89377256

举个例子

在这里插入图片描述
求v0到v5的最短路径
在这里插入图片描述

关键路径

首先说一下基本理解
相信大家小时候看见过这样一个问题

煮一个鸡蛋需要5分钟,煮十个鸡蛋需要多久?
答案是:5分钟

因为十个鸡蛋可以同时煮,学术化就是,他们可以并行执行

在此之上,我们换一下问题:

煮一个鸡蛋需要5分钟,住一个土豆需要10分钟,请问煮10个鸡蛋和2个土豆需要多久?
答案是:10分钟、

因为十个鸡蛋和两个土豆可以同时煮,但是五分钟只能煮熟鸡蛋,土豆仍需五分钟,所以需要十分钟。这里我们可以看出:煮土豆(时间较久)才是关键的

我们再换一个问题:

假设家里有爸爸妈妈和你三个人,需要做一顿晚饭,晚饭是一个庞大的家务活,于是我们打算分工合作,经其细分为以下几项小家务
杀鸡 30min
洗菜 15min
切菜 10min
炒菜 15min
炖鸡 60min
请问:从做饭开始到结束一共需要多少分钟呢?
答案是:90min

根据前面两个问题我们知道,有些活动是可以同时进行的(毕竟有三个人做家务),比如杀鸡和洗菜就可以同时,但是有些活动是必须在某些活动完成后执行,比如切菜前必须洗菜,炒菜前必须切菜,炖鸡前必须杀鸡和切菜,于是乎:(图有点丑,不要介意)
在这里插入图片描述

从可以看出,从做饭开始到吃饭只要90min就可以了。
其中,炖鸡要等洗菜切菜结束(15+10=25min)以及杀鸡(30min)因为二者同时,所以炖鸡需要等待30min,那么这里关键活动为杀鸡(时间比较久),而后炖鸡和炒菜也可以同时,其中炖鸡比较久,所以炖鸡结束一共花费(30+60 =90 min)

这里说明,有家务要一起做,分工合作,不要翘腿等吃的。

将以上问题学术化描述就是我们关键路径应用。

基本概念

在这里插入图片描述在这里插入图片描述

看个例子

在这里插入图片描述
这里紧前活动就是必须在某活动完成后执行(相当于切菜前必须洗菜)

在这里插入图片描述
求这个例子的关键路径
在这里插入图片描述在这里插入图片描述
于是可以得到:
在这里插入图片描述
总工期:12天 关键路径: v1v3v7v8 关键活动: B,F,J
关键路径:ES=LF

染色问题

先来考虑一个实际问题:

学生会下设6个委员会, 第一委员会={张, 李, 王}, 第二委员会={李, 赵, 刘}, 第三委员会={张, 刘, 王}, 第四委员会={赵, 刘, 孙}, 第五委员会={张, 王}, 第六委员会={李, 刘, 王}。 每个月每个委员会都要开一次会, 为了确保每个人都能参加他所在的委员会会议, 这6个会议至少要安排在几个不同时间段?

对于此类问题,我们可以将委员会看做顶点,若委员会存在相同成员就连一个边,可得:
在这里插入图片描述
那么问题可以改变为:

如何用最少的颜色给顶点着色,使得相邻的顶点(有边连接的)不同色?
答案:至少要4个时段
第1时段:一,四
第2时段:二,五
第3时段:三
第4时段:六

这既是着色问题!

定义 设无向图G无环, 对G的每个顶点涂一种颜色,使相邻的顶点涂不同的颜色,称为图G的一种点着色,简称着色。若能用k种颜色给G的顶点着色, 则称G是k-可着色的。
图的着色问题: 用尽可能少的颜色给图着色

着色问题经常用来解决冲突问题。

再看一个例子:

假设两家电视台相距不超过150千米就不能使用相同的频率,下表列出6家电视台之间的距离,它们至少需要使用多少种不同的频率?
在这里插入图片描述
答案是:3.
你猜猜是为什么?

  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
图论是数学中的一个分支,研究图的性质和图中的关系。图论主要研究顶点和边组成的网络结构,并通过图的模型来解决不同的实际问题。 图论应用非常广泛。在计算机科学领域,图论被广泛应用于网络分析、路由算法、图像处理、人工智能等领域。例如,在网络分析中,图论可以帮助我们分析网络的结构和特性,从而优化网络的设计和管理。 在社交网络中,图论可以被用于分析和预测人际关系的发展趋势、研究信息传播的模式以及识别社区结构等。通过图论的方法,我们可以发现一些重要的节点和关键的连接,从而提高社交网络的效益。 在交通领域,图论可以帮助我们解决最短路径问题,即确定两个地点之间的最短路径。这在导航系统和物流规划中非常重要。图论还可以用于交通流量的模拟和优化,提高交通的效率和安全性。 在电力系统中,图论可以用于建立电力网的模型,研究电力的传输和分配问题。通过图论的方法,我们可以分析电网的稳定性和效率,从而提高电力系统的可靠性和可持续性。 总之,图论是一门重要的数学学科,它的应用范围非常广泛。通过图论的研究和应用,我们可以更好地理解和解决各种实际问题,并在不同领域中推动科技的发展。邦迪csdn是一个博客平台,上面有关于图论及其应用的文章和讨论,可以帮助大家深入了解和学习图论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小邹子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值