首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的传输算法

Python中的传输算法
EN

Stack Overflow用户
提问于 2015-07-27 15:58:30
回答 1查看 5.6K关注 0票数 1

在google上做了大量的搜索之后,我无法在python中找到任何传输算法求解者。我希望能在西西找到一些没有用的东西。有人能引导我找到正确的消息来源吗?

我知道一些策展人会问我这个代码,或者说这不是一个合适的地方。那样的话,请别忘了带我去正确的地方。

我的问题是:

代码语言:javascript
复制
Max(Sum_{i,j}( Cij*Xij) )

x11 + x12 + x13 = D1
X21 + X22 + x23 = D2
X11<10
X23 <100

我通常有10万个接收器(创建需求)和大约1000个源(提供需求)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-27 21:48:55

我将使用线性规划技术,并借助纸浆,一种python线性规划API。与纸浆一起分发的默认解决程序是cbc (您可以切换到商业解决程序)。

我只是提出一些代码,适合您的问题/问题描述(一个“玩具问题”)。纸浆的github存储库中有一些示例。

代码语言:javascript
复制
# Import PuLP modeler functions
from pulp import *

# INSTANCE
EDGES = [ (0,10), (0,20), (0,50), (0,30), (0,10), (0,40) ] # lower/upper flow
COSTS = [0.3, 0.7, 0.2, 0.6, 0.2, 0.5]
D1, D2 = [24, 10]

# MODEL
prob = LpProblem("Problem",LpMaximize)
# VARS
x11, x12, x13 = LpVariable("x11", *EDGES[0]), LpVariable("x12", *EDGES[1]), LpVariable("x13", *EDGES[2])
x21, x22, x23 = LpVariable("x21", *EDGES[3]), LpVariable("x22", *EDGES[4]), LpVariable("x23", *EDGES[5])
# OBJECTIVE FUNCTION -> added before constraints => important ,
prob += lpDot(COSTS, [x11,x12,x13,x21,x22,x23]), "Costs"
# CONSTRAINTS
prob += x11 + x12 + x13 == D1
prob += x21 + x22 + x23 == D2

# SOLVE
status = prob.solve()

# PRINT SOLUTION
print LpStatus[status]
for var in [x11,x12,x13]:
    print value(var)
print
for var in [x21,x22,x23]:
    print value(var)
print("Total Costs = ", value(prob.objective))

输出:

代码语言:javascript
复制
Optimal
4.0
20.0
0.0

10.0
0.0
0.0
('Total Costs = ', 21.2)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31657837

复制
相关文章

相似问题

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