运筹学之图与网络技术

1 图与网络分析

1.1 基本概念

基本要素:一是被研究的对象,用点表示;二是对象之间的特定关系,如距离,用联线表示

  • 无向图:G=(V,E),其中V表示点的集合,E表示边(无箭头)的集合;
  • 有向图:D=(V,A),其中V表示点的集合,A表示弧(有箭头)的集合。
  • 无向图中,一个点边交错的序列(v_{1},e_{1},v_{2},e_{2},...,v_{k-1},e_{k-1},v_{k})满足e_{t}=[v_{t},v_{t+1}],则称之为一条联结v_{1}和 v_{k},记为(v_{1},v_{2},...,v_{k-1},v_{k})。若v_{1}=v_{k},称之为
  • 有向图中,一个点边交错的序列(v_{1},e_{1},v_{2},e_{2},...,v_{k-1},e_{k-1},v_{k})满足e_{t}=[v_{t},v_{t+1}],则称之为一条联结v_{1}和 v_{k},记为(v_{1},v_{2},...,v_{k-1},v_{k})。若v_{1}=v_{k},称之为回路

如果有向图D上的一条链上所有弧的方向都一致,则称之为路;若有向图D的一个圈中所有弧的方向都一致,则称之为回路。

  •  图G中,若任何两个点之间至少有一条链,则称G是连通图
  • 给定一个图G=(V,E),若图G^{'}=(V^{'},E^{'}),使V=V^{'}E\subseteq E^{'},称G^{'}是G的一个支撑子图
  • 赋权图:每一条边或每一条弧上有一个权数。

1.2 最小支撑树问题

树图:任何两个节点之间有且仅有一条链,是边数最少的连通图;

最小支撑树问题:在一个赋权的无向图中找到一个支撑树,使之所有边的权数之和最小。

 (1)破圈法(可看例题P117)

  • 在给定的赋权的无向图中任意找一个圈;
  • 在所找的圈中去掉一条权数最大的边;
  • 若剩余的图不含圈,结束,否则继续去掉最大的边。

(2)避圈法(可看例题P117)(简化版的最短路径)

  • 找一点v_{i},找出所有与v_{i}相关联的权最小的边(v_{i},v_{j}),得点v_{j}
  • 把所有顶点分为互补的二部分X,\bar{X},其中X表示与已选的边相关联的点集,\bar{X}代表不关联
  • 考虑这样的边(v_{i},v_{j}),各自属于X,\bar{X},挑选其中最小的边,即X,\bar{X}挨着的边;
  • 重复上一步,直到全部顶点属于X

1.3 最短路问题

定义:在赋权有向图中寻找从起点到终点之间一条最短的路线。

(1)Dijkstra解法(可看例题P119,P120)

  • 基本思想:从起点v_{1}开始逐步计算从v_{1}到网络各中间点v_{i}的最短路,逐步外推直至算出v_{1}到终点v_{t}的最短路。已算出的v_{1}v_{i}的最短路用[\alpha _{i},\beta _{i}]表示,代表[最短路长,上一节点号]。
  • 原理:不断更新未标号节点到源节点的最短距离,这个\alpha _{i}就是最短距离
  • 首先对起点编号,[0,1],代表路长为0,节点是1;
  • 将网络中所有顶点分成已标号和未标号两类,(v_{i},v_{j})\in (X,\bar{X})
  • 计算min(\alpha _{i}+\omega _{ij})\Rightarrow \alpha _{i+1},并将其标为下一个点,\beta _{i+1}也标上,一直推到终点v_{t}
  • 注:避圈法和这个不同点在于,避圈法直接用的\omega _{ij},Dijkstra解法是\alpha _{i}+\omega _{ij}

1.4 最大流问题

无论是公路系统还是通信系统,每段路上允许的流转物的能力有限。

合理安排运送使起点运送至终点的总量达到最大。

  •  每个f_{ij}称为弧(v_{i},v_{j})上的流量;(可看P125)
  • \begin{Bmatrix} f_{ij} \end{Bmatrix}为网络上的一个流,应满足容量条件和平衡条件。
  • 容量条件:对每一个弧,0\leqslant f_{ij}\leqslant c_{ij}(容量);
  • 平衡条件:经过中间点的流入量=流出量,即\sum f_{ij}-\sum f_{ji}=0
  • 注:方法→标号解法。首先确定一个初始的可行流和流量,然后确定当前可行流是否是最大流(是否存在可扩充链),最后将当前的可行流调整成一个流量更大的新可行流。

2 网络计划

2.1 网络计划图的绘制

网络计划的简介:一般由初设计划阶段和计划方案优化调整阶段组成。前者指先把工程项目划分为多个相互衔接的工序,估计工序完成时间,用网络图表示,按计划时间参数确定工程项目的关键工序及关键线路。后者指考虑时间、费用、资源等,对初始方案进行调整改善。

  •  实箭线:表示一道具体工序,箭线两端的节点编号唯一确定一个工序。①→②代表A工序。
  •  虚箭线:仅表示工序与工序之间的关联关系,为了画图。
  • 结点:表示一个事项。箭头序号②代表A工序的紧后事项,序号①代表A工序的紧前事项。
  • 编号方法:从起点开始编,编完了删掉,剩下的找没有连箭线终点的继续编。
  • 画图方法:先确定工序间的先后关系,巧用虚线表示多个关系。 

2.3 时间参数与关键线路

2.3.1 工序(i,j)的时间参数

  • 最早开始时间ES_{i-j}:所有紧前工序都完成而可以开始的最早时间;
  • 最早完成时间EF_{i-j}:所有紧前工序都完成而可以完成的最早时间,即ES_{i-j}+D_{i-j}
  • 最迟完成时间LF_{i-j}:不影响工期前提下,最迟必须完成的时间;
  • 最迟开始时间LS_{i-j}:不影响工期前提下,最迟必须开始的时间,即LF_{i-j}-D_{i-j}
  • 总时差TF_{i-j}:不影响工期前提下的机动时间,即LS_{i-j}-ES_{i-j}LF_{i-j}-EF_{i-j}
  • 自由时差FF_{i-j}:不影响紧后工序最早开始的前提。
  • 注:最早时间是网络图从左往后计算,算完之后从右往左推就是最迟时间,工序前有多个紧前工序,按照紧前工序都做完了就是计算最早开始时间,最晚时间类比。

2.3.2 结点i的时间参数

  • 结点的最早时间:ET_{j}=max(ET_{i}+D_{i-j})
  • 结点的最晚时间:LT_{i}=min(LT_{j}-D_{i-j})
  • 工序(i,j)总时差:对于A工序:TF_{i-j}=LT_{i}-ET_{i}-D_{i-j}
  • 为什么是这俩相减呢,因为对于工序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)

工序的持续时间不确定,因此工程项目完成的可能性不一定。

需要计算每个关键工序的期望值和标准差,综合判断工程完成的概率。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值