1 图与网络分析
1.1 基本概念
基本要素:一是被研究的对象,用点表示;二是对象之间的特定关系,如距离,用联线表示
- 无向图:G=(V,E),其中V表示点的集合,E表示边(无箭头)的集合;
- 有向图:D=(V,A),其中V表示点的集合,A表示弧(有箭头)的集合。
- 无向图中,一个点边交错的序列满足,则称之为一条联结和 的链,记为。若,称之为圈。
- 有向图中,一个点边交错的序列满足,则称之为一条联结和 的路,记为。若,称之为回路。
如果有向图D上的一条链上所有弧的方向都一致,则称之为路;若有向图D的一个圈中所有弧的方向都一致,则称之为回路。
- 图G中,若任何两个点之间至少有一条链,则称G是连通图;
- 给定一个图G=(V,E),若图,使且,称是G的一个支撑子图
- 赋权图:每一条边或每一条弧上有一个权数。
1.2 最小支撑树问题
树图:任何两个节点之间有且仅有一条链,是边数最少的连通图;
最小支撑树问题:在一个赋权的无向图中找到一个支撑树,使之所有边的权数之和最小。
(1)破圈法(可看例题P117)
- 在给定的赋权的无向图中任意找一个圈;
- 在所找的圈中去掉一条权数最大的边;
- 若剩余的图不含圈,结束,否则继续去掉最大的边。
(2)避圈法(可看例题P117)(简化版的最短路径)
- 找一点,找出所有与相关联的权最小的边,得点;
- 把所有顶点分为互补的二部分,其中表示与已选的边相关联的点集,代表不关联
- 考虑这样的边,各自属于,挑选其中最小的边,即挨着的边;
- 重复上一步,直到全部顶点属于。
1.3 最短路问题
定义:在赋权有向图中寻找从起点到终点之间一条最短的路线。
(1)Dijkstra解法(可看例题P119,P120)
- 基本思想:从起点开始逐步计算从到网络各中间点的最短路,逐步外推直至算出到终点的最短路。已算出的到的最短路用表示,代表[最短路长,上一节点号]。
- 原理:不断更新未标号节点到源节点的最短距离,这个就是最短距离
- 首先对起点编号,[0,1],代表路长为0,节点是1;
- 将网络中所有顶点分成已标号和未标号两类,;
- 计算,并将其标为下一个点,也标上,一直推到终点。
- 注:避圈法和这个不同点在于,避圈法直接用的,Dijkstra解法是
1.4 最大流问题
无论是公路系统还是通信系统,每段路上允许的流转物的能力有限。
合理安排运送使起点运送至终点的总量达到最大。
- 每个称为弧上的流量;(可看P125)
- 为网络上的一个流,应满足容量条件和平衡条件。
- 容量条件:对每一个弧,(容量);
- 平衡条件:经过中间点的流入量=流出量,即
- 注:方法→标号解法。首先确定一个初始的可行流和流量,然后确定当前可行流是否是最大流(是否存在可扩充链),最后将当前的可行流调整成一个流量更大的新可行流。
2 网络计划
2.1 网络计划图的绘制
网络计划的简介:一般由初设计划阶段和计划方案优化调整阶段组成。前者指先把工程项目划分为多个相互衔接的工序,估计工序完成时间,用网络图表示,按计划时间参数确定工程项目的关键工序及关键线路。后者指考虑时间、费用、资源等,对初始方案进行调整改善。
- 实箭线:表示一道具体工序,箭线两端的节点编号唯一确定一个工序。①→②代表A工序。
- 虚箭线:仅表示工序与工序之间的关联关系,为了画图。
- 结点:表示一个事项。箭头序号②代表A工序的紧后事项,序号①代表A工序的紧前事项。
- 编号方法:从起点开始编,编完了删掉,剩下的找没有连箭线终点的继续编。
- 画图方法:先确定工序间的先后关系,巧用虚线表示多个关系。
2.3 时间参数与关键线路
2.3.1 工序(i,j)的时间参数
- 最早开始时间:所有紧前工序都完成而可以开始的最早时间;
- 最早完成时间:所有紧前工序都完成而可以完成的最早时间,即;
- 最迟完成时间:不影响工期前提下,最迟必须完成的时间;
- 最迟开始时间:不影响工期前提下,最迟必须开始的时间,即;
- 总时差:不影响工期前提下的机动时间,即或
- 自由时差:不影响紧后工序最早开始的前提。
- 注:最早时间是网络图从左往后计算,算完之后从右往左推就是最迟时间,工序前有多个紧前工序,按照紧前工序都做完了就是计算最早开始时间,最晚时间类比。
2.3.2 结点i的时间参数
- 结点的最早时间:
- 结点的最晚时间:
- 工序(i,j)总时差:对于A工序:
- 为什么是这俩相减呢,因为对于工序A来说,只有当紧前工序都完成之后才可以最早开始,因此前置节点的最早时间就是A工序的最早开始时间;在不影响紧后工序最晚开始的情况下,A工序才能最晚开始,因此后置节点的最晚开始时间就是A工序的最晚结束时间。
- 解释:结点i的最早时间是A和B最早都完成的时间,也是C和D最早开始的时间;
- 解释:结点i的最晚时间是A和B最晚完成的时间,也是C和D最晚开始的时间的最小值;
- 解释:最早时间是由紧前工序什么时候完成决定的,最晚时间是由不影响最晚工期决定的。
2.3.3 关键参数和关键线路
一个工序的总时差为0意味着该工序在不影响工期前提下机动时间为0,它的工序时间的延长会引起工期的延后,这样的工序称为关键工序,由关键工序构成的线路是关键线路。
- 也就是找出初始结点到终点的最长线路。
- 方法1:仿照最短路径法,找最长的线路长度,标记源结点,标记完之后从终点反向追踪。
- 方法2:标出结点的最早和最晚时间,找总时差为0的工序,连起来。
- 思考:总时差为0的工序和最长线路的工序应该存在了对应关系,即非最长的线路存在时差。
2.4 网络图的调整与优化
2.4.1 工期优化
必须改变关键工序的时间才可以改变工期使之达到要求。
- 原则:压缩费用率最低的关键工序(缩短时间带来的成本增加较小);
- 压缩的极限是压缩完之后与次关键线路长度一样(否则无法缩短工期);
- 同时缩短相同长度的关键线路。
2.4.2 费用优化
相比于工期优化多了一个约束——缩短工期带来奖励,但增加成本。
- 直接费:与工序完成时间成反比,缩短时间会带来成本的增加;
- 间接费:与工序完成时间成正比,缩短时间会带来奖励。
- 原则:只有当压缩关键工序时间的直接费小于由此导致工期缩短而节约的间接费时,才可行。
- 在工期优化的基础上,每次压缩时计算上述成本原则可不可行。
2.4.3 资源优化
利用非关键工序的机动时间,尤其是总时差,恰当安排其开始时间,以达到单位时间提供资源有限时使工期尽可能短或者工期不变时资源分配更加均衡。
- 制作进度横道表和资源需求曲线,将网络图的先后顺序反映到横道表上。
- 首先找出具有最大时差的工序,在不拖延整个工程完工的情况下,把这些工序尽可能延缓。
注:工程完成的概率分析(P154)
工序的持续时间不确定,因此工程项目完成的可能性不一定。
需要计算每个关键工序的期望值和标准差,综合判断工程完成的概率。