我在做《人工智能现代方法》这本书中的一个练习。
问题是:将英语转换为一阶逻辑
Politicians can fool some of the people all of the time, and they can fool all of the peoplesome of the time, but they can’t fool all of the people all of the time.
这是给出的答案。
∀ x Politician(x) ⇒(∃ y ∀ t Person(y) ∧ Fools(x, y, t)) ∧(∃ t ∀ y Person(y) ⇒ Fools(x, y, t)) ∧¬(∀ t ∀ y Person(y) ⇒ Fools(x, y, t))
我的疑问是。
我们通常将蕴含与全称量词一起使用,但在这里他们使用了
(∃ y ∀ t Person(y) ∧ Fools(x, y, t))
来表示问题中的这一部分 – can fool some of the people all of the time
这不是错误的吗?
但在第二种情况下
they can fool all of the people some of the time
他们使用了蕴含。
我对存在量词和全称量词的顺序感到困惑。
有人能解答我的疑问吗?
谢谢你。
回答:
我们通常将蕴含与全称量词一起使用
你注意到了一种模式,但这并不是规则,例如:
There is always somebody worse off than yourself.
你的教科书会将其形式化为:
∀t ∃x x is a person ∧ x is worse of than yourself at t
在这种情况下,你所担心的合取是必要的,仅仅因为所暗示的话语宇宙(变量的范围)是全包容的——它实际上是“一切”——所以我们有义务声明 x
是一个人,以及比你更糟。在自然语言中,话语宇宙几乎总是由语境或通过明确限制代词(如somebody)来限制。在这种情况下,将话语宇宙限制为人 并简单地形式化为更自然:
∀t ∃p p is worse of than yourself at t
这不是错误的吗?
你指的是:
∃ y ∀ t Person(y) ∧ Fools(x, y, t)
是的,这是错误的。这句话的意思是:
存在某个 y,使得在任何时间 t,y 是一个人,并且 y 在 t 时被 x 愚弄。
但是,当我们说一个政治家可以一直愚弄一些人,并且在某些时候愚弄所有人时,我们实际上并不意味着存在某个特定的人一直被我们的政治家愚弄。显然,我们甚至不意味着暗示存在某个特定傻瓜,其生命跨越了任何给定政治家的整个政治生涯,一个得出这种推论的人工智能将是一场失败。我们实际上是指,所有时间里,总有一些人被我们的政治家愚弄,而在某些时候,所有人都被我们的政治家愚弄。也就是说:
∀ t ∃ y Person(y) ∧ Fools(x, y, t)
和:
∃ t ∀ y Person(y) ⇒ Fools(x, y, t)
这个例子提出了一个重要观点,即要智能地形式化用自然语言表达的陈述或论证,你需要形式化它在其语境中的含义,而不是简单地“看起来像什么”。x fools some of the people all of the time 看起来像你的教科书版本:
∃ y ∀ t Person(y) ∧ Fools(x, y, t)
因为“some”在“all”之前。但自然语言对量词精确性的评价非常低,熟练的英语使用者主流并不认为这句谚语的意思是教科书所说的。(我确信即使是书的作者,如果有人注意到这一点,也会同意。)
所以你对存在量词和全称量词的顺序感到困扰是正确的。
∀ y ∃ x F(x,y)
的意思是:
对于任何 y,存在某个 x 使得 F(x,y)
和:
∃ x ∀ y F(x,y)
的意思是:
存在某个 x,使得对于任何 y,F(x,y)
它们通常不可互换。比较(话语宇宙 = 人):
Everyone has a mother∀ x ∃ y Mother(y,x)
和
∃ y ∀ x Mother(y,x)Someone is the mother of everyone.