Un programa para “investigadores” de la conjetura fuerte de Goldbach, en Mathematica.

Hace cinco o seis entradas hemos hablado del avance de Helfgott con respecto a la conjetura débil de Goldbach. Este gran resultado habrá sido seguramente la banderilla para que muchos de vosotros, aficionadetes a estos temas, espontáneos de las matemáticas, os pongáis a atacar la conjetura fuerte🙂.

Cómo dije en esa misma entrada hace años yo la intenté atacar en un par de tardes sin ningún resultado. Aun así he hecho memoria  sobre la linea de ataque y en esta entrada, en el primer punto expongo aquello de lo que me acuerdo sobre ese ataque e incorporo novedades según vayan surgiendo. Además he realizado esta misma tarde unos programillas informáticos, en Mathematica, que permiten investigar con ayuda de herramientas informáticas los objetos relacionados con la conjetura fuerte de Goldbach, según la linea de ataque apuntada. Puedes encontrar estos programas en el punto 2.

1. La linea de ataque y algunas reflexiones. 

El lector podrá ver que para investigar esta conjetura se puede estudiar un tipo de objetos (¿funciones?) finitos muy sencillos: para todo N número natural par se estudian ¿funciones? de los números 1 hasta N/2 (dominio) a números de N/2 hasta N (codominio) del tipo p—>n-p, con p elemento del dominio.

Y la conjetura de Goldbach afirma que para todo N, existe al  menos un primo p tal que N-p es primo también.

De manera más gráfica, por ejemplo, para n=10, el objeto finito a estudiar sería:

12345

98765

Para n=12

1    2     3456

11 10  9876

etc….

Cómo se ve el dominio aparece siempre de forma creciente y recoge todos los números de 1 a N/2. La sucesión y la distribución de primos en el dominio es bien conocida hasta Ns bastante grandes (por datos empíricos). El codominio siempre aparece de forma decreciente y a partir de un determinado N será completamente desconocida. Que el codominio sea decreciente ya es una condición bastante restrictiva a nuestros objetos.

Ahora vamos a ver que se sabe sobre los primos que sea relevante para estos objetos. Pese a que estos son uno de los objetos de las matemáticas que se estudian desde hace más tiempo, cuando lees sobre ellos te das cuenta que no es mucho lo que se sabe. Pero precisamente para los objetos de nuestro interés si que hay algunos teoremas relevantes:

–Por el Teorema de los Números Primos, que intenta dar respuesta a la distribución de estos, la densidad de los números primos va decreciendo a medida que N crece.

–Del teorema anterior se deduce un primer dato cierto: en el codominio (la parte de abajo de los objetos finitos) habrá siempre menos primos que en el dominio (la parte de arriba).  Y si dividimos en dos el codominio, tendría que haber menos todavía en la parte de la derecha. Es decir, para todo N, la parte del codominio con menor densidad de primos coincide con la parte del dominio con mayor densidad de primos.

–Otro resultado muy relevante es la Función pi(x) que determina o cuenta el número de primos inferiores a un N dado. Su expresión asíntotica es pi(N) = N / ln N.    De acuerdo con esto, asíntoticamente tenemos N/ ln N números primos que se dividen en dos partes, un parte mayor se distribuye en el dominio de nuestros objetos y el resto en el codominio. ¿ Que proporción va al dominio y cual al codiminio ?

–Realmente si consideramos a nuestro objeto de manera puramente combinatoria, levantando la restricción de que las sumas de pares de números sean iguales y/o sin exigir ningún orden en el dominio y codominio (no  se si las dos son independientes), y para un N grande elegimos al azar una permutación del  dominio y una del codominio, parece claro que en la mayoría de los pares de permutaciones elegidos,  no habrá pares de primos emparejados tal y cómo exigiría la conjetura de Goldbach. Incluso hay un modelo probabilístico más abstracto: consideremos dos conjuntos de N/2 bolas coloreadas de dos colores (primo = rojo y no-primo = negro). El primero tiene digamos x1 N/ln N bolas rojas, y el segundo, una proporción crecientemente menor de bolas rojas, digamos x2 N/ln N, con x1+x2=1. En lo que sigue supondremos que x1=2/3 y x2=1/3. Extraemos al azar una bola del primer conjunto y otra del segundo. Pueden ser negra-negranegra-rojaroja-negra y roja-roja.

¿ Está claro que en estas condiciones, la probabilidad de que en N/2 extracciones en cada conjunto, sin reposición, salga un par rojo-rojo tiende a cero a medida que N tiende a infinito ?. Veamos esto en más detalle:

A. Casos posibles.

si hay N bolas en total, el número de distribuciones posibles del dominio es de (N/2) !/ (2/3 N/logN) ! (N/2 -2/3 N/logN) ! y el número de distribuciones posibles del codominio sería (N/2) !/ (1/3 N/logN) ! (N/2 -1/3 N/logN) ! y cómo ambas son independientes, el total de casos posibles sería la multiplicación de estas dos cantidades, es decir

(N/2) !/ (2/3 N/logN) ! (N/2 -2/3 N/logN) ! * (N/2) !/ (1/3 N/logN) ! (N/2 -1/3 N/logN) !.

B. Casos favorables.

Para formular el total de casos favorables, el tema es un sólo poquito más complicado (sólo hay que aplicar de nuevo la fórmula para combinaciones que hemos aplicado antes, en un cierto orden):

a) Caso 1. Sólo 1 par de Goldbach.

{X/2} * {((N/2)-1) !/ ((1/3N/logN)-1)! ((N/2)-1)-((1/3N/logN)-1) !}*{(N/2-1/3 N/logN)! [(2/3 N/logN)-1] ! [(N/2-1/3 N/logN)-(2/3 N/logN)-1)]} !

Explicación:

–El par puede ocupar cualquier columna y por lo tanto tenemos un factor X/2 que aparece en la fórmula anterior entre corchetes..

–los primos y no primos del codominio pueden distribuirse de cualquier manera en las posiciones restantes de la tabla  y el orden no importa. Esto nos da otro factor de

((N/2)-1) !/ ((1/3N/logN)-1)! ((N/2)-1)-((1/3N/logN)-1) !

–para los primos y no primos del dominio quedan N/2-(1/3N/logN) posiciones y en estas se pueden distribuir de cualquier manera por lo tanto hay un último factor de

[(N/2-1/3 N/logN)] ! / [(2/3 N/logN)-1] ! [(N/2-1/3 N/logN)-(2/3 N/logN)-1)] !

b) Caso 2. Dos pares de Goldbach.

{X/2*(X/2)-1}*{}*{}

En este caso el primer factor sería de (X/2) * ((X/2)-1) dado que dos columnas cualesquiera quedan fijas con pares de Goldbach, y habría que modificar los otros dos factores que aparecen en el caso anterior, teniendo en cuenta que queda 1 posición menos.  

d) Términos intermedios. Hay una serie de términos dónde se repite el proceso descrito anteriormente con 3, 4…pares de Goldbach hasta llegar a

c) 1/3 N/logN pares de Goldbach (claramente no puede haber más pares que el número de primos en el codominio). Se aplica el  mismo proceso que en los anteriores casos y así se cierra la fórmula.

Con esta información, el lector podrá construir la fórmula completa (cosa que yo haré cuando tenga tiempo). Entiendo que el proceso de construir este tipo de formulas dado el modelo probabilístico debe de estar automatizado ya.

En definitiva, ¿ que tenemos ?. Una relajación o variante que de alguna manera desvirtúa el problema original y relacionado con esta variante, un formulón del carallo, si se me permite la expresión, que hay que intentar simplificar para estimar su límite asíntotico, que así a primera impresión, ya hemos dicho, parece será cero. Si esto es así, desde este punto de vista, desestructurado, no hay ninguna razón para pensar que la conjetura de Goldbach fuerte sea cierta. Parecería más bien todo lo contrario, salvo que las restricciones que  hemos levantado  impongan una cierta estructura. Y así debe de ser, según explican en la entrada de Wikipedia sobre la conjetura de Goldbach:

The prime number theorem asserts that an integer m selected at random has roughly a 1/\ln m\,\! chance of being prime. Thus if n is a large even integer and m is a number between 3 and n/2, then one might expect the probability of m and n − m simultaneously being prime to be 1 \big / \big [\ln m \,\ln (n-m)\big ].

If one pursues this heuristic, one might expect the total number of ways to write a large even integer n as the sum of two odd primes to be roughly

\sum_{m=3}^{n/2} \frac{1}{\ln m} {1 \over \ln (n-m)} \approx \frac{n}{2 \ln^2 n}.

Since this quantity goes to infinity as n increases, we expect that every large even integer has not just one representation as the sum of two primes, but in fact has very many such representations.

Cómo se ve aquí utilizan la m en vez de la p que hemos utilizado nosotros. Siendo el  argumento heurístico anterior completamente correcto, no excluye la posibilidad de que para algún N, no exista ningún m y (n-m) p y (n-p) que sean a la vez primos. 

Cómo se ve fácilmente, todos los casos tienen algunas características comunes:

–los primeros números de las primeras posiciones del dominio no varían,

–las dos últimas cifras de dominio y codominio son iguales, y pueden ser primos o no.

También es fácil ver que al pasar de un caso al siguiente la última cifra del codominio y la siguiente suben al dominio (que se incrementa en dos posiciones) y por lo tanto todas las otras del codominio se corren a la derecha dos posiciones apareciendo dos nuevos números. En inglés se podría decir que esta trasnformación consiste en un “lift plus a shift”.  Es fácil ver que por esta primera posición del codominio pasan necesariamente todos los números impares y por lo tanto todos los primos. Si es primo, entonces los tres siguientes casos, y el 5º y el 6º siguientes cumplirían necesariamente con la conjetura de Goldbach fuerte. Esto quiere decir que no tenemos que preocuparnos, de cara a que se cumpla la conjetura de Goldbach, por si los siguientes números de posiciones impares (salvo el 4º) son primos. Por otra parte por la segunda, la cuarta, la sexta, en general por las posiciones pares del codominio pasarán sucesivamente todos los números pares y ningún impar, y por lo tanto nos podemos olvidar de ellas, ya que en estas posiciones nunca se darán los pares de Goldbach.

En relación con todo esto parece interesante conocer el llamado Postulado de Bertrand, en realidad teorema, que afirma que para todo n > 1 entre n y 2n hay al menos un primo (en general habrá más). Partiendo de un caso no muy grande en el que el primer número del codominio, podemos suponer, poniéndonos en el peor caso, que el este número de primos entre n y 2n es constante (es decir igual a 1) y analizar en que posiciones podría estar (realmente sería interesante poder predecir o al menos acotar esto) y cuales son las consecuencias se encuentre en unas u otras (de cara al cumplimiento de la conjetura).

Aparte de los teoremas ya señalados (Teorema de los Números Primos- Función Pi(x), Postulado-Teorema de Bertrand), no parece que haya mucho más a que agarrarse (quizás las funciones generadoras de primos o los prime gaps, tema que tengo que mirar; ya en su momento redescubrí, cómo cualquiera que empiece a estudiar estas funciones generadoras, la famosa función 6n+/- 1, que si bien genera todos los primos a partir de 5, no todos los números que genera son primos, y por lo tanto contiene ruido; me parece más  interesante, de cara a la Conjetura de Golbach, las funciones que, aun incompletas, es decir no generen todos los primos, sólo generen primos). Esto explica que el problema sea intratable, y realmente no se si estudiar este objeto más general que hemos presentado sólo añade ruido a este complicado tema, pero en fin.

Llegados a este punto,  uno se pregunta si una manera de continuar esta investigación no sería estudiar un tipo de procesos, que podríamos llamar Procesos de Bertrand.  Hacemos notar antes que esto ya es completamente nuevo por mi parte (es decir, no pensé en esto en esas dos tardes de hace años sino ayer), y que ignoro (aunque entiendo que así debe de ser y múltiples veces además, ya que la idea se sigue de manera muy natural de todo lo  aquí hablado) si ya se ha investigado este tipo de procesos por parte de otros investigadores. Ignoro también si finalmente este tipo de procesos tendrá alguna utilidad: ya sabe todo investigador que, una vez resuelto un problema, muchas de las ideas, muchos de los ataques, que inicialmente parecían viables, válidos, buenas, en retrospectiva y una vez resuelto este, serán completamente absurdas. Curiosamente estos procesos combinan muchas de las ideas sobre las que hemos habalado en esta entrada.    Teniendo en cuenta que entre p y 2p hay al menos un primo y que no podemos predecir de modo determinista dónde estaráel siguiente primo (al menos de momento), parece natural definir el siguiente proceso  cuyo objeto sería simular (que no predecir) la distribución de primos: generemos una ¿función finita? tal y cómo las hemos definido en esta entrada (es decir un caso), no necesariamente muy grande, tal que el primer número del codominio sea un primo P. Multiplicamos P por dos y el número obtenido, que obviamente no es primo, y prolongamos la tabla hasta el, coloreando su casilla correspondiente en negro; asignamos al resto de casillas un número entre 1 y (2P-P) y entre estos números hacemos  una selección aleatoriade uno de ellos. La casilla correspondiente al número que salga, la coloreamos en rojo ya que se entiende que el número correspondiente a esta casilla, en nuestra simulación, digamos por decreto, sería primo. El resto de casillas hasta la 2P las coloreamos en negro ya que consideramos que estos no  serán primos. Partiendo de la casilla coloreada en rojo, repetimos el proceso de nuevo así hasta un número muy elevado de veces. Obviamente, si al iterar el proceso un primo cae en una casilla negra, lo cual seguramente ocurrirá con una cierta frecuencia, se debe de colorear en rojo y seguir el proceso a partir de ella. Variantes de este proceso serían seleccionar dos “primos” aleatoriamente entre P y 2P cada vez, 3 o incluso un número aleatorio de primos dentro de un rango determinado. Y las preguntas serían:

–¿ simula correctamente este proceso, con sólo un primo seleccionado aleatoriamente, la distribución de primos ? Es decir, ¿ tienen las dos distribuciones las mismas propiedades (teorema de números primos, gap medio y otras cosas que se sepan sobre los gaps, etc…) ? ¿ y con dos primos seleccionados de manera aleatoria ? etc…

–¿ en estas condiciones, es decir con la selección de un número “primo”, se cumple la Conjetura de Golbach ? ¿ Y con dos ? etc…Ahora mismo no tengo  claro ni cómo formular esta conjetura en este modelo, ni si demostrarla será más fácil que en el original. La esperanza es que en este caso sí conocemos el proceso generador de la  distribución y esto quizás aporte alguna información de la que carecemos en el modelo original. O quizás, y esto ya sería mucho pedir, el original sea reducible al derivado de tal manera que con demostrarla en el derivado sea suficiente.

–y otras propiedades / conjeturas de los primos: primos gemelos etc…

Cómo no es cómodo estudiar estos temas a mano, aunque no voy a dedicarle mucho más tiempo a esto, he realizado unos programas que permiten investigar “patrones” en estos objetos (entre comillas, porque si algo caracteriza a los primos es su capacidad para pulverizar cualquier patrón…). Para utilizarlos tienes que ser usuario de Mathematica (mi versión es la 5.1).

2. El programa para “investigadores”,  en Mathematica.

Aunque ya se sabe que hay puristas que reniegan del uso de computadores para investigaciones matemáticas, yo no lo soy.  En realidad mi posición sobre esto es la contraria. Por ello como me ha picado de nuevo la curiosidad y además tenía un poco de tiempo esta tarde, he realizado un programilla de Mathematica que permite obtener los objetos de estudio descritos en el punto anterior de manera rápida.

Hacía tiempo que no programaba y me ha costado arrancar. Posiblemente los programas sean muy redundantes,  pero cómo son cortos, no importa. Los copio en caso de que alguien quiera utilizarlo (barra libre para copiar, sólo se debe de citar la fuente, el blog HPC Market):

Programa nº1.

n = 20;

domin = Range[n/2];

domin; codomin = Table[(n – Extract[domin, {i}]), {i, n/2}];

TableForm[{domin, codomin}]

Cómo se ve el programa utiliza algunas built-in functions cómo Range. El output es una tabla de dos filas. En la primera fila aparece el dominio para n=20. En la segunda el codominio para el mismo valor.

Programa nº 2.

En este primer programa, en la tabla del output no se identifica a los primos automáticamente, cosa que si que hace el programa siguiente (también para n=20):

n = 20;

dom = Range[n/2];

domin = Range[n/2];

For[i = 1, i <= n/2, If[PrimeQ[Extract[domin, {i}]], domin = ReplacePart[domin, P, i]];i++]; Print[domin];

codomin = Table[(n – Extract[dom, {i}]), {i,n/2}]; Print[codomin];

For[i = 1, i <= n/2, If[PrimeQ[Extract[codomin, {i}]], codomin = ReplacePart[codomin, P, i]]; i++]; Print[codomin];

Print[TableForm[{domin, codomin}]];

Este segundo “programilla” ya marca los primos: cuando el número de la tabla es primo, lo sustituye por P. Afortunadamente la aplicación ya tenía incorporada cómo built- in-function el test de primalidad (PrimeQ, no se ahora mismo que algoritmo  implementan).

Curiosamente, en el programa que hice para el algoritmo de la patente (con miles o decenas de miles de lineas de código) nunca utilicé el For  por que no me resultaba natural y sin embargo aquí me ha salido a la primera y ha resultado muy útil….

Programa nº3.

¿ Que ? ¿ Que te has cansado de contar las P en las filas de la tabla y de contar en cuantos casos coinciden las Ps en la misma posición a partir del caso 42 ? Ok, vaguete, te comprendo, a mi me ha pasado lo mismo. Por eso  he añadido esas funcionalidades al programa nº 2 para obtener el programa nº 3 siguiente. De nada hombre, de nada. De todas maneras, esto lo podrías haber hecho tú perfectamente…

Antes del programa un comentario: si has llegado hasta el caso 42, caso por caso, habrás pasado por el 38. ¡ Que susto se habrán llevado los pioneros de este problema con él: 8 primos en el dominio, 5 en el codominio y…¡ sólo dos pares de Goldbach  ! Teniendo en cuenta que el caso 36 tenía ya cuatro pares… Ufff.

n = 42dom = Range[n/2];domin = Range[

n/2]; For[i = 1, i <= n/2, If[PrimeQ[Extract[domin, {i}]], domin =
ReplacePart[domin, P, i]];
i++]; codomin = Table[(n – Extract[dom, {i}]), {i, n/2}]; For[
i = 1, i <= n/2,
If[PrimeQ[Extract[codomin, {i}]], codomin =
ReplacePart[codomin, P, i]]; i++]; Print[TableForm[{domin, \
codomin}]]; Print[“número de primos en el dominio”]; Print[Count[domin, P]];
Print[“número
de primos en el codominio
“]; Print[Count[codomin, P]]; pendom = Position[
domin, P]; pencdom = Position[codomin, P]; penmismaposición = \
Intersection[pendom, pencdom]; Print[“número de pares de Goldbach en este caso”];
Length[penmismaposición]

Programa nº 4. (previsto o pendiente).

Este programa eliminará todos los pares de cada caso. Entiendo que su presencia no aporta nada.

Programa nº 5. (previsto o pendiente).

Este programa, en combinación con el nº 3 implementará el Proceso de Bertrand, o algún otro tipo de proceso similar, tal y cómo lo hemos definido en el punto anterior.  La buena noticia es que Mathematica incorpora un generador de números aleatorios….

Obviamente, en todos los programas anteriores, para estudiar diferentes casos, hay que cambiar el valor de la variable n, en la linea marcada en rojo. El paso siguiente sería un programa que generase todos los casos hasta un n dado. Lo siento pero no creo que lo haga. Personalmente me gusta más estudiar caso por caso y con esto es suficiente para saciar mi curiosidad. Pero si sabes un poco de Mathematica, no te será  fácil tunear el programa anterior para obtener un generador de casos hasta un n dado: sólo tienes que añadir un For.

El programa funciona bastante rápido (1 o 2 segundos) incluso para casos relativamente grandes (n=3000). A cualquiera que experimente un poco le quedará claro que es la típica conjetura muy bien fundamentada desde el punto de vista empírico o experimental.  Por ejemplo para n = 3000 a n = 3036 el número de pares de Goldbach ya no baja de los 30 por caso. Por otra parte parece que el ratio primos en codominio / primos en dominio se mueve en una banda muy concreta. Sorprende que sea tan difícil de demostrar, pero así es, así son las matemáticas, así es la reina de las matemáticas, la teoría de números.

 

Terms and conditions: 1. Any commenter of this blog agrees to transfer the copy right of his comments to the blogger. 2. RSS readers and / or aggregators that captures the content of this blog (posts or comments) are forbidden. These actions will be subject to the DMCA notice-and-takedown rules and will be legally pursued by the proprietor of the blog.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: