Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Julia JuMP转换为Python纸浆_Python_Julia_Pulp_Julia Jump - Fatal编程技术网

将Julia JuMP转换为Python纸浆

将Julia JuMP转换为Python纸浆,python,julia,pulp,julia-jump,Python,Julia,Pulp,Julia Jump,我偶然发现了一个我想从Julia转换成Python的软件(对Julia没有太多经验)。我遇到的主要问题是,我不太明白我用评论标记的部分到底发生了什么#下面/上面的问题 skaters_teams是一个180 x 10的矩阵(180个滑板者和10个团队),该团队存储为二进制数组,其中skaters_teams[0]给出了玩家0的数组,例如:[1,0,0,0,0,0,0,0] m = Model(solver=GLPKSolverMIP()) # Variable for skaters in l

我偶然发现了一个我想从Julia转换成Python的软件(对Julia没有太多经验)。我遇到的主要问题是,我不太明白我用评论标记的部分到底发生了什么#下面/上面的问题

skaters_teams是一个180 x 10的矩阵(180个滑板者和10个团队),该团队存储为二进制数组,其中skaters_teams[0]给出了玩家0的数组,例如:[1,0,0,0,0,0,0,0]

m = Model(solver=GLPKSolverMIP()) 
# Variable for skaters in lineup 
@defVar(m, skaters_lineup[i=1:num_skaters], Bin) 

# Variable for goalie in lineup 
@defVar(m, goalies_lineup[i=1:num_goalies], Bin) 

# One goalie constraint 
@addConstraint(m, sum{goalies_lineup[i], i=1:num_goalies} == 1) 

# Eight Skaters constraint 
@addConstraint(m, sum{skaters_lineup[i], i=1:num_skaters} == 8) 

# between 2 and 3 centers 
@addConstraint(m, sum{centers[i]*skaters_lineup[i], i=1:num_skaters} <= 3) 
@addConstraint(m, 2 <= sum{centers[i]*skaters_lineup[i], i=1:num_skaters}) 

# between 3 and 4 wingers 
@addConstraint(m, sum{wingers[i]*skaters_lineup[i], i=1:num_skaters} <= 4) 
@addConstraint(m, 3<=sum{wingers[i]*skaters_lineup[i], i=1:num_skaters}) 

# between 2 and 3 defenders 
@addConstraint(m, 2 <= sum{defenders[i]*skaters_lineup[i], i=1:num_skaters}) 
@addConstraint(m, sum{defenders[i]*skaters_lineup[i], i=1:num_skaters} <= 3) 

# Financial Constraint 
@addConstraint(m, sum{skaters[i,:Salary]*skaters_lineup[i], i=1:num_skaters} + sum{goalies[i,:Salary]*goalies_lineup[i], i=1:num_goalies} <= 50000) 

# exactly 3 different teams for the 8 skaters constraint 
@defVar(m, used_team[i=1:num_teams], Bin)

#PROBLEM BELOW
@addConstraint(m, constr[i=1:num_teams], used_team[i] <= sum{skaters_teams[t, i]*skaters_lineup[t], t=1:num_skaters}) 
@addConstraint(m, constr[i=1:num_teams], sum{skaters_teams[t, i]*skaters_lineup[t], t=1:num_skaters} <= 6*used_team[i]) 
#PROBLEM ABOVE

@addConstraint(m, sum{used_team[i], i=1:num_teams} == 3) 

在玩了一会儿之后,我找到了一个解决办法。如果有人有类似的问题与纸浆和跳跃这里是我使用的

for i in range(num_teams):
    m += sum(x * st[i] for x,st in zip (skaters_lineup, skaters_teams[:])) >= used_team[i]
    m += sum(x * st[i] for x,st in zip (skaters_lineup, skaters_teams[:])) <= 6*used_team[i]
适用于范围内的i(num_团队):
m+=总和(x*st[i]代表x,拉链中的st(滑冰选手阵容,滑冰选手团队[:])>=二手团队[i]

m+=sum(x*st[i]代表x,st在zip中(滑冰选手阵容,滑冰选手团队[:])欢迎使用Stack Overflow!这里有一些问题的指导方针,以便从人们那里得到最有帮助的回答:我认为关键是(a)阅读一些关于语言的基本教程,让你开始理解基础,(b)用一个非常特定的问题(即当我这样做时,我得到那个错误)提出问题。仅仅发布一个通用代码块并要求对其进行审查并不符合本网站的目标。试着阅读我上面给出的链接,然后再试一次!你越来越近了。但是,尽管如此,“我不明白这些台词,请解释一下”对于这个网站来说还是太宽泛了。我将(a)提供尽可能多的信息,说明您对代码行的理解,(b)解释您基于这种理解编写的代码,以及(c)解释您在代码中遇到的问题。另外,需要注意的是,这似乎是一个与Python和Julia中的特定模块相关的问题,可能有很多人熟悉这些模块,也可能没有很多人熟悉它们,因此即使是一个提出得很好的问题也不能保证成功。我的建议是:不要把它与Julia有关。你的问题是关于Python的。目前,熟悉Julia的人应该阅读并理解您的模型,他们也应该对PuLP足够熟悉,以便回答您的问题。与他人分享您的数学模型,与他人分享您使用Python解决问题的尝试,并提出具体问题。感谢您的帮助!当我能更好地掌握我正在讨论的问题时,我会更多地研究这个问题并编辑我的问题。干得好-很高兴听到这个问题有了解决方案!
@addConstraint(m, constr[i=1:num_teams], sum{skaters_teams[t, i]*skaters_lineup[t], t=1:num_skaters} <= 6*used_team[i]) 
for i in range(num_teams):
    m += sum(x * st[i] for x,st in zip (skaters_lineup, skaters_teams[:])) >= used_team[i]
    m += sum(x * st[i] for x,st in zip (skaters_lineup, skaters_teams[:])) <= 6*used_team[i]