Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ z3prover,如何在c++;_C++_Z3 - Fatal编程技术网

C++ z3prover,如何在c++;

C++ z3prover,如何在c++;,c++,z3,C++,Z3,在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'

在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\u global\u param\u set
。对于布尔问题,我只能得到相同的模型。 我想做的是为同一个解算器随机化模型的每个第一个结果。将结果随机化对我目前的工作意义重大。有人能帮我吗?非常感谢

简言之,我希望每次调用
solver.get_model()
时,都能得到问题的随机结果,例如(布尔型)


再次感谢您阅读我的描述。

开始阅读这里:感谢您的回复,但我想随机选择z3的结果,事实上,我使用c++的随机库为z3设置种子。但永远不会起作用(@jiangqilei据我所知,随机参数会影响搜索的进行方式[从而影响性能],但这并不一定会导致随机模型[取决于公式的结构]。我想你最好阻止以前的模型解决方案,并以增量方式请求新的解决方案。也许更有经验的z3用户可以提供更准确的信息。solver.set和global parameter设置应该可以工作,因此要了解什么不起作用,我将受益于独立的重新设置。请注意,set_param f来自C++ API的函数调用到Z3GuiLalgPARAMESET集合。Python和C++ API都调用相同的函数,所以下面的代码路径是相同的。@ PATRICKTr.IN谢谢。我的老师曾经告诉我,正如你所描述的,在Python中,我们实际上得到了随机结果。而且,是的,阻止以前的模型也是我所拥有的IM。在Python中随机化似乎很好。在C++中,我认为问题隐藏在代码中的某个地方,我认为……深沉而明显,(哭哭啼啼的脸……
if(b0, 1, 0)+if(b1, 1, 0)+if(b2, 1, 0)>1