Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
有人能帮我们在SMT求解器Z3中建立这个函数(多项式函数)的模型吗?_Z3_Smt_Z3py - Fatal编程技术网

有人能帮我们在SMT求解器Z3中建立这个函数(多项式函数)的模型吗?

有人能帮我们在SMT求解器Z3中建立这个函数(多项式函数)的模型吗?,z3,smt,z3py,Z3,Smt,Z3py,F(x1)>a F(x2)=0(导数) F(x)=∑ ci*x^i;(一)∈[0,n];c是一个常数)您的问题非常模糊,如果您显示您尝试了什么以及遇到了什么问题,堆栈溢出效果最好 然而,下面是如何使用Python接口为z3编写特定函数的代码F=2x^3+3x+4: 从z3导入* #将F表示为一个函数。这里有2x^3+3x+4 def F(x): 返回2*x*x*x+3*x+4 #类似地,F的导数为:6x^2+3 def dF(x): 返回6*x*x+3 x1,x2,a,b=整数('x1-x2-a

F(x1)>a

F(x2) ∀t、 F’(x)>=0(导数)


F(x)=∑ ci*x^i;(一)∈[0,n];c是一个常数)

您的问题非常模糊,如果您显示您尝试了什么以及遇到了什么问题,堆栈溢出效果最好

然而,下面是如何使用Python接口为z3编写特定函数的代码
F=2x^3+3x+4

从z3导入*
#将F表示为一个函数。这里有2x^3+3x+4
def F(x):
返回2*x*x*x+3*x+4
#类似地,F的导数为:6x^2+3
def dF(x):
返回6*x*x+3
x1,x2,a,b=整数('x1-x2-a-b')
s=解算器()
s、 加上(F(x1)>a)
s、 加上(F(x2)=0))
r=s.检查()
如果r==sat:
打印s.model()
其他:
打印(“解算器说:%s”%r)
请注意,我翻译了您的
∀t、 F'(x)>=0
条件为
∀TF'(t)>=0
。我想你在绑定变量中有一个输入错误

当我运行此程序时,我得到:

[x1 = 0, x2 = 0, b = 5, a = 3]
这种方法可以很明显地推广到具有常数系数的任意多项式,但这主要是关于编程的,而不是z3。(请注意,在SMTLib中这样做要困难得多。这是Python等宿主语言的功能发挥作用的地方。)

注意,这个问题本质上是非线性的。(变量与变量相乘。)因此,SMT解算器可能不是最佳选择,因为它们不能很好地处理非线性运算。但是,您可以在以后出现问题时处理这些问题。希望这能让你开始