algoritmos heur sticos para el problema de optimizaci on...

73
Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computaci´ on Algoritmos heur´ ısticos para el problema de optimizaci´ on del ´ area de drenaje en yacimientos no convencionales de hidrocarburos Tesis presentada para optar al t´ ıtulo de Licenciado en Ciencias de la Computaci´on Christian Sebasti´an Russo Director: Javier Marenco Codirector: Diego Delle Donne Buenos Aires, 2017

Upload: others

Post on 17-Oct-2020

4 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

Universidad de Buenos AiresFacultad de Ciencias Exactas y Naturales

Departamento de Computacion

Algoritmos heurısticos para elproblema de optimizacion del area

de drenaje en yacimientos noconvencionales de hidrocarburos

Tesis presentada para optar al tıtulo deLicenciado en Ciencias de la Computacion

Christian Sebastian Russo

Director: Javier Marenco

Codirector: Diego Delle Donne

Buenos Aires, 2017

Page 2: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un
Page 3: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

ALGORITMOS HEURıSTICOS PARA EL PROBLEMA DEOPTIMIZACION DEL AREA DE DRENAJE EN

YACIMIENTOS NO CONVENCIONALES DEHIDROCARBUROS

En este trabajo se estudia el problema de optimizacion del area de drenajeen yacimientos no convencionales de hidrocarburos, con el objetivo de proponerun plan de explotacion del yacimiento que optimice la produccion total. Elproblema consiste en cubrir el mapa del yacimiento con pads rectangularesque tienen configuraciones predeterminadas, de modo tal que cada pad estecompletamente contenido en el yacimiento, los pads no se superpongan entresı, y las construcciones en superficie (llamadas locaciones) no se encuentrensobre accidentes geograficos ni construcciones existentes.

En un trabajo previo se presento un algoritmo basado en programacionlineal entera para este problema, que permitio resolver instancias reales peroque –dependiendo de los datos– puede generar soluciones con superposicionesentre los pads (dado que el modelo que se resuelve en la practica tiene algunasrestricciones relajadas, para manejar los tiempos de computo) y puede sufrirproblemas de memoria.

En este trabajo presentamos algoritmos heurısticos para este problema,que evitan estos inconvenientes. En particular, presentamos dos algoritmosgolosos, dos algoritmos basados en colonia de hormigas y dos algoritmosbasados en programacion lineal entera. El primer algoritmo goloso es senci-llo, y el segundo agrega un procedimiento de busqueda local para encontrarmejores soluciones. Ambos algoritmos trabajan sobre una discretizacion del ya-cimiento, y los tiempos de computo aumentan a medida que la discretizacionse refina. Para evitar esta situacion, se presenta ademas un algoritmo basadoen colonia de hormigas, que trabaja sobre el yacimiento en forma continua,ademas de evitar los problemas ya mencionados.

Finalmente, proponemos dos mejoras al procedimiento basado en progra-macion lineal entera previo, con el objetivo de evitar las superposiciones entrepads. El primer algoritmo resuelve previamente la relajacion lineal del mode-lo sobre una discretizacion limitada, utilizando a continuacion la informacionobtenida. En el segundo algoritmo se realizan modificaciones a la forma degenerar el modelo de programacion lineal entera, tambien con el objetivo deevitar las superposiciones entre pads. Presentamos experimentos computacio-nales para analizar la efectividad de los enfoques propuestos, y estudiar en quecasos conviene utilizar cada uno.

Palabras clave: yacimientos no convencionales, algoritmos golosos, coloniade hormigas, programacion lineal entera.

i

Page 4: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un
Page 5: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

HEURISTIC ALGORITHMS FOR THE PROBLEM OFOPTIMIZATION OF THE DRAIN AREA IN

UNCONVENTIONAL FIELDS OF HYDROCARBONS

In this work we study the problem of optimizing the operations of uncon-ventional oil and gas fields, with the objective of maximizing total output.The problem consists of covering the field map with rectangular pads havingprespecified configurations, in such a way that each pad is completely includedwithin the field, pads do not overlap, and surface structures (called locations)do not hit geographical accidents or existing buildings.

In a previous work, a linear programming based procedure was presentedfor this problem, and this procedure allowed to solve real-life instances, albeit-in some cases- producing plans with overlappings among the pads (since arelaxation is solved) and suffering from memory issues.

In this work we present heuristics for this problem, that avoid these is-sues. In particular, we introduce two greedy procedures, two ant colony basedalgorithms, and two integer programming based procedures. The first greedyalgorithm is quite simple, whereas the second one resorts to a local search inorder to find better solutions. Both algorithms use a discretization of the field,and running times increase as the discretization is refined. In order to avoidthis situation, we introduce procedures based on ant colonies, which do notdiscretize the field map.

Finally, we propose two enhancements to the existing procedure based oninteger programming, with the objective of avoiding pad overlappings. Thefirst of such procedures first solves the linear relaxation on a broad discretiza-tion, and takes advantage of this information in a second model. The secondprocedure is a direct modification of the existing algorithm, with the objectiveof avoiding pad overlappings. We present computational experiments studyingthe effectiveness of the proposed algorithms.

Keywords: Unconventional fields, greedy algorithm, ant colony, entire linearprogramming.

iii

Page 6: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un
Page 7: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

AGRADECIMIENTOS

En primer lugar, me gustarıa mencionar a Paula Zabala y Guillermo Duranpor haber aceptado ser jurados de mi tesis y por haberse tomado el trabajode leerla y evaluarla.

Al departamento de computacion y a la Universidad de Buenos Aires, porconvertirse en mi segundo hogar y por hacerme sentir siempre entre amigos.

A Javier y a Diego, mis directores, por la incansable paciencia, el incontabletiempo que destinaron y la guıa necesaria que me dieron.

A mis amigos de la vida, con quienes compartı y comparto los momentosmas especiales de mi vida y que perduran en el tiempo, como siempre imagineque serıa la amistad, a Emi, Euge, Gaston, Javi, Maxi, Mati y Nico.

A mis amigos de la facultad, con quienes compartı momentos de dificultady alegrıa, tardes de estudio, cafes, cervezas, asados, ping-pong y muchas cosasmas, a Alex, Alejandro, Emilio, Fer, Fede, Guido, July, Kari, Leo, Migue,Marto, Pupi, Saya y Vir.

A Ayelen, mi novia, quien me banco en todos los momentos difıciles, mealento a terminar y me apoya siempre.

A mi familia, por bancarme, acompanarme, apoyarme y aconsejarme entodo momento en que lo necesite, y cuando no tambien, a Alejandra, Facundoy Jimena.

A mis papas, los pilares de todo, por la cultura del trabajo, el esfuerzoy la perseverancia que supieron transmitirme. Sus palabras sirvieron de com-bustible en todo este camino. Por apoyarme en cada una de mis decisionestomadas. Me brindaron todo lo necesario para poder llegar aca de la mejorforma y estoy infinitamente agradecido.

Por ultimo, y no por eso menos importante pero sı un poco especial, aMarcelo, por mostrarme Exactas, por insistirme en estudiar esto, por metermeen este mundo y por querer siempre lo mejor para mi.

v

Page 8: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un
Page 9: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

A mama y papa.

Page 10: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un
Page 11: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

Indice general

1.. Introducion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1. Yacimientos no convencionales . . . . . . . . . . . . . . . . . . 11.2. Descripcion del problema . . . . . . . . . . . . . . . . . . . . . 21.3. Trabajos previos . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4. Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.. Algoritmos golosos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1. Introduccion teorica . . . . . . . . . . . . . . . . . . . . . . . . 112.2. Algoritmo goloso sencillo . . . . . . . . . . . . . . . . . . . . . . 122.3. Algoritmo goloso con busqueda local . . . . . . . . . . . . . . . 182.4. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . 24

3.. Algoritmos basados en colonia de hormigas . . . . . . . . . . . . . . 293.1. Introduccion teorica . . . . . . . . . . . . . . . . . . . . . . . . 293.2. Descripcion de los algoritmos . . . . . . . . . . . . . . . . . . . 31

3.2.1. Colonia de hormigas clasica . . . . . . . . . . . . . . . . 313.2.2. Colonia de hormigas con multiples feromonas . . . . . . 36

3.3. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . 37

4.. Mejoras al modelo entero . . . . . . . . . . . . . . . . . . . . . . . . 434.1. Algoritmo con relajacion lineal . . . . . . . . . . . . . . . . . . 43

4.1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . 434.1.2. Descripcion del algoritmo . . . . . . . . . . . . . . . . . 444.1.3. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.2. Algoritmo sin superposiciones . . . . . . . . . . . . . . . . . . . 494.2.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . 494.2.2. Descripcion del algoritmo . . . . . . . . . . . . . . . . . 494.2.3. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.. Discusion y Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . 555.1. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . 59

ix

Page 12: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un
Page 13: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

1. INTRODUCION

1.1. Yacimientos no convencionales

Un yacimiento petrolıfero es una acumulacion natural de hidrocarbu-ros (gas natural y petroleo, entre otros) en el subsuelo. La explotacion con-vencional de hidrocarburos consiste en realizar perforaciones en el suelo quellegan hasta estos depositos, por medio de las cuales se extrae el material encuestion. Los pozos petrolıferos se dicen fluyentes cuando los hidrocarburossurgen naturalmente a traves de la perforacion. Cuando esto no sucede, serecurre a medios mecanicos para el bombeo del material desde el subsuelo.

Debido a la creciente escasez de reservas de hidrocarburos depositadas enyacimientos convencionales, la industria del petroleo y diversos gobiernos na-cionales han tornado su atencion en las ultimas decadas a la explotacion deyacimientos no convencionales. Por este termino nos referimos a los yaci-mientos que no pueden ser explotados por medio de tecnicas convencionales.Uno de los tipos de yacimientos mas explorados esta dado por las reservas depetroleo y gas natural almacenados en un tipo de rocas sedimentarias llamadasesquistos (shale), conocidos como yacimientos de shale gas y shale oil.

La explotacion de este tipo de yacimientos utiliza metodos de fracturahidraulica, por medio de los cuales se generan fracturas en la roca madre, quepermiten concentrar el petroleo y el gas natural contenido en la roca para serextraıdos posteriormente. Dado que las fracturas se realizan inyectando agua yaditivos quımicos a alta presion, este tipo de explotacion se vio envuelto desdesus inicios en controversias en cuanto a su impacto sobre el medio ambiente,y es habitual que los paıses con reservas de shale gas y shale oil ponganen marcha marcos regulatorios estrictos para su explotacion. A pesar de quelas primeras inyecciones de material para la extraccion de hidrocarburos seremontan a la segunda mitad del siglo XIX, este tipo de metodos se usa enexplotaciones extensivas recien desde principios del siglo XXI, principalmenteen Estados Unidos. Ademas de las reservas en Estados Unidos, en la ultimadecada se han descubierto enormes reservas de shale gas y shale oil enArgentina, Canada, China y otras partes del mundo (ver Figura 1.1).

1

Page 14: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2 1. Introducion

Fig. 1.1: Yacimientos de shale gas y shale oil conocidos alrededor del mundo.

1.2. Descripcion del problema

Describimos someramente en esta seccion el proceso de explotacion deun yacimiento shale. En primer lugar, se realizan una o varias perforacionesverticales en el subsuelo, que llegan hasta la roca madre (ver Figura 1.2). Elsector en la superficie alrededor de las bocas de pozo se denomina locacion,y habitualmente ocupa un area rectangular de entre algunas decenas y unospocos cientos de metros por lado. Estos equipos son los unicos que se ven enla superficie, y habitualmente su instalacion involucra obras de nivelacion delsuelo y construccion de caminos de acceso. Como consecuencia, las locacionesno pueden estar sobre cursos de agua, barrancos o en sitios montanosos.

Fig. 1.2: Vista esquematica de perforacıon hasta la roca madre

Al llegar a la roca madre, cada perforacion vertical continua horizontal-mente atravesando la roca madre. A lo largo de esta perforacion horizontalse realizan los procesos de inyeccion de materiales para lograr la fractura dela roca, y luego se utilizan las perforaciones para la extraccion de los hidro-carburos que se acumulan en las zonas de fractura. De esta forma, desde unalocacion en la superficie se puede explotar un sector muy amplio en el subsue-

Page 15: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

1.2. Descripcion del problema 3

lo. La zona explotada a partir de una locacion se denomina pad, y tiene unaforma tıpicamente rectangular. Dependiendo de la cantidad de perforacionesverticales, del largo de las perforaciones horizontales y de la cantidad y ca-racterısticas de las zonas de fractura, el pad resultante puede tener diversostamanos. Por ejemplo, la Figura 1.3(b) muestra una vista vertical de una ex-plotacion con seis pozos horizontales y tres zonas de fractura por perforaciony la Figura 1.3(a) muestra una vista lateral de la perforacion.

Fig. 1.3: Vista esquematica (a) lateral y (b) vertical de un pad de 6 pozos horizonta-les. La locacion esta ubicada en la superficie, y el pad corresponde al areacompleta de explotacion, ubicada en la roca madre en el subsuelo.

Se representan habitualmente los pads por medio de rectangulos que con-tienen los pozos y las zonas de fractura (ver Figura 1.4). Al momento derealizar la explotacion, se evita la superposicion de fracturas en la roca madrecalibrando las perforaciones.

Fig. 1.4: Vista esquematica de locacion y pad

Page 16: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4 1. Introducion

Al momento de planificar la explotacion de un yacimiento no convencional,uno de los principales problemas a resolver es donde ubicar las locaciones y quetipo de explotacion realizar en cada una (lo cual determina el tipo y tamano delos pads resultantes) con el objetivo de maximizar la produccion y minimizarlos costos y el impacto ambiental. Este problema se conoce con el nombre deoptimizacion del area de drenaje, y como resultado se espera un plan deexplotacion que muestre las ubicaciones de locaciones y pads.

Formalmente, los datos de entrada del problema estan dados por los si-guientes elementos:

1. El yacimiento Y ⊆ R2, que en este trabajo asumimos dado por unpolıgono en el plano (no necesariamente convexo). Todos los pads de-ben estar ubicados dentro del perımetro del yacimiento.

2. Una funcion ogip : Y → R+ (original gas in place), que especificala cantidad de shale gas esperada en cada punto del yacimiento, y elprecio de venta ρ ∈ R+ de cada unidad extraida. Dado un pad P ⊆ Yubicado dentro del yacimiento, el gas total obtenido por explotar el padesta dado por ogip(P ) :=

∫P ogip(x)dx.

3. Un conjunto S = {S1, . . . , Sk} de configuraciones posibles de pads, quepodemos utilizar para explotar el yacimiento. Para cada configuracionS ∈ S, tenemos estos datos:

Largo lpS ∈ R+ y ancho apS ∈ R+ del pad, en metros.

Largo llS ∈ R+ y ancho alS ∈ R+ de la locacion en metros, yasumimos que llS < lpS y alS < apS .

La locacion esta ubicada en el centro del pad, pero se puede moveralgunos metros de este centro para evitar obstaculos geograficos. Elparametro de tolerancia tolS ∈ R+ especifica la cantidad maximade metros que el centro de la locacion se puede mover con relacional centro del pad.

4. Un conjunto de obstaculos –habitualmente de ındole geografica– quelas locaciones deben evitar. Consideramos que cada obstaculo esta dadopor un polıgono en el plano, y ninguna locacion se puede superponer conningun obstaculo.

5. Un angulo α ∈ [0, 2π] de explotacion ideal, denominado angulo deesfuerzo horizontal mınimo, que especifica la orientacion aproximadaque deben tener los pozos horizontales sobre el yacimento con relacional norte geografico. Como esta orientacion es aproximada, se tiene unatolerancia β ∈ [0, 2π], que especifica que todos los pads deben estarorientados en un angulo comprendido en el intervalo [α− β, α+ β].

Page 17: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

1.2. Descripcion del problema 5

El problema consiste en hallar un conjunto de pads P = {P1, . . . , Pn} y unconjunto de locaciones L = {L1, . . . , Ln} (de modo tal que la locacion Li co-rresponde al pad Pi, para i = 1, . . . , n) que maximice ogip(P) :=

∑ni=1 ogip(Pi)

de modo tal que se cumplan las siguientes restricciones:

1. Todos los pads deben estar contenidos dentro del yacimiento, es decirPi ⊆ Y para i = 1, . . . , n.

2. Como restriccion elastica, los pads de la solucion no se deben super-poner, dado que corresponden a zonas de fractura en la roca madre. Estarestriccion es elastica dado que se permiten superposiciones menores en-tre pads, por los motivos comentados mas arriba.

3. Cada pad y su locacion deben responder a las especificaciones de unaconfiguracion de S. Es decir, para cada i = 1, . . . , n debe existir unaconfiguracion S ∈ S tal que Pi tiene largo lpS y ancho apS , Li tienelargo llS y ancho alS y su centro esta a no mas de tolS metros del centrode Pi, y finalmente Pi y Li estan orientados en un mismo angulo, el cualdebe estar entre α− β y α+ β.

4. Ninguna locacion de L se debe superponer con ningun obstaculo.

Por ejemplo, la Figura 1.5(a) muestra un yacimiento y los obstaculos dentrodel yacimiento, y la Figura 1.5(b) muestra una solucion factible para α = π/4y para dos configuraciones posibles. Dado que la funcion ogip no siempre estabien determinada de antemano –y en ocasiones se trabaja con estimacionespoco fiables de esta funcion– alternativamente se puede solicitar que se ma-ximice el area total cubierta con los pads propuestos, en lugar del ogip totalobtenido.

Fig. 1.5: Ejemplo de (a) un yacimiento y obstaculos dentro del yacimiento y (b) unasolucion factible para esta instancia.

Page 18: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

6 1. Introducion

1.3. Trabajos previos

Este problema fue tratado en un trabajo anterior [2], en el cual se optopor reducir el problema a un problema de conjunto independiente de pesomaximo [3] en un grafo dado por la discretizacion del area del yacimiento, queproporciono buenos resultados en la practica. Dado un grafo G = (V,E), unconjunto independiente es un conjunto I ⊆ V de vertices tal que ij 6∈ Epara todo i, j ∈ I. Si ademas tenemos una funcion de peso w : V → R, elpeso del conjunto independiente I es w(I) :=

∑i∈I wi. La motivacion para

este enfoque viene dada por el hecho de que el conjunto de pads de la solucionconforma un conjunto de elementos no conflictivos entre sı, situacion que esmodelada adecuadamente por medio de conjuntos independientes en un grafo.Sin embargo, esta reduccion trae aparejado un costo de discretizacion, quesera mayor cuanto mayor sea el paso de discretizacion seleccionado.

A grandes rasgos, el algoritmo propuesto esta compuesto por los siguientespuntos:

1. Discretizacion D ⊆ Y del area geografica del yacimiento.

2. Generacion de un conjunto T de pads posibles sobre la base de la dis-cretizacion D.

3. Planteo de un grafo G = (T , E), de modo tal que cada conjunto in-dependiente de G corresponde a una solucion factible del problema deoptimizacion del area de drenaje. Los vertices del grafo reciben pesosadecuadamente definidos, de modo tal que el peso de cada conjunto in-dependiente corresponde a la funcion objetivo de la solucion factible.

4. Busqueda de un conjunto independiente de peso maximo sobre G pormedio de un modelo de programacion lineal entera [1, 6], para obteneruna solucion P al problema.

Describimos a continuacion cada punto del algoritmo. Para esto, sean ∆x,∆y ∈R+ los pasos de discretizacion y sea A = {α1, . . . , αp} un conjunto deangulos posibles, de modo tal que αi ∈ [α− β, α+ β] para i = 1, . . . , p. En lasolucion implementada en [2], se toma A = {α− β, α, α+ β}.Discretizacion. El primer paso del algoritmo consiste en generar una dis-cretizacion D = {(xi, yi)}mi=1 por filas y columnas del area del yacimiento, demodo tal que dos puntos consecutivos de una misma fila esten a distancia ∆x

y dos puntos consecutivos de una misma columna esten a distancia ∆y. Paraesto, se genera un reticulado de puntos en el plano con angulo α. Por ejemplo,la Figura 1.6(a) muestra una discretizacion para el yacimiento de la Figura 1.5.

Page 19: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

1.3. Trabajos previos 7

Generacion de pads. Para cada punto (x, y) ∈ D de la discretizacion, cadaconfiguracion S ∈ S y cada angulo i ∈ {1, . . . , p}, se incluye en el conjuntoT un pad P con configuracion S, centrado en (x, y) y rotado en angulo αi,siempre que el pad P (i) este incluido completamente dentro de Y y (ii) sulocacion L no interseque con ningun obstaculo. Para determinar este ultimopunto, se consideran como centros posibles de la locacion el punto (x, y) y ochopuntos equiangulados sobre la circunferencia de centro (x, y) y radio tolS (verFigura 1.6(b)), y se considera que se cumple la condicion (ii) si para alguno deestos puntos, la locacion centrada en ese punto no interseca a ningun obstaculo.Este enfoque es arbitrario e incurre en un nuevo error de discretizacion, perose observo que genera resultados aceptables en la practica.

Fig. 1.6: Ejemplo de (a) discretizacion del yacimiento presentado en la Figura 1.5 conα = π/4 y (b) centros posibles para la locacion de un pad.

Grafo de conflictos: Se genera un grafo G = (T , E) cuyos vertices estandados por todos los pads generados en el punto anterior, y cuyas aristas unenpares de pads con interseccion no vacıa. El conjunto E esta compuesto porlos pares (P1, P2) tales que existe algun punto (x, y) ∈ D con (x, y) ∈ P1

y (x, y) ∈ P2. Esta definicion de E permite que existan pares de pads conpequenas superposiciones pero sin una arista que los una en G. Esto sucedecuando la interseccion no contiene ningun punto de la discretizacion D, locual puede ocurrir solo cuando la superposicion es pequena. De este modo, semaneja adecuadamente la restriccion elastica de no superposicion de pads.

Obtencion de una solucion: Se plantea y se resuelve la siguiente formulacionde conjunto independiente con peso maximo sobre G, usando las restriccionesclique sobre todos los puntos de la discretizacion. En este modelo, se tiene unavariable binaria xP por cada pad P ∈ T , de modo tal que xP = 1 si y solo si

Page 20: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

8 1. Introducion

el pad P se incluye en la solucion.

max∑P∈T

g(P )xP∑P :(x,y)∈P

xP ≤ 1 ∀ (x, y) ∈ D

xP ∈ {0, 1} ∀ P ∈ T

El coeficiente g(P ) asociado con la variable xP en la funcion objetivo es g(P ) =ogip(P ) si se optimiza el beneficio total (dado por la venta de la producciontotal esperada menos los costos de construccion), o bien g(P ) = area(P ) sise optimiza el area total cubierta. Dado que los puntos de la discretizacion Dgeneran todas las cliques maximales de G (aunque no todo punto de D ge-nera necesariamente una clique maximal), esta formulacion incluye todas lasrestricciones de la formulacion por cliques del problema de conjunto indepen-diente de peso maximo, y se espera que sea mas fuerte que una formulacioncon una restriccion por arista. Dadas las caracterısticas aproximadas del pro-cedimiento, no resulta imprescindible en la practica resolver en forma optimael modelo de programacion entera planteado.

La generacion de la discretizacion D es un paso clave dentro del algoritmo.Si los pasos de discretizacion ∆x y ∆y son demasiado grandes, entonces no segenerara un numero suficientemente grande y variado de pads en T y la so-lucion sera de peor calidad, ademas de incluir potencialmente superposicionesentre los pads seleccionados, dado el modo en el que se generan las aristas deG. Sin embargo, a medida que ∆x y ∆y disminuyen se espera que estos efectosse vean minimizados, y que caigan por debajo de los errores de mediciones yde los parametros de seguridad habituales en la industria hidrocarburıfera. Amedida que ∆x y ∆y tienden a cero, la solucion generada por este procedi-miento tiende a la solucion optima. Pero debemos tener cuidado dado que amedida que la discretizacion se refina, el tiempo de computo aumenta y por lotanto, nos enfrentamos a problemas de memoria cuando la cantidad de puntosde la discretizacion es grande.

1.4. Observaciones

El algoritmo propuesto en [2] sufre de dos problemas importantes:

1. Permite superposiciones entre los pads.

2. Incurre en problemas de memoria para discretizaciones muy finas.

En la Figura 1.7 podemos ver un ejemplo de resultados obtenidos con unainstancia de prueba en la cual el area es de 100x100 metros, cada pad de 10x10metros, las locaciones de 2x2 metros y la discretizacion es de 20x20 metros yse obtiene como resultado un solapamiento de pads de un 38.4 %. En amarillose marcan las regiones superpuestas.

Page 21: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

1.4. Observaciones 9

Fig. 1.7: Solucion con superposiciones.

En el presente trabajo presentamos algunos algoritmos que intentan solu-cionar estos problemas.

En el Capıtulo 2 presentamos un algoritmo goloso que obtiene solucionessin superposiciones y una variante que utiliza una busqueda local para mejorarla solucion del primer algoritmo. En este ultimo, nos enfocamos tambien en elproblema de la memoria al discretizar.

En el Capıtulo 3 presentamos un algoritmo basado en la metaheurıstica decolonia de hormigas, que no utiliza una discretizacion y cuyas soluciones nopresentan solapamientos.

En el Capıtulo 4 presentamos dos algoritmos basados en programacionlineal entera. El primero utiliza informacion de la solucion de la relajacionlineal para construir una nueva discretizacion no uniforme sobre la cual sepuede utilizar el algoritmo original sin problemas de memoria. El segundo esuna variacion del algoritmo original que evita las superposiciones de pads enlas soluciones obtenidas. Finalmente, en el Capıtulo 5 presentamos nuestrasconclusiones y planteamos lineas de trabajo futuro.

Page 22: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

10 1. Introducion

Page 23: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2. ALGORITMOS GOLOSOS

Como vimos en la seccion anterior, el algoritmo presentado en [2], quedenominaremos ILP (Integer Linear Programming) tiene problemas desuperposiciones y de memoria. En esta seccion presentamos dos algoritmosgolosos [5] que tratan estos problemas.

En el primer algoritmo, nos enfocamos solamente en el problema de lassuperposiciones, dejando de lado los problemas de memoria. Luego, veremosque este algoritmo presenta, en determinados casos, soluciones no optimas. Porlo tanto, presentamos el segundo algoritmo (denominado Goloso con BusquedaLocal) con el objetivo de solucionar los problemas del algoritmo anterior y elproblema de la memoria del algoritmo ILP. Para finalizar, presentaremos unaserie de resultados y una discusion sobre estos algoritmos.

2.1. Introduccion teorica

Un algoritmo de busqueda local [7] consiste en empezar con una solucioninicial, que generalmente es aleatoria o se genera con algun otro algoritmo yse hacen pequenos cambios (a traves de operaciones) hasta alcanzar un estadodesde el cual no se puede alcanzar ningun estado mejor.

Contamos con una funcion (a veces puede ser heurıstica) que evalua lacalidad de una solucion. De esta forma, podemos saber si una solucion es mejoro peor que otra, o tambien podemos podar el espacio de busqueda (solucionesque no merece la pena explorar).

Dada una solucion factible, un algoritmo de busqueda local busca, en cadaiteracion, una solucion vecina con un valor mejorado de la funcion objetivo.

Como podemos ver en la Figura 2.1, una solucion y solo puede encontrarsoluciones vecinas dentro de un espacio de busqueda. En la imagen se muestracon lınea punteada la seccion que comprende los vecinos de la solucion y.

Fig. 2.1: Ejemplo de alcance del espacio de busqueda.

11

Page 24: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

12 2. Algoritmos golosos

Estas tecnicas son propensas a encontrar optimos locales que no son lamejor solucion posible dado que el optimo global puede ser difıcil de alcanzar,por ejemplo, por contar con un tiempo limitado o porque las transformacionesaplicadas no fueron las correctas.

Cuando no es posible obtener un mejoramiento en la solucion, el algoritmose detiene en un optimo local. Esto sucede cuando se alcanza una solucion ental que ninguno de sus vecinos es mejor.

Para aplicar una busqueda local es necesario definir una estructura devecindad para una solucion. Esta es utilizada para movernos de una soluciona una solucion vecina mejor.

Podemos ver en la Figura 2.2 un ejemplo sencillo de una funcion donde sedistingue un mınimo local de lo que serıa el mınimo global.

Fig. 2.2: Ejemplo ubicacion de un mınimo local

2.2. Algoritmo goloso sencillo

En esta seccion, presentamos un algoritmo goloso sencillo que construye lasolucion eligiendo los pads de un conjunto de pads disponibles, que se generade la misma manera que el algoritmo ILP y en el cual se encuentran todos lospads posibles para la configuracion de la instancia actual.

En el contexto del algoritmo, llamamos pad posible a un pad que no seinterseca con ningun pad ya agregado en la solucion y es un pad disponible.

Recordemos que cada pad tiene su correspondiente valoracion la cual hacereferencia a la cantidad de ogip (o bien el area, como se explico en la intro-duccion) cubierto por el pad.

La idea principal del algoritmo es hacer los siguientes pasos:

1. Generar los pads disponibles al igual que lo hace ILP.

2. Mientras haya pads disponibles:

a) Seleccionar un pad que pertenezca al conjunto de todos los padsposibles.

1) Si el pad seleccionado no es un pad posible, eliminarlo del con-junto pads disponibles y volvemos al paso 1) a).

2) Caso contrario, chequear si su valoracion es la mayor hasta elmomento.

Page 25: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.2. Algoritmo goloso sencillo 13

3) Si posee la mejor valorizacion, seleccionar el pad como el mejorhasta el momento.

4) Volver al paso 2) a).

b) Una vez analizado todo el conjunto de pads disponibles, si existe unmejor pad, agregarlo a la solucion y sacarlo del conjunto de padsdisponibles.

c) Volver al paso 2).

3. Retornar la solucion.

Podemos ver que la idea basica del algoritmo es la de elegir en cada itera-cion el mejor pad dentro de los disponibles y validos, siendo el mejor pad elque mayor valorizacion tiene.

Tambien, se puede notar que para definir cual es el mejor pad en cadaiteracion estamos recorriendo todo el conjunto de pads, lo que provoca demorasen las ejecuciones.

En el Algoritmo 1 damos el psudocodigo de este algoritmo goloso sencillo.

Algoritmo 1 Pseudocodigo del algoritmo goloso sencillo.

1: mientras ( U 6= P ) hacer2: mejorValor = -∞3: mejorPad = Null4: para P ∈ P hacer5: si esPosiblePad(P) entonces6: si mejorValor < P.valor entonces7: mejorValor = P.valor8: mejorPad = P9: si no

10: U .add(P)11: fin si12: fin si13: fin para14: si mejorPad 6= Null entonces15: S.add(mejorPad)16: U .add(mejorPad)17: fin si18: fin mientras19: devolver S

Page 26: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

14 2. Algoritmos golosos

Siendo U el conjunto de los pads ya utilizados y P el conjunto de todos lospads disponibles, iteramos hasta que U sea igual a P, es decir, que no quedenmas pads disponibles.

En las lıneas 2 y 3 inicializamos las variables donde vamos a guardar elmejor valor (mejorValor) y su correspondiente pad (mejorPad). La lınea 4 dacomienzo al ciclo que recorre todos los pads buscando el de mejor valorizacion.Para cada pad P ∈ P verificamos si es un pad posible, es decir, que P 6∈ U yque P no se solape con ningun otro pad de la solucion.

En caso de no ser un pad posible, agregamos a P al conjunto de los ya uti-lizados U como vemos en la lınea 10. En caso contrario, corroboramos si tienela mejor valorizacion hasta el momento (lınea 6) y actualizamos las variablescorrespondientes en caso de ser necesario (lıneas 7 y 8).

Una vez recorridos todos los pads disponibles P, quedo guardado el mejorpad (variable mejorPad) y entonces lo agregamos a la solucion y lo agregamosa los pads ya utilizados (lıneas 15 y 16). Notar que puede pasar que no se hayaencontrado un mejor pad y por lo tanto la variable podrıa ser Null. En estecaso, no lo agregamos a la solucion ni a los pads ya utilizados. Finalmente, enla lınea 19 retornamos la solucion.

A continuacion mostramos un ejemplo en el cual tenemos un yacimientode 100x100 metros con una discretizacion de 10x10 metros (ver Figura 2.3(a))y tenemos dos tipos de pads posibles: uno de 25x25 metros y otro de 10x10metros (ver Figura 2.3(b))

Fig. 2.3: A la izquierda un ejemplo de (a) yacimiento de 100x100 metros con discreti-zacion de 10x10 metros y a la derecha (b) pads posibles, uno de 25x25 metrosy otro de 10x10 metros.

La Figura 2.4 define la distribucion de ogip dentro del yacimiento. Comopuede observarse, el ogip es creciente empezando desde el margen inferiorizquierdo y terminando en el margen superior derecho. En otras palabras, lossectores de arriba a la derecha son nuestra prioridad a cubrir.

Page 27: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.2. Algoritmo goloso sencillo 15

Fig. 2.4: Yacimiento de ejemplo con su distribucion de ogip.

Siguiendo el algoritmo, lo primero que hacemos es agregar el pad que tengamejor valorizacion (es decir, lo mas arriba a la derecha posible), siempre ycuando este dentro del yacimiento y sin solaparse con otro pad.

Como se ilustra en la Figura 2.5(a), en la primera iteracion, el primer padque se agrego se ubico centrado en el punto de la discretizacion mas arriba ala derecha posible (dado que en esta zona tenemos mas ogip) sin que el padsalga del yacimiento.

En la segunda iteracion (ver Figura 2.5(b)), el pad que se elige agregar esde nuevo el de mas arriba a la derecha posible, teniendo en cuenta que estedentro del yacimiento y sin solaparse con los pads ya agregados, por lo tanto,se eligio el pad que se muestra en la figura.

Fig. 2.5: Primera iteracion a la izquierda (a) y segunda iteracion a la derecha (b)

En la tercera iteracion (ver Figura 2.6(a)), podemos ver como ocurre lomismo que en la segunda iteracion, quedando cubierta la zona superior de-recha. Siguiendo el algoritmo, en iteraciones posteriores como por ejemplo,la octava iteracion (ver Figura 2.6(b)) observamos como se fueron agregando

Page 28: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

16 2. Algoritmos golosos

pads lo mas arriba a la derecha posible, ya que abajo a la izquierda tenemospeor ogip. En esta iteracion podemos ver que resta solamente cubrir el sectorde menor ogip, en la esquina inferior izquierda del yacimiento.

Fig. 2.6: Tercera iteracion a la izquierda (a) y octava iteracion a la derecha (b)

La Figura 2.7 muestra el resultado final del algoritmo goloso. Se puede verque el yacimiento quedo cubierto lo mejor posible cumpliendo las restriccionespropuestas (notar que esta instancia no contiene restricciones) empezandodesde la zona de mayor ogip y terminando en la de menor ogip.

Fig. 2.7: Resultado final del ejemplo

Si bien nuestro algoritmo goloso sencillo tiene en cuenta los solapamien-tos, este no esta mejorando la discretizacion con respecto a ILP. Es decir, lacantidad de puntos de la discretizacion es la misma en ambos algoritmos (esteproblema sera tratado en secciones posteriores) pudiendo provocar problemasde memoria cuando la distancia entre puntos de la discretizacion es muy chica.

Por otro lado, este algoritmo presenta un problema importante a la ho-ra de tratar de maximizar el area cubierta. Dicho problema radica en quedependiendo del valor de la discretizacion, puede pasar que haya un espacioconsiderable entre los pads.

Page 29: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.2. Algoritmo goloso sencillo 17

Por ejemplo, en la Figura 2.8(a) si pegaramos los pads uno contra uno,habrıa lugar para ubicar mas pads y por lo tanto cubrir mas area obteniendomas ogip. De igual forma en la Figura 2.8(b) (solucion de otra instancia) seve como existen muchos lugares vacıos, y esto es porque no entran mas padscentrados en los puntos de la discretizacion disponibles.

En particular, la solucion obtenida en la Figura 2.8(b) se produce dado quela discretizacion es relativamente grande y por lo tanto al poner algunos pads,muchos puntos de la discretizacion quedan invalidos dado que si pusieramosun pad en ese lugar se solaparıa con los otros, provocando que los puntos dela discretizacion validos esten alejados de los pads ya colocados.

Fig. 2.8: Ejemplos de soluciones (a) a la izquirda y (b) a la derecha, utilizando elalgoritmo goloso sencillo.

En general, el problema se da cuando los pasos de la discretizacion sonmuy grandes y por lo tanto, existen pocos puntos para centrar los pads. Porotro lado, en instancias donde los pasos de la discretizacion son finos esto nosucede (Ver Figura 2.9).

Fig. 2.9: Solucion obtenida para una discretizacion mas fina.

Page 30: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

18 2. Algoritmos golosos

2.3. Algoritmo goloso con busqueda local

En esta seccion presentamos una variante del algoritmo goloso anterior,en el cual se utiliza un procedimiento de busqueda local. Denotaremos estealgoritmo con las iniciales GBL (Goloso con Busqueda Local). Al igual que enel algoritmo anterior, contamos con un conjunto de pads disponibles donde seencuentran todos los pads posibles para la configuracion de la instancia actual.

Al igual que antes, cada pad tiene su valoracion y se dice que un pad es unpad posible cuando no se interseca con ningun pad ya agregado en la soluciony es un pad disponible.

La idea general de este algoritmo es la siguiente:

1. Mientras haya pads disponibles

a) Seleccionar un pad del conjunto de todos los pads.

1) Si el pad seleccionado no es un pad posible, sacarlo del conjuntode disponibles y pasar al siguiente pad.

2) En caso contrario, chequear si su valoracion es la mayor hastael momento.

3) En caso de tener la mejor valorizacion hasta el momento selec-cionar el pad como el mejor.

4) Volver al paso 1) a).

b) Una vez recorrido el conjunto de todos los pads, tenemos identifi-cado el mejor pad.

1) Si el pad identificado es distinto de null (podrıa pasar que noexista pad disponible), buscamos uno nuevo que maximice elvalor localmente, lo agregamos a la solucion y lo sacamos delconjunto de pad disponbiles.

c) Volver al ciclo principal del paso 1).

2. Cuando ya no hay pads disponibles para chequear, verificamos si quedanlugares vacıos donde podrıamos seguir agregando pads.

3. En caso de no tener lugar para mas pads retornamos la solucion.

4. En caso contrario, discretizamos mas fino el area donde podrıamoscolocar mas pads.

5. Volvemos al paso 1 con el conjunto de pads disponibles como al principiocon esta nueva discretizacion y con una solucion que ya contiene pads.

La idea general es muy similar al algoritmo goloso sencillo, ya que en cadaiteracion vamos a elegir el mejor pad dentro de los disponibles y validos, siendoel mejor pad el que mayor valorizacion tiene. La diferencia sustancial con elalgoritmo anterior es que por cada pad elegido como el mejor, buscamos un

Page 31: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.3. Algoritmo goloso con busqueda local 19

nuevo pad por medio de una busqueda local. Este procedimiento comienza conel mejor pad encontrado en el paso anterior y, en cada iteracion, movemos sucentro una distancia configurable para las cuatro direcciones posibles (arriba,abajo, izquierda y derecha) y, si su valorizacion aumenta, pasa a ser el nuevopad. Ası sucesivamente hasta que no aumente mas su valorizacion. Notar quetambien se chequea que el pad no se solape con otros ni que se salga del areadel yacimiento. De esta forma, buscamos un pad que tiene mejor valorizacionque el pad que consiguio el procedimiento goloso.

Vale aclarar en este punto que ahora no solo entra en juego la discretizacioninicial del yacimiento sino que tambien tenemos en cuenta la distancia quemovemos el pad cuando buscamos el maximo local.

De esta forma en la mayorıa de los casos, nuestros pads se van a pegarentre sı, evitando el problema principal que tenıa el goloso sencillo (el espacioentre pads cuando se discretizaba grande), dado que no importa si la discreti-zacion inicial es grande, ya que la distancia de movimiento del pad puede sermas chica. Aclaramos en este punto que los pads se pegan dependiendo de ladistancia de movimiento del pad: cuanto mas chica, mas pegados van a estar.

Para apreciar mejor los detalles implementativos, podemos ver el Algorit-mo 2, en el cual nuevamente llamamos U al conjunto de los pads ya utilizadosy llamamos P al conjunto de todos los pads disponibles. Realizamos exacta-mente el mismo procedimiento que el goloso sencillo (ver Algoritmo 1) con ladiferencia que en la lınea 14, actualizamos el mejorPad por el pad maximizadolocalmente y que en las lineas 18 y 19 chequeamos si podemos discretizar mas,y en caso de ser ası, mejoramos la solucion discretizando mas fino y ejecutandoel algoritmo nuevamente hasta no poder discretizar mas, momento en el cualretornamos la solucion S.

El Algoritmo 3 contiene el pseudocodigo del procedimiento de busquedalocal. La funcion moverEnAlgunaDireccionMaximo(), en la lınea 2, mueve elpad P para alguna de las cuatro direcciones posibles y si alguna de ellas tienemejor valorizacion, retorna al nuevo pad (si mas de una direccion tiene mejorvalorizacion lo mueve para la que lo maximiza). En caso de que no exista unadireccion que mejore la valorizacion, se devuelve el mismo pad y, por lo tanto,en el ciclo de la lınea 3 terminarıa. Mientras pueda mover el pad, seguiraejecutando el ciclo.

En el Algoritmo 4, se observa el pseudocodigo utilizado para chequear sipodemos seguir discretizando. Tenemos un parametro pasoMejoramiento, queindica la distancia que se achicarıa la discretizacion en caso de que esto seaposible. Para chequear si podemos discretizar mas, simplemente se verifica sila discretizacion actual (horizontal y vertical) es mayor a pasoMejoramiento yse devuelve el resultado booleano.

En el Algoritmo 5 vemos el procedimiento para mejorar la discretizacion,es decir, re-discretizarla mas fino y volver a ejecutar el algoritmo.

Page 32: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

20 2. Algoritmos golosos

Algoritmo 2 Pseudocodigo del algoritmo goloso con busqueda local

1: mientras ( U 6= P ) hacer2: mejorValor = -∞3: mejorPad = Null4: para P ∈ P hacer5: si esPosiblePad(P) entonces6: si mejorValor < P.valor entonces7: mejorValor = P.valor8: mejorPad = P9: si no

10: U .add(P)11: fin si12: fin si13: fin para14: si mejorPad 6= Null entonces15: mejorPad = maximizarUbicacion(mejorPad)16: S.add(mejorPad)17: U .add(mejorPad)18: fin si19: fin mientras20: si puedoMejorarDiscretizacion() entonces21: mejorarSolucion()22: si no23: devolver S24: fin si

Algoritmo 3 Pseudocodigo de maximizarUbicacion(Pad p): algoritmo paramaximizar la ubicacion de un pad.

1: nuevoPad = P2: P = moverEnAlgunaDireccionMaximo(P)3: mientras (P 6= nuevoPad) hacer4: nuevoPad = P5: P = moverEnAlgunaDireccionMaximo(P)6: fin mientras7: devolver P

Algoritmo 4 Pseudocodigo de puedoMejorarDiscretizacion(): algoritmo parachequear si puedo seguir discretizando.

1: condicionHorizontal = pasoHorizontalActual() > pasoMejoramiento()2: condicionVertical = pasoVerticalActual() > pasoMejoramiento()3: devolver condicionHorizontal && condicionVertical

Page 33: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.3. Algoritmo goloso con busqueda local 21

Algoritmo 5 Pseudocodigo de mejorarSolucion(): algoritmo para discretizarmas fino las zonas no usadas.1: setPasoHorizontal(pasoHorizontalActual - pasoMejoramiento)2: setPasoVertical(pasoVerticalActual - pasoMejoramiento)3: discretizacion = crearNuevaDiscretizacion()4: eliminarPuntosTapadosDiscretizacion()5: S = GolosoBusquedaLocal()

Primero se achica el paso horizontal y el paso vertical de la discretiza-cion. Luego, generamos la nueva discretizacion y eliminamos los puntos quese generaron que ya son tapados por pads existentes en esta solucion, de estaforma solo nos queda discretizada el area no tapada por los pads. Finalmente,ejecutamos de nuevo el algoritmo con la nueva discretizacion.

Analizamos a continuacion el mismo ejemplo que usamos para ejemplificarel algoritmo goloso sencillo (ver la configuracion en Figura 2.3 y la distribuciondel ogip en Figura 2.4) pero ahora aplicando este algoritmo.

En la Figura 2.10(a) se puede ver que la eleccion del mejor pad en la pri-mera iteracion da el mismo resultado que el algoritmo goloso sencillo. Peroen la Figura 2.10(b) observamos que al pad encontrado lo translada lo masposible hacia el margen superior derecho, donde se encuentra el maximo ogip.En esta figura podemos ver como queda la solucion luego de la primera itera-cion y se ve como el mejor pad fue movido hacia un sector donde se maximizalocalmente.

Fig. 2.10: Pad elegido como el mejor en la primera iteracion a la izquierda (a) y padmaximizado en la primera iteracion a la derecha (b)

En la Figura 2.11(a) se puede observar que los pads de la solucion cons-truida luego de algunas iteraciones estan pegados, comportamiento debido ala accion de buscar un maximo local hasta chocar contra un borde u otro pad.Tambien podemos observar que el comportamiento de mover el pad hacia arri-ba a la derecha sigue ocurriendo (ver Figura 2.11(a) y (b))

Page 34: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

22 2. Algoritmos golosos

Fig. 2.11: Pad elegido como el mejor en la octava iteracion a la izquierda (a) y padmaximizado en la octava iteracion a la derecha (b)

Otro factor importante de nuestro algoritmo es el mecanismo de redis-cretizar (ver Figura 2.12(a)): cuando no es posible seguir agregando pads, sediscretiza mas fino en los lugares vacıos (lugares no tapados por pads), comopodemos ver en la Figura 2.12(b).

Fig. 2.12: Solucion final con la discretizacion inicial a la izquierda (a) y primera ite-racion con una discretizacion mas fina a la derecha (b)

Continuando con el ejemplo, en iteraciones posteriores ya no se puedenagregar mas pads (Figura 2.13(a)) entonces se rediscretiza aun mas fino, comovemos en la Figura 2.13(b), generando mas puntos de la discretizacion posiblespara centrar pads.

Page 35: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.3. Algoritmo goloso con busqueda local 23

Fig. 2.13: Iteraciones avanzadas con discretizacion fina.

Finalmente, podemos ver la ultima re-discretizacion en la Figura 2.14(a)y en la Figura 2.13(b) vemos la solucion final a esta instancia.

Fig. 2.14: Ejemplo de una iteracion con una discretizacion aun mas fina a la izquierda(a) y solucion final a la derecha (b)

Es importante aclarar que de no ser por la logica de la rediscretizacion,tendrıamos lugares vacıos en la mayorıa de los casos. Este es un problemaintroducido por el movimiento de pads buscando maximizarlos.

Notemos que gracias a la rediscretizacion, el algoritmo solo tiene que ana-lizar los puntos de la discretizacion no tapados por los pads ya existentes en lasolucion y no todos los puntos del yacimiento. Esto es porque al rediscretizar,solo se lo hace en los sectores no tapados aun.

De esta forma, podemos evitar problemas de memoria en determinadoscasos dado que podrıamos ejecutar nuestro algoritmo con una distancia entrepuntos inicial bastante grande para poner los primeros pads y por lo tantono tendrıamos tantos puntos en la discretizacion que analizar (lo cual genera

Page 36: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

24 2. Algoritmos golosos

uno de los principales problemas de memoria) y luego al re-discretizar conuna distancia entre puntos menor, solo tenemos discretizado un sector y notodo el yacimiento. Esto implica tener menos puntos de la discretizacion encomparacion con ejecutar el algoritmo directamente con esta nueva distancia(dado que generarıa muchos puntos en todo el yacimiento).

Otro factor importante es el problema que veıamos en las Figuras 2.8(a)y (b), es decir, el espacio entre pads cuando la distancia entre puntos es muygrande. En este algoritmo, dado que estamos acomodando los pads y luego re-discretizando eso no sucede, lo cual es un indicio este algoritmo podrıa brindarmejores soluciones.

Si bien nuestro algoritmo presenta mejoras a nivel memoria, evita los so-lapamientos y cuenta con una logica de maximizar el ogip acomodando lospads, en casos donde la discretizacion inicial es muy fina, es decir, tendrıamosmuchos puntos que analizar y estarıamos en el mismo problema que el golososencillo y el algoritmo basado en programacion entera (ILP) y aparecerıanproblemas de memoria.

2.4. Resultados experimentales

En esta seccion se muestran y analizan los resultados (ver Tabla 2.1) delalgoritmo original (columna ILP), el algoritmo goloso sencillo (columna GolosoSencillo) y el algoritmo goloso con busqueda local (columna GBL).

Utilizaremos 10 instancias (algunas con mas de una ejecucion) definidasde la siguiente forma:

#1: Instancia creada a mano. Yacimiento rectangular, con solo una con-figuracion (tipo de pad) cuadrada. Angulo de 0 grados.

#2: Instancia creada a mano. Yacimiento rectangular, con varias configu-raciones mezclando algunas cuadradas y algunas rectangulares. Angulode 0 grados.

#3: Idem item #2 pero con angulo de 45 grados.

#4: Instancia pequena creada a mano. Yacimiento rectangular, unicaconfiguracion cuadrada. Angulo de 80 grados.

#5: Instancia grande creada a mano. Yacimiento rectangular, con va-rias configuraciones mezclando cuadradas y rectangulares. Angulo de 0grados.

#6: Instancia real. Yacimiento no rectangular con 2 tipos de configura-ciones. Angulo de 40 grados.

#7: Instancia creada a mano. Yacimiento rectangular, con una sola con-figuracion rectangular. Angulo de 45 grados.

Page 37: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.4. Resultados experimentales 25

#8: Idem #4 pero con muchos tipos de configuracion y angulo de 0grados.

#9: Instancia real. Yacimientos no rectangulares con tres tipos distintosde configuraciones de pads rectangulares. Angulo de 30 grados.

#10: Instancia creada a mano. Yacimiento no rectangular, con solo unaconfiguracion cuadrada. Angulo de 0 grados.

Todas las instancias tienen ogip y restrinciones definidas, excepto la #6que no contienen ogip.

Para cada instancia se muestran los siguientes datos:

1. #: Indica el numero de instancia.

2. Nx y Ny: Indican los pasos horizontal y vertical, respectivamente, de ladiscretizacion (distancia entre puntos).

3. Tiempo: Tiempo de ejecucion de la instancia corrida, medido en segun-dos.

4. % AC.: Indica el porcentaje del area cubierta por la solucion.

5. % AS.: Indica el porcentaje del area superpuesta en la solucion.

6. PMD: Indica el paso para achicar la discretizacion cuando se re-discretiza.

7. PMP: Indica el paso del movimiento del pad cuando se acomoda.

En los casos donde sufrimos un error de memoria se lo indica con las siglasOOM (Out Of Memory).

Como podemos ver en la tabla, existen muchos casos en los que no se puedeejecutar el algoritmo ILP por problemas de memoria a la hora de generar elmodelo o a la hora de discretizar.

Por otro lado, se ve en la columna % AS. que los resultados obtenidos porILP tienen mucho solapamiento. En un caso extremo, tenemos mas de 173 %de solapamiento, esto es causado dado que ciertos puntos son tapados por masde dos pads. Tambien podemos observar que los algoritmos golosos no solapannunca, siendo este uno de los objetivos que buscabamos.

En general, los resultados de area cubierta obtenidos en el algoritmo golososencillo son menores que los obtenidos en GBL. Por ejemplo podemos ver queel area cubierta de la instancia 1, es menor en el algoritmo goloso sencilloque en el algoritmo goloso con busqueda local. Otro ejemplo es la instancia4, donde el algoritmo goloso con busqueda local obtiene mas del doble que elalgoritmo goloso sencillo.

Existen casos, como por ejemplo la instancia 3 (ver Figura 2.15), dondeel algoritmo goloso sencillo da mejores resultados que el algoritmo goloso conbusqueda local. Esto se debe a que la logica de acomodar los pads provoco

Page 38: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

26 2. Algoritmos golosos

que otros pads, que tienen una buena valorizacion, no pudieran insertarse,dado que se solaparıan con los pads que se acomodaron.

Fig. 2.15: Soluciones a la instancia 3. A la izquierda el algoritmo goloso simple y a laderecha GBL

En discretizaciones grandes, como por ejemplo la instancia 1 y la 8, elalgoritmo goloso sencillo tarda menos tiempo dado que este no tiene la logicade re-discretizar ni de acomodar los pads. En este tipo de discretizaciones,GBL parece ser mejor que el algoritmo goloso sencillo y tambien es mejorque ILP. Esto se debe a que no importa que la discretizacion inicial sea alta,ya que vamos a re-discretizar hasta que sea posible, teniendo mas pads posiblespor insertar que en los otros algoritmos.

En las instancias donde ILP no logra ejecutarse por problemas generandoel grafo nuestros algoritmos sı lo logran. Es decir, en muchos casos nuestrosalgoritmos pueden ejecutar instancias mas discretizadas, que era elotro objetivo buscado.

Notar que en los casos que ILP falla por memoria al discretizar, nuestrosalgoritmos tambien. Esto es dado que el problema se genera al construir lospuntos de la discretizacion, y en este caso, tanto ILP como los dos algoritmosgolosos los generan exactamente igual.

Page 39: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

2.4. Resultados experimentales 27

Tab

.2.1

:T

ab

lad

ere

sult

ad

os

ILP

Gol

oso

Sen

cill

oG

BL

#N

xN

yP

MD

PM

PT

iem

po

%A

C.

%A

S.

Tie

mp

o%

AC

.%

AS

.T

iem

po

%A

C.

%A

S.

160

60

11

0.57

6.25

0.00

0.45

6.25

072

.36

77.2

50

22

21

1O

OM

gen

eran

do

graf

o80

82.9

896

.31

020

54.8

896

.31

0

35

51

1O

OM

gen

eran

do

graf

o83

.57

72.2

00

77.0

950

.23

0

430

30

11

0.72

30.0

00.

000.

7330

.00

012

.37

63.0

00

530

30

251

8.71

96.6

921

.37

99.9

867

.00

010

.94

64.5

30

1010

1010

OO

Mge

ner

and

ogr

afo

9.03

64.5

40

7.09

62.6

70

11

11

OO

Md

iscr

etiz

and

oO

OM

dis

cret

izan

do

OO

Md

iscr

etiz

and

o

610

010

010

0100

254.

9470

.59

0.78

33.6

451

.12

024

.78

49.4

40

1010

1010

OO

Mge

ner

and

ogr

afo

3369

.04

59.1

40

2462

.00

51.4

40

71

11

172

5.01

70.5

90.

8099

.98

67.0

00

103

.92

69.0

00

810

10

11

1.99

81.0

00.

002.

5770

.00

018

.48

84.0

00

970

70

2525

770.

7977

.21

1.89

148.

7868

.90

0353

.18

84.0

00

3030

1515

OO

Mge

ner

and

ogr

afo

916.

5472

.36

0989

.27

72.9

30

2020

1010

OO

Mge

ner

and

ogr

afo

6551

.30

74.2

20

OO

Md

iscr

etiz

and

o

10

1010

11

2.01

696

.04

173.

261.

7744

.21

06.

74

59.6

40

Page 40: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

28 2. Algoritmos golosos

Page 41: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3. ALGORITMOS BASADOS EN COLONIA DEHORMIGAS

En este capıtulo presentamos dos algoritmos basados en la metaheurısticade colonias de hormigas. El objetivo principal de estos algoritmos es no utili-zar la discretizacion del yacimiento y pudieranen el continuo para evitar losproblemas de memoria al discretizar.

La forma de determinar donde ubicar los pads esta dada por una funcionde feromonas, que va cambiando con el paso de las iteraciones.

En el primer algoritmo, el cual denominamos CH, contamos con una unicafuncion de feromonas para todo el yacimiento, y en el segundo algoritmo,denominado CHMF, con distintas funciones de feromona, una por cada tipode pad.

Se realiza tambien una experimentacion computacional para analizar dis-tintos metodos de corte, es decir, condiciones para terminar el algoritmo ydistintos metodos para decidir si una solucion es buena o mala.

Para finalizar, se discuten y presentan los resultados obtenidos.

3.1. Introduccion teorica

La tecnica de colonia de hormigas es una metaheurıstica de la familia PSO(Particle Swarm Optimization) [4] basada en el comportamiento en grupo delas hormigas para definir el camino a un recurso deseado. En otras palabras, esuna metodologıa inspirada en el comportamiento colectivo de las hormigas ensu busqueda de alimentos. Es muy usada para resolver problemas computacio-nales que pueden reducirse a buscar los mejores caminos o rutas en grafos. Espor eso que es muy importante recordar que las hormigas son practicamen-te ciegas, y sin embargo, moviendose al azar, acaban encontrando el caminomas corto desde su nido hasta la fuente de alimentos (y regresar). Entre susprincipales caracterısticas se encuentran las siguientes:

1. Una sola hormiga no es capaz de realizar todo el trabajo sino que terminasiendo el resultado de muchas hormigas en conjunto.

2. Una hormiga, cuando se mueve, deja una marca quımica en el suelo,depositando una sustancia denominada feromona, para que las demaspuedan seguirla.

De esta forma, aunque una hormiga aislada se mueva esencialmente alazar, las siguientes decidiran sus movimientos considerando seguir con mayorfrecuencia el camino con mayor cantidad de feromonas.

La metaheurıstica general consiste en lo siguiente:

29

Page 42: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

30 3. Algoritmos basados en colonia de hormigas

1. En principio, todas las hormigas se mueven de manera aleatoria, bus-cando por sı solas un camino al recurso que estan buscando (una posiblesolucion).

2. Una vez encontrada una solucion, la hormiga vuelve, dejando un rastrode feromonas; este rastro puede ser mayor o menor dependiendo de lobuena que sea la solucion encontrada.

3. Utilizando este rastro de feromonas, las hormigas pueden compartir in-formacion entre sus pares en la colonia.

4. Cuando una nueva hormiga inicia su trabajo, es influenciada por la fe-romona depositada por las hormigas anteriores, y ası, aumenta las pro-babilidades de que esta siga los pasos de sus anteriores al acercarse a unrecurso previamente encontrado.

Fig. 3.1: A la izquierda un ejemplo deconvergencia a una solucion (a) y a la derechaun ejemplo de utilizacion de la feromona (b)

En la Figura 3.1(a), podemos ver una serie de iteraciones donde las hormi-gas llegan a la fuente de comida y vuelven, dejando feromonas y en la siguienteiteracion la solucion se ve influenciada por las feromonas.

Finalmente se llega a una camino, el cual es elegido por casi todas lashormigas, siendo este la solucion final.

En la Figura 3.1(b), asumiendo que el numero de lıneas punteadas es pro-porcional a la cantidad de feromona, se puede ver que el camino inferior esmas corto que el superior, por lo cual muchas mas hormigas transitaran poreste durante el mismo perıodo de tiempo. Esto implica, que en el camino mascorto se acumula mas feromona mucho mas rapido. Despues de cierto tiempo,la diferencia en la cantidad de feromona en los dos caminos es lo suficiente-mente grande para influenciar la decision de las nuevas hormigas que entren arecorrer estas vıas.

Una gran ventaja de esta metaheurıstica es que puede construir una so-lucion intercambiando informacion entre las distintas hormigas (soluciones),para generar una solucion mejor de la que podran generar individualmente.

Page 43: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3.2. Descripcion de los algoritmos 31

Con el paso del tiempo, el rastro de feromonas comienza a evaporarse,y esto produce que los caminos pierdan su fuerza de atraccion. Cuanto maslargo sea el camino, mas tiempo demorara una hormiga en recorrerlo, mas seevaporara la feromona y por ende sera menos frecuentado. Por su parte loscaminos mas cortos tendran mayor cantidad de feromonas, y por ende, mayorprobabilidad de ser frecuentados.

ACO fue el primer algoritmo de optimizacion de Colonias de Hormigasdesarrollado por Marco Dorigo en su tesis doctoral [8].

3.2. Descripcion de los algoritmos

3.2.1. Colonia de hormigas clasica

La idea general es tener una matriz que representa a la feromona, dondela posicion (x,y) de la matriz de feromona representa el valor de la feromonaen dicha posicion del yacimiento. Este valor indica cuan bueno es ubicar unpad en dicha posicion. En un principio, se inicializa con todos los valores en 0.

La matriz de feromona esta discretizada con un valor configurable. Porejemplo, si la region es de 100x100 metros, pero la discretizacion de la feromonala seteamos en 10 metros, vamos a tener una matriz de feromona de 10x10.Cuanto menor es el valor de discretizacion de la feromona mayor cantidad depuntos habra en la matriz y es de esperar que se logren mejores resultadospero a su vez un tiempo computacional mas alto.

Por otro lado, contamos con una estructura auxiliar, una matriz de ta-manos iguales que la matriz de feromona. Esta estructura contiene 0 y 1 de-pendiendo de la disponibilidad del punto de la feromona. Esto es utilizadopara saber cuando una feromona esta disponible, dado que al agregar pads,vamos a ir cambiando los valores indicando que ese punto no esta disponible.Por otro lado, en casos de que la region original no sea rectangular o este ro-tada, la matriz de feromona se arma de forma tal que la region quede incluiday los espacios fuera de la region se setean como no disponibles en esta nuevaestructura.

En la Figura 3.2 vemos un ejemplo donde la seccion amarrilla es la regiondel yacimiento, y la celeste es la matriz de feromona. En la matriz de dispo-nibilidad en los casilleros correspondientes a partes azules tendrıamos un 1indicando que no esta disponible esa feromona, ya que no se encuentra dentrode la region.

Page 44: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

32 3. Algoritmos basados en colonia de hormigas

Fig. 3.2: En amarillo el area del yacimiento y el celeste el tamano de la matriz deferomona.

La idea es ejecutar una cantidad (configurable) de iteraciones del algoritmo,obteniendo en cada solucion un conjunto de soluciones que van actualizan-do la matriz de feromona y en cada paso del algoritmo vamos chequeandoy guardando la mejor solucion. En la Figura 3.3 podemos ver algunosejemplos de como quedan las feromonas luego de varias iteraciones, donde laimagen de la izquierda corresponde con una instancia de ogip constante y tieneun pico en la cual el ogip alcanza su valor maximo y la imagen de la derechacorresponde a una instancia, en la cual, la distribucion del ogip es una funcıoncreciente hacia uno de sus vertices y ademas contiene con tres picos donde elogip crece sustancialmente.

Fig. 3.3: Funciones de feromona en distintas iteraciones del algoritmo

El algoritmo esta dividido en dos partes, primero la iteracion inicial yluego la fase de mejora gradual (decision tomada para facilitar la imple-mentacion).

Iteracion Inicial: En esta iteracion se crea una cantidad de solucio-nes aleatorias, y para cada una de estas se actualiza la matriz de feromonas(explicado en detalle mas adelante).

Se pueden apreciar mejor los detalles implementativos en el Algoritmo 6,en donde vemos que en la lınea 1 generamos una lista de soluciones aleatoriasy luego en el ciclo de la lınea 2 chequeamos para cada una, si es buena o malasolucion y calentamos o enfriamos la fermona en el caso que corresponda.

Page 45: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3.2. Descripcion de los algoritmos 33

Algoritmo 6 Pseudocodigo de la iteracion inicial.

1: S = crearSolucionesAleatorias()2: para S ∈ S hacer3: si esBuenaSolucion(S) entonces4: calentarFeromona(S)5: si no6: enfriarFeromona(S);7: fin si8: fin para

Para crear una solucion aleatoria (ver Algoritmo 7), lo que hacemos esiterar hasta que ya no entren mas pads (condicion del mientras de la lınea2) en la solucion. Por cada iteracion, creamos una coordenada aleatoria y unaconfiguracion aleatoria con las cuales generamos un posible pad centrado en esepunto con esa configuracion. Recordemos que usamos la aletoriedad para evitardiscretizar el yacimiento. Luego, en la lınea 6 chequeamos si es un posible pad(al igual que en los algoritmos golosos, nos fijamos si se superpone con otro pady que este dentro del yacimiento) y en caso afirmativo acomodamos dicho pad,es decir, movemos el pad para alguna direccion aleatoria hasta chocarse conotro pad o un borde, logrando ası que los pads se peguen entre sı, y evitando,que al ser aleatorios, perdamos muchos huecos entre pads. Finalmente en lalınea 8 agregamos el pad a la solucion y al finalizar el ciclo, es decir, ya noentran mas pads en la solucion, la retornamos.

Un detalle imporante a tener en cuenta es que la condicion del mientrastermina cuando ya no se pueden insertar mas pads en la solucion aleatoria, estose hace teniendo en cuenta una cantidad fijada por un parametro. Especıfica-mente, intentamos insertar pads en la solucion y si la cantidad de veces queno se pudo insertar es mayor al parametro seteado, se asume que no entranmas pads y sale del mientras.

Algoritmo 7 Pseudocodigo de crearSolucionesAleatorias(): algoritmo paraconseguir soluciones aleatorias.

1: ret = new Solucion()2: mientras (entren pads en ret) hacer3: Coordenada c = generarCoordenadaAleatoria()4: Configuracion s = generarConfiguracionAleatoria()5: Pad pad = crearPadConConfAleatoriaCentradoEnCoordenada(c,s)6: si padValido(pad) entonces7: pad = acomodarPad(pad);8: ret.agregarPad(pad)9: fin si

10: fin mientras11: devolver ret

Page 46: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

34 3. Algoritmos basados en colonia de hormigas

El algoritmo intenta manejar la region en el continuo y para tratar desolucionar el problema de saber cuando ya no entran mas pads.

Esto no siempre es exitoso, podemos ver un ejemplo en la Figura 3.10(a)de una solucion aleatoria, donde termino de poner pads porque la cantidad deintentos de meter uno nuevo supero al parametro configurado, pero podemosver en Figura 3.10(b), marcados con amarrillo tres posibles pads que no seencontraron.

Fig. 3.4: Ejemplo de una solucion aleatoria a la izquierda(a) y posibles pads que fal-taron agregar a la derecha (b)

Fase de mejora gradual: En esta fase se crea una cantidad de solucionesutilizando la feromona, y para cada una de estas se actualiza la matriz deferomonas de la forma que corresponda.

Para crear una solucion utilizando la feromona, se toma el punto mascaliente de la feromona y genera una cantidad configurable de pads aleatoriospara cubrir esa zona y se elige uno de forma aleatoria. Implementado deesta forma para que cada solucion sea distinta de las otras.

La manera de conseguir un pad aleatorio que cubra un punto c, consisteen generar un pad posicionado en cualquier lugar de la region que contenga ac.

Si no se obtiene ningun pad aleatorio que tape dicho punto de la feromona(dado que los pads pueden ser invalidos, por ejemplo tocando una restriccion),entonces se descarta ese punto de la feromona.

Una vez tapado el punto de la feromona eligiendo uno de los pads genera-dos, se acomoda el pad (pegandolo a los otros, para evitar espacios entre pads),se tapa el resto de los puntos de la feromona que este pad cubre (tambien ac-tualizamos la matriz de disponibilidad, dado que tenemos menos puntos) y seitera hasta no tener mas puntos feromona disponibles.

Mostramos a continuacion el pseudocodigo del algoritmo (ver Algoritmo 8)en donde se pueden apreciar mejor los detalles implementativos:

Page 47: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3.2. Descripcion de los algoritmos 35

Algoritmo 8 Pseudocodigo del algoritmo para conseguir soluciones de maxi-ma temperatura.

1: sol = new Solucion()2: mientras (existan puntos de la feromona disponible) hacer3: Feromona p = getMaximaFeromona()4: si posibleFeromona(p) entonces5: para j ∈ 0..U hacer6: nuevoPad = generarNuevoPad(p)7: si esPadValido(nuevoPad) entonces8: nuevoPad = acomodar(nuevoPad)9: sol.agregarPad(nuevoPad)

10: break;11: fin si12: fin para13: fin si14: fin mientras15: devolver sol

Sea U la cantidad de intentos de conseguir un pad que tape una feromonaen particular que se pueden hacer. Podemos ver que tenemos un mientrasque se ejecuta hasta no tener mas puntos de la feromona disponible (lınea 2) ypara cada iteracion, conseguimos el punto donde la feromona esta mas caliente(lınea 3) y por cada intento para lograr taparla, generamos un nuevo padaleatorio (configuracion y centro aleatorio) que tape dicha feromona (lınea 6).En la lınea 7, chequeamos que sea un pad valido, es decir, que no se solape conotros pads, dentro del yacimiento y que tampoco se solape con restricciones.En caso afirmativo, lo acomodamos (al igual que en la iteracion inicial) sindejar de cubrir a la feromona que le corresponde. Luego, lo agregamos a lasolucion, se tapa el resto de los puntos de la feromona que dicho pad cubrio(tambien actualizamos la matriz de disponibilidad) y se itera hasta no tenermas puntos feromona para cubrir.

Algo muy importante a tener en cuenta es que para todos los casos, una vezelegido el pad para agregar a la solucion, a este pad lo acomodamos haciendoque se mueva para la direccion mas cercana a otro pad o borde, hasta chocarcon el. De esta forma, obtenemos soluciones con pads pegados entre sı y seevitan los espacios.

Para actualizar la feromona utilizamos una funcion llamada esBuenaSo-lucion, que determina si una solucion es buena o mala. Contamos con unparametro dado que tenemos tres formas distintas de ver si una solucion esbuena o mala:

1. Opcion 0: Una solucion es buena si el ogip cubierto por esta solucion esmas que el 75 % del total del ogip, en otro caso es una mala solucion.

2. Opcion 1: Una solucion es buena si el ogip cubierto por esta solucion

Page 48: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

36 3. Algoritmos basados en colonia de hormigas

es mas que la mitad de la suma del maximo y mınimo ogip hasta elmomento, en otro caso es mala solucion.

3. Opcion 2: Una solucion es buena si el ogip cubierto por esta soluciones mas que el promedio de los ogip de las soluciones calculadas hasta elmomento, en otro caso es mala solucion.

En caso de que la solucion sea buena se recorre la matriz de feromonas,aumentanto (calentando) cada casillero (punto de la feromona) tapado por unpad en dicha solucion con un valor igual al ogip en ese punto (normalizado)multiplicado por una constante configurada por parametro. Es analogo parael caso de una solucion mala, solamente que disminuyendo (enfriando).

Una vez terminadas todas las iteraciones, tenemos guardado la mejor so-lucion, el numero de iteracion de donde salio dicha solucion y el tiempo quetardamos en conseguirla.

Notar, que la mejor solucion no necesariamente es la de la ultima iteracion,dado que puede llegar un punto en donde las soluciones no mejoren o inclusoempeoren.

3.2.2. Colonia de hormigas con multiples feromonas

Como se menciono anteriormente, tambien se desarrollo una mejora alalgoritmo basado en colonias de hormigas, implementado de forma casiidentica al anterior, salvo que en lugar de tener una unica matriz de feromonas,tenemos una matriz de feromonas por cada configuracion. Es decir si hay cincoconfiguraciones, habra cinco matrices de feromona (aunque una unica matrizde disponibilidad).

Durante la construccion de soluciones, a la hora de actualizar la matrizde feromona, actualizamos para cada matriz los puntos tapados por los padsque tienen esa configuracion. Por ejemplo, si tenemos dos configuraciones, unagrande y una chica, en una matriz de feromona vamos a actualizar los puntostapados por los pads chicos y en la otra matriz de feromona actualizamoslos puntos tapados por pads grandes. A la hora de buscar la feromona mascaliente, se busca entre todas las matrices de feromona.

Esta modificacion se debe a que en algunos casos es conveniente poner lospads mas grandes en los puntos mas calientes mientras que los lugares restan-tes, por ejemplo a los costados de los lugares de alto valor, se agregan padsmas chicos o por ejemplo, poner pads chicos alrededor de los pads mas grandeso tambien, analizar si un punto bastante caliente, es conveniente taparlo conun pad grande o con muchos pequenos, etc.

A continuacion, mostramos ejemplos de feromonas para esta version alter-nativa. Podemos ver en la Figura 3.10(a) como se modifico la feromona en loslugares donde se encuentran los pads mas grandes. Por otro lado, la feromonade la Figura 3.10(b) esta modificada en los lugares que rodean a los pads mas

Page 49: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3.3. Resultados experimentales 37

grandes, concluyendo que se pusieron pads mas chicos alrededor de los masgrandes (ver seccion 3.3)

Fig. 3.5: Ejemplo de una feromona con pads grandes a la izquierda (a) y ejemplo deuna feromona con pads chicos a la derecha (b)

3.3. Resultados experimentales

En esta seccion se muestran los resultados (ver Tabla 3.1) para el algoritmoejecutado con el modelo del paper original (ILP), el algoritmo goloso sencillo(Goloso Sencillo) y el algoritmo goloso con busqueda local (GBL), el algo-ritmo basado en colonia de hormigas (CH) y el algoritmo basado en coloniade hormigas con multiples feromonas (CHMF). Notemos que los parametrosNx y Ny que utilizan ILP y los dos golosos ahora son llamados DF. Esto espara que la comparacion sea justa, entonces igualamos la discretizacion de losyacimientos usada en los algoritmos anteriores (Nx y Ny) con la discretizacionde la fermona que utilizamos en los nuevos algoritmos.

Para cada instancia se muestran los siguientes datos:

1. #: Indica el numero de la instancia.

2. DF: Indica el tamano de la discretizacion de la feromona. En el caso delos golosos e ILP, es equivalente a Nx y Ny

3. Tiempo: Tiempo de ejecucion de la instancia en segundos.

4. % AC. Indica el porcentaje del area cubierta de la solucion.

5. % AS. Indica el porcentaje del area superpuesta de la solucion.

Estos algoritmos tambien cuentan con los parametros:

CSRI: Indica la cantidad de soluciones en la iteracion inicial (donde lassoluciones son aleatorias).

CI: Indica la cantidad de iteraciones del algoritmo en la fase de mojoragradual.

Page 50: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

38 3. Algoritmos basados en colonia de hormigas

CSNRPI: Indica la cantidad de soluciones que se generan por iteracionen las iteraciones posteriores a la primera.

Se realizo en primera instancia una experimentacion preliminar con losalgoritmos basados en colonia de hormigas, con el objetivo de seleccionar losmejores valores. Los resultados obtenidos de esta primera experimentacion sonCSRI = 5, CI = 10, CSNRPI = 5, dichas columnas no son mostradas en latabla para una mejor lectura.

En los casos donde sufrimos un error de memoria, se lo indica con las siglasOOM.

Como podemos apreciar en los resultados obtenidos, el algoritmo basadoen colonia de hormigas no parece ser mejor que los demas en discretizacionesfinas (ver por ejemplo las primeras ejecuciones de las instancia 5 y 9) peroen instancias de discretizacion mas grande el algoritmo siempre da mejor queILP y que el algoritmo goloso sencillo (ver por ejemplo la instancia 1). Estose debe a que estos algoritmos utilizan una discretizacion del yacimiento quees muy grande.

Observemos tambien que la segunda version del algoritmo basado en colo-nia de hormigas es mejor que la primera version en casi todos los casos (verpor ejemplo la instancia 4 y la primera y segunda ejecucion de la instancia5). Notar que existen casos en los que esto no sucede, debido a la componentealeatoria de los algoritmos.

En algunos casos, los algoritmos basados en colonia de hormigas consiguenmejores resultados que los algoritmos golosos. En el caso del algoritmo golososencillo, en todos los casos de discretizaciones grandes (como ya se explico)y en el caso del algoritmo goloso con busqueda local, depende mucho de laaletoriedad del procedimiento, como por ejemplo podemos en la instancia 10.

Por ultimo, al igual que en los algoritmos golosos, con los algoritmos basa-dos en colonia de hormigas logramos discretizar mucho mas fino que con ILP(ver por ejemplo las instancia 2, 3 y la segunda ejecucion de la instancia 5para las cuales ILP tiene problemas de memoria y ahora se solucionaron).

Es importante notar que los algoritmos de esta seccion estan implementa-dos para tener en cuenta el ogip del yacimiento y no el area, por lo tanto, encasos que el yacimiento no tenga ogip (instancia 6), estos algoritmos no sonutiles y los anteriores sı.

Page 51: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3.3. Resultados experimentales 39

Tab

.3.1

:T

ab

lad

ere

sult

ad

os

CH

CH

MF

ILP

Gol

oso

Sen

cillo

GB

L#

DF

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

160

4.86

58.5

50

4.86

58.5

60

0.57

6.25

00.

456.

250

72.3

677.

25

0

22

3121

.41

68.3

10

710.

5958

.54

0O

OM

gener

ando

graf

o80

82.9

896

.31

020

54.8

896.

31

0

35

277.

5356

.80

09.

5338

.19

0O

OM

gener

ando

graf

o83

.57

72.2

00

77.0

950.

23

0

430

8.38

57.1

50

8.59

57.5

50

0.72

30.0

00.

000.

7330

.00

012

.37

63.

00

0

530

366.

0459

.05

060

0.36

60.1

30

8.71

96.6

921

.37

99.9

867

.00

010

.94

64.

53

010

321.

4361

.57

063

4.18

65.1

70

OO

Mge

ner

ando

graf

o9.

0364

.54

07.

09

62.

67

01

2561

1.24

63.8

80

3561

1.24

64.1

00

OO

Mdis

cret

izan

do

OO

Mdis

cret

izan

do

OO

Mdis

cret

izan

do

6100

Inst

anci

asi

nog

ipIn

stan

cia

sin

ogip

252.

9470

.59

0.78

33.6

451

.12

024

.78

49.

44

010

Inst

anci

asi

nog

ipIn

stan

cia

sin

ogip

OO

Mge

ner

ando

graf

o33

69.0

459

.14

024

62.0

.051.

44

0

71

94.2

357

.76

018

6.15

55.0

00

725.

0170

.18

0.80

99.9

867

.00

0103

.92

69.

00

0

810

8.82

31.2

70

29.5

656

.79

01.

9981

.00

0.00

2.57

70.0

00

18.4

884.

00

0

970

2468

.56

56.9

00

6023

.45

55.7

60

770.

7977

.21

1.89

148.

7868

.90

0353

.18

84.

00

0100

1184

.90

54.4

40

2554

.54

58.8

80

OO

Mge

ner

ando

graf

o91

6.54

72.3

60

989

.27

72.

93

0200

4275

2.00

50.8

60

608.

9853

.80

0O

OM

gener

ando

graf

o65

51.3

74.2

20

OO

Mdis

cret

izan

do

1010

2.28

63.0

40

16.7

059

.70

02.

016

96.0

417

3.26

1.77

44.2

10

6.74

59.

64

0

Page 52: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

40 3. Algoritmos basados en colonia de hormigas

Analizando la funcion de feromona podemos ver que en general los puntosdel yacimiento con mayor ogip son tapados por los pads mas grandes y los padsmas pequenos se ubican alrededor de estos. A continuacion, podemos ver unejemplo de como varıa la funcion de feromonas con el paso de las iteracionesen un yacimiento que tiene el ogip creciente para un vertice y tiene tres picos,dos picos en la parte de mayor ogip y un pico en la parte de menor ogip.

Fig. 3.6: Iteracion inicial a la izquierda y primera iteracion a la derecha.

Fig. 3.7: Segunda iteracion a la izquierda y tercer iteracion a la derecha.

Fig. 3.8: Cuarta iteracion a la izquierda y quinta iteracion a la derecha.

Page 53: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

3.3. Resultados experimentales 41

Podemos ver que a medida que avanzan las iteraciones la feromona vatomando una forma de picos (como el ogip en la region). De modo que laferomona mas elevada es la correspondiente al punto en el plano donde esta elogip de mayor valor.

Si ejecutamos la misma instancia pero en la segunda version, obtenemoslos siguientes resultados.

Fig. 3.9: Segunda iteracion para ambas configuraciones.

Fig. 3.10: Tercer iteracion para ambas configuraciones.

Podemos apreciar que el comportamiento es similar a la primera version,pero notemos que para cada iteracion tenemos dos graficos de feromonas,esto es porque tenemos dos configuraciones, y por lo tanto una feromona porconfiguracion. En los graficos de la izquierda se notan marcados los pads masgrandes en la funcion de feromona, esto es porque corresponde a los padsgrandes. En cambio, la feromona de los graficos de la derecha es un pocomenos uniforme dado que corresponde a una configuracion mucho mas chicay estos aparecen en las zonas que rodean a los pads mas grandes.

Page 54: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

42 3. Algoritmos basados en colonia de hormigas

Page 55: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4. MEJORAS AL MODELO ENTERO

Como vimos en capıtulos anteriores, el algoritmo ILP puede generar so-luciones con superposiciones y tener problemas de memoria debido a la grancantidad de puntos de la discretizacion. Para tratar el problema de la memoria,presentamos un algoritmo cuya discretizacion se realiza utilizando informa-cion de la solucion de la relajacion lineal [9] del modelo de ILP (denominadoILP+RL). En dicho algoritmo no se solucionan aun los problemas de sola-pamiento. Luego haremos un analisis de los resultados comparandolo con losalgoritmos anteriores. Por otro lado, presentamos una modificacion de ILP(denominado ILPSS), el cual (en la mayoria de los casos) no presenta solapa-mientos. Veremos que este ultimo presenta nuevos problemas de memoria yfinalizamos presentando una serie de discusiones y resultados sobre los algo-ritmos implementados.

4.1. Algoritmo con relajacion lineal

4.1.1. Motivacion

Como ya hemos tratado, ILP presenta problemas de memoria. Estos sedeben a dos posibles causas:

1. Cuando se trata de generar todos los puntos de la discretizacion, ya queson una cantidad muy grande.

2. Cuando se genera el grafo, dado que la cantidad de vertices y aristas esmuy elevada.

Una solucion posible es discretizar con distancias mas grandes, pero estoposiblemente traerıa resultados menos eficientes. Dados estos problemas y laintencion de discretizar lo mas fino posible, presentamos un algoritmo que uti-liza informacion de la relajacion lineal del modelo para refinar la discretizacionen ciertas zonas del yacimiento, logrando discretizciones mas finas sin incurriren problemas de memoria.

43

Page 56: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

44 4. Mejoras al modelo entero

4.1.2. Descripcion del algoritmo

Lo primero que hacemos es resolver la relajacion lineal del modelo presen-tado en la Seccin 1.3 con una discretizacion relativamente “gruesa” (distanciasgrandes entre puntos). Como solucion, las variables del modelo tendrA¡n va-lores reales entre 0 y 1, que interpretamos como una prioridad para las zonasen cuestion, es decir, cuanto mas cerca de 1 este el resultado mas prioridaddebemos darle a esa zona.

Una vez que sabemos los resultados de la relajacion lineal, vamos a dis-cretizar nuevamente, pero esta vez con distancias muy pequenas, no en todoel yacimiento sino en una circunferencia centrada en los puntos resultantesde la relajacion lineal. Notar que el radio de la circunferencia es variable de-pendiendo de la prioridad de la zona, para de esta forma, discretizar masdetalladamente las zonas con mas prioridad y menos las zonas con menosprioridad.

Podemos ver en la Figura 4.1 un ejemplo donde la X es uno de los centrosde pads obtenidos de la relajacion lineal y generamos una circunferencia deradio r (que depende del resultado de la relajacion lineal) y dentro de lacircunferencia discretizamos con una distancia entre puntos muy pequena.

Fig. 4.1: Construccion de la circunferencia

En casos extremos, donde la circunferencia queda solapada con los bordes ocon otra circunferencia, no la descartamos sino que la recortamos, para no per-der tantos puntos de la discretizacion, ya que en la mayorıa de las instanciasencontramos circunferencias que se solapan con los bordes. Este comporta-miento es causado dado que muchos puntos de la discretizacion quedan cercade los bordes, y la circunferencia generada en alguno de estos puntos queda porfuera del yacimiento. La Figura 4.2 muestra un ejemplo de estas situaciones.

Page 57: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4.1. Algoritmo con relajacion lineal 45

Fig. 4.2: Construccion de una circunferencia en el borde del yacimiento.

Podemos ver en la Figura 4.3(a) la solucion que se obtiene de la relajacionlineal. Cuanto mas cercano a 1 es la solucion, mas oscuro es el punto. Por otrolado, en la Figura 4.3(b), podemos ver en naranja como se generan circun-ferencias alrededor de los puntos de la Figura 4.3(a). Luego, dentro de cadacircunferencia se genera una discretizacion con una distancia entre puntos muypequena.

Fig. 4.3: A la izquierda ejemplo de resultado de la relajacion lineal (a) y a la derechaejemplo de las circunferencias centradas en las soluciones anteriores (b).

Para finalizar, ejecutamos nuevamente el algoritmo de programacion linealentera original (ILP), pero con esta nueva discretizacion para ası obtener lasolucion final.

Podemos ver en la Figura 4.4(a) un ejemplo de la solucion obtenida porla relajacion lineal en una instancia real. En la Figura 4.4(b) se hace zoomen el area marcada con rojo y se muestra como quedan discretizadas las cir-cunferencias en ese sector. Tambien es interesante ver que los puntos estanagrupados, es decir, los mas oscuros estan juntos mientras que los mas clarostambien lo estan.

Page 58: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

46 4. Mejoras al modelo entero

Fig. 4.4: A la derecha solucion de relajacion lineal en instancia real (a) y a la izquierdazoom del area resaltada en rojo mostrando el resultado de la discretizacion(b).

El Algoritmo 9 muestra el pseudocodigo del procedimiento en donde po-demos apreciar mejor los detalles implementativos:

Algoritmo 9 Pseudocodigo del algoritmo utilizando relajacion lineal

1: construirDiscretizacion()2: generarPads();3: construirGrafo()4: resolverRelajacionLineal();5: para p ∈ resultados relajacion lineal hacer6: c = construirCircunferenciaCentrada(p)7: discretizar(c)8: fin para9: generarPads();

10: construirGrafo();11: resolverModelo();12: devolver tomarResultados()

En las lıneas 1 a 3, se genera la discretizacion con los parametros pasados(es decir, la discretizacion con distancias gruesas), luego se generan todos lospads posibles y se construye el grafo. En la lınea 4 se resuelve la relajacionlineal.

A continuacion, se recorren los puntos obtenidos construyendo las circunfe-rencias centradas en ellos y se discretiza cada una (idealmente con una distan-cia entre puntos muy fina). Nuevamente generamos los pads (pero ahora parala nueva discretizacion), y construimos el grafo. Para terminar, se resuelve elnuevo modelo y se retornan los resultados.

Notar que el radio de las circunferencias es variable dependiendo del re-sultado de la relajacion lineal (cuando mas cerca a 1 mayor es, y cuanto mascerca a 0 menor es). De esta forma, se evita tener una cantidad muy grande

Page 59: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4.1. Algoritmo con relajacion lineal 47

de puntos en la discretizacion, dado que solo discretizamos algunos sectoresy no todo el yacimiento. Ası, el grafo generado es un grafo que no contie-ne tantas aristas ni tantos vertices. Con esto logramos disminuir el problemade la memoria y podemos discretizar las zonas de mayor prioridad con unadiscretizacion extremadamente fina, situacion que con ILP no se podıa lograr.

4.1.3. Resultados

En esta seccion se muestran los resultados obtenidos con el algoritmo pro-puesto y los resultados de ILP para comparar (Ver Tabla 4.1).

Para cada instancia se muestran los siguientes datos:

1. #: Indica el numero de instancia.

2. Nx y Ny: Indican los pasos horizontal y vertical, respectivamente, de ladiscretizacion (distancia entre puntos).

3. DC: Indica el paso horizontal y vertical dentro de la circunferencia.

4. Tiempo: Tiempo de ejecucion de la instancia ejecutada, medido en se-gundos.

5. % AC.: Indica el porcentaje del area cubierta por la solucion.

6. % AS.: Indica el porcentaje del area superpuesta en la solucion.

Tab. 4.1: Tabla de resultadosILP+RL ILP

#Nx Ny DC Tiempo %AC. %AS. Nx Ny Tiempo %AC. %AS.

1 100 100 60 0.82 6.00 0.00 60 60 0.57 6.25 0.00

2 5 5 2 113.07 87.13 71.82 2 2 OOM generando grafo

3 25 25 5 661.35 79.21 1.84 5 5 OOM generando grafo

4 60 60 30 0.89 29.00 0.00 30 30 0.72 30.00 0.00

560 60 30 28.15 96.70 20.01 30 30 8.71 96.70 21.3430 30 10 14.98 94.49 24.20 10 10 OOM generando grafo30 30 1 28.15 88.96 57.30 1 1 OOM discretizando

6100 100 40 41.30 70.10 14.58 100 100 254.94 70.59 0.78100 100 10 59.70 72.06 15.40 10 10 OOM generando grafo

7 10 10 1 891.05 82.27 0.52 1 1 754.94 70.19 0.80

8 30 30 10 3.91 81.00 0.00 10 10 1.98 81.00 0.00

9100 100 70 810.37 76.32 2.43 70 70 770.79 77.21 1.90200 200 30 150.28 79.49 16.66 30 30 OOM generando grafo100 100 20 242.44 83.29 14.76 20 20 OOM generando grafo

10 20 20 10 4.72 95.99 101.00 10 10 2.02 96.04 173.26

Es interesante notar que en los casos en los ILP no genera error, nuestroalgoritmo se comporta de manera similar (lo cual es esperable dado que in-ternamente utilizamos ILP). En general, cuando ambos algoritmos funcionan,

Page 60: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

48 4. Mejoras al modelo entero

nuestro algoritmo tarda mas, pero existen casos (como por ejemplo la primerejecucion de la instancia 6) para los cuales logramos menor tiempo.

En todos los casos, los pasos de discretizacion (Nx y Ny) no son igualesentre los algoritmos dado que nuestro nuevo algoritmo primero discretiza condistancias grandes y luego discretiza mas fino. Por lo tanto, para que la com-paracion sea justa, el paso de la discretizacion de la circunferencia es igual alpaso de la discretizacion del algoritmo ILP.

Lo primero que podemos decir, es que aunque ILP+RL resuelve dos algo-ritmos internamente (y ademas uno es un modelo de programacion entera) lostiempos no necesariamente van a ser mas altos que los del algoritmo ILP. Estose debe a que el primer modelo que resuelve ILP+RL tiene una discretizacionmuy grande a diferencia de ILP que directamente utiliza una discretizacionmas fina. Luego a la hora de hacer la relajacion lineal, la discretizacion estaacotada por los resultados anteriores y generalmente no demora mucho tiempo.

En los casos donde sufrimos un error de memoria, se lo indica con las siglasOOM.

Con este algoritmo logramos ejecutar todas las ejecuciones que con ILPno se pudo por problemas de memoria. Ademas, en varias instancias logramosun porcentaje de area cubierta mayor que en ILP. Ver por ejemplo, la segundaejecucion de la instancia 6, donde logramos conseguir, para una misma ins-tancia, mas area que ILP, el cual logro conseguir 70.59 % y nosotros logramos72.06 %.

Page 61: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4.2. Algoritmo sin superposiciones 49

4.2. Algoritmo sin superposiciones

4.2.1. Motivacion

Un problema importante que presenta ILP son las superposiciones. Comose puede ver en los siguientes ejemplos, la cantidad de area superpuesta puedellegar a ser un valor muy alto dependiendo de la instancia. En casos extremos,podemos encontrar un porcentaje de solapamiento mayor al 200 %, ya quevarios pads cubren la misma zona.

Fig. 4.5: Ejemplo de solapamientos con ILP.

Para resolver este problema, proponemos un nuevo algoritmo que modificala forma en la que se genera el modelo. Si bien el algoritmo planteado evita elsolapamiento en la mayorıa de las soluciones, veremos mas adelante que existencasos extremos en los que este objetivo no se logra (aunque el solapamientoen estos casos se reduce considerablemente).

4.2.2. Descripcion del algoritmo

El grafo de conflictos definido en la introduccion es un grafo G = (T , E)cuyos vertices estan dados por todos los pads generados, y cuyas aristas unenpares de pads con interseccion no vacıa. El conjunto E esta compuesto porlos pares (P1, P2) tales que existe algun punto (x, y) ∈ D con (x, y) ∈ P1 y(x, y) ∈ P2, donde D es la discretizacion generada.

Dada esta definicion, el problema de las superposiciones del algoritmo ILPse debe a que las restricciones del modelo se generan utilizando los puntos dela discretizacion y para cada punto chequeando que pads lo cubren. De estaforma existen casos como los que se pueden ver en las siguientes figuras:

Fig. 4.6: Superposiciones en ILP.

Page 62: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

50 4. Mejoras al modelo entero

Las X en los dibujos indican puntos en la discretizacion, mientras quelos rectangulos son los pads. Tanto en la imagen de la izquierda como enla de la derecha, podemos ver que los pads utilizados cubren los puntos dela discretizacion pero entre ellos se solapan. En la imagen de la izquierda,podemos ver que se taparon los dos primeros puntos de la discretizacion y sesolaparon dichos pads. Luego, en la imagen de la derecha se agrega un nuevopad, dado que cubre un punto disponible, pero tiene una leve interseccion conel pad agregado anteriormente.

Existen casos aun mas problematicos, como por ejemplo se ve en la si-guiente imagen, donde existe una region solapada por mas de dos pads.

Fig. 4.7: Explicacion de superposiciones multiples en ILP.

Podemos apreciar que cada uno de los cuatro pads cubre un determinadopunto de la discretizacion pero entre ellos se solapan. En amarillo vemos lossolapamientos dobles, y en el centro, en rojo, se intersectan los cuatro pads.

Esta es la razon por la cual, en algunas instancias, el porcentaje del areacubierta es un valor al 100 % (por ejemplo, en algunas instancias encontramosmas del 250 % solapado).

La modificacion esencial que hacemos en nuestro nuevo algoritmo consisteen cambiar la forma en la que se construye el grafo. La idea principal es queen lugar de chequear superposiciones usando los puntos de la discretizacion,vamos a utilizar las cuatro esquinas de cada pad de la solucion. De esta formaevitamos que dos pads se solapen en los vertices.

A continuacion, mostramos el pseudocodigo del algoritmo (Algoritmo 10)que genera el grafo para poder apreciar mejor los detalles implementativos,donde P es el conjunto de todos los pads disponibles y Vertices(P) es la funcionque dado un pad devuelve los cuatro vertices del mismo.

En la lınea 1, creamos el grafo de conflictos. Luego, en las lıneas 3 y 4iteramos todos los vertices v de todos los pads agregando el pad actual y luego,generamos una clique (lıneas 6 a 11) con todos los pads que toquen tal punto(lınea 7). Finalmente, en la lınea 11 agregamos la clique al grafo y volvemos aiterar con otro vertice.

Con esta solucion logramos un solapamiento nulo en la mayorıa de lasinstancias, aunque en casos muy particulares (instancias generadas a mano),puede llegar a existir solapamiento. Esto, se debe a que ahora nosotros che-queamos la interseccion entre los pads y todos los vertices, pero en caso deexistir una configuracion de pads (configuraciones) que puedan solaparse los

Page 63: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4.2. Algoritmo sin superposiciones 51

Algoritmo 10 Pseudocodigo para construir el grafo.

1: g = new Grafo()2: para P ∈ P hacer3: para v ∈ Vertices(P) hacer4: clique = ∅5: clique.add(P)6: para U ∈ P hacer7: si intersecaPadConPunto(v,U) entonces8: clique.add(U)9: fin si

10: fin para11: g.agregarClique(clique)12: fin para13: fin para14: devolver g

pads sin cubrir los vertices, existe la posibilidad de que la solucion tenga sola-pamientos.

Vemos por ejemplo la siguiente solucion en donde tenemos un tipo de padcon forma cuadrada y otro de forma rectangular logrando ası que dos pads sesolapen pero no se cubran los vertices.

Fig. 4.8: Solucion en donde persisten los solapamientos.

Una forma de solucionar esto es sido agregar una arista para cada par depads que solapen su area de cobertura mas alla de si tocan o no un punto de ladiscretizacion (como en los ejemplos anteriores). Lamentablemente, esto llevaa tiempos de generacion del modelo intratables, ası tambien como a modelosde tamanos muy grandes.

Page 64: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

52 4. Mejoras al modelo entero

4.2.3. Resultados

En esta seccion presentamos una tabla (Tabla 4.2) que corresponde conlos resultados obtenidos con el algoritmo propuesto y tambien se muestranlos resultados de ILP, el algoritmo goloso sencillo y el algoritmo goloso conbusqueda local (GBL) para comparar.

Es importante remarcar que los parametros PMD y PMD solamente sonusados por el algoritmo goloso con busqueda local.

Lo primero que podemos ver es que ILPSS logra un area cubierta mayor quelos algoritmos golosos y no tiene solapamientos (por ejemplo en las primerasejecuciones de las instancia 5 y 6, entre otras). Pero en general, la diferenciaentre los algoritmos golosos y este nuevo algoritmo es pequena. En algunoscasos, el nuevo algoritmo es mejor que el algoritmo goloso sencillo y no que elalgoritmo goloso con busqueda local y viceversa.

Este nuevo algoritmo logra conseguir un % de area cubierta muy cercanoa los resultados de ILP y en este caso sin tener solapamientos mientras ILPsi tiene, como se puede apreciar en las primeras ejecuciones de las instancias5, 6 y 9. En determinados casos, el porcentaje es menor, como por ejemploen la instancia 10, pero el area superpuesta es significativamente menor. Enlos casos en los que ILP no tiene solapamientos, los resultados en cuanto alarea cubierta son exactamente los mismos (como por ejemplo en 1, 4 y 8).Con respecto a los tiempos, este nuevo algoritmo suele ser un poco mas lentoque ILP ya que el grafo de conflictos cuenta con un tamano mayor. Dado queel modelo es mas grande, puede ocurrir en determinadas instancias (ver porejemplo la instancia 7), que nos encontremos con problemas de memoria aldiscretizar el yacimiento, mientras que en ILP no sucede.

En los casos donde sufrimos un error de memoria, se lo indica con las siglasOOM.

Page 65: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

4.2. Algoritmo sin superposiciones 53

Tab

.4.2

:T

ab

lad

ere

sult

ad

os

ILP

SS

ILP

Gol

oso

Sen

cillo

GB

L#

Nx

Ny

PM

DP

MD

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

Tie

mp

o%

AC

.%

AS.

160

601

10.

906.

250

0.57

6.25

0.00

0.45

6.25

072

.36

77.

25

0

22

21

1O

OM

gener

ando

graf

oO

OM

gener

ando

graf

o80

82.9

896

.31

020

54.

8896.

31

0

35

51

1O

OM

gener

ando

graf

oO

OM

gener

ando

graf

o83

.57

72.2

00

77.0

950.

23

0

430

301

10.

7430

.00

00.

7230

.00

0.00

0.73

30.0

00

12.3

763.

00

0

530

3025

130

.41

92.4

10

8.71

96.7

021

.34

99.9

867

.00

010

.94

64.

53

010

1010

10O

OM

gener

ando

graf

oO

OM

gener

ando

graf

o9.

0364

.54

07.

0962.

67

01

11

1O

OM

dis

cret

izan

do

OO

Mdis

cret

izan

do

OO

Mdis

cret

izan

do

OO

Mdis

cret

izando

6100

100

100

100

306.

0070

.00

025

4.94

70.5

90.

7833

.64

51.1

20

24.7

849.

44

010

1010

10O

OM

gener

ando

graf

oO

OM

gener

ando

graf

o33

69.0

459

.14

024

62.

0051.

44

0

71

11

1O

OM

dis

cret

izan

do

754.

9470

.19

0.80

99.9

867

.00

010

3.92

69.

00

0

810

101

13.

0681

.00

01.

9881

.00

02.

5770

.00

018

.48

84.

00

0

970

7025

2592

9.54

75.5

10

770.

7977

.21

1.90

148.

7868

.90

035

3.15

84.

00

030

3015

15O

OM

gener

ando

graf

oO

OM

gener

ando

graf

o91

6.54

72.3

60

989.

2772.

93

020

2010

10O

OM

gener

ando

graf

oO

OM

gener

ando

graf

o65

51.3

074

.22

0O

OM

dis

cret

izando

10

1010

11

3.01

81.0

00

2.02

96.0

417

3.26

1.77

44.2

10

6.74

59.

64

0

Page 66: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

54 4. Mejoras al modelo entero

Page 67: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

5. DISCUSION Y CONCLUSIONES

La Tabla 5.1 muestra los resultados obtenidos por todos los algoritmos (in-cluso ILP). Podemos concluir que ILP se superpone mas que todos los demasalgoritmos. Incluso, ILPSS nunca tiene mas superposiciones que ILP. En loscasos que ILP no tiene superposiciones, ILPSS obtiene exactamente los mis-mos resultados, lo cual indica que ambos algoritmos se comportan del mismomodo. En los casos que ILP tiene superposiciones, ILPSS logra conseguir va-lores muy cercanos a el. De esto, podemos concluir que nuestro algoritmo notiene superposiciones (en casos logra 200 % menos que ILP) y logra resultadosrazonables.

Con respecto a ILP+RL, en todos los casos vimos que obtenemos resul-tados comparables con ILP. Pero es importante remarcar que con ILP+RLpodemos utilizar instancias mucho mas discretizadas (con una discretizacionextremadamente fina) dado que no encontramos problemas de memoria. Pu-dimos ejecutar, con este algoritmo todas las instancias propuestas.

Los algoritmos golosos generalmente logran resultados cercanos a ILP. Enparticular, el algoritmo goloso sencillo en discretizaciones grandes se comportaexactamente igual, mientras que GBL consigue resultados de mejor calidad queILP. En casos de discretizaciones mas finas, el algoritmo goloso sencillo no logratan buenos resultados, mientras que GBL es un algoritmo muy competitivo.Haciendo una comparacion entre ambos, en general, el algoritmo goloso sencilloconsigue menos que que GBL.

ILPSS logra, en casi todos los casos, mejores resultados que los algoritmosgolosos y ninguno de estos se solapa. Vale aclarar que la diferencia entre estoses leve.

Analizando los algoritmos basados en colonias de hormigas, podemos ob-servar que CHMF generalmente consigue resultados mejores que CH. Tambiense observa que los puntos mas altos de ogip son cubiertos con los pads masgrandes primero.

Existen casos, en los que las colonias de hormigas son mejores que losgolosos, pero en general esto no sucede. Esto se debe a la aleatoriedad de lassoluciones iniciales.

Comparando los algoritmos de colonia de hormigas frente a los demas, engeneral estos obtienen un resultado menor. Pero vale aclarar que al trabajarsin discretizaciones, nunca obtenemos problemas de memoria.

Algo muy importante a remarcar es que en todos los algoritmos propuestoslogramos discretizar mas fino (sea el yacimiento o la feromona) que lo maxi-mo que podıamos lograr con ILP. Disminuir la distancia entre puntos de ladiscretizacion no significa que los resultados sean mejores, es decir, en muchoscasos los mejores resultados se logran en discretizaciones medias y no las masfinas posibles.

55

Page 68: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

56 5. Discusion y Conclusiones

Con respecto a los problemas de memoria, en ambos algoritmos golosos,ambas colonias de hormigas y en ILP+RL logramos discretizar mas fino quecon ILP. En cambio, en ILPSS obtuvimos problemas de memoria en instanciasdonde en ILP no se obtenıan.

En los casos que ILP no tiene problemas, ILP+RL consigue un %AC. leve-mente menor, y un tiempo levemente mayor en la mayorıa de los casos, peroexisten casos donde logramos conseguir un resultado en tiempo considerable-mente mejor y tambien, logramos en algunas instancias conseguir mejor %AC.

Sobre los tiempos de ejecucion, el algoritmo goloso sencillo suele tenerun tiempo menor o igual que ILP. El GBL en todos los casos tarda masque el algoritmo goloso simple y que ILP, esto se debe a la logica extra quecontiene. En general, CH tarda mucho mas que ILP y CHMF tarda mas queCH. ILP+RL siempre tarda mas que ILP dado que lo ejecuta internamente,pero los tiempos son competitivos contra los algoritmos golosos. El algoritmoILPSS siempre tarda mas que ILP dado que el modelo generado es mucho masgrande.

Concluimos entonces que los puntos fuertes son:

1. La funcion objetivo de las soluciones obtenidas con los distintos algo-ritmos es competitiva con relacion a las soluciones de ILP. En algunoscasos logramos mejores resultados, y en otros logramos peores resultadospero con menos superposiciones.

2. Nuestros algoritmos no sufren superposiciones (excepto ILP+RL queutiliza ILP).

3. Con todos los algoritmos logramos discretizar mas y evitamos muchosproblemas de memoria.

4. En discretizaciones no tan finas, GBL es mucho mejor que ILP. Mientrasque el algortimo goloso sencillo encuentra soluciones similares a ILP.

5. CH suele ser peor que los demas algoritmos y CHMF en general encuen-tra mejores soluciones que CH.

6. Generalmente ILP+RL obtiene los mismos valores que ILP, solapandosemenos, pero con discretizaciones mas finas

7. En pocos casos ILP+RL logra mejor %AC. que ILP.

8. Si ILP no tiene superposiciones, obtiene los mismos resultados que IL-PSS. ILPSS da valores muy cercanos a ILP y sin solapamientos.

Para finalizar, consideramos que en esta tesis logramos mejorar los resultadosobtenidos por el algoritmo existente basado en programacion lineal entera, yasea discretizando mas como tambien obteniendo soluciones para instancias queno se podıan ejecutar previamente. Estos resultados nos dan la pauta de que

Page 69: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

57

podrıamos seguir trabajando sobre este problema, con el objetivo de disenaralgoritmos mas eficientes y obtener mejores resultados.

Para simplificar la lectura, los parametros de ILP+RL, utilizamos valor deDF como DC y la discretizacion inicial esta dada por NxI y NyI. Para ladiscretizacion de ILPSS utilizamos los parametros comunes, Nx y Ny. Paralas colonias de hormigas, ambas son utilizadas con los parametros CSRI = 5,CI = 10, CSNRPI = 5, dichas columnas no son mostradas en la tabla paramejor lectura.

Page 70: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

58 5. Discusion y Conclusiones

Tab

.5.1

:R

esu

ltad

os

fin

ale

s

#Nx

Ny

PMD

PMD

ILP

Goloso

GBL

Tiempo

%AC

%AS

Tiempo

%AC

%AS

Tiempo

%AC

%AS

160

60

11

0.57

6.25

0.00

0.45

6.25

072.36

77.25

02

22

11

OOM

gen

erandografo

8082.98

96.31

02054.88

96.31

03

55

11

OOM

gen

erandografo

83.57

72.20

077.09

50.23

04

30

30

11

0.72

30.00

0.00

0.73

30.00

012.37

63.00

0

530

30

25

18.71

96.70

21.34

99.98

67.00

010.94

64.53

010

10

10

10

OOM

gen

erandografo

9.03

64.54

07.09

62.67

01

11

1OOM

discretizando

OOM

discretizando

OOM

discretizando

6100

100

100

100

254.94

70.59

0.78

33.64

51.12

024.78

49.44

010

10

10

10

OOM

gen

erandografo

3369.04

59.14

02462.00

51.44

07

11

11

754.94

70.19

0.80

99.98

67.00

0103.92

69.00

08

10

10

11

1.98

81.00

0.00

2.57

70.00

018.48

84.00

0

970

70

25

25

770.79

77.21

1.90

148.78

68.90

0353.15

84.00

030

30

15

15

OOM

gen

erandografo

916.54

72.36

0989.27

72.93

020

20

10

10

OOM

gen

erandografo

6551.30

74.22

0OOM

discretizando

10

10

10

11

2.02

96.04

173.26

1.77

44.21

06.74

59.64

0

CH

CHMF

ILP+RL

ILPSS

#Nx

Ny

NxI

NyI

DF

Tiempo

%AC

%AS

Tiempo

%AC

%AS

Tiempo

%AC

%AS

Tiempo

%AC

%AS

160

60

100

100

60

4.86

58.55

04.86

58.56

00.82

6.00

0.00

0.90

6.25

02

22

55

23121.41

68.31

0710.59

58.54

0113.07

87.13

71.82

OOM

gen

erandografo

35

525

25

5277.53

56.80

09.53

38.19

0661.35

79.21

1.84

OOM

gen

erandografo

430

30

60

60

30

8.38

57.15

08.59

57.55

00.89

29.00

0.00

0.74

30.00

0

530

30

60

60

30

366.04

59.09

0600.36

60.13

028.15

96.70

20.01

30.41

92.41

010

10

30

30

10

321.43

61.57

0634.18

65.17

014.98

94.49

24.20

OOM

gen

erandografo

11

30

30

125611.24

63.88

035611.24

64.10

028.15

88.96

57.30

OOM

discretizando

6100

100

100

100

40

Instanciasinogip

Instanciasinogip

41.30

70.10

14.58

306.00

70.00

010

10

100

100

10

Instanciasinogip

Instanciasinogip

59.70

72.06

15.40

OOM

gen

erandografo

71

110

10

194.23

57.76

0186.15

55.00

0891.05

82.27

0.52

OOM

discretizando

810

10

30

30

10

8.82

31.27

029.56

56.79

03.91

81.00

0.00

3.06

81.00

0

970

70

100

100

70

2468.56

56.90

06023.45

55.76

0810.37

76.32

2.43

929.54

75.51

030

30

200

200

30

1184.90

54.44

02554.54

58.88

0150.28

79.49

16.66

OOM

gen

erandografo

20

20

100

100

20

42752.00

50.86

0608.98

53.80

0242.44

83.29

14.76

OOM

gen

erandografo

10

10

10

20

20

10

2.28

63.04

016.70

59.70

04.72

95.99

101.00

3.01

81.00

0

Page 71: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

5.1. Trabajos futuros 59

5.1. Trabajos futuros

Nuestros algoritmos mostraron caracterısticas que mejoran al algoritmoILP. La implementacion de estos es un punto fuerte a seguir investigando,dado que podrıamos mejorar sus tiempos de computo.

Por otro lado, nuestro algoritmo ILPSS evita superposiciones en la mayorıade los casos, pero existen casos en los que esto no sucede. Por lo tanto, sedeja la puerta abierta para proponer y/o mejorar este modelo para evitarsuperposiciones en todos los casos.

Page 72: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

60 5. Discusion y Conclusiones

Page 73: Algoritmos heur sticos para el problema de optimizaci on ...dc.sigedep.exactas.uba.ar/media/academic/grade/thesis/tesis-crusso.pdfPara evitar esta situaci on, se presenta adem as un

Bibliografıa

[1] A. Schrijver. “Theory of Linear and Integer Programming”, Wiley Inters-cience, New York, 1986.

[2] F. Aliaga, D. Delle Donne, G. Duran y J. Marenco, “Optimizacion del areade drenaje en yacimientos no convencionales por medio de programacionlineal entera”, Revista Ingenierıa de Sistemas 28 (2014) 27–40.

[3] F. Harary, “Graph Theory”, Addison-Wesley, 1969.

[4] F. Marini y B. Walczak, “Particle swarm optimization (PSO). A tutorial”,Chemometrics and Intelligent Laboratory Systems, 2015.

[5] G. Brassard y P. Bratley, “Fundamentals of algorithmics”. Englewood,N.J: Prentice Hall, 1996.

[6] G. Nemhauser y L. Wolsey. “Integer and combinatorial optimization”.Wiley-Interscience, New York, NY, USA, 1988.

[7] H. Hoos y T. Stutzle, “Stochastic Local Search: Foundations and Appli-cations”, Morgan Kaufmann Publishers, 2004.

[8] M. Dorigo, “Ant Colony Optimization: A New Meta-Heuristic”, Univer-site Libre de Bruxelles, 1991.

[9] V. Chvatal. “Linear Programming”, W.H.Freeman and company, NewYork, 1983.

61