[英]Understanding Lingo derived sets
我對LINGO完全陌生,並且在LINGO中找到了這個示例。
模型:
! 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
我有一些我在這段代碼中看不懂的東西。
在派生集中LINKS( WAREHOUSES, VENDORS): COST, VOLUME;
如何知道LINKS成員應為V1WH1,V1WH2,..,V1WH6,V2WH1,V2WH2,...,V6WH6,...,V8WH1,...,V8WH6
。
這就是當LINKS( WAREHOUSES, VENDORS): COST, VOLUME;
指定LINKS( WAREHOUSES, VENDORS): COST, VOLUME;
時,每個供應商都連接到所有倉庫的方式LINKS( WAREHOUSES, VENDORS): COST, VOLUME;
是否提供了體積數據?如何獲得的?
很久以前,我曾經在Lingo工作過。 此后情況發生了變化,但是我查閱了他們的用戶手冊 (Lingo 14)-請參閱第31頁,它說明了SETS定義的工作原理。
1)笛卡爾積WAREHOUSES x PRODUCTS
所有已設置成員都是自動生成的(考慮所有“組合”,將標簽串聯起來)。
現在,如果某些對倉庫供應商不應該連接,則其COST
參數應該保持未定義狀態。 在用戶手冊第118頁上查找“在數據部分中省略值”。您需要在COST
矩陣中使用逗號作為分隔符,並使用一個空字段(例如COST
5, 5, , 6...
)。
2) VOLUME
是變量,而不是參數。 VOLUME
的值將由求解器找到-它們將代表最佳裝運量(每個供應商將在此獲得所需的貨品,並且裝運的總成本將降至最低)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.