4

次の Python PuLP ステートメントを、より Pythonic で管理しやすく正しいものに単純化するにはどうすればよいですか。

import pulp as lp

#delare variables
#Note that I have to model a 100 year period!
year_1 = lp.LpVariable("2011", 0, None, lp.LpInteger)    
year_2 = lp.LpVariable("2012", 0, None, lp.LpInteger)
year_. = lp.LpVariable("201.", 0, None, lp.LpInteger)
year_n = lp.LpVariable("201n", 0, None, lp.LpInteger)

#declare constraints
prob += year_1 - year_0 >= 0
prob += year_2 - year_1 >= 0
prob += year_. - year_. >= 0
prob += year_n - year_n_1 >= 0
4

1 に答える 1

5

100 年変数の代わりに年のリストを作成します。

years = [lp.LpVariable(str(2011+i), 0, None, lp.LpInteger) for i in xrange(n)]

year_1リストは 0-index であることに注意してくださいyears[0]

スクリプトの「制約の宣言」部分でループできます。

for year, next_year in zip(years[:-1], years[1:]):
    prob += next_year - year >= 0
于 2013-07-19T20:10:15.830 に答える