Logic 用命题逻辑解方程

Logic 用命题逻辑解方程,logic,smt,bitvector,sat,sat-solvers,Logic,Smt,Bitvector,Sat,Sat Solvers,我正在寻找关于如何将数学方程编码成cnf sat形式的想法,这样它们就可以通过像MiniSat这样的开源sat解算器来求解 那么,我如何转换如下内容: 3x+4y-z=14 -2x-4z=15 转化为可使用SAT解算器求解的命题方程 有什么建议吗,因为我被难倒了???我假设你在寻找方程的整数解,因为这是一个已知的NP难问题,就像SAT一样。(当然,没有整数约束的线性规划在p中。) 你可以将你的方程转换成SAT实例,但你的时间会花在学习如何使用解算器上,这会让你更自然地表达你的方程。例如,使用Mi

我正在寻找关于如何将数学方程编码成cnf sat形式的想法,这样它们就可以通过像MiniSat这样的开源sat解算器来求解

那么,我如何转换如下内容:

3x+4y-z=14

-2x-4z=15

转化为可使用SAT解算器求解的命题方程


有什么建议吗,因为我被难倒了???

我假设你在寻找方程的整数解,因为这是一个已知的NP难问题,就像SAT一样。(当然,没有整数约束的线性规划在p中。)

你可以将你的方程转换成SAT实例,但你的时间会花在学习如何使用解算器上,这会让你更自然地表达你的方程。例如,使用Microsoft的,您的上述方程可以通过以下简单程序求解:

(declare-fun x () Int)
(declare-fun y () Int)
(declare-fun z () Int)
(assert (= (+ (* 3 x) (* 4 y) (- z)) 14))
(assert (<= (- (* (- 2) x) (* 4 z)) (- 6)))
(assert (>= (+ (- x (* (- 3) y)) z) 15))
(check-sat)
(get-model)
(声明fun x()Int)
(声明funy()Int)
(声明funz()Int)
(断言((+(*3x)(*4y)(-z))14))
(断言((+(-x(*-3)y))z)15))
(检查sat)
(获取模型)

您可以进入并单击“播放”按钮,查看它解方程。

我假设您正在寻找方程的整数解,因为这是一个已知的NP难问题,就像SAT一样。(当然,没有整数约束的线性规划在p中。)

你可以将你的方程转换成SAT实例,但你的时间会花在学习如何使用解算器上,这会让你更自然地表达你的方程。例如,使用Microsoft的,您的上述方程可以通过以下简单程序求解:

(declare-fun x () Int)
(declare-fun y () Int)
(declare-fun z () Int)
(assert (= (+ (* 3 x) (* 4 y) (- z)) 14))
(assert (<= (- (* (- 2) x) (* 4 z)) (- 6)))
(assert (>= (+ (- x (* (- 3) y)) z) 15))
(check-sat)
(get-model)
(声明fun x()Int)
(声明funy()Int)
(声明funz()Int)
(断言((+(*3x)(*4y)(-z))14))
(断言((+(-x(*-3)y))z)15)
(检查sat)
(获取模型)

您可以进入并单击“播放”按钮,查看它解方程。

被难倒的不仅仅是您。仅SAT解算器无法解线性规划。我坚信任何编码都是一种非常低效的近似方法。当前的研究提供了将约束解算器与线性规划解算器相结合的解算器,但这些系统不尝试将线性规划编码到SAT中。
x
y
z
的值域是ℝ? 你如何列举ℝ (你没有)?如果x、y和z的域被限制为z怎么办?另外,我只是想证明SAT可以用来解算术方程,所以,如果你能帮我用约束解算器(MiniSat)和其他工具来解这些方程,那就太好了。开始搜索关于这个主题的研究论文怎么样?e、 这也给了你一些参考和实验。它还明确了一个非常重要的事实:变量的域必须是有限的。ℤ 不是有限且ℝ 甚至不可数。被难倒的不仅仅是你。仅SAT解算器无法解线性规划。我坚信任何编码都是一种非常低效的近似方法。当前的研究提供了将约束解算器与线性规划解算器相结合的解算器,但这些系统不尝试将线性规划编码到SAT中。
x
y
z
的值域是ℝ? 你如何列举ℝ (你没有)?如果x、y和z的域被限制为z怎么办?另外,我只是想证明SAT可以用来解算术方程,所以,如果你能帮我用约束解算器(MiniSat)和其他工具来解这些方程,那就太好了。开始搜索关于这个主题的研究论文怎么样?e、 这也给了你一些参考和实验。它还明确了一个非常重要的事实:变量的域必须是有限的。ℤ 不是有限且ℝ 甚至不可数。