我偶然發現了一個我想從Julia轉換爲Python的軟件(對Julia沒有太多經驗)。我遇到的主要問題是我不明白到底是怎麼回事在我打上評論#PROBLEM下面的章節/高於將Julia JuMP轉換爲Python PuLP
skaters_teams是180×10矩陣(180個滑冰和10支球隊)並且球隊被存儲爲二進制數組,其中skaters_teams [0]給出球員0的數組,例如[1,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]
我也無法找到使用3個參數與@addConstraint
任何文件。首先是你要添加的問題,第三是你添加的約束。第二個是什麼?
@addConstraint(m, constr[i=1:num_teams], sum{skaters_teams[t, i]*skaters_lineup[t], t=1:num_skaters} <= 6*used_team[i])
歡迎來到Stack Overflow!以下是提出問題的一些準則,以便從人們獲得最有幫助的回覆:http://stackoverflow.com/help/how-to-ask **和** http://stackoverflow.com/help/mcve –
我認爲關鍵是:(a)閱讀一些關於語言的基本教程,讓你開始瞭解基礎知識,(b)發佈一個非常具體問題的問題(即當我這樣做時,我得到這個錯誤)。只是發佈一段代碼並要求對其進行審覈並不符合本網站的目標。嘗試閱讀我上面給出的鏈接,再試一次! –
你越來越近了。但是,對於這個網站,「我不理解這些線路,請給他們解釋」。我會(a)儘可能多地提供有關您對這些行正在做什麼的理解的信息,(b)根據理解說明您編寫的代碼,以及(c)解釋您遇到的問題碼。此外,要警告,看起來這是一個與Python和Julia中的特定模塊相關的問題,可能有或可能沒有很多人熟悉它們,所以即使是一個良好的問題也不能保證成功。 –