我和我的朋友正在做一个AMPL项目。该项目的目标是在光纤到家庭网络中实现利润最大化.网络不需要路由器或分配器,只有带有机柜的节点才能将一根有x光纤的电缆分割成光纤较少的电缆,或与其他电缆连接以产生更多的光纤电缆。也就是说,一个专用光纤应该从一个中心节点到达有n个客户端的接入点(需求;我们不担心客户端如何连接到接入点)。我们在所有节点(中心节点、中转节点和接入点)之间都有边缘,这些节点在放置电缆和长度(因为每种电缆都有每公里的成本和光纤数量)时有一个沟槽成本。
我们的问题是:在每一个边缘,我们可以有数目的电缆,不同的电缆类型。我们不知道如何在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; 发布于 2017-01-19 09:03:57
你应该把目标函数和约束放在你的模型上。
https://stackoverflow.com/questions/40774696
复制相似问题