AOP-Chap25-Graphs

本文介绍了图在任务调度、资源分配、路径规划和社会网络中的应用,以及图的两种常见实现方式:邻接矩阵和邻接表。此外,还探讨了深度优先搜索、广度优先搜索以及Dijkstra算法在寻找最短路径中的作用。最后,讨论了Prim和Kruskal算法在构建最小生成树上的应用。
摘要由CSDN通过智能技术生成

  • graph --> a collection of nodes(also called vertices顶点) and edges
  • 可能会在边上设置权重weights——表示节点之间连接的一些成本或其他度量(可以在边上附加其他信息,但权重是最常见的)
  • 在某些情况下,使用无向边,而在其他情况下可能需要有向边

1 Graph Applications

1.1 Task Scheduling

  • 任务的依赖性
  • critical path关键路径 --> constrain how quickly we can complete our entire work
  • If reduce the length of this particular path enough, then it becomes non-critical, and some other path becomes critical
  • tasks that are not on the critical path have some slack—could start them later without affecting the overall completion time
  • 在general cases中,调度图可能是一个有向无环图directed acylic graph(DAG)——它不包含有向环,尽管它可能包含无向环
  • 任务图中的有向循环将不可能进行调度,因为它将指示任务中的循环依赖关系——我们将需要在A之前完成B、C之前完成B和A之前完成C——没有一个任务可以先被调度
  • 无向循环是允许的(there is a cycle if we ignore the edge directions, but not if we pay attention to them)。完全可以B和C依赖于A,同时D依赖于B和C
    请添加图片描述

1.2 Resource Allocation

  • graph coloring是将一个图赋色给每个节点,使每个相邻的节点都不具有相同的颜色的过程
  • 在资源分配的情况下,创建一个interference graph干涉图——在这个图中,如果两个节点相互冲突(即同时需要一个资源),则通过一条边连接两个节点。在这样的图中,一个有效的着色代表一个有效的资源分配,其中每个颜色代表一个特定的资源
    请添加图片描述
  • 相邻的不一个颜色,一共四个屋子,所以四种颜色,平面图没有交叉
  • 四色定理four color theorem --> 每个平面图最多有4种颜色

1.3 Path Planning

  • edge weight表示穿越这段路所用的时间

1.4 Social Networks

2 Graph Implementations

  • 最简单表示graph的方法:用一个无符号整数标识每个节点,并用double表示权重(或者是整数,或者没有权重信息)
class Graph {
   
public:
	unsigned addNode();
	void removeNode (unsigned whichNode);
	void addEdge(unsigned from, unsigned to, double weight);
	void removeEdge(unsigned from, unsigned to);
	unsigned getNodeCount() const;
	set<pair<unsigned, double> > getAdjacencies(unsigned whichNode) const; 
	double getEdge(unsigned from, unsigned to
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值