微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决单源多目的地问题的不连续性?

如何解决如何解决单源多目的地问题的不连续性?

我正在尝试将以下链接 https://github.com/shellei503/Linear-Programming-Examples/blob/master/9.3%20(The%20Shortest%20Path%20Problem)/prob_1/9.3-1.ipynb 上的程序扩展为单源和多个目标。

对现有网络的一些修改包括网络中的每条边都是双向的。我在现有代码添加了以下约束以实现目标:

m.add_constraint(m.sum(x[(i,j)] for i,j in last_arc if j == final_END_NODE)== 1,ctname='last_arc')

for dd in remdst:
   m.add_constraint(m.sum(x[(i,j in subedges if j==dd)>= 1,ctname='last_arc')

m.add_constraint(m.sum(x[(i,j in subedges if i==src)== 1,ctname='start_arc_F')

m.add_constraint(m.sum(x[(i,j in subedges if j==src)== 0,ctname='start_arc_B')

其中 final_END_NODE 是根据源节点到最远目的地的距离计算的,remdst 包括其余目的地,subedges 包括网络中可双向访问的边。

输出显示不连续边,同时计算从源到所有目的地的单个最短路径。例如,O 是源节点,A、C 和 E 是目标节点。输出显示边缘:

O-C

C-E

A-B

B-A

解决方案错过了 E-B 的边缘。解决这个问题的约束应该是什么。感谢您在这方面的任何帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。