斯坦福《逻辑学导论》第八周学习笔记

斯坦福大学的《逻辑学导论》课程几乎是每个希望干出一番事业的有理性人类梦寐以求的课程,它不是教授自亚里士多德以来的逻辑学史内容,也不是简单的教授符号使用和逻辑思维方法,而是传授思想。这门课通过研究逻辑学方法,学习组织信息和系统的推理工具,生成合逻辑的结论,以启迪我们将其应用在数学、科学、工程、商业、法律等领域。1

噎死,噎死,噎死!

任务完成

本周课程结束了,教授说:After this week (and after the US Thanksgiving week that follows), we will look at some extra topics. And then, we will be done.,我们感恩节后再看一些东西就完美了。

最初的梦想终于就要实现了!

骑在银龙的背上

あの苍ざめた海の彼方で 今まさに谁かが伤(いた)んでいる
まだ飞べない雏たちみたいに 仆はこの非力を叹いている
★ 急げ悲しみ 翼に変われ
急げ伤迹 罗针盤になれ
まだ飞べない雏たちみたいに 仆はこの非力を叹いている ★
梦が迎えに来てくれるまで 震えて待ってるだけだった昨日
◆ 明日 仆は龙の足元へ崖を登り 呼ぶよ「さあ、行こうぜ」

合一、归结与抽取

本章节开始,课程的走向变得“诡异”,变得非人化,教授已经开始在讲计算机基础语言了,或者说是Mind Science,讲的是心智计算问题。你在本章节遇到这些问题都是正常的:其一,不知道自己做的对不对;其二,不知道做这些有什么意义;其三,不知道题目在表达什么。教授在官方论坛里给这些问题做了统一的解答:

教授的解答

答案就是:我们在启迪计算机思维,并非局限于仅仅教授逻辑。

一直惜墨如金的教授,从本章开始,也变得有点“诡异”的啰嗦了:

教授的啰嗦

我的妈妈啊,本章的讲授时间竟然是我认为最难的第四章的接近3倍。

我们可以发现,教授在介绍Unification、Resolution、Answer Extraction三个概念的时候竟然细致到了不可思议的地步——看起来明明讲的清楚的不能再清楚的地方还要反复再说一遍,甚至不惜举了好几个例子。

为什么?

教授的啰嗦2

这三个词是当前计算机领域中相当重要的概念。在这周课程中,我们碰到的问题都不难,因为这些问题实际上都是用来帮助计算机“学会思考”的。

  1. Unification 译为:合一,有兴趣的可以去搜索这个关键词,是计算机领域中相当重要的方法。
  2. Resolution 译为:归结,它是最适合计算机进行推理的方法。
  3. Answer Extraction 译为:答案提取,这个方法则根本就完全是人工智能的关键技术,是为计算机而非人类发明的原则和方法。

首先,关于合一方法的使用,你需要学会使用“计算机工具”,即本课程工具箱中的“Unifier”。

合一

其次,归结算法的使用,你需要学会采用“穷举法”,即选择“Select All”后点击“Resolution”,不过你要小心了,Coursera的页面会卡死的。题目那么简单,你肉眼应该也必须能通过对规则的掌握做出来,但真正的计算机是不需要的,它们的“笨办法”很好用。

归结
归结错误

第三,“答案提取”方法的使用。这就是一个规则问题了,我们记住要想XX成立,就要写成 $XX => Goal$ 即可。

答案提取

提示:输入问题

例如将表达式∀x.(p(x) ⇒ q(x))输入系统的方法,是用键盘敲出:AX: (p(x) => q(x))

答案一对一

Problem 9.1

用1、2两道题举例,其他题目类同,要想解决就要对规则掌握清楚。

  1. ∃y.∀x.p(x,y) = {p(x,c)}
  2. ∀x.∃y.p(x,y) = {p(x,g(x)}

之所以看起来一样却如此不同,原因就在于:若∃的运算在前,那么按照规则,其位置可用常量代替(非题给常量),再UE去掉全称量词;若∀的运算在前,那么去掉∃的方法是将其位置替换为关于变量(如x)的函数,再UE去掉全称量词。

Problem 9.1

Problem 9.2

肉眼看,肉眼看不出来就用工具“Unifier”。

Problem 9.3

肉眼看,肉眼看不出来就用工具“Loveland”:

Problem 9.3

Problem 9.4-9.5-9.6-9.7

按照上面提示的规则将表达式敲入系统,肉眼看得出就自己选然后R,看不出就全选后R。另外,不要忘了第五章学的证明方法。ps:曾经的惜墨如金,现在的不厌其烦。

Problem 9.8

注意,不要在把公式录入计算机的时候敲错。如果你敲的对的话,就会出现下面这样的“非人类”语言:

Problem 9.8

方法还是和上面一样。

Problem 9.9

这题得使用一个叫做“Factor”的方法,因子分解。可以简单理解为是“通项”,通过它可以把两个相同功能的函数合并。比如{q(X,g(X),V58),q(X,g(X),f(X,g(X)))}有两项q(x),这时可以使用Factor合并为{q(X,g(X),f(X,g(X)))}。由于cousera的系统性能限制,不能用穷举的方法得出答案,我来说一下肉眼做题的分析方法:

  1. 前提{~p(X,Y),q(X,Y,f(X,Y))}和前提{p(X,g(X)),q(X,g(X),Z)}各自的元素都是变量,所以它们比其他前提更“值得”归结。
  2. 得到{q(X,g(X),V58),q(X,g(X),f(X,g(X)))}后,我们用Factor得到{q(X,g(X),f(X,g(X)))}。
  3. 好了,现在肉眼看的出来就自己R吧,看不出来就穷举吧。

Problem 9.10

这题只需要你理解了计算规则,也就是“答案提取”的方法后就能做出来。还有读题:Note that you will have to add the goal clauses as premises, since the Goal button does not add goal literals to goals.,我们要把Goal写成Premise。

不过我这里需要提示一下“前提”的写法——说说怎样写才正确,因为不仅我自己搞错了很多次,别人也是,而且这套系统不管正误都算“完成”(搞得我被认为没有遵守honor code发答案被踢了)。而且,最关键的是本周论坛的帖子还乱七八糟,主题都不在正确的板块。

Problem 9.10#

本题有四个前提:

  1. {p(a)} Premise
  2. {~p(X),q(X),r(X)} Premise
  3. {~q(Z),goal(Z)} Premise
  4. {~r(Z),goal(Z)} Premise

最后两个是 $q(τ) ∨ r(τ) => goal(τ)$ 转化出来的。

final


  1. MOOC果壳中文站:http://mooc.guokr.com/course/359/Introduction-to-Logic/  

2015-11-12 21:38 intrologic
Comments
Write a Comment