天天看点

线性规划解网络流的例子

1.某公司要用铁路运送2种物品,分别从城市s1、s2到d1、d2,每个物品每天要送出0.5单位。给出城市之间每天铁路的流量限制。假设物品可以任意地分成若干份,从而可以分别从不同的线路走。求一个开销最小的运送方案。如图:(ef之间出了故障。)

线性规划解网络流的例子

2个流s1--d1(设为流1)和s2--d2(设为流2),均只有3条路可以走:a-b-c-f(设为路径1),a-d-e-f(设为路径2),a-g-h-f(设为路径3)。设2个流在3条路径上的流量分别为:x11,x12,x13,x21,x22,x23。

则目标函数:

min (9x11+9x21+10000x12+10000x22+15x13+15x23)

这里因为df断了,故令路径2的开销为10000,代表正无穷。

约束条件:

x11+x12+x13=0.5

x21+x22+x23=0.5

x11+x21<=0.75

x12+x22<=1

x13+x23<=0.5

解得x11=0.5,x21=x23=0.25,x12=x22=x13=0

LINDO求解如图:

线性规划解网络流的例子
线性规划解网络流的例子

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

《线性规划的简单应用和实现》这篇论文中描述的线性规划解网络流的约束条件:

线性规划解网络流的例子

其中4个条件可以分别理解为:

1.每条边上的流量不能超过该边的容量

2.除源点和汇点外的其他点,流入每点的流量和从该点流出的流量相等

3.从源点发出的某个流的量,以及流入汇点的某个流的量,等于该流需求发出的量

4.每条边上的流是非负的

-----------------------------------------------------------------------------------------------------------------------------------------------

2.某公司要用铁路运送3种物品,分别从城市s1、s2、s3到d1、d2、d3,每个物品每天分别要送出0.75、0.5、0.75单位。给出城市之间每天铁路的流量限制。假设物品可以任意地分成若干份,从而可以分别从不同的线路走。求一个开销最小的运送方案。如图:

线性规划解网络流的例子

将14条边上的3种流分别设为x11,x12,……,x114,x21,x22,……,x214,x31,x32,……,x314如图,依次类推。

则目标函数为:

min (3x12+3x22+3x32+x13+x23+x33+3x14+3x24+3x34+10x16+10x26+10x36+10x17+10x27+10x37+3x19+3x29+3x39+x110+x210+x310+3x111+3x211+3x311)

约束条件为:

x13+x23+x33<=1

x110+x210+x310<=1

x11=0.75

x21=0

x31=0

x18=0

x28=0.5

x38=0

x113=0

x213=0

x313=0.75

x15=0.75

x25=0

x35=0

x112=0

x212=0.5

x312=0

x114=0

x214=0

x314=0.75

x11-x12=0

x21-x22=0

x31-x32=0

x12+x16-x13=0

x22+x26-x23=0

x32+x36-x33=0

x13-x14-x17=0

x23-x24-x27=0

x33-x34-x37=0

x14-x15=0

x24-x25=0

x34-x35=0

x18+x113-x16-x19=0

x28+x213-x26-x29=0

x38+x313-x36-x39=0

x19-x110=0

x29-x210=0

x39-x310=0

x110-x111=0

x210-x211=0

x310-x311=0

x111+x17-x112-x114=0

x211+x27-x212-x214=0

x311+x37-x312-x314=0

线性规划解网络流的例子
线性规划解网络流的例子

----------------------------------------------------------------------------------------------------------------------------

3.需求:流从结点c传输到红色结点,边上没有容量限制,求最小开销的路径。

如图:

线性规划解网络流的例子

该图为无向图,将它转化为有向图,每条边转化为两条反向的边,如x1转化为x11和x21,x2转化为x12和x22……

目标函数:

min 10x11+10x21+15x12+15x22+5x13+5x23+10x14+10x24+30x15+30x25+50x16+50x26+10x17+10x27+100x18+100x28+25x19+25x29

x11+x22-x12-x21=1

x18-x28=1

x11+x23+x29-x21-x13-x19=0

x23+x24-x13-x14=0

x14+x12-x24-x22=0

x19+x25+x27-x29-x15-x17=0

x17+x28+x16-x27-x18-x26=0

得出CAFD的路径。

线性规划解网络流的例子
线性规划解网络流的例子

----------------------------------------------------------------------------------------------------------------

4.若上图要求从B传到红色结点。

目标函数不变,约束条件变为:

x11+x22-x12-x21=0

x23+x24-x13-x14=1

LINDO解出BAFD的路径。