pythonのソルバーpulpを用いて最適化を行おうと思っています。
最適化を行う際に、pulpの変数を用いて新たに変数を定義したいと思っています。(以下の例のように、最適化の内容に特に意味はありません)
#変数の定義 x = [pulp.LpVariable('x_{}' .format(num), cat = 'Binary') for num in range(10)] y = [pulp.LpVariable('y_{}' .format(num), cat = 'Binary') for num in range(10)] #目的関数の定義 prob = pulp.LpProblem('Maximizing', pulp.LpMaximize) prob += ・・・ #制約条件 for num in range(10): prob += x[num] <= 5 #その他の制約条件いくつか #新たな変数aの定義 a = pulp.lpSum(x) #変数aを用いた制約条件 for num in range(10): prob += y[num] <= a
このようにして、新たに変数aを定義し、それを使ってfor分を回したり、制約条件の作成をしたいと考えているのですが、うまくいきません。
最適化(prob.solve())を行う前だと変数aをint型として利用できないことに原因があるようです。
そこで、最適化を行う前でも(変数の値が確定する前でも)変数を用いて新たに変数を定義し、それをint型として利用するにはどうしたらいいかをお聞きしたいです。
初学者なので、自分自身もまだ深く理解できておらず、文面だけでは伝わりにくいとは思いますがお力添えして頂けると嬉しいです。
あなたの回答
tips
プレビュー