¿Cómo explicaría el concepto de inducción matemática?

Mi explicación está en la misma línea que Justin

Imagina que tienes una larga cadena de fichas de dominó y quieres descubrir qué fichas se caerán.

  1. Comienzas afirmando que el primer dominó se caerá, presumiblemente porque lo empujarás.
  2. A continuación, dices que cualquier dominó caerá si el dominó antes de que se caiga (suponiendo que tu cadena esté bien diseñada).

A partir de estas dos afirmaciones, puede demostrar que cualquier dominó se caerá. Por ejemplo, el tercer dominó caerá porque el primero es empujado, lo que derriba al segundo, lo que derriba al tercero. Debido a que puede aplicar este razonamiento tanto como lo necesite, puede probar que cualquier dominó caerá.

Mi maestra en la secundaria explicó esto con una analogía bastante excepcional. Él contó esta historia sin dar contexto de antemano, ¡así que puedes imaginar nuestra confusión!

Imagina que cuidas a tu primo. Todavía es muy joven y todavía no ha aprendido a caminar. Estás descansando en el sofá mientras miras televisión. “Es fácil ganar 50 dólares”, piensas. Como eres una buena niñera, revisas a tu primo de vez en cuando.

Entonces, una vez más, te das la vuelta y ves que se las arregló para subir al primer escalón del primer piso. “¡Ay, este niño avanza muy rápido en su desarrollo!”, Gritas. Luego observas una barra de chocolate, balanceándose en el último escalón, quedando por poco en el primer piso. [Ningún cuerpo sabe cómo llegó hasta allí] Como buen niñero, no puedes dejar que tome toda la barra de chocolate, pero como un adolescente perezoso, no quieres subir las escaleras.

Lo siguiente que debes hacer es poner a tu primo en un escalón aleatorio de las escaleras. Cuando miras de nuevo unos minutos más tarde, ¡ves que ha subido un paso! Luego concluyes que es hora de quitar el chocolate. Esta es la inducción matemática.

Espero que les guste la analogía! (Podría haber sido mejor si las escaleras fueran infinitamente largas, pero eso no es realmente práctico para caber dentro de una casa).

Imagine una estantería muy larga con estas dos propiedades:

  1. El libro más a la izquierda tiene una portada roja.
  2. Cualquier libro inmediatamente a la derecha de un libro con una cubierta roja también tiene una cubierta roja.

¿De qué color es la portada del libro número 10000 en este estante?

El concepto de inducción matemática es que si

  • Algo es cierto para un caso base ; y
  • Algo es cierto para el próximo caso; luego
  • Esa cosa es cierta para todos los casos.

Donde “todos los casos” son aquellos casos a los que se puede llegar desde el “caso base” tomando un número finito de pasos del “siguiente caso”.

A menudo, la inducción tiene lugar sobre el conjunto de números naturales donde el caso base involucra el número cero o uno, el siguiente caso es el número actual más uno, y cada caso es cualquier número natural finito.

Como ejemplo para demostrar [matemáticas] \ sum_ {i = 1} ^ {n} {i} = \ frac {n (n + 1)} {2} [/ matemáticas] mostramos:

  • Caso base [matemáticas] n = 1: \ quad 1 = \ frac {1 (1 + 1)} {2} [/ matemáticas]
  • Siguiente caso [matemáticas] n + 1: \ quad \ sum_ {i = 1} ^ {n + 1} {i} = n + 1 + \ sum_ {i = 1} ^ {n} {i} [/ matemáticas]
  • [matemáticas] = n + 1 + \ frac {n (n + 1)} {2} = \ frac {(n + 1) (n + 2)} {2} [/ matemáticas]

QED

El contexto lo es todo: la inducción matemática solo es necesaria cuando se razona sobre un número infinito de objetos.

Por lo tanto, no tendrá mucho sentido con un ejemplo de un dominio finito, porque un proceso de razonamiento alternativo (aunque laborioso) es probar el reclamo en cuestión de cada objeto uno por uno.

Pero las matemáticas son posiblemente más indispensables cuando se razona sobre dominios infinitos, y si los objetos en esos dominios se definen de forma recursiva (cada objeto “construido” en términos de “predecesores”), entonces algunas verdades solo serán demostrables usando inducción.

El principio de inducción matemática establece que si

(a) [math] P [/ math] es un subconjunto de [math] \ mathbb {N} [/ math]
(b) [matemáticas] 1 \ en P [/ matemáticas]
(c) si [matemática] x [/ matemática] está en [matemática] P [/ matemática], entonces [matemática] x + 1 [/ matemática] también está en [matemática] P [/ matemática]

entonces todo [math] \ mathbb {N} [/ math] está en [math] P [/ math].

Esto es solo parte de la definición del conjunto de números naturales. A menudo se usa para probar las propiedades de los números naturales. Para aplicar este principio, defina un subconjunto de [math] \ mathbb {N} [/ math], cada uno de los cuales tiene la propiedad en cuestión. Eventualmente, deberías poder probar que cada número natural está en ese subconjunto (si de hecho cada número natural tiene esa propiedad).

Las respuestas hasta ahora se han centrado abrumadoramente en la inducción sobre los números naturales. Este es un caso importante, pero no necesariamente el más intuitivo. En términos más generales, la inducción se trata de razonar desde casos más simples a casos más complejos, siempre que la propiedad bajo investigación viaje hacia arriba.

¿Qué diablos quiero decir con “viajes hacia arriba”? Construyamos un pequeño ejemplo para que pueda explicar.

Imaginemos un lenguaje de programación con cuatro tipos incorporados: un tipo int , un tipo char , una list y un tipo abstracto de tuple , donde cada tipo de tupla concreta tiene que especificar su longitud y los tipos de sus miembros. El tipo de list es mutable, y los otros tres son inmutables.

Ahora, el lenguaje no viene con una función hash incorporada, pero queremos una. Sabemos que no debemos mezclar contenedores mutables, o contenedores que contengan contenedores mutables, o contenedores que contengan contenedores que contengan contenedores mutables, o

Pero eso solo nos dice qué no hacer hash. ¿Cómo determinamos que algo es seguro para el hash, y luego cómo lo hacemos? Necesitamos una definición por inducción:

Diremos que un tipo es helter si es

  • el tipo int ,
  • el tipo char , o
  • es de la forma tuple(type_1, ..., type_k) donde todos los type_1, ..., type_k son type_1, ..., type_k .

Cualquier tipo que no sea helter es skelter .

Ahora, detengámonos aquí para pensar en lo que tenemos: un conjunto de cosas (tipos) que son más o menos complejas. Las cosas menos complejas son los tipos primitivos int y char : simplemente se sientan allí. (Son como 0 cuando estás haciendo inducción en los números naturales). Entonces todo lo demás tiene una mayor complejidad. ¡Pero podemos decir más!
tuple(int,char,int)
es un tipo complejo y
tuple(list(int),tuple(char,char),tuple(int,char,int))
es un tipo complejo, pero en realidad podemos comparar la complejidad de varios tipos. Por ejemplo, los únicos tipos que tienen una complejidad menor que la tuple(int,char,int) son int y char . Por otro lado, los tipos que son menos complejos que el segundo tipo que escribí son
list(int)
int
tuple(char,char)
char
tuple(int,char,int)
(¿Ves por qué los escribí en este orden?)

Aparte: no todos los tipos son comparables. Ni la tuple(char,int) ni la tuple(int,char) son más o menos complejas que la otra. De hecho, char no tiene una complejidad menor que la tuple(int,int) , aunque es intuitivamente “más simple”. La complejidad solo mide qué tipos necesita antes de poder construir otros tipos.

OK, genial, ¿y qué? Bueno, ahora podemos definir una función hash (nota: en realidad no use esta en el código de producción):

  función hash (x helter) int:
   case x int:
     volver x
   caso x char:
     retorno ord (x)
   caso x tupla:
     b = 3
     hashval = 0
     para y en x:
       hashval + = b ** (1 + hash (y))
       b + = 2
     hashval de retorno 

Tenga en cuenta las similitudes con la inducción en los números naturales: hay un par de casos base, y luego cada dos casos aprovecha el resultado de niveles más simples. En este ejemplo, la hashability y la inconhability viajan hacia arriba. Y solo hay un número finito de casos debajo de cualquier helter x particular, aunque, a medida que los helters se vuelven más complejos, el hashing implica más y más llamadas recursivas para caminar por las capas de complejidad.

Esta es la idea fundamental de la inducción: si podemos demostrar que, cuando estamos viendo una cosa “más compleja”, el valor de alguna propiedad solo depende de lo que sucede a escalas “menos complejas”, entonces somos la mayoría de el camino a una prueba o un algoritmo.

Permítame asumir que lo que quiere decir es que ya ha leído sobre inducción matemática pero tiene problemas para entenderlo (ya que la pregunta también puede interpretarse como preguntando qué es la inducción matemática). En ese caso, puede pensar en la inducción matemática como otra codificación del siguiente hecho (posiblemente más) intuitivo: cualquier colección (subconjunto) de números naturales tiene un miembro más pequeño.

Una buena manera de entender una noción matemática es verla en acción, especialmente en una prueba de un resultado juicioso que la involucre. Entonces, si sigue la simple prueba de equivalencia (que es una búsqueda fácil en Google) que menciono anteriormente, le aclarará la noción de inducción matemática.

Imagine una sesión en la que:

1. Le expliqué el concepto de inducción matemática a primera persona.

2. La primera persona explicó el concepto de inducción matemática a la segunda.

¿Cómo (n – 1) th persona explicaría el concepto a la enésima persona?

Tuve un momento difícil con la inducción en la escuela secundaria. No tenía idea de cómo podría reemplazar algunas n con k y bam, comprobado.

Sin embargo, cuando llegué a la Universidad, se explicó en una analogía tan simple que no tuve absolutamente ningún problema con la inducción o incluso con una inducción fuerte.

De cualquier manera, la analogía es la siguiente: imagina que tu secuencia infinita es un conjunto infinito de dominó. En el paso básico, demuestra que el primer dominó se caerá (en otras palabras, pruebe que la declaración se cumple para el primer elemento). En la hipótesis inductiva, se supone que el número de dominó k se cayó. En el paso inductivo, debes probar que el dominó k + 1 se caerá dado que sabes que el número de dominó k se cayó. Esto generalmente se puede hacer de manera recursiva.

La inducción fuerte es similar, ¡pero en realidad puedes hacer una suposición más grande! ¡Asumes que no solo el dominó k se cayó, sino que todos los dominós hasta k se cayeron! Es impresionante.

Espero haber podido aclararlo para ti. La analogía proviene de Susanna Epp en su libro de texto Matemáticas discretas.

La parte más difícil de explicar la inducción matemática es comprender que, en lugar de probar un hecho, demuestras que puedes demostrarlo.

Lo haces construyendo un robot que extenderá una prueba a un nivel (estrictamente) más alto.

Entonces, si le das al robot un punto de partida, continuará para siempre, extendiendo la prueba a cualquier nivel. El tiempo lo permite, pero en matemáticas somos pacientes.

Demuestre que un ejemplo específico es verdadero. (No es demasiado difícil, por lo general).

Extienda la prueba de este ejemplo a cualquier otra instancia de este tipo
de número u operación. (A menudo muy, muy difícil).

Es el proceso de dar el salto intuitivo de lo particular a lo general,
y luego probándolo .

Me gusta la analogía del dominó. Lo aprendí solo un poco diferente: subir una escalera.

Para “probar” que puedo subir una escalera, es suficiente demostrar que (1) puedo subir a la escalera, y (2) una vez que estoy en un peldaño, siempre puedo llegar al siguiente peldaño.