Esa es una muy buena pregunta.
Las personas a menudo dicen cosas como “esto o aquello no tiene un patrón” sin primero acordar qué significa “patrón”. Cuando dicen que algo tiene un patrón, generalmente explican lo que quieren decir especificando el patrón, pero cuando dicen que algo no tiene un patrón, deben (pero rara vez lo hacen) aclarar qué universo de “patrones” potenciales pueden tener en cuenta, ya que tal afirmación negativa debe estar en referencia a alguna clase de patrones posibles. Si no los encuestó a todos, no puede afirmar que no existen.
Hay dos ejemplos realmente malos de esto en la escritura científica popular, y aquí mismo en Quora, con respecto a dos objetos con patrones muy altos: los números primos y los dígitos en la expansión decimal de [math] \ pi [/ math]. Ambos de estos a menudo se dice que “no tienen un patrón”, y para ambos esto es un reclamo sin sentido, o un reclamo verdadero pero sin interés, o, lo más razonable, un reclamo falso. Explicaré cómo pueden coexistir todas estas interpretaciones.
Sin embargo, antes de hacer eso, permítame proporcionar lo que creo que es la única respuesta razonable a la pregunta “¿Qué es un patrón?”: Un patrón es una descripción que es mucho más corta que el objeto que estamos estudiando .
- ¿Cuáles son las perspectivas de carrera en la India post Masters en Ciencia Cognitiva? ¿Está restringido sólo a académicos?
- ¿Qué es la capacidad cognitiva?
- ¿Hay alguna explicación de por qué alguien tendría una buena memoria espacial y objetiva pero tendría una memoria pobre orientada a corto plazo y detallada?
- ¿El cerebro humano está formado por la genética?
- ¿Cómo sabremos cuando la inteligencia artificial forma una especie?
Esto parece captar lo que la mayoría de nosotros quiere decir cuando decimos “patrón”. Una cosa totalmente aleatoria y ruidosa (una imagen, un sonido, una secuencia de números) no tiene una breve descripción, mientras que las cosas estampadas como edredones o vestidos estampados o fondos de pantalla o qué es lo que tienes tienen descripciones tan cortas.
Pero esto sigue siendo un poco vago. Aquí hay dos problemas: qué constituye exactamente una “descripción” y cuánto más corto debe ser “mucho más corto”.
(Nota: he decidido conscientemente eludir una discusión de patrones probabilísticos, que nos permite describir una secuencia con cierta probabilidad pero no totalmente exacta. Este es otro conjunto de alternativas, pero la mayoría de las personas no llamaría una secuencia con patrón con ruido aleatorio esparcido en la parte superior “un patrón”).
El primer problema es relativamente fácil de tratar. Una “descripción” es un algoritmo, es decir, un procedimiento mecánico para producir todo el objeto. Hoy en día tenemos varias definiciones estándar de lo que “algoritmo” significa exactamente, y aunque difieren en detalles y eficiencia, son en gran medida equivalentes.
Lo “mucho más corto” es menos claro. ¿Qué tan eficiente debe ser una descripción para llamarse un “patrón”? Se han propuesto varias respuestas alternativas a esta pregunta.
La primera respuesta, y mi favorita, se aplica cuando el objeto bajo investigación es infinito . En este caso, casi no hay confusión acerca de lo que podría significar “mucho más corto”: significa finito . Limpio y sencillo. Una descripción finita es, sin duda, mucho más corto que un objeto infinito, por lo que si tenemos una descripción tan finita, podemos afirmar que el objeto está extremadamente modelado. Una vez que haya digerido esa descripción finita, tiene todo en la palma de su mano: puede predecir lo que va a hacer en cualquier momento, con total precisión. Ese es un patrón si alguna vez hubo uno.
Pero puede preguntar: ¿no todos los objetos infinitos tienen una descripción finita, si permitimos que la descripción sea tan grande como queremos? La respuesta es un No. rotundo. De hecho, cuando nos enfocamos en una familia particular de objetos, como secuencias infinitas de bits o dígitos o números, o estructuras geométricas infinitas, o lo que sea, siempre es el caso que los que tienen una descripción finita conforman una parte insignificante del universo. Con mucho, la mayoría de los objetos no tienen ninguna descripción finita en absoluto. Esta es una consecuencia de la distinción entre infinitos contables e incontables: Hay innumerables algoritmos finitos, pero innumerables objetos (en la mayoría de los ejemplos de interés).
Esto deja la cuestión de definir qué significa “mucho más corto” en el caso finito . Si te doy 10.000 números y puedes codificarlos con una descripción, un algoritmo o un programa de 50 caracteres, ¿es un patrón? Ciertamente. ¿Y si son 500? Probablemente, todavía modelado. ¿Y si son 5,000? Discutible. ¿Y qué tal 9,997?
Una respuesta posible, pero bastante extrema, es que una secuencia está modelada si se puede comprimir, lo que significa que tiene una descripción más corta que ella misma, incluso si se trata de un solo bit. Para que esto sea preciso, debemos acordar un lenguaje específico y preciso, como “Un programa en Python”. De acuerdo con esta definición, las únicas secuencias de caracteres no patrones son las que no pueden ser generadas de ninguna manera por algo más corto que ellos mismos.
Este es un requisito bastante grave, pero proporciona una respuesta natural y bien explícita. Consideremos, por ejemplo, una secuencia de 10.000 letras. Si es al azar, la única forma de escribir un programa que lo produzca es escribir un programa de una línea que diga “imprimir <todo", simplemente haciendo eco de la secuencia aleatoria misma. Sin embargo, si la secuencia es de aproximadamente 25 letras que se repiten una y otra vez, puede escribir fácilmente un programa muy corto para producirla. Además, incluso si la secuencia contiene una secuencia de 100 Z consecutivas, puede acortar su descripción reemplazando esa parte de la secuencia con “Imprimir 100 Z”, que Python y cualquier otro lenguaje de programación pueden acomodar fácilmente en mucho menos que 100 caracteres.
Así que bajo esta definición, el ruido aleatorio loco que tiene alguna estructura local dentro de él ya está “modelado”. Puedes argumentar que esto no es suficiente, y quieres que todo esté modelado. Eso es genial, y será necesario que surja alguna otra medida cuantitativa de compresión o “falta de descripción”. Puede exigir que cada porción del tamaño 1,000 sea comprimible en al menos un 50%, por ejemplo. Esta es una buena definición, pero se siente un poco arbitraria.
Es por esto que muchas personas prefieren enfocarse en objetos infinitos: no hay ambigüedad ni necesidad de medidas cuantitativas arbitrarias. Si una secuencia es finitablemente descriptible o computable , se modela. De lo contrario, no lo es.
Finalmente, en el otro extremo del espectro, se encuentra la “definición de patrón de los niños”: un patrón es una secuencia que se repite. ABACABACABAC
tiene un patrón, pero cualquier cosa que no sea una simple repetición no lo es. Este es un requisito importante en la otra dirección: deja muy pocas secuencias con patrones, y ni siquiera nos permite decir que aBaCaDaEaFaG
tiene patrones.
No hay nada ilegítimo en esta definición, y esto es lo que muchos niños en edad escolar quieren decir cuando dicen “¡Es un patrón!”, Pero para la mayoría de los adultos, se siente demasiado restrictivo. Hay muchas cosas que no se repiten, pero están altamente estructuradas o “modeladas”. Por ejemplo, la secuencia Prouhet-Thue-Morse no se repite, pero está sumamente estructurada.
[math] \ square \ blacksquare \ blacksquare \ square \ blacksquare \ square \ square \ blacksquare \ blacksquare \ square \ square \ blacksquare \ square \ blacksquare \ blacksquare \ square [/ math]
(La segunda mitad es la inversa de la primera mitad, y así continúa).
Si lo interpretas como una secuencia de giros a la izquierda / derecha, obtienes esto:
Llamar a esto “no un patrón” parece ridículo.
Veamos cómo se aplican esas definiciones en algunos casos populares.
La secuencia de dígitos en la expansión decimal de [math] \ pi [/ math] se ve bastante aleatoria, para nuestros ojos inexpertos. Pero, por supuesto, esta secuencia infinita tiene una descripción muy corta. Hay algoritmos muy simples que producirán esos dígitos, de manera precisa y sin fallas, para siempre (dados suficientes recursos como la memoria y la potencia).
Aquí hay un ejemplo, de la documentación de recetas de Python:
desde la importación decimal *
def pi ():
getcontext (). prec + = 2
tres = decimal (3)
dura, t, s, n, na, d, da = 0, tres, 3, 1, 0, 0, 24
mientras que s! = dura:
dura = s
n, na = n + na, na + 8
d, da = d + da, da + 32
t = (t * n) / d
s + = t
getcontext (). prec – = 2
return + s
Claro, es un poco más elaborado que “Comience con 1, agregue 3 y repita”, pero solo es ligeramente más largo. A medida que avanzan los programas de Python, este es un pequeño y describe un patrón realmente sucinto y simple.
Esto, déjame enfatizarlo de nuevo, es muy inusual. Los dígitos de la mayoría de los números reales son ruidos de locos totales a este respecto, y no pueden ser generados por ningún programa finito, por largo que sea. Esto resalta el hecho de que [math] \ pi [/ math] es un número real muy especial, muy preciso y muy bien entendido. También son, por supuesto, otras constantes explícitas como [math] e [/ math] o [math] \ sqrt {17} [/ math] y así sucesivamente, pero recuerde: la gran mayoría de los números reales no son como esto en absoluto
¿Qué pasa con la definición de los niños? Bueno, [math] \ pi [/ math] es irracional, por lo que sus dígitos no se repiten simplemente. Así que sí, bajo esa definición, los dígitos en la expansión decimal de [math] \ pi [/ math] no tienen patrón, y también lo están los dígitos de cualquier número irracional, incluyendo
[math] 0.90900900090000900000 \ ldots [/ math]
Parece un poco tonto llamar a esta secuencia “no un patrón”.
En este punto, puede valer la pena mencionar otra posible definición de “sin patrón” que, en mi opinión, es demasiado débil, pero algunas personas (consciente o inconscientemente) a veces se refieren a ella. Esta es la pregunta de si, en una secuencia infinita de caracteres o dígitos, ocurre alguna secuencia finita posible con la densidad asintótica esperada. Por ejemplo, 999 debería aparecer el 0.1% del tiempo, y lo mismo ocurre con 314 y 432 y cualquier otra secuencia de 3 dígitos. Por “0.1% del tiempo” nos referimos al número de veces que la secuencia aparece entre los primeros dígitos de [math] N [/ math], como una fracción de [math] N [/ math], tomando el límite como [math ] N \ a \ infty [/ math].
Esta es una buena propiedad de la aleatoriedad, y una secuencia que la satisface se denomina “normal” o “[math] \ infty [/ math] -distributed” (terminología de Knuth). El problema es que pierde muchos patrones realmente fáciles. Por ejemplo, la constante de Champernowne.
[math] 0.123456789101112131415 \ ldots [/ math]
lo que se obtiene simplemente escribiendo todos los números naturales uno por uno, es normal, pero parece muy incorrecto ignorar el hecho de que se basa en un patrón increíblemente simple. Si prefiere hacer que esa sea su definición de “sin patrón”, está bien, pero dígalo, y luego reconozca que no tenemos idea si [math] \ pi [/ math] tiene esta propiedad o no, mientras que muchas secuencias simples definitivamente hacer
(Esta es una oportunidad para recomendar, una vez más, la serie única de libros de Knuth “El arte de la programación de computadoras”. El volumen 2 trata exactamente estas preguntas, y Knuth propone temporalmente [math] \ infty [ / math] -distribuido como la propiedad de ser aleatorio, y luego inmediatamente lo derriba).
¿Qué pasa con los números primos?
Son una estructura ligeramente diferente: en lugar de una secuencia infinita de dígitos, son una secuencia infinita de números. Pero nuestra definición de computabilidad todavía se aplica como siempre, y los números primos son claramente computables. Un millón de preguntas sobre Quora se preguntan si los números primos pueden “predecirse”, “calcularse”, “tener una fórmula” o “tener un patrón”: todas esas preguntas son iguales y todas tienen la misma respuesta: sí, de curso.
Nuevamente, esto no significa que no puedan ser estadísticamente suaves y que no puedan exhibir “comportamientos” de secuencias aleatorias. Ellos son, y lo hacen. Pero cada vez que un matemático hace un argumento heurístico que se basa en que los números primos se comportan “al azar”, siempre añaden una advertencia de que el argumento es claramente absurdo: los números primos son una secuencia muy específica y totalmente no aleatoria. Aún así, tales argumentos pueden enseñarnos mucho, gracias a los aspectos aleatorios de los números primos.