在python中,我可以使用
z3.set_param('auto_config', False,
'smt.phase_selection', 5,
'smt.arith.random_initial_value', True,
'smt.random_seed', np.random.randint(0, 655350),
'sat.phase', 'random',
'sat.random_seed', np.random.randint(0, 655350))
让事情奏效。而在c ++中,工作从未完成。我尝试使用solver.set()
设置参数,并使用Z3_global_param_set
。对于布尔问题,我只能获得相同的模型。
我想要做的是为同一个求解器随机化模型的每个第一个结果。随机化结果对我目前的工作意义重大。谁能帮我?非常感谢!
简而言之,我希望每次调用solver.get_model()
时都会得到一个问题的随机结果,例如(在布尔值中)
if(b0, 1, 0)+if(b1, 1, 0)+if(b2, 1, 0)>1
再次感谢您阅读我的描述。