¿Qué es un patrón?
Esta es una muy buena pregunta.
La gente suele decir cosas como "No existe un patrón para esto o aquello" sin ponerse primero de acuerdo sobre lo que 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 (aunque rara vez lo hacen) aclarar el alcance de su "patrón" subyacente, por favor. Recuerde, porque una afirmación tan negativa debe referirse a algún patrón posible. Si no los ha investigado todos, no puede afirmar que no existen.
Hay dos ejemplos muy malos en artículos de divulgación científica, aquí mismo en Quora, sobre dos objetos altamente esquematizados: números primos y números en la expansión decimal [math]\pi[/math]. Las afirmaciones a menudo se denominan "sin patrón" y, para ambos, se trata de una afirmación sin sentido, o una afirmación verdadera pero poco interesante, o, lo más plausible, una afirmación errónea. Explicaré cómo existen todas estas explicaciones.
Sin embargo, antes de hacer eso, permítanme ofrecer lo que creo que es la única respuesta razonable a la pregunta "¿qué es un patrón?": Un patrón es una descripción mucho más corta que el objeto que somos. estudiando.
Esto parece captar lo que la mayoría de nosotros queremos decir cuando decimos "patrón". Una cosa completamente aleatoria y ruidosa (una imagen, una grabación, una cadena de números) no tiene una descripción breve, mientras que una cosa estampada, como una colcha, un vestido o un papel tapiz estampados, o lo que sea, sí existe. breve descripción.
Pero esto todavía es un poco vago. Aquí surgen dos preguntas: qué constituye exactamente una "descripción" y qué tan breve debe ser "más breve".
(Nota: tomé una decisión consciente de evitar la discusión sobre patrones probabilísticos, que nos permiten describir una secuencia con algunas buenas probabilidades pero no del todo precisas. Este es un conjunto de alternativas completamente diferente, pero la mayoría la gente no lo llamaría una secuencia de patrón con ruido aleatorio esparcido encima del "patrón").
El primer problema es relativamente fácil de abordar. "Descripción" es un algoritmo, es decir, un proceso mecánico que produce un objeto completo. Hoy en día tenemos varias definiciones estándar de lo que significa exactamente "algoritmo" y, aunque difieren en detalle y eficiencia, son en gran medida equivalentes.
Lo de "más corto" está menos claro. ¿Qué tan eficiente debe ser una descripción para que se la llame "patrón"? Se han propuesto varias respuestas alternativas a esta pregunta.
La primera respuesta, y mi favorita, se aplica a un número ilimitado de temas. Hay poca confusión sobre lo que significa "más corto" en este contexto: significa limitado. Limpio y sencillo. No hay duda de que las descripciones finitas son mucho más cortas que los objetos infinitos, por lo que si tenemos una descripción finita así, podemos afirmar con certeza que el objeto tiene un patrón extremo. Una vez que asimiles esta descripción limitada, podrás controlar todo el asunto: podrás predecir con total precisión lo que hará en cualquier momento. En todo caso, es un patrón.
Pero quizás te preguntes: si permitimos que las descripciones sean lo más grandes posible, ¿no tienen todos los objetos infinitos una descripción finita? La respuesta es un rotundo no. De hecho, siempre que nos centramos en una serie particular de objetos, como un número infinito de bits o números o una secuencia de números, o una estructura geométrica infinita o cualquier otra cosa, siempre hay descripciones finitas de aquellos que constituyen una pequeña parte. del universo. Hasta ahora, la mayoría de los objetos no tienen ninguna descripción limitada. Esto es una consecuencia de la diferencia entre infinitos contables e incontables: hay muchos algoritmos finitos, pero hay infinitos objetos (en la mayoría de los ejemplos de interés).
Esto deja el problema de definir qué significa "más corto" en circunstancias limitadas. Si te doy 10.000 números y puedes codificarlos con una descripción, algoritmo o programa de 50 caracteres, ¿es esto un patrón? ciertamente. ¿Y si son 500? Posiblemente todavía exista un patrón. ¿Y si son 5.000? Es discutible. ¿Qué pasa con 9.997?
Una respuesta posible, aunque bastante extrema, es que una secuencia tiene un patrón si se puede comprimir, es decir, si tiene alguna descripción más corta que ella misma, incluso solo un bit. Para ello, debemos acordar un lenguaje específico y preciso, como por ejemplo "Programas en Python".
Según esta definición, las únicas secuencias de caracteres que no son de patrón son aquellas que de ninguna manera pueden ser generadas por algo más corto que ellos mismos.
Este es un requisito muy estricto, pero proporciona una respuesta natural y clara. Por ejemplo, considere una secuencia de 10.000 letras. Si es una locura aleatoria, entonces la única forma de escribir un programa que la genere es escribir una sola línea que "imprima
Entonces, según esta definición, se ha "modelado" un ruido aleatorio loco con alguna estructura local en su interior. Se podría argumentar que esto no es suficiente y que desea que todo siga un patrón. Esto es genial y requiere encontrar alguna otra medida cuantitativa de compresión o "brevez de descripción". Por ejemplo, puede exigir que cada parte de tamaño 1000 sea al menos un 50 % comprimible. Esta es una buena definición, pero parece un poco arbitraria.
Por eso mucha gente prefiere centrarse en objetos infinitos: no hay ambigüedad ni necesidad de mediciones cuantitativas arbitrarias. Una secuencia tiene un patrón si es finitamente describible o computable. De lo contrario, no lo es.
Finalmente, en el otro extremo del espectro, está la "Definición infantil de patrón": Los patrones son secuencias repetidas. ABACABACABAC tiene un patrón, pero todo lo que no se repite simplemente no lo es. Este es un requisito estricto en la otra dirección: deja muy pocas secuencias de patrones y ni siquiera nos permite decir que aBaCaDaEaFaG es un patrón.
No hay nada irrazonable en esta definición y, de hecho, es lo que muchos escolares quieren decir cuando dicen "¡Es un patrón!", pero para la mayoría de los adultos parece demasiado restrictiva. Hay muchas cosas que no se repiten, pero que están muy estructuradas o "modeladas". Por ejemplo, la secuencia Prouhet-Thue-Morse no es repetitiva, pero sí muy estructurada.
Veamos cómo se aplican estas definiciones a algunos ejemplos populares.
La secuencia de dígitos en la expansión decimal Pi parece arbitraria para nuestro ojo inexperto. Pero, por supuesto, esta secuencia infinita tiene una descripción muy breve. Existen algoritmos muy simples que pueden producir estos números con precisión para siempre (si se tienen suficientes recursos como memoria y fuente de alimentación).
Claro, es un poco más complicado que "empieza con 1, suma 3 y repite", pero sólo un poco más. En lo que respecta a los programas Python, este es un programa pequeño que describe un patrón muy conciso y claro.
Permítanme enfatizar nuevamente que esto es muy inusual. La mayoría de los números reales son una locura en este sentido y no pueden ser generados por ningún programa finito, sin importar cuánto tiempo dure. Esto resalta el hecho de que pi es un número real muy especial, muy preciso y muy fácil de entender. Por supuesto, lo mismo ocurre con otras constantes explícitas, como y o 17?√, etc., pero recuerde: la gran mayoría de los números reales no son así en absoluto.
¿Cuál es la definición de niño? Bueno, pi es irracional, por lo que sus números no se repiten simplemente. Entonces sí, según esa definición, los números pi en la expansión decimal no tienen patrón, y lo mismo ocurre con cualquier número irracional, incluido
0.90900900090000900000…
Llame a esta secuencia "no patrón" Parece un poco tonto.
En este punto podría valer la pena mencionar otra posible definición de "sin esquema", que creo que es demasiado débil, pero a la que algunas personas (intencionalmente o no) se refieren a veces. Se trata de si, entre secuencias infinitas de caracteres o números, ocurre alguna secuencia finita posible con la densidad asintótica esperada. Por ejemplo, 999 debería aparecer el 0,1% del tiempo, así como 314 y 432 y cualquier otra secuencia de 3 dígitos.
"0,1% del tiempo" se refiere al número de veces que la secuencia aparece en el primer número, como una fracción, tomando el límite como ?→∞.
Esta es una excelente propiedad de la aleatoriedad. y secuencias que lo satisfacen se denominan "normales" o "∞-distribuidas" (término de Knuth). El problema es que omite muchos patrones muy simples. Por ejemplo, la constante de Champignonne
0,123456789101112131415…
Simplemente escribes todos los números naturales uno por uno, lo cual es normal, pero ignoras que se basa en un patrón muy simple. Este hecho parece muy mal. Si prefiere definirlo como "sin modelo", está bien, pero dígalo y luego admita que no sabemos si pi tiene esta propiedad, mientras que muchas secuencias simples ciertamente la tienen.
(Esta es mi oportunidad para recomendar una vez más la serie única de libros de Knuth "El arte de la programación informática". El volumen 2 trata exactamente estos temas, con Knuth proponiendo tentativamente ∞ -distribuirlo como un atributo aleatorio y luego derribar inmediatamente).
¿Qué pasa con los números primos?
Su estructura es ligeramente diferente: en lugar de una secuencia infinita de números, son una secuencia infinita de números. Pero nuestra definición de computabilidad sigue siendo válida como siempre, y los números primos son claramente computables. Hay un millón de preguntas en Quora que se preguntan si los números primos se pueden "predecir", "calcular", "tienen una fórmula" o "tienen un patrón". Todas ellas son la misma pregunta y todas tienen la misma respuesta: SÍ. , curso.
Nuevamente, esto no significa que no puedan ser estadísticamente suaves, ni que no puedan exhibir el "comportamiento" de una secuencia aleatoria. Lo son y lo hacen. Pero cada vez que a los matemáticos se les ocurre un argumento heurístico que se basa en el comportamiento "aleatorio" de los números primos, siempre añaden la advertencia de que el argumento es evidentemente un disparate: el número primo es una secuencia muy específica, no una secuencia aleatoria. Aun así, debido a los aspectos aleatorios de los números primos, este argumento puede enseñarnos mucho.