如何建立一个Picos仿射表达式?

时间:2018-04-16 02:03:21

标签: mathematical-optimization picos-api

我使用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 #。这是一个错误吗?如果是这样,我该如何举报?

1 个答案:

答案 0 :(得分: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的字符串表示形式