首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMPL优化-不同的电缆类型

AMPL优化-不同的电缆类型
EN

Stack Overflow用户
提问于 2016-11-23 21:49:22
回答 1查看 74关注 0票数 0

我和我的朋友正在做一个AMPL项目。该项目的目标是在光纤到家庭网络中实现利润最大化.网络不需要路由器或分配器,只有带有机柜的节点才能将一根有x光纤的电缆分割成光纤较少的电缆,或与其他电缆连接以产生更多的光纤电缆。也就是说,一个专用光纤应该从一个中心节点到达有n个客户端的接入点(需求;我们不担心客户端如何连接到接入点)。我们在所有节点(中心节点、中转节点和接入点)之间都有边缘,这些节点在放置电缆和长度(因为每种电缆都有每公里的成本和光纤数量)时有一个沟槽成本。

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

  1. 在每条边缘上都可以有多个电缆(不同类型的电缆,我们随后在每种情况下宣布)。
  2. 我们也不知道如何让程序知道它可以从不同的电缆类型中选择

我想了一个解决方案,为每个边缘(链接)创建一组独立的电缆,但我不知道在AMPL中这是否可行。

到目前为止,我们有以下代码

非常感谢您的帮助,谢谢!

代码语言:javascript
复制
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;     
EN

回答 1

Stack Overflow用户

发布于 2017-01-19 09:03:57

你应该把目标函数和约束放在你的模型上。

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

https://stackoverflow.com/questions/40774696

复制
相关文章

相似问题

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