0
我和我的朋友正在進行AMPL項目。該項目的目標是在光纖到戶網絡中實現利潤最大化。網絡沒有路由器或分路器,只有帶機櫃的節點,其中一根帶有x光纖的光纜可以分成光纖較少的光纜或與其他光纜相連的光纖,以製造具有更多光纖的光纜。也就是說,一個專用光纖應該從一箇中央節點到達有n個客戶端的接入點(需求;我們不擔心客戶端如何連接到接入點)。我們在所有節點(中心節點,傳輸節點和接入點)之間存在邊緣,這些節點在將電纜放置在那裏和長度方面存在挖溝成本(因爲每種類型的電纜具有每km成本和光纖數量)。AMPL優化 - 不同的電纜類型
我們的問題是:在每個邊緣,我們可以有不同類型的電纜數量。我們不知道如何申報AMPL網絡模型這種情況下,讓它現在
- 每個邊緣可以有一個以上的電纜
- (不同類型的,我們後來在每一種情況下申報的)我們也不知道如何讓程序知道它可以選擇不同的電纜類型
我想過一種解決方案,爲每條邊(鏈接)創建一組獨立的電纜,但我不知道這是否是可能在AMPL中。
到目前爲止,我們有以下代碼
幫助將非常感謝,謝謝!
set ACCESSPOINTS;
set TRANSITS;
set CENTRAL
set NODES := ACCESSPOINTS union TRANSITS union CENTRAL;
set LINKS within (NODES cross NODES);
set CABLES;
#set DEMANDS within (CENTRAL cross ACCESSPOINTS);
param demand {ACCESSPOINTS} >=0;
param trenching_cost {LINKS} >= 0;
param length {LINKS} >= 0;
param cabinet_cost {TRANSITS} >= 0;
param cost_per_km {CABLES} >= 0;
param fibers {CABLES} >= 0;
param originates {n in NODES, (i,j) in LINKS} binary :=
if (i = n) then 1 else 0;
param terminates {n in NODES, (i,j) in LINKS} binary :=
if (j = n) then 1 else 0;