Artificial intelligence 具有整数或甚至浮点域的逻辑编程

Artificial intelligence 具有整数或甚至浮点域的逻辑编程,artificial-intelligence,logic,ontology,business-rules,reasoning,Artificial Intelligence,Logic,Ontology,Business Rules,Reasoning,我读了很多关于逻辑编程的书——ASP(答案集编程)就是一个例子。它们(逻辑程序)通常采用以下形式: [节目一] 规则1:a在某种意义上,布尔系统已经按照你的建议做了 确保A==5是解决方案的一部分,考虑规则(我忘了我的ASP语法,所以请容忍我) 我认为你的条款要求: integer 1..100 //integers 1 to 100 exist 1{A(X) : integer(X)}1 //A1 can take only one value and must take a value 1

我读了很多关于逻辑编程的书——ASP(答案集编程)就是一个例子。它们(逻辑程序)通常采用以下形式:

[节目一]
规则1:a在某种意义上,布尔系统已经按照你的建议做了

确保A==5是解决方案的一部分,考虑规则(我忘了我的ASP语法,所以请容忍我)

我认为你的条款要求:

integer 1..100 //integers 1 to 100 exist
1{A(X) : integer(X)}1  //A1 can take only one value and must take a value
1{B(X) : integer(X)}1  //A2 ``
1{C(X) : integer(X)}1  //A3 ``
1{D(X) : integer(X)}1  //A4 ``
A(5) :- B(5), C(7), D(8) //A2=5, A3=7, A4=8 ==> A1=5
我希望我正确理解了这个问题。

的最新版本(自0.8以来)包含了基于


请参见此处的示例:

此问题与主题无关。如果它在StackExchange网络中的任何地方都合适,它可能在。是的,这是我正在考虑追求的思路,但我有点担心,因为在我看来,这里的一切都应该从头开始,没有以前的研究。但是如果整型变量不是第一类公民,那么马上就有一个问题——例如,规则头可以包含许多变量,不是所有的规则都应该触发,因此——变量可以取不同的值,这意味着——如果我们的域是整型(1..100),那么我们应该定义100个布尔变量来允许任何赋值。而且商业规则程序的领域要大得多。此外,有时我认为任何这样的程序-2都应该转化为线性规划问题,并通过几乎超出计算机科学的方法来解决。使用非布尔函数的问题是,你不再只有开/关,一个项目有多个可能的状态。但随后您尝试使用返回布尔值的规则,如蕴涵或整数比较。在纯逻辑解算器中可能不兼容。
integer 1..100 //integers 1 to 100 exist
1{A(X) : integer(X)}1  //A1 can take only one value and must take a value
1{B(X) : integer(X)}1  //A2 ``
1{C(X) : integer(X)}1  //A3 ``
1{D(X) : integer(X)}1  //A4 ``
A(5) :- B(5), C(7), D(8) //A2=5, A3=7, A4=8 ==> A1=5