我有以下代码.
for k in range( ( N + 1 ) * K ):
if k >= 0 and k <= K-1:
# do something
# n = 0
elif k >= K and k <= 2*K-1:
# do something
# n = 1
elif k >= 2*K and k <= 3*K-1:
# do something
# n = 2
...
...
Run Code Online (Sandbox Code Playgroud)
"做某事"很难解释,但我用矫揉造作n = p取而代之.
我怎么能明确写出来?
更具体地说,如果对于p = 0到N,k在集合{p*K,...,(p + 1)*K-1}中,则执行某些操作.我怎么能在代码中做到这一点?
我将Pulp与Python配合使用来解决优化问题。
我在用
import pulp
# code
pulp.prob.objective.value()
Run Code Online (Sandbox Code Playgroud)
现在,我想访问优化变量。这该怎么做?
在Pulp的文档中,我发现了类似的东西,use_vars[i].varValue但是我应该循环获取整个向量。我可以像客观价值一样直接得到它吗?有谁熟悉纸浆吗?
我有一个优化问题,我编写了一个 python 程序来解决它。我将 Pulp 与 CPLEX 求解器一起使用:
import pulp
prob = LpProblem("myProblem", LpMinimize)
x = pulp.LpVariable.dicts("p", range( K ), 0, 1, pulp.LpContinuous)
prob += pulp.lpSum( x[k] for k in range( K ) )
...
# Rest of the constraints
status = prob.solve( pulp.CPLEX( msg = 0 ) )
Run Code Online (Sandbox Code Playgroud)
我收到错误:
File "C:\Anaconda\lib\site-packages\pulp\solvers.py", line 468, in readsol
raise PulpSolverError, "Unknown status returned by CPLEX: "+statusString
pulp.solvers.PulpSolverError: Unknown status returned by CPLEX: infeasible
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何测试问题是否不可行?我想阻止这个事件,如果问题不可行则返回 0。
我试过 :
if prob.status == 'infeasible':
...
Run Code Online (Sandbox Code Playgroud)
我试过 …
在python中,我想绘制这个区域.
(1+x)*(1+y) >= 20
Run Code Online (Sandbox Code Playgroud)
我不知道怎么做matplotlib.我在互联网上搜索并找到了fillplots包但我不明白如何将它用于两个变量.
这是fillplots中的一个示例:
from fillplots import plot_regions
plotter = plot_regions([
[(lambda x: x ** 2,), # x ^ 2 > 0 and
(lambda x: x + 5,)], # x + 5 > 0
])
Run Code Online (Sandbox Code Playgroud)