Como escrevo uma prova usando indução no comprimento da string de entrada?


20

No meu curso de teoria da computação, muitos dos nossos problemas envolvem o uso de indução no comprimento da string de entrada para provar declarações sobre autômatos finitos. Eu entendo a indução matemática, no entanto, quando as cordas entram em jogo, eu fico tropeçando de verdade. Eu realmente apreciaria se alguém passasse pelo processo de fazer essa prova passo a passo.

Aqui está um exemplo de problema (Exercício 2.2.10 de Hopcroft e Ullman 3rd Edition):

Considere o DFA com a seguinte tabela de transição:

        0 1
       ________
-> A | AB
  * B BA

Descreva informalmente o idioma aceito por este DFA e prove por indução no comprimento de uma sequência de entrada que sua descrição está correta.

Este é um problema respondido no livro, por isso não estou procurando alguém para fazer minha lição de casa. Eu só preciso de alguém para me explicar direito.

Resposta do livro: (tirada daqui )

O autômato informa se o número de 1s visto é par (estado A) ou ímpar (estado B), aceitando no último caso. É uma indução fácil em | w | para mostrar que dh (A, w) = A se e somente se w tiver um número par de 1's. Base: | w | = 0. Então w, a cadeia vazia certamente possui um número par de 1's, ou seja, zero 1's e δ-hat (A, w) = A.

Indução: Assuma a instrução para cadeias menores que w. Então w = za, onde a é 0 ou 1.

  • Caso 1: a = 0. Se w tiver um número par de 1's, o mesmo acontece com z. Pela hipótese indutiva, δ-hat (A, z) = A. As transições do DFA nos dizem δ-hat (A, w) = A. Se w tem um número ímpar de 1, então z também. Pela hipótese indutiva, δ-hat (A, z) = B, e as transições do DFA nos dizem δ-hat (A, w) = B. Assim, neste caso, δ-hat (A, w) = A se e somente se w tiver um número par de 1's.

  • Caso 2: a = 1. Se w tiver um número par de 1, então z terá um número ímpar de 1. Pela hipótese indutiva, δ-hat (A, z) = B. As transições do DFA nos dizem δ-hat (A, w) = A. Se w tem um número ímpar de 1, então z tem um número par de 1's. Pela hipótese indutiva, δ-hat (A, z) = A, e as transições do DFA nos dizem δ-hat (A, w) = B. Assim, também neste caso, δ-hat (A, w ) = A se e somente se w tiver um número par de 1s.

Eu entendo como provar coisas como usando indução. Estou confuso com a forma como isso funciona com a construção de strings. Estou confuso com as partes em negrito. Não entendo como eles são apresentados / como isso realmente prova o que é aceito / como é indutivo.i=0ni=n(n+1)2

δ-hat é a função de transição estendida, a propósito.

Respostas:


17

Como não está claro onde está o seu problema, começarei do começo.

A indução matemática funciona como o jogo dos sussurros chineses (no caso ideal, ou seja, toda a comunicação é sem perdas) ou (perfeitamente configurada) dominó : você começa em algum lugar e mostra que todos os seus próximos passos não quebram nada, assumindo que nada foi quebrado até então.

Mais formalmente, toda prova de indução consiste em três elementos básicos:

  • Âncora de indução , também caso base : você mostra para casos pequenos¹ que a reivindicação é válida.
  • Hipótese de indução : você assume que a reivindicação vale para um determinado subconjunto do conjunto sobre o qual você deseja provar algo.
  • Etapa indutiva : usando a hipótese, você mostra que a reivindicação vale para mais elementos.

Obviamente, o passo deve ser ajustado de forma a cobrir todo o conjunto de bases (no limite).

Nota importante: as pessoas que confiam em suas habilidades de indução geralmente encobrem a âncora e deixam a hipótese implícita. Embora isso seja bom ao apresentar seu trabalho a um público especializado (por exemplo, um artigo), isso não é recomendado ao se fazer provas, especialmente como iniciante. Anote tudo.


Considere um exemplo simples over ; queremos mostrar que é válido para todos os .n i = 0 i = n ( n + 1 )(N,) nNi=0ni=n(n+1)2nN

  • Âncora : Para , se mantém claramente.n i = 0 i = 0 = n ( n + 1 )n=0i=0ni=0=n(n+1)2
  • Hipótese : Suponha que válido para um arbitrário, mas fixo² . nNi=0ki=k(k+1)2nN
  • Etapa : para , calcule a soma:n+1

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

    Portanto, a identidade vale para . (Observamos que precisávamos apenas de uma pequena parte da hipótese, ou seja, para . Isso geralmente acontece.)n+1k=n

O princípio indutivo agora nos assegura que a afirmação é verdadeira: nós a mostramos diretamente para . A etapa diz que, se ela vale para , também vale para ; se vale para , também vale para ; e assim por diante.00112


Vamos dar uma olhada em outro exemplo, desta vez em . A afirmação que queremos provar é: para cada subconjunto finito de , o tamanho do conjunto de potência de é ³. Nós realizar a indução sobre , mais uma vez, a saber, sobre o tamanho de subconjuntos .(2N,)AN2AA2|A|(N,)A

  • Âncora: considere o (apenas) conjunto de tamanho , o conjunto vazio. Claramente, e, portanto, conforme reivindicado.02={}|2|=1=20
  • Hipótese: Suponha que para todos os conjuntos com com algum arbitrário, mas fixo , temos .AN|A|nnN|2A|=2|A|
  • Etapa: Seja arbitrário⁴ de tamanho , e deixe arbitrário (tal existe como ). Agora, a hipótese se aplica a e, portanto, . Desde aBNn+1bBbn+1>0B{b}|2B{b}|=2n

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

    nós temos realmente que conforme reivindicado.|2B|=2|2B{b}|=22n=2n+1

Novamente, por indução, a alegação é comprovada.


Agora, para o seu problema, use um truque comum: fortalecer a declaração . Se você formular sua reivindicação como "o autômato aceita todas as palavras com um número ímpar de um", obtém uma hipótese de indução como "entre todas as palavras de comprimento , exatamente aquelas com um número ímpar de unidades são aceitas pelo autômato". Isso não o levará a lugar algum, pois não sabemos nada sobre quantos estão contidos em qual parte de uma determinada palavra (aceita); a hipótese não se aplica ao que você corta da sua palavra selecionada arbitrariamente.n

Portanto, você deseja formular uma afirmação mais forte: "O autômato está no estado se e somente se a parte consumida da entrada continha um número ímpar de unidades" e mostre essa. Observe que isso implica na reivindicação anterior.B

  • Âncora : Depois de processar a única sequência de comprimento zero, , o autômato está claramente no estado conforme reivindicado.εA
  • Hipótese : suponha que a reivindicação seja válida para fragmentos de entrada de comprimento até escolhidos arbitrariamente, mas corrigidos.n
  • Etapa : considere uma palavra arbitrária . Existem dois casos. w{0,1}n+1
    1. w contém um número par de unidades. Existem dois casos para o último símbolo.
      1. wn=0 : Nesse caso, contém um número par de . Pela hipótese de indução, o autômato está no estado após consumir . Consumir faz com que o autômato permaneça no estado , conforme reivindicado.w=w1wn1Awwn=0A
      2. w = w 1w n - 1 B w w n = 1 Awn=1 : Nesse caso, contém um número ímpar de . Pela hipótese de indução, o autômato está no estado após consumir . Consumir faz com que o autômato mude para o estado , conforme reivindicado.w=w1wn1Bwwn=1A
    2. w contém um número ímpar de unidades. Semelhante ao caso 1.

O princípio da indução implica que a afirmação é verdadeira.


  1. Você realiza a indução em alguma ordem parcial; a âncora precisa cobrir todos os elementos mínimos e, às vezes, mais (dependendo da declaração).
  2. O "arbitrário, mas fixo" é essencial! Não podemos alterar na etapa e tratá-lo como se fosse um número fixo, mas também não podemos assumir nada sobre isso.n
  3. Denotar a potência definida com pode parecer estranho. Está enraizado na observação de que o conjunto de potência é equivalente ao conjunto de todas as funções de a , o que é denotado assim. A 0 , 12AA0,1
  4. Escolher arbitrário é essencial para cobrir todo o espaço. Alguém pode ficar tentado a dizer: "Pegue qualquer e adicione um elemento que não existia antes". Nesse caso, isso faria o mesmo, mas pode ser fácil errar em configurações mais complicadas (por exemplo, adicionar nós aos gráficos). Sempre pegue um objeto maior arbitrário e depois separe-o para aplicar a hipótese em suas partes; nunca monte o objeto maior de menor que seja coberto pela hipótese.ABA
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.