2016-08-23 8 views
-2

私はJuliaからPythonに変換したいソフトウェアを見つけました(Juliaの経験はあまりありません)。私が持っている主な問題は、私がコメントでマークしたセクションで何が起こっているのか正確には理解できないということです。#プロブレム下/アボークJulia JuMPをPython PuLPに変換する

skaters_teamsは180 x 10マトリックスです(スケーターとチームは180人)チームはバイナリ配列として格納され、skaters_teams [0]はプレーヤー0の配列ex [1,0,0,0,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): 
    for t in range(num_skaters): 
     m += sum(skaters_teams[i][t]*skaters_lineup[t]) >=ut[i] 
     m += sum(skaters_teams[i][t]*skaters_lineup[t]) <=6*ut[i] 

をまた、私は@addConstraintと3つのパラメータを使用して上の任意のドキュメントを見つけることができません。最初は、それを追加する問題です.3番目は、追加する制約です。第二は何ですか?

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

ようこそスタックオーバーフロー!人々から最も有益な回答を得るために質問するためのガイドラインは次のとおりです。http://stackoverflow.com/help/how-to-ask ** and ** http://stackoverflow.com/help/mcve –

+0

私は、(a)基本的な理解で始めるための言語に関する基本的なチュートリアルを読むこと、(b)非常に具体的な問題を投稿すること(つまり、私がこのエラーを出すとき)を投稿することが鍵だと思います。一般的なコードブロックを掲示してレビューするよう求めているだけでは、このサイトの目標にうまく適合しません。私が上で与えたそれらのリンクを読んでみて、別のショットをつけてください! –

+0

近づいています。しかし、まだ、 "私はこれらのラインを理解していない、それらを説明してください"は、このサイトでは広すぎます。私は、(a)行が何をしているのかについてのあなたの理解についてできるだけ多くの情報を提供し、(b)あなたがその理解に基づいて書いたコードを説明し、(c)あなたがそれに遭遇している問題コード。また、警告されるように、これはPythonとJuliaの特定のモジュールに関係する質問であり、多くの人がそれに精通しているかもしれないし、そうでないかもしれないと思われるので、よく質問されても成功は保証されません。 –

答えて

1

もう少し長く再生した後、私は解決策を見つけました。誰もがパルプと同様の問題を抱えていて、ここでジャンプすると私が使ったものです。

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] 
+0

素敵な仕事 - 問題を聞いてうれしいのは解決策がありました! –