Come faccio a scrivere una prova usando l'induzione sulla lunghezza della stringa di input?


20

Nel mio corso di Teoria del calcolo, molti dei nostri problemi implicano l'uso dell'induzione sulla lunghezza della stringa di input per provare affermazioni sugli automi finiti. Capisco l'induzione matematica, tuttavia quando entrano in gioco le corde mi inciampo davvero. Lo apprezzerei davvero se qualcuno passasse attraverso il processo di realizzazione di tale prova passo dopo passo.

Ecco un problema di esempio (Esercizio 2.2.10 di Hopcroft e Ullman 3rd Edition):

Considera il DFA con la seguente tabella di transizione:

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

Descrivi in ​​modo informale la lingua accettata da questo DFA e dimostra per induzione sulla lunghezza di una stringa di input che la tua descrizione è corretta.

Questo è un problema risolto nel libro, quindi non sto cercando qualcuno che faccia i compiti. Ho solo bisogno di qualcuno che me lo spieghi direttamente.

Risposta del libro: (presa da qui )

L'automa indica se il numero di 1 è pari (stato A) o dispari (stato B), accettando in quest'ultimo caso. È un'induzione facile su | w | per mostrare che dh (A, w) = A se e solo se w ha un numero pari di 1. Base: | w | = 0. Quindi w, la stringa vuota ha sicuramente un numero pari di 1, ovvero zero 1 e δ-hat (A, w) = A.

Induzione: supponiamo che l'istruzione per stringhe più brevi di w. Quindi w = za, dove a è 0 o 1.

  • Caso 1: a = 0. Se w ha un numero pari di 1, anche z. Con l'ipotesi induttiva, δ-hat (A, z) = A. Le transizioni del DFA ci dicono δ-hat (A, w) = A. Se w ha un numero dispari di 1, allora anche z. Con l'ipotesi induttiva, δ-hat (A, z) = B, e le transizioni del DFA ci dicono δ-hat (A, w) = B. Quindi, in questo caso, δ-hat (A, w) = Un se e solo se w ha un numero pari di 1.

  • Caso 2: a = 1. Se w ha un numero pari di 1, allora z ha un numero dispari di 1. Secondo l'ipotesi induttiva, δ-hat (A, z) = B. Le transizioni del DFA ci dicono δ-hat (A, w) = A. Se w ha un numero dispari di 1, allora z ha un numero pari di 1 di. Secondo l'ipotesi induttiva, δ-hat (A, z) = A, e le transizioni del DFA ci dicono δ-hat (A, w) = B. Quindi, anche in questo caso, δ-hat (A, w ) = A se e solo se w ha un numero pari di 1.

Capisco come provare cose come usando l'induzione. Sono solo confuso da come funziona con la creazione di stringhe. Sono confuso dalle parti in grassetto. Non capisco come vengono inventati / come dimostra effettivamente ciò che è accettato / come è induttivo.i=0ni=n(n+1)2

A proposito, δ-hat è la funzione di transizione estesa.

Risposte:


17

Poiché non è chiaro dove si trova il tuo problema, inizierò dall'inizio.

L'induzione matematica funziona come il gioco dei sussurri cinesi (nel caso ideale, cioè tutte le comunicazioni sono senza perdita di dati) o (perfettamente impostati) domino : inizi da qualche parte e mostri che ogni tuo prossimo passo non rompe nulla, supponendo che nulla sia stato rotto poi.

Più formalmente, ogni prova di induzione è composta da tre elementi di base:

  • Ancoraggio a induzione , anche caso base : mostri per casi piccoli¹ che il reclamo è valido.
  • Ipotesi di induzione : supponi che il reclamo valga per un certo sottoinsieme dell'insieme di cui vuoi provare qualcosa.
  • Fase induttiva : usando l'ipotesi, mostri che l'affermazione vale per più elementi.

Naturalmente, il passo deve essere regolato in modo tale da coprire l'intero set di basi (nel limite).

Nota importante: le persone che sono sicure delle proprie capacità di induzione spesso sorvolano l'ancora e lasciano implicita l'ipotesi. Anche se va bene quando presenti il ​​tuo lavoro a un pubblico esperto (ad esempio un documento), questo non è raccomandato quando fai le prove da solo, specialmente come principiante. Scrivi tutto.


Considera un semplice esempio di ; vogliamo dimostrare che n i = 0 i = n ( n + 1 )(N,) vale per tutte lenN.i=0ni=n(n+1)2nN

  • Ancora : Per , n i = 0 i = 0 = n ( n + 1 )n=0 tiene chiaramente.i=0ni=0=n(n+1)2
  • Ipotesi : supponiamo che vale per un arbitrario, ma fixed²nN.i=0ki=k(k+1)2nN
  • Passaggio : per , calcola la somma:n+1

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

    Quindi l'identità vale per . (Notiamo che avevamo solo bisogno di una piccola parte dell'ipotesi, vale a dire per k = n . Succede spesso.)n+1k=n

Il principio induttivo ora ci assicura che l'affermazione vale davvero: l'abbiamo mostrato direttamente per . Il passaggio dice che se vale per 0 , vale anche per 1 ; se vale per 1 , vale anche per 2 ; e così via.00112


Diamo un'occhiata a un altro esempio, questa volta su . L'affermazione che vogliamo dimostrare è: per ogni sottoinsieme finito A di N , la dimensione della potenza impostata 2 A di A è 2 | A | ³. Eseguiamo nostro induzione sopra ( N , ) , ancora una volta, vale a dire sopra il formato di sottoinsiemi A .(2N,)AN2AA2|A|(N,)A

  • Ancoraggio: considera il (solo) set di dimensioni , il set vuoto. Chiaramente, 2 = { } e quindi | 2 | = 1 = 2 0 come rivendicato.02={}|2|=1=20
  • Ipotesi: supponiamo che per tutti i set con | A | n con alcuni arbitrari, ma fissi n N , abbiamo | 2 A | = 2 | A | .AN|A|nnN|2A|=2|A|
  • Step: Sia arbitrario⁴ di dimensione n + 1 e sia b B arbitrario (tale b esiste come n + 1 > 0 ). Ora l'ipotesi si applica a B { b } e quindi | 2 B { b } | = 2 n . DaBNn+1bBbn+1>0B{b}|2B{b}|=2n

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

    abbiamo davvero quello come rivendicato.|2B|=2|2B{b}|=22n=2n+1

Ancora una volta, per induzione, la richiesta è dimostrata.


Ora, per il tuo problema puoi usare un trucco comune: rafforzare l'affermazione . Se formulate la vostra affermazione come "l'automa accetta tutte le parole con un numero dispari di uno", otterrete un'ipotesi di induzione come "tra tutte le parole di lunghezza , esattamente quelli con un numero dispari di uno sono accettati dall'automa". Questo non ti porterà da nessuna parte poiché non sappiamo nulla di quanti siano contenuti in quale parte di una determinata parola (accettata); l'ipotesi non si applica a qualsiasi cosa tu abbia tagliato della tua parola arbitrariamente selezionata.n

Pertanto, si desidera formulare un'affermazione più forte: "L'automa è nello stato se e solo se la parte consumata dell'ingresso conteneva un numero dispari di quelli" e mostrarlo. Si noti che implica il precedente reclamo.B

  • Ancora : Dopo aver elaborato l'unica stringa di lunghezza zero, , l'automa è chiaramente nello stato A come rivendicato.εA
  • Ipotesi : supponiamo che l'affermazione valga per frammenti di input di lunghezza fino a che viene scelta arbitrariamente, ma fissa.n
  • Passaggio : considerare una parola arbitraria . Ci sono due casi. w{0,1}n+1
    1. contiene un numero pari. Esistono due casi per l'ultimo simbolo. w
      1. : in questo caso, w = w 1w n - 1 ne contiene un numero pari. Per ipotesi di induzione, l'automa si trova nello stato A dopo aver consumato w . Il consumo di w n = 0 fa sì che l'automa rimanga nello stato A , come affermato.wn=0w=w1wn1Awwn=0A
      2. : in questo caso, w = w 1w n - 1 contiene un numero dispari di uno. Per ipotesi di induzione, l'automa si trova nello stato B dopo aver consumato w . Il consumo di w n = 1 fa sì che l'automa passi allo stato A , come affermato.wn=1w=w1wn1Bwwn=1A
    2. contiene un numero dispari di quelli. Simile al caso 1.w

Il principio dell'induzione implica che l'affermazione valga davvero.


  1. Si esegue l'induzione secondo un ordine parziale; l'ancoraggio deve coprire tutti gli elementi minimi, e talvolta di più (a seconda dell'istruzione).
  2. L '"arbitrario, ma fisso" è essenziale! Non possiamo cambiare nel passaggio e trattarlo come se fosse un numero fisso, ma non possiamo nemmeno assumere nulla al riguardo.n
  3. Indicare la potenza impostata con può sembrare strano. È radicato nell'osservazione che il set di potenze è equivalente al set di tutte le funzioni da A a 0 , 1 , che è indicato in questo modo.2AA0,1
  4. La scelta di arbitraria è essenziale per coprire l'intero spazio. Si può essere tentati di dire: "Prendi una di queste A e aggiungi un elemento che prima non c'era." In questo caso, farebbe lo stesso, ma può essere facile sbagliarsi in impostazioni più complicate (ad esempio aggiungendo nodi ai grafici). Prendi sempre un oggetto arbitrariamente più grande e poi separalo per applicare l'ipotesi alle sue parti; mai assemblare l'oggetto più grande da quello più piccolo che è ipotizzato.BA
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.