Modelo de Solución
3.3. Representación del estado del problema
Para poder resolver el problema es necesario establecer una forma adecuada de re-
presentarlo. La representación utilizada en este trabajo hace uso de algunas de las ideas presentadas por Farías Zárate [9]. El estado del problema está definido por ocho núme- ros reales. Estos ocho números representan las características del estado del problema en un momento dado y un noveno valor representa la heurística a aplicar ante dicho estado del problema. De los ocho números reales designados para la representación de las características del estado del problema, el primer número indica el porcentaje de variables que restan por instanciar (vj ). El segundo valor representa el porcentaje de
los valores de los dominios que restan por instanciar (dj ). El tercer valor indica el por-
centaje de restricciones que quedan en el problema (cj ). Los siguientes cuatro números
están relacionados con lo conflictivo de las restricciones entre las variables que todavía no han sido instanciadas. Para esto, se difinió una clasificación para poder categorizar las restricciones con base en sus conflictos:
• Restricciones altamente conflictivas. Aquellas que prohiben una fracción pc > 0.55
de asignaciones posibles.
• Restricciones medianamente conflictivas. Restricciones con un valor 0.45 < pc <
0.55.
• Restricciones poco conflictivas. Aquellas que prohiben una fracción pc < 0.45 de
asignaciones posibles.
Es apropiado señalar que los valores utilizados para la clasificación de las restric- ciones se obtuvieron mediante experimentación. Se generaron una serie de problemas y se buscó que la distribución entre las tres categorías fuese similar para la mayoría de los problemas. De esta manera, los valores 0.45 y 0.55 fueron seleccionados como límites entre las categorías.
Con base en lo anterior, el cuarto número de la representación especifica el por- centaje de restricciones altamente conflictivas que conserva el problema ( lcj ). El quinto
número representa el porcentaje de restricciones medianamente conflictivas (mcj) y el
sexto número muestra el porcentaje de restricciones poco conflictivas( scj ). Los dos
siguientes valores representan el valor de los factores rho (r) y kappa (k), respectiva- mente. Todos estos valores se normalizan en el rango [—3,3] y las razones de dicha normalización se presentan en secciones posteriores.
Para cada estado del problema existe un valor que es usado para especificar la heurнstica de ordenamiento (h) asociada al estado del problema definido por los primeros ocho valores. A diferencia de los ocho valores utilizados para representar el estado del problema, el valor h no es normalizado y se representa directamente con un valor entero en el rango [0, 6]. A continuaciуn se detalla la representaciуn del estado del problema: 1. Porcentaje de variables que quedan por instanciar (v). El porcentaje de variables que quedan por instanciar sirve como una medida de quй tan avanzado se encuen-
tra el proceso de solución. El número máximo de variables para esta investigación es 25. Esto último con base en los resultados presentados en [28] y [4].
2. Porcentaje restante de valores en el dominio variables que quedan por instanciar (d). Se considera que el tamaño de dominio es uniforme al generar el CSP, es decir, todas las variables del problema tienen el mismo tamaño de dominio al inicio del problema. El tamaño máximo del dominio en este trabajo es 20. 3. Porcentaje de restricciones en el problema (r). El porcentaje de restricciones que
permanecen en el subproblema con respecto al problema inicial. Debido a que el proceso de solución irá eliminando variables mientras transcurra, el promedio de restricciones por variable es una medida de restrictividad que se irá modificando a lo largo del proceso.
4. Porcentaje de restricciones altamente conflictivas (lc). El porcentaje de restric- ciones en el subproblema cuyos conflictos prohiben una fracción pc > 0.55 de
asignaciones posibles. Debido a que el número de conflictos cambia conforme se avanza en el proceso de solución, este valor representa una buena alternativa para medir el progreso de la búsqueda de la solución.
5. Porcentaje de restricciones medianamente conflictivas (mc). El porcentaje de res- tricciones en el subproblema cuyos conflictos prohiben una fracción 0.45 < pc <
0.55 de asignaciones posibles.
6. Porcentaje de restricciones poco conflictivas (sc). El porcentaje de restricciones en el subproblema cuyos conflictos prohiben una fracción pc < 0.45 de asignaciones
posibles.
7. Factor rho (r). El factor rho se calcula tal como se mostró en la sección an- terior para la heurística rho. Este factor utilizado como un elemento más para caracterizar el estado el problema.
8. Factor kappa (k). El factor kappa se calcula tal como se mostró en la sección anterior para la heurística kappa. Este factor es una medida de restrictividad comúnmente utilizada para este tipo de problemas.
Cada cromosoma estб compuesto por bloques, y cada bloque estб compuesto a su vez por nueve nъmeros reales: vj , dj , cj ,lcj , mcj ,scj , rj , kj y hj. La representaciуn por bloques es congruente con la representaciуn del estado del problema presentada en los pбrrafos anteriores. La figura 3.3 muestra un bloque de representaciуn del estado del problema.
Figura 3.3: Representaciуn de los bloques pertenecientes a los cromosomas. Para un problema en particular, los primeros ocho nъmeros definen las caracterнsti-
cas de la instancia, de tal manera que el estado actual del problema es un punto dentro de un cubo de ocho dimensiones. De esta forma, los bloques en el cromosoma repre- sentan un número de puntos, y en cada paso del proceso de solución se deberá aplicar la acción asociada (heurística de ordenamiento de variables) al punto más cercano al estado actual del problema. Para determinar cuál es el punto más cercano al estado actual del problema se obtiene la distancia entre el punto representado por el bloque y el punto representado por el estado actual del problema, utilizando la distancia eu- clidiana (3.1) en donde (v, d, c, lc, mc, sc, r, k) representan un posible estado del problema contenido dentro de un bloque del cromosoma y (v', d', c', Ic', mc', sc', r', k') el estado actual P' del problema que se está resolviendo. Con base en el trabajo realizado por Ross [29], los puntos definidos en los cromosomas pueden estar fuera de este cubo ampliando el rango de valores posibles de —3 a 3. La finalidad de este ajuste es ampliar el espacio en donde los puntos puedan ocurrir. Si se consideran las esquinas del hipercubo, los puntos muy cercanos a dichas esquinas pueden quedar más cercanos a puntos fuera del mismo que a puntos en el interior del hipercubo.
(3.1)
donde v = (v - v') , d=(d- d'), c = (c - c'), lc = (lc - lc'), mc = (mc - mc'), sc = (sc - sc'), r = (r - r') y k = (k - k').
3.3.1. Conjunto de heurísticas simples
Como se mencionó anteriormente, cada cromosoma dentro del algoritmo genético deberá asociar un estado del problema con una heurística de ordenamiento de variables. En total se consieran siete heurísticas de ordenamiento para este trabajo: Fail-First,
Fail-First modificada, Grado de saturaciуn, Rho, E(N), Kappa y Min-Conflicts. Todas estas heurнsticas se explicaron en la secciуn de marco teуrico. El valor de la heurнsticas de ordenamiento asociadas a cada estado del problema se presenta en la tabla 3.1. Cuadro 3.1: Valores para representar la heurнstica asociada a cada estado del problema. Heurнstica Fail First Rho Kappa E(N) Bz
Fail First Modificada
Min-Conflicts Valor 0 1 2 3 4 5 6
3.3.2. Operadores
En esta investigaciуn se hace uso de los operadores de cruce y mutaciуn utilizados por Farнas Zбrate [9]. Operadores de cruce A continuaciуn se detallan los operadores de cruce utilizados en esta investigaciуn: 1. Cruce simple Este operador de cruce simple trabaja a nivel de bloques. Este operador inter-cambia el 10% de los bloques entre padres, es decir, el hijo uno estará formado por el 90% de los padres del primer padre y por el 10% del segundo padre. De la misma manera, el hijo dos tendrá el 90 % del segundo padre y el 10 % del pri- mero. Los bloques que representan el 10% de cada cromosoma son seleccionados de forma aleatoria. La figura 3.4 muestra un ejemplo de de este cruce. El padre
A y B están formados por cinco y cuatro bloques respectivamente. Para ambos
cromosomas el 10 % es un bloque, el cual es elegido aleatoriamente en cada uno de los cromosomas. En este caso, supóngase que para el padre A se eligió el bloque
dos y para el padre B se eligió el bloque cuatro. De esta manera, el primer hijo es-
tará formado por todos los bloques del padre A con excepción del bloque dos que
será aportado por el padre B. Por otro lado, el segundo hijo estará formado por
todos los bloques del padre B, con excepción del bloque cuatro que será aportado
Figura 3.4: Cruce simple.