【发布时间】:2021-07-30 16:32:48
【问题描述】:
这段代码有以下问题
p_y = [Int("p_y_%s" % str(i+1)) for i in range(n)]
length = Int("length")
objective = length == max([p_y[i] + y[i] for i in range(n)])
n 是一个整数参数, 错误如下:
File "C:/Users/boezi/PycharmProjects/VLSI/SMT/src/model.py", line 29, in solve_instance
objective = length == max([p_y[i] + y[i] for i in range(n)])
File "C:\Users\boezi\AppData\Local\Programs\Python\Python37\lib\site-packages\z3\z3.py", line 380, in __bool__
raise Z3Exception("Symbolic expressions cannot be cast to concrete Boolean values.")
z3.z3types.Z3Exception: Symbolic expressions cannot be cast to concrete Boolean values.
我该如何解决?
【问题讨论】:
-
你能澄清你在问什么吗?
max不创建公式,它具体评估值及其关系以找到单个最大值, -
这个之前讨论过很多次了,最新版本见这里:stackoverflow.com/a/68534165/936310