首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解Lingo派生集

理解Lingo派生集
EN

Stack Overflow用户
提问于 2015-05-24 04:22:52
回答 1查看 355关注 0票数 1

我对行话完全陌生,我在行话中找到了这个例子。

型号:

代码语言:javascript
复制
! A 6 Warehouse 8 Vendor Transportation Problem;
SETS:
WAREHOUSES / WH1 WH2 WH3 WH4 WH5 WH6/: CAPACITY;
VENDORS / V1 V2 V3 V4 V5 V6 V7 V8/ : DEMAND;
LINKS( WAREHOUSES, VENDORS): COST, VOLUME;
ENDSETS
! The objective;
MIN = @SUM( LINKS( I, J):
COST( I, J) * VOLUME( I, J));
! The demand constraints;
@FOR( VENDORS( J):
@SUM( WAREHOUSES( I): VOLUME( I, J)) =
DEMAND( J));
! The capacity constraints;
@FOR( WAREHOUSES( I):
@SUM( VENDORS( J): VOLUME( I, J)) <=
CAPACITY( I));
! Here is the data;
DATA:
CAPACITY = 60 55 51 43 41 52;
DEMAND = 35 37 22 32 41 32 43 38;
COST = 6 2 6 7 4 2 5 9
4 9 5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
ENDDATA
END

在这段代码中,我有几件事情我不明白。

  1. 在派生集LINKS( WAREHOUSES, VENDORS): COST, VOLUME;中,它如何知道LINKS成员应该是V1WH1,V1WH2,..,V1WH6,V2WH1,V2WH2,...,V6WH6,...,V8WH1,...,V8WH6。 这就是它如何知道当由LINKS( WAREHOUSES, VENDORS): COST, VOLUME;指定时,每个供应商都连接到所有的仓库。
  2. 卷数据是在这里给出的吗?它是如何得到的?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-24 13:44:55

很久以前我曾和玲可一起工作过。从那以后,情况发生了变化,但是我已经查找了他们的用户手册 (Lingo 14) --参见第31页,它解释了集合定义是如何工作的。

1)笛卡尔乘积WAREHOUSES x PRODUCTS的所有集合成员都是自动生成的(通过连接标签,考虑到所有的“组合”)。

现在,如果某些对仓库供应商不应该连接,那么它的COST参数应该保持未定义。查找用户手册第118页中的“省略数据部分中的值”。您需要在COST矩阵中使用逗号作为分隔符,并使用空字段(例如,5, 5, , 6...)。

2) VOLUME是变量,而不是参数。VOLUME的值将由求解者找到--它们将代表最优的装船量(每个供应商都将得到他/她所要求的东西,并且运输的总成本将是最小的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30420067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档