2016-11-23 60 views
0

我和我的朋友正在进行AMPL项目。该项目的目标是在光纤到户网络中实现利润最大化。网络没有路由器或分路器,只有带机柜的节点,其中一根带有x光纤的光缆可以分成光纤较少的光缆或与其他光缆相连的光纤,以制造具有更多光纤的光缆。也就是说,一个专用光纤应该从一个中央节点到达有n个客户端的接入点(需求;我们不担心客户端如何连接到接入点)。我们在所有节点(中心节点,传输节点和接入点)之间存在边缘,这些节点在将电缆放置在那里和长度方面存在挖沟成本(因为每种类型的电缆具有每km成本和光纤数量)。AMPL优化 - 不同的电缆类型

我们的问题是:在每个边缘,我们可以有不同类型的电缆数量。我们不知道如何申报AMPL网络模型这种情况下,让它现在

  1. 每个边缘可以有一个以上的电缆
  2. (不同类型的,我们后来在每一种情况下申报的)我们也不知道如何让程序知道它可以选择不同的电缆类型

我想过一种解决方案,为每条边(链接)创建一组独立的电缆,但我不知道这是否是可能在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;  

回答

0

你应该把目标函数和约束条件在模型第一