domingo, 12 de agosto de 2007

Ciclos X - Introducción a los Nice Loops.

Muchas de las técnicas vistas hasta aquí, tales como las de la familia X-Wing y las de Colores, se aplican a un único dígito. Una familia de técnicas llamadas Nice Loops extiende algunas ideas básicas que pertenecen a dígitos únicos para crear una poderosa herramienta lógica. En cierto sentido, Nice Loops unifica varias técnicas en una teoría mayor, que nos permite penetrar hasta las profundidades del sudoku.

Los Ciclos X son un subconjunto de Nice Loops que son fáciles de identificar. Con la técnica Colores hemos considerado los enlaces fuertes, pares de números en una unidad (fila, columna o caja). Con los Ciclos X estamos pensando en combinar alternadamente enlaces fuertes y débiles. Como veremos, el X-Wing es un Ciclo X simple.

Antes de comenzar, necesitamos ser levemente más formales para distinguir entre enlaces fuertes y débiles - los dos tipos de conexiones entre celdas que contienen el mismo dígito candidato. Estos dos tipos son denominados respectivamente, enlaces con inferencia fuerte y enlaces con inferencia débil.


En la estructura del X-Wing, en la figura, tenemos dos enlaces con inferencia fuerte, en las filas segunda y octava, los cuales están marcados con línea continua. Debido a que hay sólo dos 8 en cada fila, sabemos que si uno no es un 8, el otro debe ser. Un enlace fuerte es donde:

!A =>B (si no es A, entonces es B)

Los enlaces débiles son exactamente lo contrario:

A => !B (si es A, entonces no es B)

Nuestros enlaces débiles en el X-Wing están en las columnas donde residen más de dos 8. Pretender que uno de ellos no es la solución no significa que todos los otros son la solución. Sólo un par tiene esta característica. Dibujamos un enlace débil con una línea segmentada y ponemos un -X en esa línea (en este caso, -8) para marcarlo como un enlace débil. Los enlaces fuertes son marcados con +8.

Un Ciclo, como implica el nombre, es un loop de un dígito único con enlaces fuertes y débiles que se alternan, como el X-Wing que se muestra en la figura de arriba. En la figura que sigue, tenemos un Sword-Fish mostrando los enlaces fuertes y débiles. El loop se caracteriza por ser un Ciclo X, con enlaces fuertes y débiles alternados.




La notación de un Ciclo X, para explicar un diagrama tiene la siguiente nomenclatura:

x[celda 1]-x[celda 2]=x[celda 3]-x[celda 4]=

Donde X es el dígito, el signo - significa un enlace débil y el signo = es un enlace fuerte. El Sword-Fish de la figura de arriba puede ser expresado así:

5[f2c2]-5[f2c4]=5[f8c4]-5[f8c8]=5[f5c8]-5[f5c2]=

Donde -por ejemplo- [f8c4] significa la celda que está ubicada en la intersección de la fila 8 con la columna 4.

La única cosa no explícita en esta notación es que la última celda se vuelve a unir a la primera celda. Esto es, 5[f5c2]=5[f2c2]. El comienzo del loop es arbitrario, pero es conveniente usar la celda más cercana al vértice superior izquierdo del sudoku. Nótese que los loops pueden ser de cualquier longitud (número de celdas que intervienen en él).

Todo esto puede resultar por ahora un poco complejo, pero se irá aclarando en las próximas semanas cuando empiece a explicar las tres reglas de los Nice Loops. La introducción de hoy día sirve para sentar las bases del lenguaje necesario para explicar y entender estas tres reglas.

Como resumen, en esta entrada se ha explicitado la teoría de los enlaces fuertes y débiles. Se introdujo el concepto de inferencia fuerte y débil (sobre los cuales volveremos más adelante), se explicó que los Nice Loops son loops en que se van alternando enlaces fuertes y débiles, y se dijo que los Ciclos X son un subconjunto de Nice Loops en que se encadenan enlaces de un único dígito. Esto es lo que hay que sacar en limpio de esta entrada. Con eso se podrá entender lo que sigue. En las tres semanas que siguen voy a explicar las tres reglas de los Nice Loops.

Pásenlo bien.

No hay comentarios.: