Lingo-稠密集合和稀疏集合
1.1简介:
我们把派生集合 MATCH 的元素定义为 DEMAND 和 SUPPLY 的笛卡儿积,这种派生集 合称为稠密集合(简称稠集)。其实在 LINGO 中,派生集合的元素可以只是这个笛卡儿积的 一个真子集合,这种派生集合称为稀疏集合(简称疏集)。
1.2例题:
最短路问题 在复杂的公路网中,货车司机希望找到一条从一个城市到另一个城市的最短 路. 假设图 4-17 表示的是该公路网, 节点表示货车可以停靠的城市,弧上的权表示两个城市之 间的距离(百公里)。货车从城市 S 出发到达城市 T,如何选择行驶路线,使所经过的路程最短?
1.3分析:
假设从S到T的最优行驶路线 P 经过城市C1, 则P中从S到C1的子路也一定是从S到 C1的最优行驶路线;
假设 P 经过城市C2, 则P中从S到C2的子路也一定是从S到C2的最优 行驶路线.
因此, 为了得到从 S 到 T 的最优行驶路线, 我们只需要先求出从 S 到 Ck(k=1,2)的最 优行驶路线, 就可以方便地得到从 S 到 T 的最优行驶路线.
为了求出从 S 到 Bj(j=1,2)的最 优行驶路线, 只需要先求出从S到Ai(i=1,2,3)的最优行驶路线.
而S到Ai(i=1,2,3)的最优行驶路 线是很容易得到的(实际上, 此例中 S 到 Ai(i=1,2,3)只有唯一的道路).
记 d(Y,X)为城市 Y 与城市 X 之间的直接距离(若这 两个城市之间没有道路直接相连,则可以认为直接距离为无穷大),用L(X)表示城市 S 到城市 X 的最优行驶路线的路长
则:
L(S)=0; L(X)=min{L(Y)+d(Y,X)}, Y≠X
1.3.1对本例的具体问题,可以直接计算如下:
X ≠S
L(A1)=6, L(A2)=3, L(A3)=3;
L(B1)=min{ L(A1)+6, L(A2)+8, L(A3)+7}= 10 = L(A3)+7,
L(B2)=min{ L(A1)+5, L(A2)+6, L(A3)+4}= 7 = L(A3)+4;
L(C1)=min{ L(B1)+6, L(B2)+8}= 15 = L(B2)+