入力文字列の長さの帰納法を使用して証明を書くにはどうすればよいですか?


20

私のコンピューティング理論コースでは、多くの問題は、入力文字列の長さの帰納法を使用して、有限オートマトンに関するステートメントを証明することを伴います。私は数学的帰納法を理解していますが、文字列が出てくると、本当につまずきます。誰かがそのような証拠を段階的に作成するプロセスを経てくれたら本当に感謝しています。

問題の例は次のとおりです(Hopcroft and Ullman 3rd Editionの演習2.2.10):

次の遷移表を持つDFAを検討してください。

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

このDFAで受け入れられている言語を非公式に記述し、入力文字列の長さの帰納法により、記述が正しいことを証明します。

これは本の中で答えられた問題なので、宿題をする人を探していません。誰かが私にそれをまっすぐに説明してくれるだけです。

本の答え:(ここ から引用

オートマトンは、1の数が偶数(状態A)か奇数(状態B)かを判断し、後者の場合は受け入れます。| w |の簡単な帰納法です。wが1の偶数である場合にのみ、dh(A、w)= Aであることを示します。根拠:| w | =0。その後、空の文字列には必ず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の偶数である場合に限ります。

  • ケース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の偶数である場合にのみ。

を帰納法で証明する方法を理解しています。私は、これが文字列の構築とどのように機能するのか混乱しています。太字の部分に混乱しています。彼らがどのように思い付いたのか、どのように受け入れられたものを実際に証明したのか、それがどのように帰納的であるのかがわかりません。=0n=nn+12

ところで、δ-hatは拡張された遷移関数です。

回答:


17

あなたの問題がどこにあるのかはっきりしないので、最初から始めましょう。

数学的な誘導は、中国のささやきのゲームのように機能します(理想的な場合、つまり、すべての通信は無損失)または(完全に設定された)ドミノ:どこからでも開始し、次のすべてのステップが何も壊れていないことを前提に、何も壊れていないことを示しますその後。

より正式には、すべての帰納的証明は3つの基本要素で構成されます。

  • 誘導アンカーベースケース:小規模なケース¹については、主張が成立することを示します。
  • 帰納法の仮説:あなた、あなたが何かについて証明したいセットの特定のサブセットに対して主張が成立すると仮定します。
  • 帰納的ステップ:仮説を使用して、クレームがより多くの要素に当てはまることを示します。

もちろん、ベースセット全体(限界内)をカバーするようにステップを調整する必要があります。

重要な注意:彼らの導入スキルに自信がある人は、しばしばアンカーをつや消し、仮説を暗黙的に残します。専門家の聴衆に論文を提出する場合はこれで問題ありませんが(例:論文)、特に初心者の場合、自分で証明を行う場合お勧めできません。すべてを書き留めます。


簡単な例を考えてみましょう。がすべてのについて成り立つことを示したい。n i = 0 i = n n + 1 (N,) NNi=0ni=n(n+1)2nN

  • アンカー:場合、明らかに成り立ちます。n i = 0 i = 0 = n n + 1 n=0i=0ni=0=n(n+1)2
  • 仮説:は、任意ではあるが固定された²nに対して成り立つと仮定します。 NNi=0ki=k(k+1)2nN
  • ステップ:場合、合計を計算します。n+1

    =0n+1=n+1+=0n=IHn+1+nn+12=n+2n+12

    そのため、アイデンティティは当てはまります。(、仮説のごく一部しか必要でないことに注意してください。これはよく起こります。)k = nn+1k=n

帰納的原理は、クレームが実際に成立することを保証します:に対してそれを直接示しました。ステップは、保持する場合、も保持することを示しています。保持する場合、保持します。等々。0 1 1 200112


今度はで別の例を見てみましょう。私たちが証明したいの主張は次のとおりです。すべての有限部分集合のためのの、パワーセットのサイズのある ³。で、つまりサブセットサイズで帰納を実行します。A N 2 A A 2 | A | NA(2N,)AN2AA2|A|(N,)A

  • アンカー:サイズ(空のセット)のセット(のみ)を検討してください。明らかに、であるため、主張どおり。2 = { } | 2 | = 1 = 2 002={}|2|=1=20
  • 仮説:すべての集合、と仮定する は任意ですが、修正すると、。| A | n個のn N | 2 A | = 2 | A |AN|A|nnN|2A|=2|A|
  • ステップ:レッツサイズのarbitrary⁴、およびlet任意(例えばとして存在する)。仮説は適用されるため、。以来、N + 1 、B BのB N + 1 > 0 B { B } | 2 B { b } | = 2 nBNn+1bBbn+1>0B{b}|2B{b}|=2n

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

    確かにそれがあります主張どおり。|2B|=2|2B{b}|=22n=2n+1

繰り返しますが、誘導によって主張が証明されます。


さて、あなたの問題のために、ステートメントを強化するという一般的なトリックを使用できます。「オートマトンが奇数の1を含むすべての単語を受け入れる」と主張する場合、「長さすべての単語の中で、正確に奇数の1を含む単語はオートマトンによって受け入れられます」のような帰納仮説が得られます。これは、特定の(受け入れられた)単語のどの部分にいくつの単語が含まれているかについて何も知らないため、どこにも導かれません。この仮説は、あなたがselected意的に選択した単語から切り取ったものには適用されません。n

したがって、「入力の消費部分に奇数の1が含まれている場合にのみオートマトンが状態」という強力な主張を定式化し、これを表示します。前の主張を暗示していることに注意してください。B

  • アンカー:長さゼロの唯一の文字列処理した後、オートマトンは明らかに状態ています。AεA
  • 仮説:任意に選択されるが固定された最大までの長さの入力フラグメントに対して主張が成立すると仮定する。n
  • ステップ:任意の単語考えます。2つのケースがあります。 w{0,1}n+1
    1. wには偶数の1が含まれます。最後のシンボルには2つのケースがあります。
      1. w = w 1w n 1 A w w n = 0 Awn=0:この場合、には偶数のが含まれます。帰納仮説により、オートマトンは消費し後の状態になります。を消費すると、主張されているように、オートマトンは状態ままになります。w=w1wn1Awwn=0A
      2. wn=1:この場合、には奇数のが含まれます。帰納仮説により、オートマトンは消費した後に状態になります。を消費すると、オートマトンは状態に切り替わります。w=w1wn1Bwwn=1A
    2. wには奇数の1が含まれます。ケース1と同様。

帰納の原理は、その主張が実際に成り立つことを意味します。


  1. 半順序に沿って帰納を実行します。アンカーはすべての最小限の要素をカバーする必要があり、場合によってはそれ以上です(ステートメントに応じて)。
  2. 「任意ですが、修正された」は不可欠です!ステップでを変更して、あたかも固定数であるかのように扱うことはできませんが、それについて何も仮定することはできません。n
  3. パワーセットを示すと、奇妙に見えるかもしれません。これは、パワーセットがからまでのすべての関数のセットと同等であるという観測に根ざしています。2AA01
  4. 空間全体をカバーするには、任意を選択することが不可欠です。「そのようなを取り、以前は存在しなかった要素を追加してください」と言いたくなるかもしれません。この場合、それは同じことをしますが、より複雑な設定(例えば、ノードをグラフに追加する)で間違えるのは簡単です。常に任意の大きなオブジェクトを取得し、それを切り離して、その部分に仮説を適用します。仮説の対象となる小さなオブジェクトから大きなオブジェクトを決して組み立てないでください。BA
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.