Инкрементальное суммирование выражений в CVXPY - PullRequest
0 голосов
/ 18 марта 2020

Мне нужно постепенно построить выражение CVXPY , например, сумму.
В данный момент я использую:

sum_expr = None

for ...
   var = cp.Variable(...)
   if sum_expr:
      sum_expr += var
   else:
      sum_expr = var

# use sum_expr 

Есть ли более чистый и краткий способ сделать это?

Есть ли какое-нибудь значение по умолчанию NOP / Null / Void / Nil, которое я могу использовать для инициализации sum_expr, чтобы я мог избежать оператора if и просто использовать +=?

1 Ответ

0 голосов
/ 19 марта 2020

Короткий ответ - использовать нейтральный элемент для заданной операции c, например, cp.Constant(0) для суммирования и cp.Constant(1) для продуктов.

Нет встроенного выражения "Null", но добавление одного нейтрального элемента в дерево разбора не влияет на производительность.

Более длинная тема с ответом здесь .

...