HPC. Una solución a un caso de 360 vértices.

1. Es una solución al caso intransitivo sobre el que hemos hablado en una anterior entrada. Es la segunda solución de éste caso que buscamos hoy y cómo la anterior la he encontrado, en un laptop de hace más de 10 años (creo que el procesador es un pentium IV), con una implementación o programación no optimizada en un lenguaje interpretado (no compilado), en un poco más de una hora y de manera muy directa (es decir con cero backtracking).

Con otro procesador, con una implementación o desarrollo optimizado y un lenguaje compilado, el tiempo hubiese sido sensiblemente menor, pero no sabría decir de que orden de magnitud sería la reducción, entiendo que de horas a minutos o segundos…Si además se paraleliza, lo cual entiendo es posible, mucho menos.

Y no quiero ni pensar la inmediatez si se diseñase un acelerador hardware para éste problema en concreto. Posiblemente antes de meter la última letra o cifra del segundo generador en la ventana del input, ya te daría la lista completa de todos los recorridos hamiltonianos posibles🙂. Obviamente un acelerador tendría sentido sólo si finalmente se desarrollasen las potenciales aplicaciones de los recorridos hamiltonianos en redes de interconexión, evento que yo personalmente no veo improbable.

Nota. A estos efectos de aplicaciones, hay un tema sobre el que no hemos hablado, porque de momento nos estamos documentando, que es el de la virtualización. Una cosa es la red hardware real de un sistema y otra es la red que sería más adecuada para una aplicación en concreto. La virtualización es la solución que adapta la una a la otra. Fin de nota.

En definitiva tanto la teoría como la práctica de nuestro método (por práctica me refiero primero al algoritmo, y segundo a su implementación o programación; me costó lo suyo…) funcionan como un reloj suizo.

Para casos de unos 1000 vértices (que diría puede ser la cota máxima de lo que podemos ver en multicore en el horizonte temporal que me interesa; todavía me estoy documentando sobre ello), en las mismas condiciones (procesador, lenguaje y programa) ya tardaría unas 24 horas. Se ve claramente que el incremento en el tiempo de computación no es exponencial (lo cual coincide con las conclusiones teóricas a las que hemos llegado: polinómico con respecto al número de vértices, al menos para casi todos los casos, (almost all) sino para todos (lo conjeturamos, ojo exclusivamente para los bigenerados).

Terminamos este primer punto haciendo un comentario sobre el tema que ha motivado el buscar éstos casos: aunque según he leído sí son relevantes para el problema del diámetro (relacionado con el problema del camino más corto), conceptos o propiedades provenientes de la teoría de grupos como transitividad o primitividad son irrelevantes a efectos del problema de recorridos hamiltonianos.

2. Los parámetros del caso son:

generadores, 23451786 y 21345876, respectivamente de orden 15 y de orden 2.

IAS es de orden 8 (o 4) y por lo tanto, comenzando por la identidad, el RH puede terminar en 4 vértices posibles.

–la Circunferencia es de orden 3.

–el caso es smooth (por tener ésta propiedad, y éste era uno de los tests que se había incluido como reclamación en la segunda solicitud de patente, reclamación que sorprendentemente se ha rechazado(todavía no me lo puedo creer; todavía no puedo leer el documento de rechazo sin crisparme completamente), sabíamos de antemano que tendría recorridos hamiltonianos en estos dos vértices finales, así como en los otros dos posibles). El ser smooth descarta automáticamente que pueda ser entangled (salvo el generador involución si queremos ser estrictos con las definiciones) o cycle-entangled, otras dos propiedades que también se pueden concretar en tests, y que también se habían incluido en sendas reclamaciones en la solicitud de patente y que también se han rechazad: todavía no me lo puedo creer, todavía no puedo leer el documento de rechazo sin crisparme completamente.

Gracias a la teoría implícita y consustancial al algoritmo que se puede concretar en una serie de tests estructurales muy concretos (que son los que he intentado patentar en las segunda solicitud, sorprendentemente rechazada de momento: todavía no puedo leer el documento de rechazo sin crisparme completamente) ya sabía de antemano que existían recorridos hamiltonianos y que era cuestión de (un razonable ) tiempo. Es más gracias a ésta teoría implícita también se puede estimar lo que puede tardar en encontrar uno (yo pensaba 2 horas y en los dos casos ha sido menos, 1 hora y 20 minutos aproximadamente. Cualquier investigador sabe lo útil que es conocer todo ésto de antemano.

–Si dividimos el orden del dígrafo (360) por el orden del IAS (4) obtenemos el número 90, que es el número de IAS diferentes. La solución de los dos casos se han encontrado tras  unas 40 opciones. Las dos cifras están de alguna manera relacionadas cuando el caso es smooth (a alguien le llamará la atención la disparidad entre ambas cifras; creo que lo explica el hecho de que uno de los dos generadores sea de orden 2; es fácil ver que se puede explotar éste hecho para acortar el tiempo de búsqueda). Gracias a la fórmula que facilitamos en la primera entrada de éste blog podemos acotar superiormente el número total de recorridos hamiltonianos del caso (de todos los casos smooth).

———————————————————————

Nota al margen.

Éste blog en un principio iba a ser de una sola entrada. La primera entrada sigue siendo y lo seguirá para los restos la única entrada de 2009. En ella publiqué dos resultados:

–el primero es la fórmula para acotar superiormente el número de recorridos hamiltonianos, que en mi opinión es bastante evidente cuando se conocen los resultados de la patente;

–el segundo es para mi casi el más relevante de toda la investigación, al menos el menos evidente, el que más me costó conseguir. Estuve reflexionando sobre él más de un año, llegué a estar convencido de que era de los casos que sólo se podían solucionar por fuerza bruta, hasta que la encontré (recuerdo perfectamente el sitio, el momento), con gran sorpresa por mi parte.

Para mi es la prueba de que los métodos puramente lógicos, la lógica, no son suficientes para solucionar este tipo de problemas y hay que aplicar otras técnicas, como la que yo encontré, que podríamos llamar de ponderación, que implican contar. Es posible que haya otras más directas. Ojo que la lógica no sea suficiente no quiere decir que no se utilice. Por otra parte señalar, cómo ya comenté en esa primera entrada, que entiendo que el método (que no forma parte de la patente) es aplicable a otros  casos similares: realmente me interesaba una solución trasladable y no está adaptada a las propiedades de éste caso, la he aplicado en otro caso todavía más difícil (pues no tiene ningún recorrido hamiltoniano) y funcionó. Tengo pendiente aplicarla a más casos similares, en cuanto que los identifique (la mayoría de los casos son smooth), pero no puedo demostrar que sea así en todos los casos no smooth.

Éste complejo caso al que tanto tiempo (libre) dediqué es el siguiente, en caso de que el lector quiera abordarlo. Primero la imagen y luego los parámetros. Se debe de pulsar sobre ella 2 veces para verla en tamaño grande.

caso de digrafo complicado

–identidad 23456,

–generadores 45623 (de orden 5) y 23564 (de orden 3), que en total generan un dígrafo de 60 vértices.

–el IAS (y el DAS) o es de orden 10 (es decir contiene 10 vértices y el número de vértices finales posibles es 5; por el teorema de Rankin podemos desechar 3 de ellos, y nos quedan dos posibles).

–la circunferencia es de orden 3. En la imagen siguiente se muestra a que nos referimos por circunferencia. Cuando el IAS es impar, la fórmula de la circunferencia es 1(x^-1y)^(parte entera de (n/2)-1) x^-1 = p, con n el número tal que 1(x^-1y)^n=1 (es decir es el orden que se obtiene al comparar la identidad con la permutación que se encuentra en la mitad del IAS. Corregimos con ésto una definición anterior (que pasamos a corregir).

circunferencia ejemplo

Es el IAS de la Identidad (en rojo), más el IAS que se puede construir empezando por la permutación que se encuentra en medio del IAS de la Identidad (en negro) y se repite el proceso hasta que se llegue a la identidad. Cómo se ve en este caso hay un tercer IAS, el indicado en verde. Obviamente se obtendría lo mismo si se hiciese con el DAS (se recorre la circunferencia en la otra dirección). Como se ve para obtener el parámetro no es necesario construir el dígrafo ni siquiera la circunferencia (basta con obtener la permutación que se encuentra en medio del IAS y obtener su orden comparándola con la de la identidad).

La estructura de las circunferencias en los casos smooth es más o menos sencilla y siempre es la  misma. Se puede pensar en una cuadricula sobre una superficie, diría que en general un toro, (parecido, pero no se debe de confundir con los empotramientos sin cruces), dónde dos a dos se distribuyen como ejes ortogonales. Pero en los casos entangled o cycle-entangled la estructura es más complicada. De hecho, por falta de tiempo, no la he estudiado y desconozco cómo es.  Estoy aprovechando ahora para estudiar la de este caso. No parece que la estructura de las circunferencias sea informativa, en éste caso al menos.

En la imagen siguiente un caso smooth con circunferencia 3, IAS o DAS de orden 2 y generadores de orden 4 y 5 (ojo no está completo). Se puede ver que IAS y DAS no están entrelazados o entangled. Como todos los casos smooth son planos localmente en el entorno de la identidad (aunque el caso de 60 vértices que ha motivad ésta nota es entangled y plano, en general los casos entangled no lo son) y por lo tanto en todas partes (el entorno de la identidad es el mismo para cualquier otra permutación). Se puede ver como la hoja en la que está dibujado se podría plegar en forma de toro, primero identificando los números laterales dispuestos verticalmente (2, 3, 4, 5, 6, 7) a un lado y a otro, y luego los horizontales (16,1,8). He coloreado en rojo la circunferencia vertical que sale de la  identidad, es decir la que recorre el IAS y el DAS, y dos horizontales en verde, una que sale del IAS y otra del DAS. Como se ve son “ortogonales” (la roja y las verdes), y esto permite definir una especie de sistema de coordenadas. Con este sistema se cree que en los casos smooth se podría diseñar un algoritmo que evite hacer un BFS, muy costoso en tiempo y espacio.

Ya describimos la idea en su momento en éste mismo blog: teniendo en cuenta la ortogonalidad de las circunfererencias en los casos smooth, el concepto es casi evidente: desde los dos vértices entre los que se quiere encontrar el camino más corto, recorrer (marcando) las circunferencias ortogonales hasta que se encuentren; entonces obtenemos una superficie cuadrangular dentro de los límites de la cual se debe de encontrar el camino más corto; en realidad para ésto no es necesario disponer  de todo el dígrafo; ojo ésta es la idea y hay que comprobar y demostrar que funciona…. El problema es que no está claro si cuando se pliega la hoja para obtener el toro habrá cruces de arcos o no (si los hay son locales), en cuyo caso ya no funcionaría tan directamente éste método). Realmente parece claro que si el entorno de la identidad es liso, lo tiene que ser el entorno de cualquier otra permutación y entonces la hoja se tendría que plegar sin cruces, bien en modo toro bien en otro tipo de superficie (esfera, bitoro o el que sea; por un teorema bien conocido sabemos que toda la superficie es un n-toro, con 0-toro la esfera y 1-toro el toro). Cabe preguntarse si el método que proponemos funcionaría también para todos lo n-toros, en casos smooth claro. Por falta de tiempo y motivación (ya he comentado que los plazos y rechazos de las solicitudes de patente dejan ko a cualquiera…) no rematé el caso que mostramos en la imagen. Por otra parte todas las circunferencias tienen necesariamente el mismo orden y esto nos da una idea del volumen del cuerpo.

Espero que nadie saque conclusiones precipitadas sobre la complejidad computacional del problema: primero, no parece que éste método, aunque funcionase para los casos smooth, cosa que está por demostrar, sea fácilmente trasladable a los no smooth, y segundo, el tamaño del IAS puede ser subexponencial (cota de Landau). Recordemos que el problema de encontrar el camino más corto entre dos permutaciones de Dígrafos de Cayley bigenerados es Pspace-completo cuando el input es el grado de las permutaciones.

caso smooth

A continuación un caso entangled pequeño. El IAS en rojo, el DAS en verde. A diferencia del anterior el IAS y el DAS tienen permutaciones en común, además de la identidad. Por ser un generador de orden dos, comparten la permutación 234576. Y además comparten las permutaciones 452376 y 452367. La propiedad de entangled, de la que depende que el caso pueda ser difícil o no para el problema de recorridos hamiltonianos,  se define precisamente de ésta muy concreta manera, en función de si IAS y DAS comparten más permutaciones además de la identidad o no. En este caso su elevado entrelazamiento impide (creo recordar) que el caso tenga recorridos hamiltonianos en ninguno de los 6 vértices posibles.

entrelazado

Gracias al artículo de Conway al que enlazamos en una entrada anterior  he encontrado una caso similar a éste pero de mayor tamaño (64 vértices). Lo estoy analizando.

–Volviendo al caso inicial de 60 vértices que ha motivado la nota al margen, tiene la propiedad entangled (y por tener ésta propiedad ya sabemos de antemano que puede ser complicado y en éste caso las expectativas se cumplen).

Se trata de encontrar un recorrido hamiltoniano que empiece en la identidad y termine en el vértice 64352 (obviamente con un método trasladable (aplicable a todos los casos similares) que evite la fuerza bruta (ojo un método de fuerza bruta utilizando como unidad los IAS tampoco vale)  o demostrar que no existe tal recorrido (de nuevo evitando la fuerza bruta; de nuevo tampoco vale utilizar la fuerza bruta vía IAS).

Por los dos primeros pasos del método, que por ser enormemente informativos para cualquiera que quiera resolver éste tipo de problemas, intentamos convertir en reclamaciones en la segunda solicitud de patente y que sorprendentemente han sido rechazados por el examinador (todavía no puedo leer el documento de rechazo sin crisparme completamente) sabemos que un recorrido hamiltoniano tiene que terminar o en éste vértice que hemos señalado o en otro. En el otro, el vértice 42563, es más fácil el problema.

Y un comentario final: que se evite la fuerza bruta no quiere decir la solución sea corta. La dificultad del caso estriba en que desde la primera elección de generador (del primer arco) hay posibilidad de error. Si se elige el generador erróneo, no habrá recorrido hamiltoniano y, aplicando las técnicas de la patente, habrá que hacer un costoso backtraking para demostrarlo. Si hay suerte y se elige el generador bueno, que si permite obtener recorridos hamiltonianos, entonces no es tan difícil encontrar uno de ellos (aplicando las técnicas de la patente). Pero se trata de encontrar un método que nos permita decidir cual es la buena elección desde el principio, evitando el peor caso y por lo tanto el backtraking, la primera mala elección,  y en casos más grandes en subsecuentes elecciones.

Por todo lo comentado, éste caso es de mis favoritos. Es un caso realmente filosófico🙂.

Fin de nota al margen.

———————————————————————

3. Para la comprobación de los resultados del caso de 360 vértices:

Vi = vértice inicial  = identidad = 23456789.

Vf= Vértice final = 42563978.

Para comprobar que es un recorrido hamiltoniano se debe de empezar  por VI, leer de izquierda a derecha y de arriba abajo (comprobando que cada permutación se obtiene de la anterior aplicando uno de los dos generadores)  hasta que se llega a la última permutación de ésta primera lista, es decir {3, 5, 2, 6, 4, 9, 7, 8}. Entonces de pasa de ésta  a la última permutación de la segunda lista (ambas están separadas por una línea discontinua) y se sigue la comprobación de derecha a izquierda y de abajo a arriba.

Finalmente se debe de comprobar que hay 360 permutaciones (incluyendo VI y VF) y que no hay repeticiones (idem).

{{vi, {3, 2, 4, 5, 6, 9, 8, 7}, {2, 4, 5, 6, 3, 8, 7, 9}, {4, 5,6, 3, 2, 7, 9, 8}, {5, 4, 6, 3, 2, 8, 9, 7}, {4, 6,3, 2, 5, 9, 7, 8}, {6, 3, 2, 5, 4, 7, 8, 9}, {3, 2,
5, 4, 6, 8, 9, 7}, {2, 3, 5, 4, 6, 7, 9, 8}, {3, 5,4, 6, 2, 9, 8, 7}, {5, 3, 4, 6, 2, 7, 8, 9}, {3, 4,6, 2, 5, 8, 9, 7}, {4, 3, 6, 2, 5, 7, 9, 8}, {3, 6,2, 5, 4, 9, 8, 7}, {6, 2, 5, 4, 3, 8, 7, 9}, {2, 5,4, 3, 6, 7, 9, 8}, {5, 2, 4, 3, 6, 8, 9, 7}, {2, 4,3, 6, 5, 9, 7, 8}, {4, 2, 3, 6, 5, 8, 7, 9}, {2, 3,6, 5, 4, 7, 9, 8}, {3, 2, 6, 5, 4, 8, 9, 7}, {2, 6,5, 4, 3, 9, 7, 8}, {6, 5, 4, 3, 2, 7, 8, 9}, {5, 4,
3, 2, 6, 8, 9, 7}, {4, 3, 2, 6, 5, 9, 7, 8}, {3, 2,6, 5, 4, 7, 8, 9}, {2, 3, 6, 5, 4, 9, 8, 7}, {3, 6,5, 4, 2, 8, 7, 9}, {6, 3, 5, 4, 2, 9, 7, 8}, {3, 5,4, 2, 6, 7, 8, 9}, {5, 4, 2, 6, 3, 8, 9, 7}, {4, 2,6, 3, 5, 9, 7, 8}, {2, 6, 3, 5, 4, 7, 8, 9}, {6, 2,3, 5, 4, 9, 8, 7}, {2, 3, 5, 4, 6, 8, 7, 9}, {3, 2,5, 4, 6, 9, 7, 8}, {2, 5, 4, 6,3, 7, 8, 9}, {5, 2, 4, 6, 3, 9, 8, 7}, {2, 4, 6, 3,5, 8, 7, 9}, {4, 6, 3, 5, 2, 7, 9, 8}, {6, 3, 5, 2, 4, 9, 8, 7}, {3, 5, 2, 4, 6, 8, 7, 9}, {5, 2, 4, 6, 3, 7, 9, 8}, {2, 4, 6, 3, 5, 9, 8, 7}, {4, 2, 6, 3, 5, 7, 8, 9}, {2, 6, 3, 5, 4, 8, 9,
7}, {6, 2, 3, 5, 4, 7, 9, 8}, {2, 3, 5, 4, 6, 9, 8, 7}, {3, 2, 5, 4, 6, 7, 8, 9}, {2, 5, 4, 6, 3, 8, 9, 7}, {5, 4, 6, 3, 2, 9, 7, 8}, {4, 5, 6, 3, 2, 8, 7, 9}, {5, 6, 3, 2, 4, 7, 9, 8}, {6, 3, 2, 4, 5, 9, 8, 7}, {3, 2, 4, 5, 6, 8, 7, 9}, {2, 3, 4, 5, 6, 9, 7, 8}, {3, 4, 5, 6, 2, 7, 8, 9}, {4, 3, 5, 6, 2, 9, 8, 7}, {3, 5, 6, 2, 4, 8, 7, 9}, {5, 3, 6, 2, 4, 9, 7, 8}, {3, 6, 2, 4, 5, 7, 8, 9}, {6, 2, 4, 5, 3, 8, 9,
7}, {2, 4, 5, 3, 6, 9, 7, 8}, {4, 5, 3, 6, 2, 7, 8, 9}, {5, 4, 3, 6, 2, 9, 8, 7}, {4, 3, 6, 2, 5, 8, 7, 9}, {3, 4, 6, 2, 5, 9, 7, 8}, {4, 6, 2, 5, 3, 7, 8,
9}, {6, 2, 5, 3, 4, 8, 9, 7}, {2, 5, 3, 4, 6, 9, 7, 8}, {5, 2, 3, 4, 6, 8, 7, 9}, {
2, 3, 4, 6, 5, 7, 9, 8}, {3, 4, 6, 5, 2, 9, 8, 7}, {4, 3, 6, 5, 2, 7, 8, 9}, {3, 6, 5, 2, 4, 8, 9, 7}, {6, 5, 2, 4, 3, 9, 7, 8}, {5, 2, 4, 3, 6, 7, 8, 9}, {2, 5, 4, 3, 6, 9, 8, 7}, {5, 4, 3, 6, 2, 8, 7, 9}, {4, 5, 3, 6, 2, 9, 7, 8}, {5, 3, 6, 2,
4, 7, 8, 9}, {3, 5, 6, 2, 4, 9, 8, 7}, {5, 6, 2, 4,3, 8, 7, 9}, {6, 2, 4, 3, 5, 7, 9, 8}, {2, 4, 3, 5,6, 9, 8, 7}, {4, 3, 5, 6, 2, 8, 7, 9}, {3, 5, 6, 2,4, 7, 9, 8}, {5, 3, 6, 2, 4, 8, 9, 7}, {3, 6, 2, 4,5, 9, 7, 8}, {6, 2, 4, 5, 3, 7, 8, 9}, {2, 4, 5, 3,6, 8, 9, 7}, {4, 2, 5, 3, 6, 7, 9, 8}, {2, 5, 3, 6,4, 9, 8, 7}, {5, 3, 6, 4, 2, 8, 7, 9}, {3, 6, 4, 2,5, 7, 9, 8}, {6, 4, 2, 5, 3, 9, 8, 7}, {4, 2, 5, 3,
6, 8, 7, 9}, {2, 5, 3, 6, 4, 7, 9, 8}, {5, 3, 6, 4,2, 9, 8, 7}, {3, 5, 6, 4, 2, 7, 8, 9}, {5, 6, 4, 2,3, 8, 9, 7}, {6, 5, 4, 2, 3, 7, 9, 8}, {5, 4, 2, 3,
6, 9, 8, 7}, {4, 5, 2, 3, 6, 7, 8, 9}, {5, 2, 3, 6,4, 8, 9, 7}, {2, 3, 6, 4, 5, 9,
7, 8}, {3, 2, 6, 4, 5, 8, 7, 9}, {2, 6, 4, 5, 3, 7,9, 8}, {6, 4, 5, 3, 2, 9, 8, 7}, {4, 5, 3, 2, 6, 8,7, 9}, {5, 3, 2, 6, 4, 7, 9, 8}, {3, 2, 6, 4, 5, 9,8, 7}, {2, 3, 6, 4, 5, 7, 8, 9}, {3, 6, 4, 5, 2, 8,9, 7}, {6, 4, 5, 2, 3, 9, 7, 8}, {4, 6, 5, 2, 3, 8,7, 9}, {6, 5, 2, 3, 4, 7, 9, 8}, {5, 2, 3, 4, 6, 9,8, 7}, {2, 3, 4, 6, 5, 8, 7, 9}, {3, 4, 6, 5, 2, 7, 9, 8}, {4, 3, 6, 5, 2, 8, 9, 7}, {3, 6, 5, 2, 4, 9, 7, 8}, {6, 5, 2, 4, 3, 7, 8, 9}, {5, 6, 2, 4, 3, 9, 8, 7}, {6, 2, 4, 3, 5, 8, 7, 9}, {2, 4, 3, 5, 6, 7, 9, 8}, {4, 2, 3, 5, 6, 8, 9, 7}, {2, 3, 5, 6, 4, 9, 7, 8}, {3, 2, 5, 6, 4, 8, 7, 9}, {2, 5, 6, 4, 3, 7, 9, 8}, {5, 6, 4, 3, 2, 9, 8, 7}, {6, 4, 3, 2, 5, 8, 7, 9}, {4, 3, 2, 5, 6, 7, 9, 8}, {3, 2, 5, 6, 4, 9, 8, 7}, {2, 5, 6, 4, 3, 8, 7, 9}, {5, 6, 4, 3, 2, 7, 9, 8}, {6, 4, 3, 2, 5, 9, 8, 7}, {4, 6, 3, 2, 5, 7, 8, 9}, {6, 3, 2, 5, 4, 8, 9, 7}, {3, 6, 2, 5, 4, 7, 9, 8}, {6, 2, 5, 4, 3, 9, 8, 7}, {2, 5, 4, 3, 6, 8, 7, 9}, {5, 2, 4, 3, 6, 9, 7, 8}, {2, 4, 3, 6, 5, 7, 8, 9}, {4, 2,
3, 6, 5, 9, 8, 7}, {2, 3, 6, 5, 4, 8, 7, 9}, {3, 6, 5, 4, 2, 7, 9, 8}, {6, 3, 5, 4, 2, 8, 9, 7}, {3, 5, 4, 2, 6, 9, 7, 8}, {5, 4, 2, 6, 3, 7, 8, 9}, {4, 2, 6, 3, 5, 8, 9, 7}, {2, 4, 6, 3, 5, 7, 9, 8}, {4, 6, 3, 5, 2, 9, 8, 7}, {6, 3, 5, 2, 4, 8, 7, 9}, {3, 5, 2, 4, 6, 7, 9, 8}, {5, 3, 2, 4, 6, 8, 9, 7}, {3, 2, 4, 6, 5, 9, 7, 8}, {
2, 4, 6, 5, 3, 7, 8, 9}, {4, 6, 5, 3, 2, 8, 9, 7}, {6, 5, 3, 2, 4, 9, 7, 8}, {5, 3, 2, 4, 6, 7, 8, 9}, {3, 2, 4, 6, 5, 8, 9, 7}, {2, 4, 6, 5, 3, 9, 7, 8}, {4, 6, 5, 3, 2, 7, 8, 9}, {6, 5, 3, 2, 4, 8, 9, 7}, {5, 3, 2, 4, 6, 9, 7, 8}, {3, 2, 4, 6, 5, 7, 8, 9}, {2, 3, 4, 6, 5, 9, 8, 7}, {3, 4, 6, 5, 2, 8, 7, 9}, {4, 6, 5, 2, 3, 7, 9, 8}, {6, 5, 2, 3, 4, 9, 8, 7}, {5, 6, 2, 3, 4, 7, 8, 9}, {6, 2, 3, 4, 5, 8, 9, 7}, {2, 6, 3, 4, 5, 7, 9, 8}, {6, 3, 4, 5, 2, 9, 8, 7}, {3, 6, 4, 5, 2, 7, 8, 9}, {6, 4, 5, 2, 3, 8, 9, 7}, {4, 5, 2, 3, 6, 9, 7, 8}, {5, 2, 3, 6, 4, 7, 8, 9}, {2, 3, 6, 4, 5, 8, 9, 7}, {3, 6, 4, 5, 2, 9, 7, 8}, {6, 4, 5, 2, 3, 7, 8, 9}, {4, 6, 5, 2, 3, 9, 8, 7}, {6, 5, 2, 3, 4, 8, 7, 9}, {5, 2, 3, 4, 6, 7, 9, 8}, {2, 5, 3, 4, 6, 8,
9, 7}, {5, 3, 4, 6, 2, 9, 7, 8}, {3, 5, 4, 6, 2, 8, 7, 9}, {5, 4, 6, 2, 3, 7, 9, 8}, {4, 5, 6, 2, 3, 8, 9, 7}, {5, 6, 2, 3, 4, 9, 7, 8}, {6, 2, 3, 4, 5, 7, 8, 9}, {2, 3, 4, 5, 6, 8, 9, 7}, {3, 4, 5, 6, 2, 9, 7, 8}, {4, 5, 6, 2, 3, 7, 8, 9}, {5, 6, 2, 3, 4, 8, 9, 7}, {6, 2, 3, 4, 5, 9, 7, 8}, {2, 6, 3, 4, 5, 8, 7, 9}, {6, 3, 4, 5, 2, 7, 9, 8}, {3, 4, 5, 2, 6, 9, 8, 7}, {4, 3, 5, 2, 6, 7, 8, 9}, {3, 5, 2, 6, 4, 8, 9, 7}, {5, 2, 6, 4, 3, 9, 7, 8}, {2, 6, 4, 3, 5, 7, 8, 9}, {6, 4, 3, 5, 2, 8, 9, 7}, {4, 3, 5, 2, 6, 9, 7, 8}, {3, 4, 5, 2, 6, 8, 7, 9}, {4, 5, 2, 6, 3, 7, 9, 8}, {5, 2, 6, 3, 4, 9, 8, 7}, {2, 5, 6, 3, 4, 7, 8, 9}, {5, 6, 3, 4, 2, 8, 9, 7}, {6, 3, 4, 2, 5, 9, 7, 8}, {3, 6, 4, 2, 5, 8, 7, 9}, {6, 4, 2, 5, 3, 7, 9, 8}, {4, 2, 5, 3, 6, 9, 8, 7}, {2, 4, 5, 3, 6, 7, 8, 9}, {4, 5, 3, 6, 2, 8, 9, 7}, {5, 4, 3, 6, 2, 7, 9, 8}, {4, 3, 6, 2, 5, 9, 8, 7}, {3, 4, 6, 2, 5, 7, 8, 9}, {4, 6, 2, 5, 3, 8, 9, 7}, {6, 2, 5, 3, 4, 9, 7, 8}, {2, 5, 3, 4, 6, 7, 8, 9}, {5, 3, 4, 6, 2, 8, 9, 7}, {3, 5, 4, 6, 2, 7, 9, 8}, {5, 4, 6, 2, 3, 9, 8, 7}, {4, 6, 2, 3, 5, 8, 7, 9}, {6, 4, 2, 3, 5, 9, 7, 8}, {4, 2, 3, 5, 6, 7, 8, 9}, {2, 3, 5, 6, 4, 8, 9, 7}, {3, 5, 6, 4, 2, 9, 7, 8}, {5, 6, 4, 2, 3, 7, 8, 9}, {6, 5, 4, 2, 3, 9, 8, 7}, {5, 4, 2, 3, 6, 8, 7, 9}, {4, 2, 3, 6, 5, 7, 9, 8}, {2, 4, 3, 6, 5, 8, 9, 7}, {4, 3, 6, 5, 2, 9, 7, 8}, {3, 6, 5, 2, 4, 7, 8, 9}, {6, 5, 2, 4, 3, 8, 9, 7}, {5, 6, 2, 4, 3, 7, 9, 8}, {6, 2, 4, 3, 5, 9, 8, 7}, {2, 4, 3, 5, 6, 8, 7, 9}, {4, 3, 5, 6, 2, 7, 9, 8}, {3, 4, 5, 6, 2, 8, 9, 7}, {4, 5, 6, 2, 3, 9, 7, 8}, {5, 4, 6, 2, 3, 8, 7, 9}, {4, 6, 2, 3, 5, 7, 9, 8}, {6, 4, 2, 3, 5, 8, 9, 7}, {4, 2, 3, 5, 6, 9, 7, 8}, {2, 3, 5, 6, 4, 7, 8, 9}, {3, 5, 6, 4, 2, 8, 9, 7}, {5, 6, 4, 2, 3, 9, 7, 8}, {6, 4, 2, 3, 5, 7, 8, 9}, {4, 6, 2, 3, 5, 9, 8, 7}, {6, 2, 3, 5, 4, 8, 7, 9}, {2, 6, 3, 5, 4, 9, 7, 8}, {6, 3, 5, 4, 2, 7, 8, 9}, {3, 6, 5, 4, 2, 9, 8, 7}, {6, 5, 4, 2, 3, 8, 7, 9}, {5, 4, 2, 3, 6, 7, 9, 8}, {4, 5, 2, 3, 6, 8, 9, 7}, {5, 2, 3, 6, 4, 9, 7, 8}, {2, 5, 3, 6, 4, 8, 7, 9}, {5, 3, 6, 4, 2, 7, 9, 8}, {3, 6, 4, 2, 5, 9, 8, 7}, {6, 4, 2, 5, 3, 8, 7, 9}, {4, 6, 2, 5, 3, 9, 7, 8}, {6, 2, 5, 3, 4, 7, 8, 9}, {2, 6, 5, 3, 4, 9, 8, 7}, {6, 5, 3, 4, 2, 8, 7, 9}, {5, 3, 4, 2, 6, 7, 9, 8}, {3, 5, 4, 2, 6, 8, 9, 7}, {5, 4, 2, 6, 3, 9, 7, 8}, {4, 5, 2, 6, 3, 8, 7, 9}, {5, 2, 6, 3, 4, 7, 9, 8}, {2, 6, 3, 4, 5, 9, 8, 7}, {6, 3, 4, 5, 2, 8, 7, 9}, {3, 4, 5, 2, 6, 7, 9, 8}, {4, 5, 2, 6, 3, 9, 8, 7}, {5, 2, 6, 3, 4, 8, 7, 9}, {2, 5, 6, 3, 4, 9, 7, 8}, {5, 6, 3, 4, 2, 7, 8, 9}, {6, 3, 4, 2, 5, 8, 9, 7}, {3, 4, 2, 5, 6, 9, 7, 8}, {4, 3, 2, 5, 6, 8, 7, 9}, {3, 2, 5, 6, 4, 7, 9, 8}, {2, 5, 6, 4, 3, 9, 8, 7}, {5, 6, 4, 3, 2, 8, 7, 9}, {6, 4, 3, 2, 5, 7, 9, 8}, {4, 3, 2, 5, 6, 9, 8, 7}, {3, 4, 2, 5, 6, 7, 8, 9}, {4, 2, 5, 6, 3, 8, 9, 7}, {2, 4, 5, 6, 3, 7, 9, 8}, {4, 5, 6, 3, 2, 9, 8, 7}, {5, 6, 3, 2, 4, 8, 7, 9}, {6, 3, 2, 4, 5, 7, 9, 8}, {3, 6, 2, 4, 5, 8, 9, 7}, {6, 2, 4, 5, 3, 9, 7, 8}, {2, 6, 4, 5, 3, 8, 7, 9}, {6, 4, 5, 3, 2, 7, 9, 8}, {4, 5, 3, 2, 6, 9, 8, 7}, {5, 3, 2, 6, 4, 8, 7, 9}, {3, 2, 6, 4, 5, 7, 9, 8}, {2, 6, 4, 5, 3, 9, 8, 7}, {6, 4, 5, 3, 2, 8, 7, 9}, {4, 5, 3, 2, 6, 7, 9, 8}, {5, 3, 2, 6, 4, 9, 8, 7}, {3, 5, 2, 6, 4, 7, 8, 9}, {5, 2, 6, 4, 3, 8, 9, 7}, {2, 6, 4, 3, 5, 9, 7, 8}, {6, 4, 3, 5, 2, 7, 8, 9}, {4, 3, 5, 2, 6, 8, 9, 7}, {3, 5, 2, 6, 4, 9, 7, 8}},

——————————————————————-

{VF, {3, 4, 2, 5, 6, 8, 9, 7}, {6, 3, 4, 2, 5, 7, 8, 9}, {5, 6, 3, 4, 2, 9, 7, 8}, {2, 5, 6, 3, 4, 8, 9, 7}, {4, 2, 5, 6, 3, 7, 8, 9}, {2, 4, 5, 6, 3, 9, 8, 7}, {3, 2, 4, 5, 6, 7, 9, 8}, {6, 3, 2, 4, 5, 8, 7, 9}, {5, 6, 3, 2, 4, 9, 8, 7}, {6, 5, 3,
2, 4, 7, 8, 9}, {4, 6, 5, 3, 2, 9, 7, 8}, {2, 4, 6, 5, 3, 8, 9, 7}, {4, 2, 6, 5, 3, 7, 9, 8}, {3, 4, 2, 6, 5, 8, 7, 9}, {5, 3, 4, 2, 6, 9, 8, 7}, {6, 5, 3, 4, 2, 7, 9, 8}, {2, 6, 5, 3, 4, 8, 7, 9}, {4, 2, 6, 5, 3, 9, 8, 7}, {3, 4, 2, 6, 5, 7, 9, 8}, {5, 3, 4, 2, 6, 8, 7, 9}, {6, 5, 3, 4, 2, 9, 8, 7}, {2, 6, 5, 3, 4, 7, 9, 8}, {4, 2, 6, 5, 3, 8, 7, 9}, {3, 4, 2, 6, 5, 9, 8, 7}, {4, 3, 2, 6, 5, 7, 8, 9}, {5, 4, 3,
2, 6, 9, 7, 8}, {6, 5, 4, 3, 2, 8, 9, 7}, {2, 6, 5, 4, 3, 7, 8, 9}, {3, 2, 6, 5, 4, 9, 7, 8}, {4, 3, 2, 6, 5, 8, 9, 7}, {5, 4, 3, 2, 6, 7, 8, 9}, {6, 5, 4, 3, 2, 9, 7, 8}, {2, 6, 5, 4, 3, 8, 9, 7}, {6, 2, 5, 4, 3, 7, 9, 8}, {3, 6, 2, 5, 4, 8, 7, 9}, {6, 3, 2, 5, 4, 9, 7, 8}, {4, 6, 3, 2, 5, 8, 9, 7}, {5, 4, 6, 3, 2, 7, 8, 9}, {2, 5, 4, 6, 3, 9, 7, 8}, {5, 2, 4, 6, 3, 8, 7, 9}, {3, 5, 2, 4, 6, 9, 8, 7}, {6, 3, 5,
2, 4, 7, 9, 8}, {4, 6, 3, 5, 2, 8, 7, 9}, {6, 4, 3, 5, 2, 9, 7, 8}, {2, 6,4, 3, 5, 8, 9, 7}, {5, 2, 6, 4, 3, 7, 8, 9}}}

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: