如何在输入字符串的长度上使用归纳法编写证明?


20

在我的计算机理论课程中,我们遇到的许多问题都涉及对输入字符串的长度进行归纳,以证明有关有限自动机的陈述。我了解数学归纳法,但是当琴弦开始演奏时,我会被绊倒。如果有人会逐步进行这样的证明,我将非常感激。

这是一个示例问题(Hopcroft和Ullman第3版的练习2.2.10):

考虑具有以下过渡表的DFA:

        0 1
       ________
-> A | AB
  * B | BA

非正式地描述此DFA接受的语言,并通过对输入字符串的长度进行归纳来证明您的描述正确。

这是本书中已回答的问题,所以我不是在找人做作业。我只需要有人直接向我解释。

图书的答案:(此处获取

自动机告诉看​​到的1的数目是偶数(状态A)还是奇数(状态B),在后一种情况下可以接受。这是对| w |的简单归纳。当且仅当w具有偶数1时才显示dh(A,w)=A。基础:| w | =0。然后,w,空字符串肯定具有偶数1,即零1,并且δ-hat(A,w)=A。

归纳法:假设语句小于w。然后w = za,其中a为0或1。

  • 情况1: a =0。如果w的偶数为1,则z也是如此。根据归纳假设,δ-hat(A,z)=A。DFA的跃迁告诉我们δ-hat(A,w)=A。如果w具有1的奇数,则z也是如此。根据归纳假设,δ-hat(A,z)= B,而DFA的跃迁告诉我们δ-hat(A,w)=B。因此,在这种情况下,δ-hat(A,w)=如果且仅当w的偶数为1时为a。

  • 情况2: a =1。如果w的偶数为1,则z的奇数为1。根据归纳假设,δ-hat(A,z)=B。DFA的跃迁告诉我们δ-hat(A,w)=A。如果w的奇数为1,则z的偶数为。 1。根据归纳假设,δ-hat(A,z)= A,而DFA的跃迁告诉我们δ-hat(A,w)=B。因此,在这种情况下,δ-hat(A,w )=当且仅当w的偶数为1时=A。

我知道如何证明使用归纳法。我对构建字符串的工作方式感到困惑。我对加粗的部分感到困惑。我不明白他们是如何提出的/它实际上如何证明接受的内容/它是如何归纳的。i=0ni=n(n+1)2

顺便说一下,δ-hat是扩展的转移函数。

Answers:


17

由于尚不清楚您的问题所在,因此我将从头开始。

数学归纳的工作方式类似于中国的耳语游戏(在理想情况下,即所有交流都是无损的)或(完全建立起来的)多米诺骨牌:您从某个地方开始,并表明您的每一步都不会破坏任何东西,前提是没有破坏任何东西直到然后。

更正式地说,每个归纳证明都包含三个基本元素:

  • 归纳,也是基本案例:如果案例较小,则说明索赔成立。
  • 归纳假设:您假设该主张对您要证明某件事的集合的某个子集成立。
  • 归纳步骤:使用假设,您可以证明该主张包含更多要素。

当然,必须对步骤进行调整,使其覆盖整个基本集(在限制范围内)。

重要说明:对自己的归纳技巧充满信心的人经常掩盖主观观点,而使假设不为人所知。向专家观众(例如论文)介绍您的作品时,这很好,但是,当您自己做证明时,尤其是初学者,建议这样做。写下一切。


考虑一个关于的简单例子; 我们想证明n(N,)适用于所有ÑÑi=0ni=n(n+1)2nN

  • 锚点:对于n i =n=0显然成立。i=0ni=0=n(n+1)2
  • 假设:假设保持用于任意的,但fixed²ÑÑi=0ki=k(k+1)2nN
  • 步骤:对于,计算总和:n+1

    i=0n+1i=(n+1)+i=0ni=IHn+1+n(n+1)2=(n+2)(n+1)2

    所以身份适合 。(我们注意到,我们只需要假设的一小部分,即 k = n。这种情况经常发生。)n+1k=n

归纳原理现在向我们保证该声明确实成立:我们直接将其显示为。步骤说,如果保持000,那么它也为;如果保持1,它也保持2 ; 等等。112


让我们来看另一个例子,这次是。我们要证明的要求是:每一个有限的子集ñ,权力的大小设置2 一个2 | A | ³。我们再次对N进行归纳,即对子集A的大小进行归纳。(2N,)AN2AA2|A|(N,)A

  • 锚点:考虑大小为的(唯一的)集合,即空集合。显然,2 = { },因此| 2 | = 1 = 2 0如所要求的。02={}|2|=1=20
  • 假设:假设所有套| A | ñ有些武断,但固定Ñ ñ,我们有| 2 A | = 2 | A | AN|A|nnN|2A|=2|A|
  • 步骤:大小的arbitrary⁴ Ñ + 1,而让b 任意的(例如b存在如Ñ + 1 > 0)。现在,该假设适用于B { b },因此| 2 B { b } | = 2 n。以来BNn+1bBbn+1>0B{b}|2B{b}|=2n

    2B=2B{b}{A{b}A2B{b}}

    我们确实有如权利。|2B|=2|2B{b}|=22n=2n+1

再次通过归纳证明了这一主张。


现在,对于您的问题,可以使用一个常见的技巧:增强语句。如果将索赔表述为“自动机接受奇数个单词的所有单词”,您会得到一个归纳假设,例如“在长度为所有单词中,恰好自动数词接受奇数个单词”。这不会带您到任何地方,因为我们不知道给定(接受)单词的哪个部分包含多少个单词;该假设不适用于您删除任意选择的单词的任何内容。n

因此,您想提出一个更强的主张:“ 当且仅当输入的消耗部分包含奇数个时,自动机才处于状态 ”,并显示此状态。请注意,这暗示了先前的主张。B

  • 锚点:在处理了唯一的长度为零的字符串,自动机显然处于所声明的状态A。εA
  • 假设:假设索取权适用于长度最大为输入片段,该片段是任意选择的,但是固定的。n
  • 步骤:考虑一个任意字。有两种情况。 w{0,1}n+1
    1. 包含偶数个。最后一个符号有两种情况。 w
      1. :在这种情况下, w ' = w 1w n 1包含偶数个。通过归纳假设,自动机处于状态一个消费后 W¯¯ 。消耗 w n = 0会使自动机保持状态 A,如所主张的。wn=0w=w1wn1Awwn=0A
      2. :在这种情况下, w ' = w 1w n 1包含奇数个1。通过归纳假设,自动机处于状态消耗后 W¯¯ 。消耗瓦特Ñ = 1使自动机切换到状态,如权利。wn=1w=w1wn1Bwwn=1A
    2. 包含奇数个1。与情况1类似。w

归纳原则意味着该要求确实成立。


  1. 您按部分偏序执行归纳;锚点需要覆盖所有最小元素,有时甚至要覆盖更多元素(取决于语句)。
  2. “专断,但固定”是必不可少的!我们不能改变在步骤中 n并将其视为固定数字,但是我们也不能对此做任何假设。n
  3. 来指定功率设置似乎很奇怪。根植于这样的观察:功率集等于从A0的所有函数的集合2AA,这是因而表示。0,1
  4. BA
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.