2011年3月29日

RCEA 规则的反例?

在条件句逻辑中有如下的推理规则:

(RCEA) $latex \dfrac{A\leftrightarrow B}{(A>C)\leftrightarrow (B>C)}$

即,条件句的前件可以进行等价置换而保持条件句真值不变。这是等价置换规则在条件句逻辑中的具体化。一般的,两个逻辑等价的公式可以保真地在任何语境下相互替换。在命题态度语境中,这个规则通常是不成立的。例如一个主体可以相信 2 + 2 = 4 而不一定相信费马大定理。但通常的模态逻辑都具有等价置换规则,条件句逻辑一般也假定该规则成立。不过,稍微改造一下“二难推理的反例”中提到的那个电路图,似乎可给出 (RCEA) 的反例。考虑如下电路图:


命题 A, B, C, D 的含义如下:


A: switch A,B: switch B,C: switch C,D: D 亮


分别考虑如下两个命题:


(1) $latex (A\land B)\lor (A\land C) > D$


(2) $latex A\land (B\lor C) > D$


直观上 (1) 真而 (2) 假,即 (1) $latex \not\leftrightarrow$ (2),但 (1) 和 (2) 的前件是逻辑等价的,从而 (RCEA) 不成立。


不过,这里有个问题,为什么当我们在考虑 (1) 中前件的每个析取枝时,会假定另一个析取枝的情况保持不变,而在考虑 (2) 中前件中第二个合取枝中的的每个析取枝时却不会假定另一个析取枝的情况保持不变?换言之,(1) 直观上的确是真的吗?或许你们有不同的直观。如果是这样,那么这个例子不足以构成 (RCEA) 的反例。Nute 在其 Conditionals 一书中给出了另一个 (RCEA) 的反例。考虑如下电路图:



命题 ABCD 的含义如下:


A: switch A,B: switch B,C: switch C,D: D 亮


考虑如下两个命题:


(3) $latex A\lor (B\land C) > \neg D$


(4) $latex (A\lor B)\land (A\lor C) > \neg D$


直观上 (3) 真而 (4) 假。但 (3) 和 (4) 的前件是逻辑等价的。这个例子用来反驳 (RCEA) 是不是比我的例子更有说服力呢?

LaTeX 作图工具介绍

LaTeX 虽然在公式编辑上远胜任于 Office,但对于作图,初学者可能会觉得门槛较高而对 LaTeX 产生畏难情绪。不过,如果掌握了恰当的工具,LaTeX 下的作图仍然很方便且优于 Office。

  • 利用命令绘图


利用命令可以精准控制图形的形状和位置,对于结构性较强的图形,利用命令画图比手工绘图更值得推荐。LaTeX 本身有一些命令可以绘制简单的图形,但绘制复杂图形则需要使用一些宏包,其中常用的宏包有:

  1. tikz,非常强大的作图宏包,几乎可以画任何图形。甚至可以绘制简单的函数图像。其官方使用手册的最新版厚达726页。网上也有非常多的实例展示如何用 tikz 命令绘制各种图形,例如这个网页。

  2. pstricks,老牌的作图宏包,异常强大。遗憾的是不支持 pdflatex 编译,不过支持xelatex(或许反过来说更对,xelatex支持pstricks)。

  3. metapost,这是在 LaTeX 诞生之初就有的绘图工具,但因为不是 LaTeX 的宏包,而只是一个外部命令行工具,使用起来不够方便。不能直接在 LaTeX 中用代码画图,而必须用 metapost 命令画好图生成 eps 或 pdf 格式的文件供 LaTeX 调用。不过, metapost 的绘图能力独步天下,大概只有 pstricks 可以与之匹敌。

  4. gnuplot,外部命令行工具,绘制函数图像的不二选择。提供和 LaTeX 的接口。这里是一个很好的简明入门教程。

  5. xy-pic(其实宏包名为xy),如果是画交换图,特别是范畴论中的图形,使用 xy 宏包会极为方便。但画结构性不那么好的图形则比较麻烦。

  6. bussproof,写 Gentzen 式树状逻辑推演极为方便。

  7. qtree,画 tableau 证明树或语法分析树极为方便,但树枝没有箭头。

  8. xy-ling,另一个画树状图的宏包,极其灵活,处理语言学中各种语法分析树不在话下。


其中前 3 种熟练掌握一种就完全够用了,后 5 种则是面向特殊用途的。

  • 利用 GUI 绘图软件绘图


毕竟有些复杂的图用命令绘制仍然不方便(特别是结构性不那么好的图),这时需要使用外部绘图软件先手工绘制出图形,然后在 LaTeX 文档中调用由这些软件生成的图片或 tex 代码。理论上,任何绘图软件都可以生成可供 LaTeX 调用的图片,但考虑到有些图形上需要添加公式,这时普通的绘图软件就不够用了。我所了解的支持添加 LaTeX 公式的绘图软件有如下这些:

  1. Inkscape,非常强大的矢量绘图软件,可实现很多复杂的效果,跨平台,且支持多种文件格式保存。Ubuntu 可通过源安装。没有特别声明支持 LaTeX,但实际上所绘图片可以直接存成 tex 格式(其代码利用了 pstricks 宏包),也可以存成 pdf 文件,然后在保存选项中选择包含 LaTeX 代码(用于处理图片中的公式),Inkscape 会生成一个名为<image>.pdf_tex的文件,最后在 LaTeX 主文档中使用 input 命令包含这个文件即可。详见这个文档说明。如果不需要绘制函数图形,Inkscape 是这里所列的绘图软件中绘图能力最强的。

  2. Ipe,比 Inkscape 小巧,因而绘图功能也较弱,但如果只需要绘制简单图形,也够用了。不能导出为 tex 代码,直接生成 eps 或 pdf 格式图片供 LaTeX 文档调用,能自动剪裁图片大小,去掉白边。跨平台。Ubuntu 可通过源安装。Linux 下必须通过命令行启动。

  3. LaTeXDraw,与 Ipe 类似。好处是在手工绘图的同时自动生成 tex 代码(利用了 pstricks 宏包)。跨平台。Ubuntu 可通过源安装。

  4. XFig, 比较老牌的支持 LaTeX 的 GUI 绘图软件。手工绘图后生成 .pstex(存储图片信息)和 .pstex_t(存储图片中的公式信息)文件供 tex 主文档调用。跨平台。Ubuntu 可通过源安装。虽然不是专业的图片编辑软件,但与 Inkscapte 相比,XFig 处理简单的数学图形可能更方便。缺点是:界面丑陋,而且不支持 pdflatex 编译,要先用 latex 编译,然后转成 pdf。

  5. TpX,是我接触最早的支持 LaTeX 的 GUI 绘图软件,据说是一个经济学家因为要出书,图片太多,不方便处理,所以自己动手写了这个软件。与 Ipe 类似。小巧,方便。缺点是只支持 Windows。

  6. GeoGebra,专门绘制函数图像,支持导出为 tikz 或 pstricks 代码,跨平台。Ubuntu 可通过源安装。

  7. Dia,专门绘制流程图,支持导出为 tikz 或 pstricks 代码,跨平台。Ubuntu 可通过源安装。

  8. Tikzedt,专门生成 tikz 代码的所见即所得绘图工具。Windows版本已较完善,最近刚刚放出Linux版。与其他自动生成代码的绘图工具相比,Tikzedt生成的代码较为干净。


欢迎大家补充。(更新于2012-06-10)

二难推理的反例

与黄繁讨论,他给出了一个用两个开关控制一盏灯的电路图,这种电路经常用于楼梯设计,可以实现如下效果:上楼时按开关 A,灯亮,上完楼按开关 B,灯灭。第二个人再上楼按开关 A,灯亮,上完楼按开关 B,灯灭。下楼也一样。受经典电路图局限,我认为如果只用两个开关,或每个开关只有两个状态,那么不可能实现这个效果。结果他给出了如下的电路图。受这个电路图启发,我认为可以给出经典逻辑中一个常用的有效推理的反例。

在经典逻辑中,如下推理是有效的:

(1) $ (A\rightarrow C)\land (B\rightarrow C)\vdash (A\lor B)\rightarrow C$

这种推理又叫做二难推理,即当要证明某个析取式蕴涵某个结论时,只需要分别证明两个析取枝蕴涵该结论。在条件句逻辑中,一般以 (CA) 命名上述推理所对应的公理:

(CA) $ (A>C)\land (B>C)\rightarrow (A\lor B)>C$

(CA) 也为通常的条件句逻辑所接受。但可以举出如下反例:



在这个反例中,(1) 中的 A, B, C 分别代表:switch 开关 A,switch 开关 B 和 C 亮。直观上,(1) 前提真而结论假。前提真容易理解,结论假的原因是,“switch A 或 switch B”也包括同时 switch A 和 B,而此时灯不会亮。

利用电路图来给出经典逻辑推理的反例,是一种非常直观而有效的方法。例如,利用标准的包含两个开关的串联电路就可以给出如下推理的反例(参见 Priest 的 Introduction to Non-classical Logic):

(2) $ (A\land B)\rightarrow C\vdash (A\rightarrow C)\lor (B\rightarrow C)$

是不是可以构造一种非经典逻辑,使得该逻辑能够刻画所有基于电路图的推理呢?或者电路图是不是可以当作非经典逻辑的试金石?类似于计算复杂性问题中的 benchmark。

与沈榆平讨论时,他指出,上述反例包含了人工智能领域三个基本难题:框架(frame)问题、衍生(ramification)问题和并发(concurrency)问题。如果真是这样,那么这个反例还是有点搞头的。

2011年3月13日

哲学上使用与提及之区分的绝妙例子

语言哲学有使用与提及的区分,这可以用一个绝妙的例子来解释:敏感词是敏感词。其中前一个敏感词是提及后一个是使用。而且可以用这个天朝发明的伟大的词造出任意有穷长的句子:敏感词含敏感词含敏感词……

SOMP 计划

SOMP 是 Study on Mobile Phone 的缩写,这是个一个3-5年的长期计划。

目标:建成一个手机上的综合学习平台,并针对逻辑学专业提供足够的学习内容。
定位:以大学生为主,以后可扩展至中小学生。
依托系统:以 Android 为主,以后可向 iphone 等其他平台移植。

功能描述:
1、课程学习
按课程名称提供课程的阅读资料,包括教材、经典文献、讲义、课件等,所有内容应适合手机阅读,方便查阅,并有批注功能。

2、课程回顾
按课程名称提供该课程的复习卡片,功能上与 Anki 类似。

3、指点迷津
提供各种学习和研究指南,包括英文写作、开题报告和毕业论文撰写、如何选题、如何查找文献等。

4、教学互动
具有 twitter 模式的提问功能,任何人都可以在第一时间给提问者解惑。

5、他山之石
提供相关课程的网络公开课视频或其他资料的链接,方便学生观看和学习网络公开课。

6、搜索引擎
提供一个搜索引擎,学生可以方便的搜索不清楚的概念和命题,或搜索想学习的课程。

7、边玩边学
设计一些可以在玩乐中学习知识的游戏。

8、自我测试
从试题库中随机生成一套试卷(主要是判断题和选择题),测试自己掌握知识的程度。

9、学术屏保
提供相关课程的学者照片、简介或逸闻趣事作为动态屏保,或者更 geek 一点,用定理和命题作屏保。

10、同步更新
具有云端功能,从而提供与网络和电脑的同步,也方便老师不断更新学习内容。

其实这些功能在软件上应该都不难实现,关键还是要有内容(特别是7),这需要每一个老师的参与。可以考虑让学生助教也参与到这个计划中来。

请大家想想还需要什么其他功能,欢迎留言。

2011年3月10日

不正确信息博弈

现有的博弈论区分两类博弈:完全信息和不完全信息。在不完全信息博弈中,一方可能不知道另一方的偏好或收益函数。然而,还有一种情况是,一方对另一方的偏好或收益函数存在误解或错误认知。例如,错误假定对方和自己一样都想要更多钱,实际上对方更看重的可能是名而不是钱,这样就造成不必要的冲突和竞争。当博弈双方的偏好处在不同维度时,完全可以实现共赢。我将此类博弈称为不正确信息博弈。如何通过反复博弈从不正确信息博弈走向正确信息博弈既是一个现实问题也是一个理论上有趣的问题。例如,在定义博弈时,双方的收益函数就不能统一在实数上定义。更一般的情况是双方的收益是在不同偏序集上取值,并且两个序关系是不一定通约的。除了实际的收益函数还有双方对对方收益函数的认知。

2011年3月6日

面向大学学习的手机学习软件

随着智能手机的普及,在手机上使用软件以提高工作效率的软件越来越多,其中包括一些教育方面的软件。不过现有的教育软件大多是面向中小学的。是不是可以把大学的一些课程也做成手机软件的形式,从而让学生能随时随地的学习和复习课堂上的内容呢?特别的,可以通过网络建立学生与老师之间的更即时的互动,从而提高教学效果。换言之,把网络课堂变成手机课堂,把微博这种形式引入到教学系统,我认为这是个不错的主意。

2011年3月3日

逻辑有什么用?在这个信息过剩的时代

真相在这个信息过剩的时代显得尤其珍贵。如何在众多信息中沙里淘金,区分出真信息和假信息成为一个非常迫切而现实的问题。特别的,当政府为了政治需要而掩盖真相甚至制造假象时,去伪存真就显得弥足可贵。逻辑在这个问题上或许可以有所作为。

众所周知,逻辑研究的核心问题是推理的有效性,而有效的推理有一个重要特征就是保真性,即有效的推理可以保证从真的前提得到真的结论。因此,尽管逻辑不能直接断定一个命题的真假,因为逻辑研究的是命题与命题之间的关系,而不是命题与世界之见的关系(那是像物理学这样的自然科学的任务),但却可以间接确定命题的真假。我们无法用逻辑来判断一个孤立信息的真假,但却可以用逻辑来判断一个信息与已确定为真或确定被接受的信息是否一致,从而间接给出其真假。

问题在于,逻辑推理不是基于内容的推理,而是基于形式的推理。因此利用逻辑来判断命题的真假需要事先具有庞大的知识库,即必须具备海量的公理集才可能对某个具体信息作出真假判断。而这样做不但在理论上效率低下,而且由于可满足性的计算复杂性是NP完全的,从而在实际上也成为不可能完成的任务。

另一个思路是通过考察不同信息的传播模式来辨别信息的真假,通过检查信息在网络上的流动、信息与信息之间的互动、各种信息的共现分布等情况来辨别真信息和假信息。当然,这里需要一个工作假说:即假定真信息和假信息在网络上的传播模式是不同的,可以仅仅通过考察信息的流动以及与其他信息的交互情况来判断某个信息的可信度,而不需要诉诸我们关于外部世界的知识。我不知道这方面是否已经有成熟的理论模型。如果没有,逻辑或许可以用来对之进行建模。

之所以有上面的想法,还是儒家的经世致用情结作祟,总希望能用所学的东西为社会做点什么。不过,由于经历了一次个人事件,我改变了初衷,变得毫无社会责任感,对社会问题漠不关心,认为一心搞学术是最崇高的。我之所以选择逻辑学,除了有专业上的考虑,其实还有一个非常犬儒的想法,就是在文科里,逻辑学似乎是离政治最远的,我可以自由驰骋而无所顾忌,不必担心像以前那样一不小心受到牵连,卷入政治漩涡而出离不得。但是最近受各种花花草草的影响(你懂我指的是什么),觉得不能再坐在书斋里默不出声了。如果说真相是开明政治最需要的东西,是腐朽政治最害怕的东西,那么,逻辑,这个看上去与政治最不相干的学科或许还能发出点光和热,甚至起到不可估量的作用。这也算是为自己从事的职业找一个冠冕堂皇的理由吧。当职业能够变成事业,我指的是能推动社会进步的公共事业,而不是指成家立业那种个人意义上的事业,人活着才会更有激情和奔头。否则,当别人在为崇高事业而抛头颅洒热血时,反观自己总会觉得羞愧难当。