¿Cómo escribo una prueba usando inducción en la longitud de la cadena de entrada?

20

En mi curso de teoría de la computación, muchos de nuestros problemas implican el uso de la inducción en la longitud de la cadena de entrada para probar declaraciones sobre autómatas finitos. Entiendo la inducción matemática, sin embargo, cuando las cuerdas entran en juego, me tropiezo de verdad. Realmente agradecería que alguien pasara por el proceso de hacer tal prueba paso a paso.

Aquí hay un problema de ejemplo (Ejercicio 2.2.10 de Hopcroft y Ullman 3rd Edition):

Considere el DFA con la siguiente tabla de transición:

        0 1
       ________
-> A | AB
  * B | licenciado en Letras

Describa informalmente el lenguaje aceptado por este DFA y pruebe por inducción en la longitud de una cadena de entrada que su descripción es correcta.

Este es un problema respondido en el libro, así que no estoy buscando a alguien que haga mi tarea. Solo necesito que alguien me lo explique directamente.

Respuesta del libro: (tomado de aquí )

El autómata indica si el número de 1 visto es par (estado A) o impar (estado B), aceptando en el último caso. Es una inducción fácil en | w | para mostrar que dh (A, w) = A si y solo si w tiene un número par de 1. Base: | w | = 0. Entonces w, la cadena vacía seguramente tiene un número par de 1, es decir, cero 1 y δ-hat (A, w) = A.

Inducción: suponga la declaración para cadenas más cortas que w. Entonces w = za, donde a es 0 o 1.

  • Caso 1: a = 0. Si w tiene un número par de 1, también lo tiene z. Según la hipótesis inductiva, δ-hat (A, z) = A. Las transiciones del DFA nos dicen δ-hat (A, w) = A. Si w tiene un número impar de 1, entonces también lo tiene z. Según la hipótesis inductiva, δ-hat (A, z) = B, y las transiciones del DFA nos dicen δ-hat (A, w) = B. Así, en este caso, δ-hat (A, w) = A si y solo si w tiene un número par de 1.

  • Caso 2: a = 1. Si w tiene un número par de 1, entonces z tiene un número impar de 1. Según la hipótesis inductiva, δ-hat (A, z) = B. Las transiciones del DFA nos dicen δ-hat (A, w) = A. Si w tiene un número impar de 1, entonces z tiene un número par de 1's. Según la hipótesis inductiva, δ-hat (A, z) = A, y las transiciones del DFA nos dicen δ-hat (A, w) = B. Por lo tanto, también en este caso, δ-hat (A, w ) = A si y solo si w tiene un número par de 1's.

Entiendo cómo probar cosas como usando inducción. Estoy confundido por cómo funciona esto con la construcción de cadenas. Estoy confundido por las partes en negrita. No entiendo cómo se les ocurre / cómo demuestra realmente lo que se acepta / cómo es inductivo.yo=0 0norteyo=norte(norte+1)2

δ-hat es la función de transición extendida, por cierto.

tcdowney
fuente

Respuestas:

17

Como no está claro dónde radica su problema, comenzaré desde el principio.

La inducción matemática funciona como el juego de los susurros chinos (en el caso ideal, es decir, toda comunicación es sin pérdida) o dominó (perfectamente configurado) : comienzas en algún lugar y demuestras que tu próximo paso no rompe nada, suponiendo que nada se haya roto hasta luego.

Más formalmente, cada prueba de inducción consta de tres elementos básicos:

  • Ancla de inducción , también caso base : muestra para casos pequeños¹ que el reclamo es válido.
  • Hipótesis de inducción : supone que la reclamación se cumple para un determinado subconjunto del conjunto sobre el que desea probar algo.
  • Paso inductivo : Usando la hipótesis, demuestras que el reclamo es válido para más elementos.

Por supuesto, el paso debe ajustarse de modo que cubra todo el conjunto base (en el límite).

Nota importante: las personas que confían en sus habilidades de inducción a menudo pasan por alto el ancla y dejan la hipótesis implícita. Si bien esto está bien cuando presenta su trabajo a una audiencia experta (por ejemplo, un documento), esto no se recomienda al hacer pruebas usted mismo, especialmente como principiante. Escribe todo.


Considere un ejemplo simple sobre ; queremos mostrar que n i = 0 i = n ( n + 1 )(norte,) vale para todos losnN.yo=0 0norteyo=norte(norte+1)2nortenorte

  • Ancla : Para , n i = 0 i = 0 = n ( n + 1 )norte=0 0 claramente se sostiene.yo=0 0norteyo=0 0=norte(norte+1)2
  • Hipótesis : suponga que es válido para un arbitraria, pero fixed²nN.yo=0 0kyo=k(k+1)2nortenorte
  • Paso : para , calcule la suma:norte+1

    yo=0 0norte+1yo=(norte+1)+yo=0 0norteyo=IHnorte+1+norte(norte+1)2=(norte+2)(norte+1)2

    Entonces la identidad es válida para . (Observamos que solo necesitábamos una pequeña parte de la hipótesis, a saber, para k = n . Eso sucede a menudo).norte+1k=norte

El principio inductivo ahora nos asegura que la afirmación es válida: lo hemos mostrado directamente para . El paso dice que si se mantiene para 0 , también se mantiene para 1 ; si es válido para 1 , también es válido para 2 ; y así.0 00 0112


Echemos un vistazo a otro ejemplo, esta vez en . La afirmación que queremos probar es: para cada subconjunto finito A de N , el tamaño del conjunto de potencia 2 A de A es 2 | A | ³. Llevamos a cabo nuestra inducción sobre ( N , ) , de nuevo, es decir, sobre el tamaño de los subconjuntos A .(2norte,)UNAnorte2UNAUNA2El |UNAEl |(norte,)UNA

  • Ancla: Considere el (solo) conjunto de tamaño , el conjunto vacío. Claramente, 2 = { } y por lo tanto | 2 | = 1 = 2 0 como se reivindica.0 02={}El |2El |=1=20 0
  • Hipótesis: suponga que para todos los conjuntos con | A | n con algo arbitrario, pero fijo n N , tenemos | 2 A | = 2 | A | .UNAnorteEl |UNAEl |nortenortenorteEl |2UNAEl |=2El |UNAEl |
  • Paso: Sea arbitrario⁴ de tamaño n + 1 , y sea b B arbitrario (tal b existe como n + 1 > 0 ). Ahora la hipótesis se aplica a B { b } y por lo tanto | 2 B { b } | = 2 n . Ya quesinortenorte+1sisisinorte+1>0 0si{si}El |2si{si}El |=2norte

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

    de hecho tenemos que como se reivindica.El |2siEl |=2El |2si{si}El |=22norte=2norte+1

Una vez más, por inducción se demuestra el reclamo.


Ahora, para su problema puede usar un truco común: fortalecer la declaración . Si formula su reclamo como "el autómata acepta todas las palabras con un número impar de unos", obtendrá una hipótesis de inducción como "entre todas las palabras de longitud , el autómata acepta exactamente las que tienen un número impar". Esto no lo llevará a ningún lado ya que no sabemos nada acerca de cuántos están contenidos en qué parte de una palabra dada (aceptada); La hipótesis no se aplica a lo que haya cortado de su palabra seleccionada arbitrariamente.norte

Por lo tanto, desea formular una afirmación más fuerte: "El autómata está en estado si y solo si la parte consumida de la entrada contiene un número impar de unos", y muestre este. Tenga en cuenta que implica el reclamo anterior.si

  • Ancla : Después de procesar la única cadena de longitud cero, , el autómata está claramente en el estado A como se reivindica.εUNA
  • Hipótesis : suponga que la reclamación se cumple para fragmentos de entrada de longitud hasta que se elige de forma arbitraria, pero fija.norte
  • Paso : considere una palabra arbitraria . Hay dos casos. w{0 0,1}norte+1
    1. contiene un número par de unos. Hay dos casos para el último símbolo. w
      1. : en este caso, w = w 1 ... w n - 1 contiene un número par de unos. Por hipótesis de inducción, el autómata se encuentra en el estado A después de consumir w ' . El consumo de w n = 0 hace que el autómata permanezca en el estado A , como se afirma.wnorte=0 0w=w1...wnorte-1UNAwwnorte=0 0UNA
      2. wnorte=1w=w1...wnorte-1siwwnorte=1UNA
    2. w

El principio de inducción implica que la afirmación es válida.


  1. Realizas la inducción a lo largo de un orden parcial; el ancla necesita cubrir todos los elementos mínimos y, a veces, más (dependiendo de la declaración).
  2. norte
  3. 2UNAUNA0 0,1
  4. siUNA
Rafael
fuente