Page 137 - INTRODUCCIÓN AL ANÁLISIS DE ALGORITMOS
P. 137

INTRODUCCIÓN AL ANÁLISIS  DE ALGORITMOS


            Las restricciones explícitas pueden o no depender de una particular instancia I del problema a ser
            resuelto. Todas las tuplas que satisfacen a restricciones explícitas definen un posible espacio de so-
            lución para I. Las restricciones implícitas determinan cuál de las tuplas en un espacio de solución de
            I en realidad satisfacen la función del criterio. Así, las restricciones implícitas describen el camino en
            el cual las x deben de relacionarse una a otra.
                       i



            el proBleMa de laS ocHo reINaS (8-queeNS)



            Un problema combinatorio clásico es colocar las ocho reinas en un tablero de ajedrez de tal forma
            que no se puedan atacar entre ellas, es decir, que no existan dos reinas en la misma hilera, columna
            o diagonal, enumerando las hileras y columnas del tablero del 1 al 8, del mismo modo que se haría
            con las reinas. Ya que cada reina debe estar sobre una hilera diferente, se puede asumir que la reina i
            se colocará en la hilera i. Toda solución puede ser representada como 8 tuplas (x ,…, x ) donde x es
                                                                                        1     8        i
            la columna en la cual la reina i será colocada. La restricción explicita usando esta formulación será S
            = {1, 2, 3,…, 8}, 1 ≤ i ≤ n, por lo que el espacio de soluciones consta de 8  tuplas de 8. Una de las
                                                                                   8
            restricciones implícitas del problema es que dos x no deben de ser las mismas (esto es, toda reina
            debe de estar en diferente columna) y tampoco en la misma diagonal (figura 6.1). La primera restric-
            ción indica que todas las soluciones son permutaciones de las ocho tuplas (1,.., 8). Esto reduce el
            espacio de la solución de 8  tuplas a 8! tuplas.
                                      8


                                     Figura 6.1. Posiciones que puede atacar la reina



















            plaNteaMIeNto del proBleMa




            Como cada reina puede amenazar a todas las reinas que estén en la misma fila (figura 6.2), cada una
            ha de situarse en una fila diferente. Se pueden representar las ocho reinas mediante un vector [1-8],
            teniendo en cuenta que cada índice del vector representa una fila y el valor una columna. Así, cada
            reina estaría en la posición (i, v[i]) para i = 1-8.




                                                         131
   132   133   134   135   136   137   138   139   140   141   142