1

これは以下と同じ質問ですが、違いはdocplexを使用していることです。

大規模なモデルでは cplex.linear_constraints.add が遅すぎる

docplex でインデックスを使用して制約を追加するにはどうすればよいですか?

私のコードは以下のようなものです。

x = lm.binary_var_dict(range(n),name="x");
xv = [ax for i,ax in x.items()];

for i in range(l):
  Bx = {xv[j]:B[i,j] for j in range(n)};
  Bx = lm.linear_expr(Bx);
  lm.add_constraint(Bx == 1);
4

2 に答える 2

1

バッチで制約を追加できますか?

通常、 Model.add_constraints() を使用してバッチでモデルに制約を追加する方が効率的です。リストまたは内包表記で制約をグループ化してみてください (両方とも機能します)。

例:

m.add_constraints((m.dotf(ys, lambda j_: i + (i+j_) % 3) >= i for i in rsize),
         ("ct_%d" % i for i in rsize))

効率的なDOcplexコードを書くことから

于 2019-10-10T06:05:20.333 に答える