英语到一阶逻辑

我在做《人工智能现代方法》这本书中的一个练习。

问题是:将英语转换为一阶逻辑

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.

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注