0

我使用 picos 作为 LP 建模语言。但是,我得到以下不一致:

import picos as pic
prob_tmp = pic.Problem()
a_tmp = prob_tmp.add_variable("a",1)
eta_tmp = pic.new_param("eta",0.0341)
print (1-eta_tmp) * a_tmp
print a_tmp - eta_tmp * a_tmp

(1-eta_tmp) * a_tmpa_tmp - eta_tmp * a_tmp应该是同一个意思。但打印输出未更正:

# (1 x 1)-affine expression: -eta + 1.0*a # <- this one is wrong!
# (1 x 1)-affine expression: a -eta*a #

他们都应该输出# (1 x 1)-affine expression: a -eta*a #. 它是一个错误吗?如果是这样,我该如何报告?

4

1 回答 1

0

我可以确认这是一个错误,但仅限于表达式的字符串表示。在内部,两个表达式都正确存储。为了证明这一点,让我们给value表达式一个a_tmp。然后,打印表达式表明它们都被正确评估:

> a_tmp.value = 42.
> print ((1-eta_tmp) * a_tmp)
40.5678
> print (a_tmp-eta_tmp*a_tmp)
40.5678

我将在 gitlab 上打开一个问题来修复(1-eta_tmp) * a_tmp

于 2018-12-01T16:10:51.463 回答