我是z3py的新用户。我需要编写一个程序来检查某些规则的满意度,如
IF room.temp < 18 THEN room.fireplace = on
IF room.temp > 24 THEN room.fireplace = off
IF room.CO > 180 THEN room.fireplace = off
IF room.temp > 28 THEN house.hvac = off
IF house.hvac == on THEN room.fireplace = off
还有如何写这个
bedroom.occupancy == true and bedroom.env_brightness <= 31.5 and bedroom.light.switch = on
感谢
答案 0 :(得分:1)
你需要一个Z3 If-then-else,可以在z3中使用If
来定义。
>>> x = Int('x')
>>> y = Int('y')
>>> max = If(x>y, x, y)
>>> max
If(x > y, x, y)
要定义多个约束,您可以使用And
和Or
>>> max = If(And(x>y, x!=0), x, y)
>>> max
If(And(x > y, x != 0), x, y)
>>> simplify(max)
If(And(Not(x <= y), Not(x == 0)), x, y)
希望这会有所帮助。 This是一般从z3py开始的很好的资源。