我正试图解决一个问题,即不能总是验证约束的满足。我可以找到很多关于灵活约束满足的文章,但这不是我想要的。这是一个例子:
P(Jim likes Cheese) = 0.8
P(Joe likes Cheese) = 0.5
P(Sam likes Cheese) = 0.2
P(Jim and Sam are friends) = 0.9
P(Jim and Joe are friends) = 0.5
P(Joe and Sam are friends) = 0.7
查理正在谈论两个喜欢奶酪的朋友。他最有可能在谈论谁?
我目前将此视为约束满足问题:
[likes cheese] [likes cheese]
| |
| /-------[alldiff]-------\ |
|/ \|
[X]--------[friends]--------[Y]
? ? ?
| | |
(Sam) (Joe) (Jim)
是否存在处理此类CSP的现有方法?
CSP是解决问题的正确方法吗?
答案 0 :(得分:1)
这看起来更像statistical relational learning而不是约束满足。特别参见Probabilistic logic networks。
答案 1 :(得分:1)
对于命题模型(每个变量具有不同的名称),您应该查看概率图形模型(特别是 Markov网络)。它们与SAT和CSP密切相关,因为它们基本上是一种泛化,但仍然属于同一复杂性类#P
。
如果您对这些模型的简明,一阶表示感兴趣,您应该研究统计关系学习或一阶概率模型(同义词)。这里,模型以“提升”形式表示。例如。可能使用以下形式的概率约束,使用范围超过某个对象域的变量:
on(?x,?y) => largerThan(?y,?x)
不依赖于生成地面模型的这些模型的推论是在提升的概率推理领域完成的。
答案 2 :(得分:1)
如果您对概率推理的统一方面感兴趣,那么您需要按照Special Touch的指示,在统计关系模型中查看。该领域最突出的是Markov Logic Networks(http://en.wikipedia.org/wiki/Markov_logic_network)。原始论文甚至有一个“朋友和吸烟者”的例子,非常接近你的。
解决MLN和其他概率关系模型的一种方法是解除概率推理,明确涉及统一等问题。以下是教程的链接:https://www.biostat.wisc.edu/~natarasr/tutorials/lifted.htm。 然而,这是一项相对较新的研究,并且不太可能在实践中轻易应用。
另一个更近期的概率关系模型系列是概率编程(目前正在对该主题进行DARPA授权)。您可能想要查看语言Church,BLOG(贝叶斯逻辑)和费加罗语,但同样,这些是最近的研究主题,并不是那么容易使用。