Вы находитесь на странице: 1из 8

Un Algoritmo Evolutivo Paralelo Adaptativo para el problema del Corte con Guillotina en 2D

J.I. Pelaez.1) D. La Red 2) A. Mesas.1) J.M. Doa. 1) ) J.Veintimilla 3)


1)

Dpto. de Lenguajes y Ciencias de la Computacin Universidad de Mlaga. Mlaga 29071. Espaa E-mail: jignacio@lcc.uma.es Dpto. de Informtica Universidad Nacional del Nordeste Corrientes. Argentina E-mail: lrmdavid@exa.unne.edu.ar
2)

3)

Dpto. de Ingeniera Civil Materiales y Fabricacin Universidad de Mlaga. Mlaga 29071. Espaa E-mail: jveintimilla@uma.es una lmina en segmentos rectangulares donde se deben ubicar piezas de tamao y valor dado, de manera que se maximice la suma de los valores de las piezas cortadas. Una de las caractersticas del problema CG2D es que utiliza un patrn de corte que solo permite cortar ininterrumpidamente desde un extremo a otro de la lamina, lo que se conoce como cortes vlidos. En la figura 1 se muestra una secuencia de cortes vlidos en la que cada nmero indica el orden de corte. Mientras que en la figura 2, se muestra una secuencia de cortes no vlidos.

Resumen
El corte con guillotina en 2D es un problema especialmente relevante en multitud de industrias tales como papeleras, textiles, madereras, metalrgicas..., en las que se requiere cortar lminas donde ubicar determinadas piezas, que tienen asociadas unas dimensiones y un valor, de manera que se maximice el beneficio. La utilizacin de tcnicas evolutivas paralelas, heursticas adaptativas y lgica borrosa, se han mostrado adecuadas para resolver problemas de optimizacin con excesivo costo computacional y un espacio de soluciones grande. El propsito de este trabajo es presentar un algoritmo evolutivo paralelo, basado en una bsqueda adaptativa borrosa por entornos para el problema del corte con guillotina en 2D, y comparar sus resultados con otros algoritmos evolutivos secuenciales y mtodos exactos. Palabras Clave: Problemas de Corte; Heursticas; Algoritmos Evolutivas Paralelos; Lgica Borrosa; Bsqueda Adaptativa; Optimizacin.

Figura 1.Secuencia vlida de corte con guillotina.

1 INTRODUCCIN
El problema del corte con guillotina en 2D, es un problema especialmente relevante en multitud de industria como metalrgicas, papeleras, madereras, textiles, etc. Disear algoritmos eficientes para este problema es de gran importancia para estas industrias por el aumento de rendimiento y competitividad que se obtendra al maximizar el beneficio de los cortes realizados. Bsicamente el problema del corte con guillotina en 2D (en adelante CG2D) consiste en dividir

Figura 2.Secuencia no vlida de corte con guillotina. De manera formal el CG2D se define como sigue: Sea A0 = ( 0 , 0 ) una lmina rectangular de largo 0 y ancho 0 y, sea R un conjunto de m piezas rectangulares ms pequeas

(1 , 1 ), ( 2 , 2 ),..., ( m , m ) , valor v1 , v2 ,..., vm

R1 , R2 ,..., Rm

con

dimensiones y mxima

cardinalidad b1 , b2 ,..., bm . El objetivo es construir un

patrn de corte vlido para A0 que maximice la suma del valor de las piezas cortadas usando no ms de bi replicas de cada rectngulo Ri en el patrn; y donde dicho patrn de corte cumpla las siguientes restricciones: 1. 2. Todas las dimensiones ( i , i ) para i = 1, 2,, m son enteros a lo largo del eje-x o el eje-y. La orientacin de las piezas se considera fija (una pieza de longitud e y ancho f es distinta de otra de longitud f y ancho e).

Las tcnicas tradicionales, como la mostrada en el algoritmo [9], se muestran efectivas en problemas pequeos, no as en problemas de mayor tamao debido a que como es bien sabido el corte con guillotina es un problema NP-Completo. Por ello, en los ltimos aos, las tcnicas de inteligencia artificial, especialmente los algoritmos evolutivos (EA), se han mostrado muy adecuados para resolver problemas de este tipo [4] [5] [11]. As por ejemplo en [5], se propone un algoritmo gentico (que tambin ser utilizado ms adelante para comparar los resultados con el algoritmo propuesto en este trabajo) que resuelve el problema del CG2D. La aplicacin de algoritmos evolutivos a problemas de un gran espacio de bsqueda, como el CG2D, con costosas funciones de evaluacin, y utilizando grandes tamaos de poblaciones, hace que sea necesaria la realizacin de implementaciones lo ms rpidas posibles, esto hace que la tendencia que hoy da se est siguiendo sea la paralelizacin del algoritmo evolutivo. La utilizacin de algoritmos evolutivos paralelos (PEAs) es una forma de aliviar problemas como: largos tiempos de ejecucin y necesidades de memoria excesivas para resolver problemas complejos [2]. Pero no es slo una simple versin ms rpida de un algoritmo evolutivo de ejecucin secuencial, ya que la bsqueda en paralelo nos permite disminuir la probabilidad de caer en ptimos locales (gracias a la evolucin de cada poblacin de forma independiente, el hecho de que una poblacin quede atrapada en un optimo local no significa que todas queden en un optimo local, adems en el proceso de comunicacin al combinar y/o intercambiar individuos de distintas poblaciones existe la posibilidad de que una poblacin que estaba atrapada en un optimo local escape del mismo), obtener soluciones simultneamente y trabajar con dominios multiobjetivo. Los Algoritmos Evolutivos secuenciales (EA) utilizan una nica poblacin sobre la que aplican los operadores de seleccin y de variacin, estos algoritmos se basan en una filosofa de mejora iterativa. A este tipo de Algoritmos de una nica poblacin se les denomina en panmixia. Los modelos de algoritmos en panmixia pueden paralelizarse fcilmente usando un modelo maestro/esclavo, en el cual el maestro ejecuta el algoritmo secuencial tradicional y enva a los procesadores esclavos los individuos para su evaluacin en paralelo. Este modelo es denominado paralizacin global, el cual nos permite mejorar la computacin en los casos en los cuales la funcin de evaluacin es costosa, pero el algoritmo subyacente sigue siendo el mismo que en el caso secuencial. Una forma de conseguir una mejor paralelizacin consiste en modificar la estructura de la poblacin de tal forma que el algoritmo evolutivo paralelo (PEA) sea un algoritmo compuesto por mltiples subalgoritmos

En adelante y con el propsito de distinguir entre las piezas dadas en un conjunto R y los rectngulos producidos por los cortes en A0 en cada etapa durante el proceso de corte, nos referimos a las primeras como piezas y a las segundas como rectngulos. Desde los aos 60 se han diseado distintos tipos de algoritmos para solucionar este problema. Para ello se han utilizado desde tcnicas tradicionales como programacin dinmica o lineal [7][8][9][10], mtodos heursticos [3], y finalmente tcnicas de inteligencia artificial [5][11]. Dentro de las tcnicas tradicionales para resolver el problema CG2D destaca el algoritmo propuesto en [9] (que ser utilizado ms adelante para comparar los resultados con el algoritmo propuesto en este trabajo) que utiliza la tcnica de Ramificacin y Poda conjuntamente con Programacin Dinmica. Este algoritmo presenta un rbol de bsqueda para solucionar el problema del corte con guillotina, donde el tamao del rbol est limitado por una poda, que ha sido derivada en base a un espacio de soluciones relajadas con una formulacin del problema mediante programacin dinmica. Bsicamente este algoritmo consta de los siguiente pasos: En primer lugar determina el nmero de veces que se puede repetir cada pieza, acotando de esta manera la cardinalidad de las piezas; en segundo lugar, el algoritmo determina todas la combinaciones posibles de cortes tanto verticales como horizontales, acotando de esta manera los puntos de corte; en tercer lugar, determina una solucin heurstica para el problema, solucin que puede ser obtenida mediante un algoritmo voraz y que ser utilizada para recalcular el peso de las piezas; en cuarto lugar, calcula una cota superior para el problema mediante un algoritmo de programacin dinmica, con el objetivo de determinar los cortes que establecen las piezas; en quinto lugar, mediante la tcnica de ramificacin y poda, se determina si la solucin dada en el paso cuarto es factible. En caso de ser factible la solucin, dicha solucin es la ptima, en caso contrario, se realiza un reajuste en los pesos de las piezas con el objetivo de acotar el espacio de bsqueda y facilitar una solucin.

elementales, cada uno de los cuales ejecuta un EA sobre una poblacin distinta. Cada subalgorimo (Figura 3) es ejecutado normalmente de forma secuencial sobre una poblacin independiente, adems se incluye una fase adicional de comunicacin con el resto de los subalgoritmos (en esta fase se produce un intercambio de individuos entre las distintas poblaciones, intercambio de valores estadsticos).
Begin t :=0 Generacin(P(t)) While (No cumplido criterio parada) Do Evaluar(P(t)) Seleccionar (P(t)) Aplicar Operadores Reproduccin (P(t)) P(t+1) := Reemplazar(P(t)) COMUNICACION t:=t+1 EndDo Devolver Mejor Solucin Encontrada End

segunda seccin se muestran la heurstica evolutiva adaptativa borrosa Fans; en la tercera seccin, se presenta el algoritmo propuesto y se comparan sus resultados con otros algoritmos; y finalmente, se muestran las conclusiones y futuros trabajos. 2. HEURISTICAS FANS Fans se define como un mtodo de bsqueda por entornos, adaptativo y borroso [1] [6]. Es un mtodo de bsqueda por entornos porque el algoritmo realiza transiciones desde una solucin de referencia a otra de su entorno, produciendo trayectorias o caminos. Es adaptativo porque su comportamiento vara en funcin del estado de la bsqueda y finalmente es considerado borroso porque las soluciones son evaluadas, adems de la funcin objetivo, mediante una valoracin borrosa que representa algn concepto subjetivo o abstracto. Fans est basado en cuatro componentes principales: uno o varios operadores para construir soluciones; una valoracin borrosa para cuantificarlas; un administrador de operacin para adaptar el comportamiento o caractersticas del operador; y un administrador de vecindario para generar y seleccionar una nueva solucin. En la figura 4 se muestra el esquema de la heurstica Fans.
Begin /* O : operador de modificacin */ /* () : valoracin difusa */ /* Scur; Snew : soluciones */ /* NS: administrador de vecindario */ /* OS: administrador de operacin */ Inicializar Variables(); While ( not-fin ) Do /* Ejecutar Admin. de Vecindario NS */ Snew = NS(O ; (); Scur); If (Snew es buena'' en base a ()) Then Scur := Snew; adaptar-Valoracion-Difusa((); Scur); Else /* No fue posible encontrar una solucion buena con el operador actual. Sera modificado */ O:= OS-ModificarOperador(O); endIf If (HayEstancamiento?()) Then Escape(); endIf endDo End.

Figura 3. Esquema general de un Sub-Algoritmo Evolutivo Paralelo. Los diferentes tipos de PEAs segn la forma de realizar sus comunicaciones son: - Comunicacin Sncrona: El Sub-Algoritmo evolutivo para y espera para recibir informacin de otros procesadores antes de proceder con la siguiente poblacin. - Comunicacin Asncrona : En este esquema el Sub-Algoritmo evolutivo no se detiene para esperar a otros procesadores ms lentos Segn las caractersticas de los Sub-Algoritmos, los PEAs se pueden clasificar en: Distribuido: un gran nmero de individuos por poblacin y un nmero no muy elevado de SubAlgoritmos. Celulares: normalmente un nico individuo por poblacin y un gran nmero de Sub-Algoritmos. En Panmixia: que utiliza un esquema maestro esclavo, en el cual el maestro ejecuta el algoritmo secuencial tradicional, pero enva a los procesadores esclavos los individuos para su evaluacin en paralelo.

En los ltimos aos la utilizacin conjunta de algoritmos evolutivos, bsquedas adaptativas por entornos, lgica borrosa y computacin paralela se ha mostrado muy adecuada para resolver problemas NP, los cuales requieren gran cantidad de recursos y tiempos de cmputo excesivos [1] [6]. En este trabajo se presenta un algoritmo evolutivo paralelo adaptativo mediante valoraciones borrosas, para resolver el problema CG2D. Para ello el trabajo ha sido organizado como sigue: En la

Figura 4. Esquema general de FANS. Donde: El operador de Modificacin. Este operador lo que hace es que dada una solucin de referencia S construye nuevas soluciones vecinas a partir de dicha solucin.

Valoracin Borrosa. En el contexto de Fans las soluciones son evaluadas (adems de la funcin objetivo) en trminos de la valoracin borrosa. La motivacin de este aspecto parte de la idea que en ocasiones se suele hablar de soluciones diferentes, similares, razonables, etc, siendo estas caractersticas de naturaleza subjetiva o vaga. Una forma de modelar adecuadamente este tipo de concepto, como se hace en Fans, es representando las valoraciones borrosas mediante un conjunto borroso. Administrador de Operacin. Fans utiliza varios operadores de modificacin en el proceso de bsqueda y el administrador de operacin es el responsable de definir el esquema de adaptacin y orden de aplicacin de los diferentes operadores utilizados. El cambio de operador, o lo que es lo mismo, la ejecucin del administrador, puede realizarse en cada iteracin, o cuando el estado de la bsqueda as lo requiera. Esta adaptacin puede estar basada en estadsticos del algoritmo tales como cantidad de evaluaciones de la funcin costo realizadas, o teniendo en cuenta medidas particulares del proceso de bsqueda, como por ejemplo el nmero de iteraciones sin cambios en la mejor solucin hallada, etc. En este esquema este operador ajustar los parmetros de manera que el operador sea diferente. Operador de Vecindario. Este componente es el responsable de generar y seleccionar una nueva solucin del vecindario. Fans utiliza dos tipos de vecindario: el operativo (conjunto de soluciones vecinas); y el semntico (soluciones vecinas que pueden ser aceptadas).

3.1. ESQUEMA DEL ALGORITMO PARALELO El esquema evolutivo paralelo que se ha utilizado para solucionar el problema del CG2D ha sido un evolutivo paralelo de comunicacin sincrona y tipo celular. El esquema es sncrono porque el algoritmo realiza un proceso de seleccin de poblaciones eliminando aquellas que no superan los criterios de evolucin establecidos (p.e. valor de beneficio mnimo para seguir evolucionando), y potenciar aquellas que por el contrario si los supera. Esta potenciacin se realiza mediante la creacin de nuevas poblaciones con las mismas caractersticas que las poblaciones supervivientes (explicado en 3.3). El esquema es celular, porque el proceso evolutivo se realiza sobre un solo individuo por poblacin. El nmero de poblaciones iniciales se determinar como sigue: En primer lugar se realizar una acotacin de mximo nmero de etapas de corte (cortes realizados) que puede tener un individuo, para esto se utilizar el siguiente heurstico: se ordenaran las piezas de menor a mayor segn su rea y se escogern piezas hasta que su suma no supere el rea de la lmina inicial (sin importar restricciones de cortes). Una vez determinado el nmero de piezas que podemos ubicar, sabremos el nmero mximo de cortes (n piezas -1). Finalmente se crear una poblacin que represente a cada una de las etapas posibles [0 Maximo etapas]. En la figura 5 se muestra el esquema de evolucin para cada subalgoritmo. Este muestra como el proceso de seguido para la realizacin de mutaciones esta determinado por la tcnica Fans.
Begin t :=0 Inicializar Variables(); GeneracinSolucinInicial(P(t)) While (MejorSolucionEncontrada>=media) Do P(t+1) :=EvolucinMedianteFANS(P(t)) t=t+1 ComunicacinMejorSolucinObtenida EndDo Devolver Mejor Solucin Encontrada End

3. ALGORITMO EVOLUTIVO PARALELO ADAPTATIVO


En esta seccin se presenta una solucin para el problema del CG2D mediante un algoritmo evolutivo paralelo adaptativo, en el que cada poblacin evolucionar siguiendo el esquema de bsqueda de soluciones Fans. La seccin ha sido organizada como sigue: En primer lugar se presenta el esquema general del algoritmo; en segundo lugar se presenta la estructura de los individuos, composicin de cada una de las poblaciones y la comunicacin entre las distintas poblaciones; en tercer lugar se describen los componentes de Fans: la valoracin borrosa, el operador de modificacin, el administrador de vecindario y el administrador del operacin; y para finalizar, se comparan los resultados con otros algoritmos.

Figura 5. Sub-algoritmo ejecutado en cada procesador. 3. 2. ESTRUCTURA DE LOS INDIVIDUOS La estructura de Los individuos para el problema del CG2D viene condicionada por una serie de decisiones que se deben tomar a lo largo del proceso de corte, y que son las siguientes: 1. Qu rectngulo cortar entre los disponibles.

2.

Qu tipo de corte realizar, es decir, realizar un corte en una coordenada x (cortes-x), realizar un corte en una coordenada y (corte-y), o ubicar una determinada pieza en un rectngulo, esta decisin ser denominada corte-0. Por dnde realizar el corte o qu pieza elegir. En nuestro caso la asignacin de piezas a los rectngulos se realiza conforme se van generando los rectngulos, siendo la pieza elegida para cada rectngulo la pieza de mayor beneficio que este disponible.

en ultimo lugar una vez tengamos un cromosoma Tipocorte que defina un una estructura de un individuo valido, se generar el cromosoma Corte (generando el valor de los cortes de forma aleatoria) La regla de los Parntesis nos permite determinar si un individuo describe una secuencia de cortes vlida. Esta regla consiste en lo siguiente: si se representan los cortesx y los cortes-y como parntesis abiertos y los cortes-0 como parntesis cerrados, y aadimos un parntesis inicial abierto, siempre debe darse una estructura correcta de parntesis. A continuacin se muestra un ejemplo: Ejemplo de cromosoma vlido: Cromosoma Tipo_Corte: x, y, 0, x, 0, 0, 0 Regla del Parntesis: ( ( ( ) ( ) ) ) Ejemplo de cromosoma no valido: Cromosoma Tipo_Corte: x, 0, 0, x, 0, 0, 0 ( ( ) ) ( ) ) ) Regla del Parntesis: En este ejemplo se han realizado dos cortes en el eje x, con el que obtendramos tres rectngulos, y cinco cortes de tipo 0, que serian imposibles de realizar, ya que solamente disponemos de tres rectngulos donde ubicar tres piezas. La representacin de cada individuo dada tiene la posibilidad de clasificar las soluciones segn el nmero de etapas de las mismas, est propiedad nos permite de forma sencilla clasificar los individuos en varias poblaciones correspondiendo cada una de ellas a las distintas poblaciones que se generarn. Las poblaciones evolucionan de forma totalmente paralela y el proceso de comunicacin entre las distintas poblaciones consiste en realizar una seleccin de entre todas las poblaciones y eliminar aquellas que no superen los criterios de evolucin, por ejemplo, en este trabajo hemos considerado que una poblacin no debe seguir evolucionando si su valor solucin no mejora el valor medio de todas las poblaciones. Cada vez que se elimine una poblacin, al no superar los criterios de evolucin, se crear una nueva poblacin. El nmero de etapas del individuo de la nueva poblacin se determinar como se describe a continuacin: se agruparn las poblaciones supervivientes segn el nmero de etapas de los individuos, y de entre los conjuntos de menor cardinal, se seleccionar aquel cuyo individuo tenga mayor valor de funcin de adaptacin (fitness). Destacar que las poblaciones evolucionaran de forma desacoplada unas de otras, no producindose ningn cruce del individuo de una poblacin con el individuo de otra poblacin, si estos no tienen el mismo nmero de etapas, ya que como se describe en [5] no es viable mezclar individuos de distinto nmero de etapas. Por el contrario, si existen varias poblaciones con el mismo nmero de etapas s se cruzarn estos individuos.

3.

En base a estas decisiones se ha establecido que la estructura de los individuos estar representada por dos cromosomas: El primer cromosoma llamado Tipo-Corte que indica la secuencia de cortes a realizar, siendo los posibles valores: y (Corte tipo-y, en una coordenada y) , x (Corte tipo-x, en una coordenada x) y 0 (Corte tipo-0 ubicar una determinada pieza en un rectngulo generado). Y siendo su estructura la siguiente : Tipo-Corte : {x|y|0} [,{x|y|0}]. El segundo cromosoma llamado Corte que indica por las coordenadas (absolutas) por las que se realiza el corte y su patrn es el siguiente: Corte: {coordenad_corte} [,{coordenada_corte}].

En la figura 6 se muestra un ejemplo de individuo valido que estara compuesto por los dos siguientes cromosomas: Tipo-corte: x, y, 0, 0, 0 ; Corte: 30, 20 A0 corte-x corte-y corte-0 corte-0 corte-0

Figura 6. Representacin de una Secuencia de Corte. La generacin del individuo que formar una poblacin se realiza de la siguiente forma: En primer lugar se generar el cromosoma Tipo-corte, para ello se generarn el nmero de cortes necesarios (segn el nmero de etapas corte que deba tener) y elegir de forma aleatoria el tipo de corte (0, x y); En segundo lugar se determinar si la estructura del individuo es valida, para ello se utilizar la regla del parntesis (descrita ms adelante), y

3.3. VALORACIN BORROSA La valoracin borrosa que se utiliza para aceptar un individuo vecino, obtenido despus de realizar una mutacin sobre el individuo actual, se basa en una condicin de aceptabilidad. Los vecinos cuyo fitness mejore el del individuo actual, siempre sern aceptados, los individuos que empeoren un poco al actual, aunque en menor grado tambin sern aceptados; mientras que aquellos individuos mucho peores que el actual no sern considerados. La funcin borrosa de aceptabilidad que ha sido utilizada es la siguiente:

3.5. ADMINISTRADOR DE OPERACIN El administrador de operacin es el responsable de definir el esquema de adaptacin de los operadores as como el orden de aplicacin con el objetivo de guiar el proceso evolutivo. El esquema de adaptacin utilizado es el siguiente: inicialmente se aplica el Operador Tipo Corte, realizando un nmero modificaciones igual al parmetro k. En el momento en el que no consiga encontrar un individuo vecino que sea mejor en trminos de la valoracin borrosa, se reducir el nmero de mutaciones a realizar por ese operador (k). Cambio de operador. Una vez agotadas todas las posibilidades con el operador Tipo de Corte (k=0) se cambiar al Operador Corte. Al comenzar la utilizacin del siguiente operador la secuencia de cortes ya estar fijada por el operador anterior. A partir de ese momento se decidir como realizar la secuencia de cortes fijada anteriormente, modificando para ello nicamente las coordenadas por las que se realizarn los cortes. Este proceso gua la bsqueda hasta el ptimo (local) que halla fijado el Operador Tipo de Corte. 3.6. ADMINISTRADOR DE VECINDARIO El administrador de vecindario es el responsable de seleccionar un nuevo individuo del vecindario. Como esquemas de administracin podemos usar los siguientes: Best: generados n vecinos se mueve a la que obtenga mejor valoracin borrosa. Bestf: generados n vecinos y de entre todos los que tengan la misma valoracin se mueve a aquel que obtenga mejor valoracin segn su funcin fittnes. FIRST: se mueve al primer vecino que sea aceptable segn la valoracin borrosa. Por ejemplo el administrador First se usara como sigue: dado un individuo s, el operador de modificacin obtendr individuos del vecindario operativo, los cuales sern analizados utilizando la valoracin difusa () y un nivel mnimo de calidad requerido . La regla de seleccin empleada establece que se devolver el primer nuevo individuo n que verifique (n,s) > . El nivel mnimo de calidad requerido comienza con un valor, por ejemplo =0.7, aumentando hasta un valor =1, de esta forma se tiene una estrategia evolutiva que progresivamente aumenta su nivel de calidad. 3.7. MTODO DE ESCAPADA DE PTIMOS LOCALES Para poder escapar de ptimos locales se ha utilizado el concepto de multiarranque. Este consiste en que una vez se halla detectado que se encuentra en un optimo local, se comenzar la bsqueda por otro lugar distinto. Dicha

0.0

si f(n) < si f(s) f(n) (1)

(n,s) =

f (n) f (s) 1.0

si f(n) > f(s)

Donde f es la funcin fitness, s es el individuo actual, n es un individuo del vecindario operativo y es el lmite a partir del cual se considera a un individuo aceptable. El parmetro determina el lmite de lo que se considera aceptable, as pues, es el que determina en ltima instancia las soluciones que pertenecen al vecindario semntico. Siendo:

= f ( s ) * (1 )
El valor de empricas.

[0..1] .

(2)

se

fij en 0.3 a partir de observaciones

3.4. OPERADORES DE MODIFICACIN Los operadores de modificacin que se han utilizado para realizar las mutaciones han sido dos, los cuales estn sujetos a un parmetro k que determina el nmero de modificaciones o mutaciones. El modo de operacin elegido para el operador ha sido Flip, el cual realiza k modificaciones elegidas al azar no permitindose back mutacin. Dicho parmetro ir siendo adaptado por el administrador de operacin conforme el proceso evolutivo avance. El primero de los operadores ha sido denominado Operador Tipo Corte y define que cortes realizar, para ello modifica los tipos de corte a realizar cambiando la orientacin del corte: corte Tipo-x por un corte Tipo-y, o viceversa (cada vez que se modifique un tipo de corte se deber adaptar la coordenada por la que se realiza dicho corte, para que el individuo resultante sea factible). El segundo operador, denominado Operador Corte, indica cmo realizar los cortes modificando las coordenadas por las que se realizan los cortes.

condicin en nuestro problema se producir cuando una vez aplicados los dos operadores de modificacin, agotados los vecindarios generados con ese operador, y llevemos un nmero de evaluaciones vecinas, fijadas, sin mejorar el resultado, consideraremos que el algoritmo se ha estancado en un mnimo local. Entonces el mecanismo de escapada se aplicar como sigue: En primer lugar se comprobar si el resultado local obtenido hasta el momento obtiene mejor valoracin que la mejor solucin global por el algoritmo (el primer optimo local siempre ser la mejor solucin obtenida hasta el momento) en caso de ser mejor, se guarda dicha solucin como mejor global hasta el momento. Posteriormente se genera un individuo nuevo, totalmente aleatorio, para que el algoritmo contine su exploracin del espacio por otro lugar. Entonces se llamar al administrador de operacin, para que fije como operador inicial, el operador Tipo de corte y actualice su parmetro k al mximo valor. A continuacin se inicializar a cero el nmero de evaluaciones realizadas en la nueva bsqueda, y se aumentar el nmero de evaluaciones globales realizadas hasta el momento. 3.8. FINALIZACIN DEL PROCESO EVOLUTIVO FANS La ejecucin del algoritmo puede finalizar por dos motivos: En primer lugar, porque hallamos encontrado la solucin optima, valor que no es posible determinar salvo en el caso de que todas las piezas puedan ser ubicadas; y en segundo lugar, porque el nmero de evaluaciones totales no supere un mximo definido al comienzo de la ejecucin. 3.9. COMPARACION DEL ALGORITMO En este apartado se realiza una comparacin entre el algoritmo propuesto y los algoritmos que se han presentado al comienzo del presente trabajo [5] [9], utilizando para la comparativa las implementaciones que se realizaron en [9] y un sistema con 8 procesadores. Para realizar la comparativa no se han utilizado ejemplos de tamao mediano-grande, ya que como es bien sabido los mtodos exactos en este tipo de problemas no tienen un buen comportamiento, y en las pruebas realizadas rara vez el algoritmo exacto obtena una solucin, en un tiempo razonable. As pues los problemas utilizados para la comparativa han sido los descritos en la literatura por los autores de [5], de esta forma hemos podido comparar el algoritmo propuesto con un mtodo exacto, sobre problemas en los que un mtodo exacto posee un comportamiento adecuado. Por los motivos explicados anteriormente la comparativa se ha realizado sobre una muestra de 500 ejemplos de tamao pequeo mediano, generados de forma aleatoria como sigue: nmero de piezas distintas no superior a catorce, con dimensiones ( i , i ) siguiendo

una distribucin uniforme en el intervalo [1,0.75* 0 ] y [1,0.75* 0 ] respectivamente. La cardinalidad de cada pieza se obtuvo siguiendo una distribucin uniforme en el intervalo [1,5]. Finalmente, el valor asociado a cada pieza fue el rea que posee. En la tabla 1 se presenta los resultados de la comparacin entre el algoritmo propuesto y un algoritmo exacto [9]. Esta comparativa, posee gran importancia ya que nos da una idea de lo prximo que se est de la solucin ptima. Tabla 1. Comparacin entre el Algoritmo Exacto y el Algoritmo propuesto. Esta muestra como el algoritmo evolutivo propuesto obtiene mejor solucin en un 51.3% Tamao de la Muestra 500 No Encuentra Solucin Igual Solucin parcial Mejor Solucin parcial Peor Solucin Algoritmo Exacto 38.9% 20% 28.7% 12.4%

En la tabla 2 se presenta los resultados de la comparacin entre el algoritmo evolutivo paralelo propuesto y el algoritmo gentico descrito en [5]. Estos resultados muestran que el algoritmo propuesto obtiene mejores resultados que el algoritmo gentico. Tabla 2. Comparacin Algoritmo Gentico y propuesto Tamao de la Muestra 500 Igual Solucin Mejor Solucin Peor Solucin Algoritmo Gentico secuencial 14.6% 47.3% 38.1%

4. CONCLUSIONES Y FUTUROS TRABAJOS


En este trabajo se presenta un algoritmo evolutivo paralelo adaptativo mediante valoraciones borrosas, para resolver el problema CG2D. Este algoritmo desarrolla una representacin gentica que permite clasificar los individuos segn el nmero de etapas de las mismas, propiedad que permite evolucionar en paralelo al algoritmo de una manera sencilla, adems de explorar de una forma ms intensa el espacio de soluciones. Adems se ha presentado un proceso evolutivo el cual esta basado en un mtodo de bsqueda por entornos, adaptativo y borroso. Para ello se han desarrollado varios operadores para construir la solucin; una valoracin borrosa para cuantificarlas; un administrador de

operacin para adaptar el comportamiento o caractersticas del operador; y un administrador de vecindario para generar y seleccionar una nueva solucin. Finalmente se ha comparado este algoritmo con un algoritmo exacto y un algoritmo gentico. Los resultados han mostrado que este algoritmo proporciona buenas soluciones en este tipo de problemas y abre una nueva lnea de investigacin donde se pueden aplicar diferentes operadores segn la evolucin que van experimentando en cada momento las soluciones, facilitando de esta manera la exploracin del espacio de bsqueda. Adems, nos permite aplicar de una manera ms relajada operadores, permitiendo de esta manera incorporar operadores que ayuden a obtener soluciones factibles para los usuarios. Este ltimo apunte es de especial relevancia ya nos permite obtener soluciones ptimas desde un punto de vista de usuario. RECONOCIMENTO Este trabajo esta apoyado por el proyecto TIC200204242-C03-02.

problem. European Journal of Operational Research, 110. Pg. 564-575, 1998. [4] E. Falkenauer. Genetic Algorithms and Grouping Problems. John Wiley and Sons. 1998. [5] J.I. Pelez, A.Mesas, J.M.Doa. Un algoritmo Gentico para el problema del corte con Guillotina en 2D. Actas del tercer congreso Espaol de Metaheursticas, Algoritmos Evolutivos y Bioinspirados. Pg. 30-36, 2004. [6] J.L. Verdegay, J.I. Pelez, D. Pelta, A. Mesas. Plataforma Adaptativa Borrosa para Problemas de Optimizacin: Fans. MA-58/04. (Disponible en Internet en

breve).

[7] Julien Antonio, Fabrice Chauvet, Chengbin Chu y Jean Marie Proth. The cutting stock problem with mixed objectives: Two heuristics based on dynamic programming, European Journal of Operational Research. 114. Pg. 395-402, 1999. [8] Mikuel Rnuqvist. A method for the cutting stock problem with different quaities. European Journal of Operational Reserach 83/1. Pg. 57-68, 1995. [9] Nicos Christofides y Eleni Hadjiconstantinou. An exact algorithm for ortogonal 2-D cutting problems using guillotine cuts. European Journal of Operational Research. 83. Pg. 21-38, 1995. [10] P.C. Gilmore, R.E. Gomory. Linear programming approach to the cutting stock problem. Operation Research 9. 1961. [11] R. Sharma, T. Balacahander, S. and, Q. Zhang. A genetic algorithm for the non-convex cutting stock problem. Transactions of the North American Manufacturing Research Institute. XXV. Pg. 281-286, 1997.

Referencias
[1] Armando Blanco, David A.Pelta, Jose L.Verdegay . FANS : una heurstica basada en conjuntos difusos para Problemas de Optimizacin. Revista IberoAmericana para la Inteligencia Articial N 19, Pg. 103-121, 2003. [2] E. Alba, A.J. Nebro, F. Chicano, Heterogeneidad, WAN y Nuevas Aplicaciones de los Algoritmos Evolutivos Paralelos. Alba E. et al. (eds.), Actas del Primer Congreso Espaol de Algoritmos Evolutivos y Bioinspirados (AEB'02), Mrida, pp. 402-409, 2002 [3] Enrico Faggioli y Carlo Alberto Bentivoglio. Heuristic and exact methods for the cutting sequencing

Вам также может понравиться