Proyecto Fin de Grado -...

63
ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER- ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS Proyecto Fin de Grado Ingeniería de Organización Industrial ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS Autor: Ignacio Castellano Jiménez Tutor: Jose Manuel García Sánchez Dto. Organización Industrial y Gestión de empresas Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017

Transcript of Proyecto Fin de Grado -...

Page 1: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-

ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN

GRAFOS

Proyecto Fin de Grado

Ingeniería de Organización Industrial

ANÁLISIS DE LAS ESTRATEGIAS

ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y

DESROCHERS-LAPORTE PARA EL PROBLEMA

DE STEINER EN GRAFOS

Autor: Ignacio Castellano Jiménez

Tutor: Jose Manuel García Sánchez

Dto. Organización Industrial y Gestión de

empresas

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2017

Page 2: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

i

Page 3: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ii

Proyecto Fin de Grado

Ingeniería de Organización Industrial

ANÁLISIS DE LAS ESTRATEGIAS

ANTIBUCLES DE MILLER-TUCKER-ZEMLIN

Y DESROCHERS-LAPORTE PARA EL

PROBLEMA DE STEINER EN GRAFOS

Autor:

Ignacio Castellano Jiménez

Tutor:

Jose Manuel García Sánchez

Profesor asociado

Dep. de Organización Industrial y Gestión de Empresas

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2017

Page 4: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

iii

Proyecto Fin de Grado: ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-

ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2017

El Secretario del Tribunal

Autor: Ignacio Castellano Jiménez

Tutor: Jose Manuel García Sánchez

Page 5: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

iv

AGRADECIMIENTOS

Agradezco a mi familia, amigos y a Ana su apoyo constante; a mi tutor Jose Manuel García Sánchez y a todos

los compañeros y profesores que me han acompañado en esta etapa en la Escuela Técnica Superior de

Ingeniería de la Universidad de Sevilla por su dedicación en el trabajo y el respeto hacia mi persona.

Mención especial a mi compañero del Grado en Ingeniería de Organización Industrial, Antonio García, que

me orientó en el inicio de este proyecto.

Muchas gracias a todos.

Page 6: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

v

ÍNDICE

OBJETO DEL PROYECTO ........................................................................................................... 1

EL PROBLEMA DE STEINER ...................................................................................................... 3

Aplicaciónes del Problema de Steiner ......................................................................................... 4

FORMULACIÓN MATEMÁTICA ............................................................................................... 9

Modelo de optimización: el Problema de Steiner ..................................................................... 10

El Problema del Viajante de Comercio ..................................................................................... 15

Modelos MTZ y DL ..................................................................................................................... 18

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO ....................................................... 22

Introducción a LINGO ................................................................................................................ 22

Code::Blocks ............................................................................................................................... 29

RESULTADOS EXPERIMENTALES ........................................................................................ 32

Características de los problemas ............................................................................................... 34

Resultados obtenidos ................................................................................................................... 40

CONCLUSIONES ........................................................................................................................... 48

BIBLIOGRAFÍA .............................................................................................................................. 49

ANEXOS ............................................................................................................................................ 50

Fichero de entrada de un problema ........................................................................................... 50

Modelo en C (Code::Blocks) ...................................................................................................... 51

Problema “steinb1.txt” Modelo MTZ en LINGO .................................................................... 54

Problema “steinb1.txt” Modelo DL en LINGO ....................................................................... 55

Page 7: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

vi

Índice de figuras

FIG. 1.2 GRAFO DE STEINER ........................................................................................................................................................... 5

FIG. 1.3 SOLUCIÓN GRAFO DE STEINER .......................................................................................................................................... 5

FIG. 1.4 POSIBLES SOLUCIONES “CONEXIÓN DE ISLAS” .................................................................................................................. 6

FIG. 1.5 REDES DE TRANSPORTE ..................................................................................................................................................... 7

FIG. 1.6 SERVICIO SEVICI ................................................................................................................................................................ 7

FIG. 1.7 MENSAJERÍA UPS .............................................................................................................................................................. 8

FIG. 2.1 TIPOS DE ARCOS............................................................................................................................................................... 11

FIG. 2.2 PROBLEMA DE STEINER ................................................................................................................................................... 12

FIG. 2.3 RED SOLUCIÓN FINAL ...................................................................................................................................................... 12

FIG. 2.4 FORMACIÓN DE CICLOS ................................................................................................................................................... 18

FIG. 3.1 REPRESENTACIÓN GRÁFICA DE UN PROBLEMA EN LINGO .............................................................................................. 22

FIG. 3.2 PANTALLA DE INICIO EN LINGO ..................................................................................................................................... 23

FIG. 3.3 EJEMPLO EN LINGO ....................................................................................................................................................... 26

FIG. 3.4 MENSAJE DE ERROR EN LINGO ...................................................................................................................................... 27

FIG. 3.5 VENTANA LINGO SOLVER STATUS .................................................................................................................................. 27

FIG. 3.6 SOLUCIÓN DEL PROBLEMA .............................................................................................................................................. 28

FIG. 3.7 CAMBIO DE FORMATO DE LOS DATOS .............................................................................................................................. 30

FIG. 3.8 EJEMPLO APERTURA Y CIERRE DE UN FICHERO ............................................................................................................... 31

FIG. 3.9 EJEMPLO ESCRITURA EN UN FICHERO ............................................................................................................................. 31

FIG. 4.1 REPRESENTACIÓN EN FLUJO ............................................................................................................................................ 32

FIG. 4.2 CLASES DE PROBLEMAS ................................................................................................................................................... 34

FIG. 4.3 GRÁFICO DE CARACTERÍSTICAS DE LOS PROBLEMAS ....................................................................................................... 36

FIG. 4.4 GRÁFICO DE TENDENCIA DEL GRUPO DE PROBLEMAS DE CLASE “B” ............................................................................. 37

FIG. 4.5 GRÁFICO DE TENDENCIA DEL GRUPO DE PROBLEMAS DE CLASE “C” ............................................................................. 37

FIG. 4.6 PROBLEMA STEINB1.TXT .................................................................................................................................................. 38

FIG. 4.7 TABLA DE RESULTADOS MTZ ........................................................................................................................................... 41

FIG. 4.8 TABLA DE RESULTADOS D&L .......................................................................................................................................... 42

FIG. 4.9 GRÁFICO DE ÓPTIMOS: PROBLEMAS “STEINB.TXT” ......................................................................................................... 43

FIG. 4.10 PRECISIÓN DEL MODELO PARA LOS PROBLEMAS DE CLASE “B” .................................................................................... 44

FIG. 4.11 GRÁFICO DE ÓPTIMOS: PROBLEMAS “STEINC.TXT” ...................................................................................................... 44

FIG. 4.12 COMPARACIÓN DEL TIEMPO DE RESOLUCIÓN ENTRE MODELOS .................................................................................... 45

FIG. 4.13 PRECISIÓN DE LOS MODELOS MTZ Y DL PARA LOS PROBLEMAS DE CLASE “C” ........................................................... 46

FIG. 4.14 RESULTADOS OBTENIDOS PARA LOS PROBLEMAS DE CLASE “D” ................................................................................... 47

Page 8: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

OBJETO DEL PROYECTO Página 1

OBJETO DEL PROYECTO

Tenemos dos problemas teóricos tipo, que son el Problema del Viajante de Comercio (TSP) y el

Problema de Steiner (SP). Hemos analizado en nuestro Proyecto las restricciones antibucles propuestas

por Miller, Tucker y Zemlin (MTZ) (1960) y Desrochers y Laporte (DL) (1991), que fueron formuladas

para el Problema del Viajante de Comercio, y las vamos a comparar aplicadas al Problema de Steiner.

El objetivo del Trabajo es identificar qué modelo opera mejor en distintos niveles de dificultad del

Problema de Steiner.

La idea consiste en formular el Problema de Steiner asumiendo como variables “Xij” si “j” es el padre de

“i” (igual que la formulación para el Viajante de Comercio). Todos los nodos terminales menos el raíz

deben tener un padre. Los nodos de Steiner tienen padre si se eligen para participar en la red.

Las formulaciones a comparar incorporan el concepto de nivel (actor medible) y lo modelan de dos

formas diferentes. Con el concepto de nivel se evita que se formen ciclos, que es lo que hace difícil las

diferentes formulaciones.

Esta comparativa entre ambas formulaciones se realizará sobre la librería OR-LIBRARY, que incluye un

conjunto de problemas de grafos que varían tanto en su tamaño (número de nodos y arcos, y número de

nodos terminales) como en su complejidad.

Cada uno de los problemas viene expresado en un fichero de texto (”.txt”) y, debido a su extensión, la

toma de los datos de cada problema se realizará con el programa Code::Blocks, que hace uso del lenguaje

de programación “C”. De esta manera, se les dará un formato de salida adecuado para, posteriormente,

resolverlos utilizando LINGO.

En el apartado 1 “El Problema de Steiner” daremos a conocer las principales características del Problema

de Steiner en Grafos, sus peculiaridades y su aplicación en la realidad, para lo cual se expondrán algunos

ejemplos que nos ayudarán a comprenderlo mejor.

En el apartado 2 “Formulación matemática” hablaremos del Problema del Viajante de Comercio, sobre el

cual se realizaron las formulaciones MTZ y, más recientemente, DL. Se expondrán los modelos

matemáticos que emplearemos para la resolución de los problemas.

El apartado 3 “Implementación de los modelos en LINGO” incluye una breve introducción a la librería de

optimización LINGO, que es la base de nuestro proyecto, así como a determinados conceptos del

lenguaje “C”, del que también nos servimos. Se verá la implementación de los modelos, que se basa en

utilizar Code::Blocks para realizar la lectura de los problemas, darles un formato adecuado y, a

continuación, usar LINGO para su resolución.

Page 9: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

OBJETO DEL PROYECTO Página 2

Finalmente, en el apartado “Resultados experimentales” se mostrarán los resultados obtenidos de la

aplicación de cada una de las dos formulaciones para los distintos problemas, y se realizará una

valoración de los mismos. También se presentarán las características fundamentales de la batería de

problemas.

Por último, expondremos las conclusiones del análisis de ambas formulaciones conforme a los resultados

obtenidos.

Page 10: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

EL PROBLEMA DE STEINER Página 3

EL PROBLEMA DE STEINER

El Problema de Steiner consiste en encontrar el árbol mínimo que interconecta varios puntos de una red

de nodos. Fue propuesto por el matemático alemán Jacob Steiner a principios del siglo XIX.

El problema genérico engloba un amplio abanico de situaciones y problemas de telecomunicaciones,

transporte y abastecimiento que son modelables mediante éste. De ahí su importancia y el interés que

durante años se ha mostrado por encontrar una solución al problema.

El árbol de Steiner es un problema de optimización combinatoria que consiste en buscar la interconexión

más corta para un conjunto de elementos dado. Tiene aplicaciones en el diseño de circuitos eléctricos y

redes de telecomunicaciones. La mayoría de las versiones del Problema de Steiner son NP-completo. De

hecho, uno de estos pertenece a la lista de 21 problemas NP-completos de Karp (problemas

computacionales famosos que tratan sobre combinatoria y teoría de grafos, y que comparten la

característica de pertenecer a la clase de complejidad NP-Hard).

La Optimización Combinatoria es una rama de la optimización en matemáticas aplicadas. Los algoritmos

de optimización combinatoria resuelven instancias de problemas que suelen ser difíciles por lo general,

explorando el espacio de soluciones (generalmente grandes) para estas instancias. Se relacionan

comúnmente con problemas NP-completos, y son implementados a menudo en lenguajes imperativos

como C y C++ (los programas imperativos son un conjunto de instrucciones que indican al ordenador

cómo realizar una tarea).

El árbol de Steiner cubre un subconjunto de nodos de un grafo G=(N,A) dado, no todos. En el problema

del árbol de Steiner, los nodos se dividen en terminales y no terminales. Los nodos terminales deben

incluirse obligatoriamente en la solución, mientras que los nodos no terminales, o nodos Steiner,

pertenecen a la solución si se incluyen para participar en la red. Los nodos de Steiner se incluyen para

reducir el coste o maximizar el beneficio (dependiendo de nuestra Función Objetivo).

Sea V un conjunto de vértices, se nos dará un conjunto L c V de nodos terminales y una métrica que

defina la distancia (o coste) entre dos puntos cualesquiera de V.

El objetivo es encontrar un subgrafo conexo (en teoría de grafos, un grafo G es conexo si, para cualquier

par de vértices u y v de G, existe al menos una trayectoria [una sucesión de vértices que no repita

vértices] de u a v) que cubra todos los vértices terminales y cuyo coste sea mínimo.

Dado un grafo no dirigido, G=(N,A), un conjunto n de nodos, otro de m arcos, un coste asociado a cada

arco Cij, un subconjunto de vértices T c N con p nodos, denominados nodos Terminales, siendo el resto

de nodos (n-p) nodos Steiner o subconjunto S c (N-T); minimizar el coste total del árbol que conecta todos

los elementos de T.

Page 11: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

EL PROBLEMA DE STEINER Página 4

Aplicaciónes del Problema de Steiner

El SP encuentra su aplicación en muchos problemas de localización, fiabilidad, logística, transporte y de

planificación de red.

Los árboles generadores mínimos son útiles en la construcción de redes de todo tipo, ya que determinan la

manera de conectar un conjunto de localizaciones utilizando la menor cantidad de recursos, es decir, con el

coste mínimo.

El árbol de Steiner tiene, por lo tanto, aplicaciones en el diseño de carreteras, redes de agua, gas, líneas

eléctricas y redes de telecomunicaciones entre otras muchas cosas.

Las redes de telecomunicación, por ejemplo, se han convertido en la infraestructura necesaria que da soporte y

solución a las necesidades de transporte y circulación de información, tanto para los distintos negocios que

basan su actividad en el trasiego de información a distancia por medios electrónicos, como para los clientes.

Éstas permiten la comunicación entre cualquier par de entidades conectadas a la red, y dan forma a nuestro

actual modelo de vida.

El modelado de estos problemas se basa en la Teoría de Grafos, para lo cual se definen nodos, que son

típicamente origen o destino de información, y arcos, que conforman los enlaces de la red por los que ésta

circula. Así, el problema puede asemejarse con éxito al Problema de Steiner, o extensiones de éste, para la

mayoría de los casos.

Las siguientes figuras representan un grafo constituido por nodos Terminales y nodos Steiner semejante a los

de la batería de problemas a resolver en este proyecto.

Page 12: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

EL PROBLEMA DE STEINER Página 5

Steiner

Terminal

Fig. 1.2 Grafo de Steiner

Fuente: Elaboración propia

El resultado del problema aparece a continuación en la figura 1.3; todos los nodos terminales están conectados,

al igual que aquellos nodos Steiner elegidos para participar en la solución.

Steiner

Terminal

Fig. 1.3 Solución Grafo de Steiner

Fuente: Elaboración propia

Page 13: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

EL PROBLEMA DE STEINER Página 6

La solución es un subgrafo Gs=(Ns, As) que se obtendría mediante la implementación de nuestro modelo

matemático en LINGO. Esta solución, que contiene todos los nodos definidos como Terminales, y que

generalmente hace uso de nodos Steiner para minimizar el coste total, tiene Ns-1 arcos conectados entre sí,

siendo Ns el conjunto de nodos de ambos tipos que se incluyen en la solución final.

Un ejemplo sencillo para conocer cómo funciona el SP es el de “conexión de islas”; supongamos un

archipiélago: queremos conectar con puentes sus principales islas para que sea posible viajar por ellas. El coste

de construir un puente varía de una isla a otra y, en algunos casos, puede resultar más conveniente comunicar

varias islas más cercanas que hacerlo directamente con las principales del grupo.

Terminal

Steiner

Fig. 1.4 Posibles soluciones “conexión de islas”

Fuente: Elaboración propia

Así, la Fig.1.4 muestra tres posibles soluciones del caso expuesto, en la que dos de ellas hacen uso de una isla

no principal (nodo Steiner) para conectar las islas bases, mientras que la tercera opta por la interconexión

directa de éstas. Considerando los costes resultantes de las distintas conexiones podríamos inclinarnos por

alguna de las opciones. El modelado es, básicamente, una herramienta para la toma de decisiones.

Las redes de transporte, por las que circulan mercancías y personas, también representan un ejemplo del

Problema de Steiner.

Supongamos una empresa de transporte de mercancías que tiene su mercado en Andalucía y realiza el reparto

por distintas provincias de la Comunidad. Los puntos de entrega (almacenes de las empresas) pueden ser

considerados como nodos Terminales, mientras que las gasolineras y áreas de descanso en las que el repartidor

tuviera que parar serían nodos de Steiner.

Page 14: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

EL PROBLEMA DE STEINER Página 7

Fig. 1.5 Redes de transporte

Fuente: Google “red de carreteras de Andalucía”

El conjunto de autopistas y autovías, carreteras nacionales y comarcales que comunican las distintas ciudades

y pueblos de la Comunidad Autónoma de Andalucía representan las conexiones (los arcos) entre los nodos.

Así, cada una de ellas tendrá un coste propio determinado por la distancia, la existencia de peaje, el estado de

la carretera, tráfico, etcétera. La red de carreteras utilizada que permite a la empresa entregar todos los pedidos

con el mínimo coste (menor consumo de combustible y tiempo empleado) sería el óptimo de nuestro

problema.

El Problema de Steiner podría asemejarse entonces a un problema de transporte, en tanto en cuanto busca

minimizar el coste de abastecimiento de una seria de puntos de demanda, que serían los nodos Terminales en

nuestro problema, a partir de conjunto de puntos de oferta, que en este caso sería el Terminal principal.

El servicio “Sevici” con el que contamos en la ciudad representa un ejemplo de problema de transporte. En

este caso, el Ayuntamiento de Sevilla contrató a un equipo de personas para realizar un estudio y posterior

modelado del problema planteado, que consistía en la localización de un conjunto de puestos o paradas de

bicis teniendo en cuenta distintos factores, tales como la distancia entre ellos, el número de personas que viven

en un distrito determinado, el tráfico, etcétera, de modo que aquella persona que quisiera hacer uso del servicio

pudira hacerlo con la mayor satisfacción posible, es decir, que las paradas no estuvieran saturadas, para poder

así dejar de usar el servicio, y que la probabilidad de encontrar una bici en ella fuera también alta.

Fig. 1.6 Servicio Sevici

Fuente: Google “imágenes”

Page 15: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

EL PROBLEMA DE STEINER Página 8

Este servicio se estableció en base a la idea de mejorar la calidad de vida de las personas e impulsar el turismo

principalmente, no con un objetivo meramente económico, y es un ejemplo de que en nuestro modelo de vida

el modelado de redes y rutas de transporte están muy presentes.

He de mencionar el caso de la empresa americana de mensajería UPS. Se trata de la mayor empresa de entrega

de paquetes y mensajería express del mundo y los líderes en servicios de transporte, logística, capital y

comercio electrónico. El éxito obtenido se debe en gran medida al uso de métodos de optimización.

Una de las medidas más conocidas que adoptaron se puso en marcha en el año 2003. Desde ese año, los

repartidores de UPS en Estados Unidos no giran a la izaquierda, algo que, aunque parezca desconcertante, les

ha permitido ahorrar millones en combustible.

La empresa tiene muy en cuenta todos los factores que pueden influir en la eficiencia, por lo que estudia muy

detenidamente las rutas de reparto. De esta forma, descubrieron que los giros a la izquierda incrementaban el

tiempo y el gasto de combustible durante el servicio (por la obligatoriedad de ceder el paso, que obliga a parar

el vehículo), además de provocar siniestros viales.

UPS utiliza un sistema llamado “”On-Road Integrated Optimization and Navigation” (ORION) para trazar

rutas que buscan bucles hacia la derecha, más que giros directos hacia la izquierda. La medida de la empresa se

traduce en un ahorro de 38 millones de litros, 22.000 toneladas de 2CO emitidas y 1100 camiones utilizados.

Además, la entrega de paquetes se ha incrementado y se han reducido las distancias en 45 kilómetros. En total,

UPS ha ahorrado gracias a esta medida entre 285 y 380 millones de euros.

Con este ejemplo trato de evidenciar la importancia e influencia que tienen los modelos de optimización de

rutas en la actualidad.

Fig. 1.7 Mensajería UPS

Fuente: Google “imágenes”

Page 16: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 9

FORMULACIÓN MATEMÁTICA

En este capítulo vamos a comentar la formulación base del Problema de Steiner que vamos a utilizar; se

explicarán también los modelos matemáticos que se utilizan en el proyecto, así como una introducción al

Problema del Viajante de Comercio, para que nos proporcione una perspectiva más global del problema al que

nos enfrentamos.

Las formulaciones a comparar son dos: MTZ y DL. Ambas formulaciones, aunque desarrolladas para evitar la

formación de bucles en el TSP, las vamos a extrapolar al SP.

Antes de adentrarnos en los modelos empleados vamos a presentar la formulación básica de un modelo de

optimización lineal:

jX

bXa

sa

CjXjZMaxMin

j

n

ii

m

j

jij

m

j

,0

}),,({

:

)(

1

1

1

Estos modelos los componen una función objetivo, la cual nos puede interesar maximizar o minimizar

dependiendo del caso, cuyas variables están sujetas a una serie de restricciones.

La programación lineal, como se puede observar, corresponde a un algoritmo a través del cual se resuelven

situaciones reales en las que se pretenden identificar y resolver aquellas dificultades que nos permitan

aumentar la productividad (reduciendo los recursos necesarios, lo que conlleva a una reducción de los costes

que de ellos derivan) y, por tanto, los beneficios. Los resultados obtenidos sirven como respaldo de las

decisiones a tomar frente a las situcaciones planteadas.

Page 17: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 10

Modelo de optimización: el Problema de Steiner

Se han desarrollado hasta la fecha diferentes formulaciones y técnicas de resolución del Problema de Steiner.

Sin embargo, no se conoce ningún algoritmo que resuelva el Problema de manera exacta en tiempo

polinomial, puesto que el SP ha sido probado NP-Hard, como ya comentamos con anterioridad.

Existen, no obstante, multitud de algoritmos (técnicas heurísticas) que se aproximan bastante al óptimo del

problema, e incluso llegan a él en buena parte de los casos. Algunas de estas formulaciones, que son teóricas,

están basadas en flujo, otras se basan en cortes, existe una que consiste en obtener todos los bucles del grafo,

etcétera.

Nosotros partimos en nuestro Proyecto de la formulación arborescente del Problema de Steiner. La

formulación base de nuestro problema es un grafo no dirigido. Se conoce como formulación arborescente

porque plantea el Problema como un árbol. Esta estructura arborescente consiste en convertir cada aristadel

grafo en un par de arcos con distinto sentido (Xij, Xji), de modo que el significado que adquieren si se activan

es que el nodo del que parte el arco(nodo origen) es hijo del nodo destino, que sería el padre.

El modelo arberescente del Problema de Steiner en Grafos considera la conexión de un subconjunto de nodos

de un grafo G=(N,A), llamados nodos Terminales, pudiendo hacer uso, para ello, del otro subconjunto de

nodos, conocidos como nodos Steiner. La red de mínimo coste (Gs) que interconecta todos los nodos

terminales del grafo G dado es la solución óptima que busca el problema.

Dado: un grafo no dirigido G(N,A), con n nodos, m arcos (no dirigidos), con coste asociado a cada arco Cij, un

subconjunto TcN con p nodos Terminales, quedando los restantes nodos n-p caracterizados como nodos

Steiner.

Encontrar: un subgrafo o red Gs de G tal que exista un camino posible entre cada par de nodos terminales del

subconjunto T, siendo el coste total de la red el mínimo posible.

Es conveniente explicar, para facilitar su interpretación, el concepto de grafo no dirigido:

Un grafo está formado por nodos y arcos(o aristas). Cada arco comunica un par de nodos (i,j); tiene, por lo

tanto, dirección y sentido, así como un coste independiente asociado al mismo.

En el caso de nuestro Problema (grafo no dirigido) el arco Xij es igual que el arco Xji , es decir, no hay

diferencias en cuanto el sentido que toma el arco y su coste asociado (Cij).

El modelado matemático que necesitamos busca hacer dirigido el grafo, puesto que va a ser una estructura en

árbol, como hemos explicado anteriormente.

Page 18: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 11

Fig. 2.1 Tipos de arcos

Fuente: Elaboración propia

El modelo del Problema de Steiner (SP) se compone de los siguientes elementos:

Nodos: Los índices “i” y “j” representan los nodos del grafo; “n” es el número total de nodos del grafo G.

Arcos: variable Xij; La variable Xij es binaria. En su caso se activa (Xij=1) si el arco que conecta dos nodos

(i,j) cualesquiera del grafo se incluye en Gs (1 si “j” es el padre de “i”; 0 si no).

Coste: valor del coste asociado a cada arista (Cij); es un dato.

Ti: Ti es un dato que nos proporciona el problema. Indica si un nodo es terminal o no (1 si “i” es terminal; 0 si

no).

Βj: j es una variable que indica si un nodo Steiner “j” cualquiera pertenece a la solución final (1 si “j”

pertenece a la red; 0 si no).

Nº Adyacentes j: el número de nodos adyacentes a otro nodo determinado se refiere a la suma de todas las

aristas que le llegan; es un dato.

La página siguiente muestra un ejemplo donde se pueden apreciar los distintos elementos explicados.

Page 19: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 12

Fig. 2.2 Problema de Steiner

Fuente: Elaboración propia

Los nodos Terminales aparecen en rojo y los nodos Steiner en negro. El grafo de partida del problema es no

dirigido, pues los arcos “Xij” y “Xji” para cada par de nodos son iguales. La solución del problema se muestra

a continuación:

Fig. 2.3 Red solución final

Fuente: Elaboración propia

Como muestra el árbol solución de la Fig. 2.3, todos los nodos terminales, a excepción del raíz, además de

aquellos nodos Steiner que se encuentran activos, tienen un padre (“Xij” donde “j” es el padre de “i” ). El nodo

raíz en nuestro caso será siempre el primer terminal dado (nodo 4). El Terminal principal, por lo tanto, es un

dato, y en nuestro modelo en LINGO, así como en el modelo en C, aparecerá representado con la letra “P”.

Page 20: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 13

La Función objetivo y restricciones del modelo se muestran a continuación:

Función Objetivo (FO): ji

XijCijMin

Se obtiene como el sumatorio del conjunto de arcos seleccionados para formar parte de la red multiplicado por

el coste asignado a cada uno de ellos. A ésta habría que sumarle un dato de coste añadido, que es

independiente para cada problema determinado.

Restricción (1): 1j

Xij Pii / , 1Ti

Todos los nodos terminales deben tener un padre; Xij donde “j” es el padre de “i”. Esta restricción especifica

que de cada nodo terminal sólo puede partir un único arco. Ésto es solo cierto, sin embargo, para el conjunto

de nodos terminales distintos del Principal (P).

Restricción (2): j

Xij 0 Pi

El terminal Principal (P) es el único nodo terminal que no tiene Padre.

Restricción (3): i

jadyacentesNjXij º* 0/ Tjj

La variable “β” se activa para cada nodo de Steiner “j” que se incluye en la solución final (subgrafo Gs).

Restricción (4): i1 1/ Tii

Activa la variable i para los nodos terminales; todos los nodos terminales pertenecen a la red.

Restricción (5): XjiXij 1 jiji /,

Indica que cada arco sólo se puede activar una vez, en un único sentido. Impide la formación de bucles de

grado dos.

Restricción (6): i k

XjkXij 0/ Tjj

Si un nodo de Steiner se activa, éste debe tener un padre. En caso contrario, no.

Restricción (7): }1,0{,, jTiXij

Indica que las variables jTiXij ,, son binarias.

Page 21: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 14

El modelo arborescente del SP sería el siguiente:

MODELO El Problema de Steiner

(FO)

1j

Xij Pii / , 1Ti (1)

j

Xij 0 Pi (2)

i

jadyacentesNjXij º* 0/ Tjj (3)

i1 1/ Tii (4)

XjiXij 1 jiji /, (5)

i k

XjkXij 0/ Tjj (6)

(7)

El modelo base del Problema de Steiner que hemos expuesto no contiene las restricciones antibucles derivadas

del Problema del Viajante, que sí se incluirán en los modelos MTZ y DL que presentaremos más adelante.

Por lo tanto, si se resolviera este modelo se obtendrían soluciones que incluirían ciclos; el modelado del

Problema no estaría completo.

:sa

XijCijMinji

}1,0{,, jTiXij

Page 22: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 15

El Problema del Viajante de Comercio

En este apartado se explica el Problema del Viajante de Comercio, conocido en inglés como The Travelling

Salesman Problem (TSP). Se tratade uno de los problemas de optimización combinatoria más estudiados

hasta ahora. Tiene su aplicación en diferentes campos y muchas aplicaciones prácticas, como problemas de

rutas e interconexión de localizaciones. Su enunciado es presumiblemente simple y, sin embargo, es uno de los

problemas más desafiantes en Investigación Operacional. Cientos de artículos se han escrito sobre el TSP.

Nuestro objetivo en esta introducción es presentar los conceptos generales del Problema del Viajante.

Definición:

Sea G=(V, A) un grafo donde V es un conjunto de n vértices, A un conjunto de arcos, y sea C=(cij) una matriz

de distancia asociada a A.

El TSP consiste en determinar una red de mínima distancia que pase por cada vértice una vez y sólo una. Al

contrario que el SP no distingue entre nodos Steiner y nodos Terminales, todos se incluyen en el circuito

solución final. Tal circuito es conocido como “Hamiltonian circuit”. En muchas aplicaciones, C también puede

ser interpretado como una matriz de coste o tiempo de viaje. Es útil distinguir entre los casos donde C (o el

problema) es simétrico, cuando cjicij Vji , , y el caso en que es asimétrico. En el caso del Problema

de Steiner en Grafos el problema es simétrico. También, se dice que C satisface la desigualdad triangular

(triangle inequality) si y solo si cikcjkcij , Vkji ,, . Ésto ocurre, por ejemplo, cuando V es un

conjunto de puntos en R2 y cij es la línea recta entre i y j (Euclidean problems).

Aplicaciones:

La interpretación más común del TSP es aquella en la que un vendedor busca el camino más corto a seguir

entre n clientes o ciudades. Este problema, aunque simple, sirve de base a numerosas aplicaciones de rutas

para vehículos. Muchos problemas interesantes, aunque no directamente asociados con ruta, también pueden

describirse como TSPs. Estos son algunos ejemplos:

I. Cableado de ordenadores: algunos sistemas de ordenadores pueden describirse como módulos con

alfileres conectados a ellos. A menudo se quieren conectar estos alfileres con cables, de manera que

exactamente dos cables estén conectados a cada alfiler y la longitud total de cable sea mínima.

II. Perforación de agujeros: en muchos contextos de fabricación es necesario realizar agujeros en

planchas u hojas metálicas. El problema consiste en determinar la secuencia de perforación de tiempo

mínimo. Estos problemas, por lo tanto, también pueden ser formulados como un TSP.

Page 23: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 16

Algoritmos exactos:

Un gran número de algoritmos han sido propuestos para el TSP. En esta sección se explica una formulación

(DFJ) basada en la programación lineal entera. Esta formulación es semejante al modelo que utilizamos en el

Problema de Steiner, y es por ello que las dos formulaciones a comparar, aunque desarrolladas para su

aplicación en el TSP, se pueden extrapolar al primero (SP).

Una de las primeras formulaciones se debe a Dantzig, Fulkerson y Johnson (DFJ): asocia una variable binaria

Xij a cada arco ),( ji , igual a 1 si y sólo si ),( ji es usado en la solución final, con ji .

Como se puede observar, prácticamente no hay ninguna variación entre la formulación para el Problema del

Viajante y la del Problema de Steiner, pues ambas emplean las mismas variables (Xij).

La formulación es la siguiente:

MODELO Formulación del Viajante de Comercio

:sa

CijXijMinji

1

1j

Xij ,,...,1 ni (1)

1

1i

Xij ,,...,1 nj (2)

Sji

SXij,

1||

,VS ,2||2 nS (3)

},1,0{Xij

,,...,1, nji ji (4)

Page 24: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 17

En esta formulación, la función objetivo (FO) describe claramente el coste de la red óptima.

Las restricciones (1) y (2) especifican que de cada vértice se salga, y en cada vértice se entre una única vez

(restricciones 1 y 2 respectivamente). El Problema de Steiner es diferente en tanto en cuanto la restricción dos

no se contempla.

Las restricción (3) son restricciones de eliminación de ciclos: prohíben que se formen ciclos, es decir, rutas en

un subconjunto menor que n vértices. Si hubiera un ciclo en un subconjunto S de vértices, éste contendría |S|

arcos y los mismos vértices. La restricción (3) sería incumplida por este subconjunto ya que la parte izquierda

de la restricción sería igual a |S| y la mano derecha igual a |S|-1. Debido a las restricciones (1) y (2), los ciclos

sobre un vértice no pueden ocurrir y, por lo tanto, es válido definir la restricción (3) sólo para

.2||2 nS

Finalmente, la restricción (4) impone condiciones binarias en las variables Xij.

Este modelo obtiene previamente a su formulación todos los posibles bucles que pudiera haber en el problema.

Ésto representa un número factorial elevadísimo, por lo que no es práctico, y es por ello que se desarrollaron

las formulaciones MTZ y DL, que establecen un concepto de niveles incorporando una variable (iu ) a cada

nodo ),...,2( ni , lo que reduce el número de iteraciones a realizar y, por tanto, el tiempo de resolución.

Page 25: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 18

Modelos MTZ y DL

Miller, Tucker y Zemlin (MTZ) (1960) propusieron una formulación alternativa a DFJ para el Problema del

Viajante que reduce el número de restricciones de eliminación de ciclos en el modelo, con el coste de añadir

nuevas variables ).,...,2( niui

La formulación MTZ, al igual que la DL, introduce por primera vez el concepto de nivel (o actor medible), de

forma que con esa estructura arborescente, si “j” es el padre de “i” entoces el nivel de “i” tiene que ser mayor

que el de “j”; al nodo raíz se le impone el nivel 0, y a partir de ahí se generan las restricciones. El concepto de

nivel (variables iu ) representa una característica de los nodos y se trata de una variable continua.

La idea se explica aquí de manera sencilla:

Fig. 2.4 Formación de ciclos

Fuente: Elaboración propia

Page 26: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 19

Se puede observar que la restricción anti-bucles evita que éste se forme. El arco 13,5 x , está activo y, por lo

tanto, debería cumplir la condición impuesta 135 uu . Sin embargo, la condición no se cumple en este

caso 120 ; el arco no se podría activar y el ciclo no se formaría.

También vemos como los arcos 4,3x y 5,4x sí cumplen la condición expuesta: 112 y

101 respectivamente.

Desarrollando esta expresión quedaría:

2)1( nxnuu ijji

,,...,2, nji ji (8)

11 nui .,...,2 ni (9)

La restricción (8) asegura que la solución no contenga ningún ciclo en un conjunto de vértices VS \{1} y,

por lo tanto, ningún ciclo que involucre menos de n vértices.

La restricción (9) asegura que las variables iu estén definidas únicamente para cada red posible.

Para ver cómo funciona la restricción (8) suponemos que hubiese un ciclo ),,...,,( 121 iiii kcon nk .

Escribiendo la restricción para cada arco del ciclo dado:

2)1(

.

.

.

2)1(

2)1(

1

32

21

nnuu

nnuu

nnuu

ii

ii

ii

k

Resumiendo estas restricciones queda )2()1( nknk , una contradicción.

Page 27: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 20

Desrochers y Laporte (DL) (1991) observaron que la restricción (8) del modelo MTZ se podía reforzar

introduciendo un término extra en la mano izquierda de la restricción, dando lugar a la siguiente expresión:

2)3()1( nxnxnuu jiijji

,,...,2, nji ji (10)

Los modelos antibucles MTZ y DL formulados para el Problema de Steiner quedarían de la siguiente forma,

respectivamente.

Page 28: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 21

MODELO MTZ (EL PROBLEMA DE STEINER)

(FO)

1j

Xij Pii / , 1Ti (1)

j

Xij 0 Pi (2)

i

jadyacentesNjXij º* 0/ Tjj (3)

i1 1/ Tii (4)

XjiXij 1 jiji /, (5)

i k

XjkXij 0/ Tjj (6)

2)1( nxnuu ijji MTZ

,,...,2, nji ji (8)

11 nui .,...,2 ni (9)

(7)

}1,0{,, jTiXij

:sa

XijCijMinji

Page 29: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

FORMULACIÓN MATEMÁTICA Página 22

MODELO DL (EL PROBLEMA DE STEINER)

(FO)

1j

Xij Pii / , 1Ti (1)

j

Xij 0 Pi (2)

i

jadyacentesNjXij º* 0/ Tjj (3)

i1 1/ Tii (4)

XjiXij 1 jiji /, (5)

i k

XjkXij 0/ Tjj (6)

2)3()1( nxnxnuu jiijji DL

,,...,2, nji ji (10)

(7)

}1,0{,, jTiXij

:sa

XijCijMinji

Page 30: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 22

IMPLEMENTACIÓN DE LOS

MODELOS EN LINGO

A la hora de resolver los modelos hemos hecho uso de una conocida librería de optimización llamada LINGO.

Se trata de un Software de Optimización (Programación Lineal, Programación No Lineal y Programación

Entera) para formular problemas extensos de forma precisa, resolverlos, y analizar la solución.

La optimización ayuda a encontrar respuestas que produzcan los mejores resultados: alcanzar el mayor

beneficio, producción o felicidad; tener el mínimo coste, gasto o discomfort. Estos problemas, a menudo,

involucran hacer un uso eficiente de tus recursos: dinero, tiempo, maquinaria, inventario, personal, etcétera.

En nuestros problemas buscamos la ruta mínima que interconecte todos los nodos caracterizados como

Terminales, es decir, buscamos el ahorro máximo de nuestros recursos, que será dinero o tiempo dependiendo

de cómo se defina el coste asociado a los arcos del grafo.

Introducción a LINGO

En esta sección vamos a proceder a explicar los conceptos básicos de LINGO. Para ello haremos uso de un

pequeño modelo que nos servirá de guía.

El esquema básico para la formulación de un modelo en LINGO es el siguiente:

Fig. 3.1 Representación gráfica de un problema en LINGO

Fuente: Elaboración propia

Page 31: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 23

Cuando ejecutamos LINGO, en la pantalla aparecerá algo muy parecido a ésto:

Fig. 3.2 Pantalla de inicio en LINGO

Fuente: Elaboración propia

La ventana de fuera, llamada LINGO, es el marco de la ventana principal. El resto de ventanas que pudiéramos

tener estarían contenidas dentro de ésta. La parte superior del cuadro contiene todos los comandos del menú y

la barra de herramientas. En la parte inferior aparece una barra que proporciona información respecto al estado

actual de LINGO.

La ventana interior LINGO Model – LINGO1 es la ventana de un modelo en blanco nuevo.

Para nuestro ejemplo vamos a considerar una empresa que produce dos modelos de ordenadores: Estandar y

Pro. La empresa puede vender cada unidad Estandar que produce y obtener un beneficio de 100€, y cada

unidad Pro con un beneficio de 150€. Dentro de la empresa, la línea de producción de ordenadores Estandar

puede producir como máximo 100 ordenadores al día. Al mismo tiempo, la línea de producción para

ordenadores Pro puede producir hasta 120 ordenadores al día. Además, nuestra empresa tiene un límite de 160

horas de trabajo disponibles cada día. Los ordenadores Estandar necesitan 1 hora de trabajo al día, mientras

que los ordenadores Pro son más difíciles de producir, requiriendo 2 horas de trabajo. La empresa quiere

determinar qué cantidad de ordenadores de cada tipo debería producir para maximizar el beneficio total sin

exceder las limitaciones de línea y horas de trabajo.

Page 32: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 24

Formato del Modelo:

1. EncabezadoFormato: MODEL:

2. Función Objetivo: maximizar o minimizar el valor de los costes de todas las variables

3. Restricciones del problema

4. Restricciones asociadas al tipo de variable

5. FinalFormato: END

Cuando iniciamos un modelo debemos especificar a LINGO que estamos listos para empezar. Ésto se hace

introduciendo la orden MODEL:.

La orden END avisa a LINGO de que hemos terminado de escribir el modelo. Una vez introducimos el

comando END el modelo está listo para ser resuelto.

Siempre que modelemos situaciones de la vida real encontraremos conjuntos de objetos relacionados: como

fábricas, clientes, vehícules, etc. LINGO permite definir conjuntos de objetos relacionados en la sección sets.

Esta sección comienza con la palabra SETS:, en una línea propia, y termina con ENDSETS también en otra

línea. Una vez defindos los conjuntos de objetos, LINGO tiene un grupo de funciones de conjuntos (@FOR,

@SUM), que generan restricciones sobre todos los miembros de un conjunto.

LINGO permite identificar información que ya conocemos dentro de la sección data del modelo. La sección

data empieza con la palabra clave DATA:, en una línea propia, y termina con la palabra ENDDATA también en

una nueva línea.

Función Objetivo (FO) – La FO es la fórmula que expresa exactamente qué es lo que queremos

optimizar. En nuestro ejemplo la función objetivo expresará el beneficio de la compañía como función

de la producción de ordenadores Estandar y Pro

Variables – Variables son las cantidades que tienes bajo control. Debes decidir cuáles son los mejores

valores de las variables (por esta razón se las conoce también como “variables de decisión”). El

objetivo de la optimización es encontrar el valor de las variables del modelo que generan el mejor

valor para la función objetivo, sujeto a limitaciones para estas variables. En el ejemplo tendremos dos

variables que se corresponden con el número de ordenadores a producir de cada tipo.

Restricciones – Siempre habrá restricciones sobre el valor que puedan tomar las variables en un

modelo, al menos un recurso estará limitado. Estas limitaciones se expresan como fórmulas que son

función de las variables del modelo. Se llaman así puesto que restringen los valores que las variables

pueden tomar. Para nuestro ejemplo tendremos una restricción sobre cada línea de producción y otra

sobre el tiempo total de trabajo usado.

Page 33: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 25

Ahora construiremos la función objetivo de nuestro ejemplo. Las variables ESTANDAR y PRO denotan el

número de ordenadores a producir de cada tipo, como ya indicamos anteriormente. El objetivo de la empresa

es maximizar el beneficio. El benefio total se calcula como la suma del beneficio que aporta la venta de

ordenadores Estandar (100€) por el número total de ordenadores Estandar fabricados (ESTANDAR) y el

beneficio que aporta la venta de ordenadores Pro (150€) por el total de ordenadores Pro producidos (PRO).

En LINGO, por tanto, nuestra función objetivo se escribiría en la primera línea del modelo como:

MAX = 100 * ESTANDAR + 150 * PRO;

Todas las expresiones matemáticas en LINGO deberán terminar en “;”. El modelo no se resolverá sin ellos.

Lo siguiente que introduciremos serán las restricciones de capacidad y tiempo empleado. Las limitaciones de

las líneas de producción de cada tipo de ordenador son 100 y 120, respectivamente.

ESTANDAR <= 100 ;

PRO <= 120 ;

La primera restricción dice que el número de ordenadores Estandar producidos diariamente debe ser menor o

igual que la capacidad de la línea de producción de 100. De la misma manera, la cantidad de ordenadores Pro

producidos en un día deberá ser menor o igual que la capacidad de la línea de producción de 120.

La restricción para la cantidad de horas de trabajo que se emplean se puede expresar como:

ESTÁNDAR + 2 * PRO <= 160 ;

La cantidad total de horas de trabajo utilizadas (ESTÁNDAR + 2 * PRO) debe ser menor o igual que la

cantidad de horas de trabajo de las que se dispone (160).

Page 34: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 26

Después de introducir las restricciones en LINGO, el modelo quedaría de la siguiente forma:

Fig. 3.3 Ejemplo en LINGO

Fuente: Elaboración propia

Como se puede observar hemos introducido ejemplos de comentarios en nuestro modelo. Los comentarios

deben empezar con el signo de exclamación (!) y se cierran con (;).

LINGO no distingue entre mayúsculas y minúsculas en nombre de variables. De ahí que el siguiente conjunto

de variables pueda considerarse equivalente:

ESTANDAR

Estandar

Estándar

Nuestro ejemplo está listo para ser resuelto. Para comenzar a resolver el modelo, seleccionamos el comando

Solve del menú de LINGO, o bien, pulsamos el botón de la barra de herramientas de la ventana principal.

LINGO comenzará a compilar el modelo. Si el modelo no pasa el test, LINGO nos informará con un mensaje

de error. En este modelo, por ejemplo, si se nos olvidase poner los signos de multiplicación, aparecería un

mensaje de error como el siguiente:

Page 35: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 27

Fig. 3.4 Mensaje de error en LINGO

Fuente: Elaboración propia

Si no hay ningún error en la fase de compilación, LINGO comenzará a buscar por la solución óptima de

nuestro modelo. Cuando el “solver” comienza, muestra en pantalla una ventana solver status de esta forma:

Fig. 3.5 Ventana LINGO Solver Status

Fuente: Elaboración propia

Page 36: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 28

El cuadro Variables muestra el número total de variables en el modelo. Este cuadro también muestra el

número de variables que son no lineales y enteras. En general, mientras mayor sea el número de estas variables

en el modelo, más difícil será resolver el modelo en un tiempo razonable.

Una vez LINGO ha resuelto el modelo, aparecerá una ventana Solution Report que contiene los detalles de la

solución del modelo. La solución debería aparecer así:

Fig. 3.6 Solución del Problema

Fuente: Elaboración propia

Esta solución nos dice que la empresa de nuestro ejemplo debería producir 100 ordenadores Estandar y 30 Pro

cada día para obtener un beneficio diario de 14.500€.

Page 37: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 29

Code::Blocks

Nuestro proyecto se basa, como ya explicamos en la presentación del mismo, en la resolución con LINGO de

un conjunto de problemas de grafos (OR-Library), que difieren en su complejidad, haciendo uso de dos

estrategias diferentes de modelado.

La dificultad que se nos presentó a la hora de resolver los problemas, una vez que ya teníamos resuelto el

modelo de optimización a utilizar, fue introducirlos en LINGO. Es importante en nuestro proyecto el trabajo

de programación necesario para transformar los datos de entrada de los problemas de modo que sean viables

en el entorno LINGO.

Los datos de cada uno de los problemas a resolver del conjunto vienen expresados en un archivo de texto. El

hecho de que estos problemas varíen en su tamaño, siendo cada vez más extensos, hizo que tuviéramos que

recurrir al programa Code::Blocks en nuestro proyecto.

Code::Blocks es un entorno de desarrollo integrado, es decir, una aplicación informática que proporciona

servicios para facilitar al programador el desarrollo de software. Se utiliza para el desarrollo de programas en

lenguaje C y C++.

La idea fue crear un programa en lenguaje “C” en Code::Blocks que leyera el fichero donde están incluidos

los datos de un problema (e.j, “Steinb1.txt”) y los copiara en un nuevo fichero (que en nuestro caso se llama

“enunciadolingo.txt”). Este nuevo fichero presenta los datos del problema en un formato adecuado para su

introducción directa en LINGO y posterior resolución.

En nuestro proyecto nos servimos de una carpeta, creada con el nombre “programasimple”, donde se

encuentran los ficheros con los datos de los problemas, el fichero “enunciadolingo” y un fichero “main” que

contiene el modelo desarrollado en lenguaje “C”, que convierte los datos de un problema en el formato que

queremos. Todos estos ficheros deben estar incluidos en la carpeta para que el programa pueda trabajar con

ellos y no dé errores.

El fichero “enunciadolingo.txt” cambia cada vez que introducimos un problema diferente en el código en

“C”. Por ello, dentro de la carpeta principal “programasimple” hemos creado otra carpeta llamada

“lingosimple” donde se encuentra el fichero ”enunciadolingo.txt” de cada problema con su nombre

distinguido (e.j, “steinb1.txt”).

Page 38: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 30

Esta es la versión gráfica de lo que acabamos de explicar:

Fig. 3.7 Cambio de formato de los datos

Fuente: Elaboración propia

El concepto básico en que nos basamos en el programa escrito en “C”, por lo tanto, es el de lectura y escritura

en un fichero.

Un fichero es una agrupación de datos almacenados. Los ficheros se almacenan a través del sistema operativo.

Nuestro programa se comunica con el sistema operativo a través de las instrucciones en C.

Un fichero puede tener cualquier tipo de contenido (texto, gráficos, etc.) y posee una identificación única

formada por un nombre seguido de un punto y una extensión. El nombre suele ser de libre elección del usuario

y la extensión indica el tipo de fichero. Así, en el fichero “Steinb1.txt” la extensión “txt” señala que se trata de

un fichero de texto.

El procedimiento a seguir con los ficheros es el siguiente:

1. Apertura del fichero, para establecer la comunicación entre nuestro programa en “C” y el fichero

almacenadofunción “fopen”.

2. Operación con los datos del fichero:

-Lectura (no modifica los datos del fichero)función “fscanf”

-Escritura (modifica los datos del fichero)función “fprintf”

3. Cierre del fichero, para cerrar la conexiónfunción ”fclose”

Page 39: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

IMPLEMENTACIÓN DE LOS MODELOS EN LINGO Página 31

Fig. 3.8 Ejemplo apertura y cierre de un fichero

Fuente: Elaboración propia

Fig. 3.9 Ejemplo escritura en un fichero

Fuente: Elaboración propia

Page 40: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 32

RESULTADOS EXPERIMENTALES

Una vez hemos explicado los modelos de programación utilizados en el Trabajo y realizado una introducción a

los programas empleados, procederemos a explicar la programación utilizada para generar los archivos de

entrada a LINGO.

Fig. 4.1 Representación en flujo

Fuente: Elaboración propia

Page 41: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 33

A pesar de haber explicado ya cómo generamos el código que queremos introducir en LINGO para resolver

los problemas, hemos hecho uso aquí de un diagrama de flujo con el objetivo de representar claramente lo que

explicamos con anterioridad.

Ésta sería la explicación de cómo funciona el diagrama de flujo de la Fig. 4.1:

Nuestro programa en “C”, que se encuentra en el fichero “main” dentro de nuestra carpeta

“programasimple”, está diseñado para trabajar con los ficheros de texto que representan cada uno de los

problemas a analizar.

Lo primero que hace el programa al iniciarlo es crear las variables para almacenar la información del

problema.

Seguidamente se introduce el nombre del fichero de texto con el que va a trabajar el modelo (ej: Steinb1.txt).

En el módulo siguiente, el programa lee el archivo .txt que contiene los datos del problema, que se cargan en

las variables del modelo.

A continuación, se escribe el modelo en el fichero de texto indicado (“enunciadolingo.txt”), que

posteriormente resolveremos en LINGO.

El par de modelos a escribir para cada problema se corresponde con las diferentes formulaciones.

Posteriormente, en la sección ANEXOS del proyecto, presentaremos ambos modelos para el problema

“steinb1.txt”, de forma que podamos apreciar la diferencia entre ambos.

Continuaremos el proceso hasta que hayamos escrito cada problema a estudiar en ambos formatos. Una vez

vez hecho ésto procederemos a resolver los problemas en LINGO y a analizar los resultados obtenidos.

Page 42: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 34

Características de los problemas

La batería de problemas a resolver en el proyecto se caracteriza por presentar estos problemas en tres bloques

diferenciados. Estos grupos o clases “b”,”c” y ”d” difieren en la dimensión de los problemas que incluyen y,

por lo tanto, en su complejidad, que aumenta progresivamente, siendo “b” la agrupación de problemas más

sencilla y “d” la que representa los problemas con mayor volumen de arcos y nodos.

En la figura 4.2 podemos ver los diferentes grupos de problemas sometidos a análisis en el proyecto.Cada uno

de ellos lo componen un conjunto de problemas con el nombre “stein” seguido de la letra que corresponde al

grupo y el número del problema (Ej: “steinb1.txt”),

Grupo "b" Grupo "c" Grupo "d"

steinbX.txt steincX.txt steindX.txt

Fig. 4.2 Clases de problemas

Fuente: Elaboración propia

Los problemas de grafos a estudiar, como ya hemos comentado, varían en su tamaño. Este hecho repercute

directamente en el tiempo de resolución de los mismos, siendo la clase “d”, por consiguiente, la que mayor

tiempo requerirá a priori.

En la página siguiente se presenta la librería OR-Library de la que hemos hecho uso en el Trabajo. La tabla

muestra los parámetros más determinantes de los problemas pertenecientes a los distintos grupos (número de

nodos y arcos, y número de nodos terminales).

Page 43: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 35

OR-Library

PROBLEMA Nº Nodos Nº Arcos Nº Terminales

steinb1 13 19 8

steinb2 15 21 11

steinb3 20 25 15

steinb4 40 80 9

steinb5 39 80 12

steinb6 45 87 25

steinb7 22 33 11

steinb8 26 38 15

steinb9 27 35 23

steinb10 55 121 13

steinb11 63 129 19

steinb12 63 125 36

steinb13 36 56 14

steinb14 42 65 21

steinb15 48 69 38

steinb16 77 166 17

steinb17 74 153 23

steinb18 82 166 45

steinc1 143 260 5

steinc2 128 234 10

steinc3 178 295 75

steinc4 193 314 102

steinc5 223 341 180

steinc6 366 837 5

steinc7 383 866 10

steinc8 387 867 79

steinc9 418 903 124

steinc10 427 891 242

steinc11 499 2005 5

steinc12 499 2065 10

steinc13 498 2026 83

steinc14 499 1968 125

steinc15 500 1815 250

steinc16 500 3517 5

steinc17 500 3463 10

steinc18 500 3496 83

steinc19 500 3352 125

steind1 272 504 5

steind2 283 519 10

steind3 350 585 148

steind4 359 590 207

steind5 470 708 377

steind6 759 1730 5

steind7 749 1721 10

steind8 802 1778 166

steind9 802 1768 246

steind10 836 1781 485

steind11 993 4442 5

steind12 1000 4437 10

steind13 998 4354 167

Page 44: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 36

La gráfica que aparece a continuación muestra la distribución de las propiedades de los problemas a estudiar.

Fig. 4.3 Gráfico de características de los problemas

Fuente: Elaboración propia

Como se puede observar, la gráfica presenta una tendencia lineal creciente, tanto para el número de nodos

como para el de arcos. Del mismo modo, el número de nodos terminales presenta tendencia al alza, pero no

sigue una relación lineal.

La gráfica tiene su máximo en el problema steind11.txt. Se aprecia un patrón estacional muy marcado en

cuanto a la distribución del número de arcos que se repite por cada grupo de problemas a partir del problema

steinc1.txt.

Los problemas de clase “b” siguen un patrón diferente, como muestra la siguiente comparativa entre las

figuras 4.3 y 4.4.

0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

stei

nb

1

stei

nb

3

stei

nb

5

stei

nb

7

stei

nb

9

stei

nb

11

st

ein

b1

3

stei

nb

15

st

ein

b1

7

stei

nc1

st

ein

c3

stei

nc5

st

ein

c7

stei

nc9

st

ein

c11

st

ein

c13

st

ein

c15

st

ein

c17

st

ein

c19

st

ein

d2

st

ein

d4

st

ein

d6

st

ein

d8

st

ein

d1

0

stei

nd

12

nº Nodos

nº Arcos

nº Terminales

Page 45: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 37

Fig. 4.4 Gráfico de tendencia del grupo de problemas de clase “b”

Fuente: Elaboración propia

Fig. 4.5 Gráfico de tendencia del grupo de problemas de clase “c”

Fuente: Elaboración propia

0

20

40

60

80

100

120

140

160

180

stei

nb

1

stei

nb

2

stei

nb

3

stei

nb

4

stei

nb

5

stei

nb

6

stei

nb

7

stei

nb

8

stei

nb

9

stei

nb

10

stei

nb

11

stei

nb

12

stei

nb

13

stei

nb

14

stei

nb

15

stei

nb

16

stei

nb

17

stei

nb

18

nº Nodos

nº Arcos

nº Terminales

0

500

1000

1500

2000

2500

3000

3500

4000

stei

nc1

stei

nc2

stei

nc3

stei

nc4

stei

nc5

stei

nc6

stei

nc7

stei

nc8

stei

nc9

stei

nc1

0

stei

nc1

1

stei

nc1

2

stei

nc1

3

stei

nc1

4

stei

nc1

5

stei

nc1

6

stei

nc1

7

stei

nc1

8

stei

nc1

9

nº Nodos

nº Arcos

nº Terminales

Page 46: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 38

La anterior comparativa muestra un “zoom” sobre la Fig. 4.3, lo que nos permite apreciar con mayor claridad

y de forma precisa las diferentes tendencias que comentamos antes.

Los problemas del grupo steinb.txt presentan una tendencia lineal creciente en todas sus series (Fig. 4.4), al

contrario que los grupos de problemas steinc.txt y steind.txt.

La Fig. 4.5 refleja la distribución de los datos para problemas clase “c”, que sería equivalente a aquella

mostrada para la clase “d”.

La siguiente figura representa el problema steinb1.txt de la batería de problemas. Se trata del grafo de menor

dimensión a estudiar. A partir de éste nos podemos hacer una idea del tamaño de los problemas de grafos de

las clases mayores.

Fig. 4.6 Problema Steinb1.txt

Fuente: Elaboración propia

Así, el problema presenta una tipología resultado de conectar todos los nodos terminales entre sí a través de un

conjunto de nodos Steiner, de forma que el coste sea mínimo. Los nodos Steiner que sean seleccionados y

pasen a formar parte de la red serán nodos Steiner activos.

El nodo raíz (P) será el primer terminal dado (en este problema se trata del nodo 4). Todos los nodos

Terminales, así como los nodos de Steiner activos tienen un padre (los nodos Steiner 12, 9 y 3 forman parte de

la red final; los nodos 1 y 2 no). La ruta de coste mínimo que conecta todos los nodos terminales viene

reflejada por los arcos de color azul. El óptimo del problema, al que habría que sumar el dato de coste asociado

al mismo, es 82.

Page 47: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 39

En la tabla que aparece a continuación se muestra el óptimo para cada problema de los grupos “steinb.txt” y

“steinc.txt”. No se nos proporcionan los valores óptimos del conjunto de problemas correspondientes a la clase

“steind.txt” de la librería OR-Library

Tabla de óptimos

PROBLEMA ÓPTIMO

steinb1 83

steinb2 83

steinb3 138

steinb4 59

steinb5 61

steinb6 122

steinb7 111

steinb8 104

steinb9 220

steinb10 86

steinb11 88

steinb12 174

steinb13 165

steinb14 235

steinb15 318

steinb16 127

steinb17 131

steinb18 218

steinc1 85

steinc2 144

steinc3 754

steinc4 1079

steinc5 1579

steinc6 55

steinc7 102

steinc8 509

steinc9 707

steinc10 1093

steinc11 32

steinc12 46

steinc13 258

steinc14 323

steinc15 556

steinc16 11

steinc17 18

steinc18 113

steinc19 146

Page 48: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 40

Resultados obtenidos

En este apartado se exponen los resultados experimentales que nos proporciona LINGO para los dos modelos

formulados en nuestro proyecto.

Las estrategias de resolución MTZ y DL, que aplicamos sobre el conjunto de problemas a analizar, se han

podido llevar a cabo una vez completada la transformación de éstos a un formato adecuado para LINGO.

Como ya comentamos anteriormente, es el modelo creado en lenguaje “C”, que presentaremos más adelante

en la sección Anexos del proyecto, el que nos permite realizar este cambio en la forma de presentar los datos de

los problemas, haciendo uso de Code::Blocks.

Resultados obtenidos para la versión del modelo MTZ en el Problema de Steiner:

Problema Solución

obtenida

Nº total de

iteraciones

Tiempo

(h,min,s)

steinb1.txt 82 18 0:00:00

steinb2.txt 83 56 0:00:00

steinb3.txt 138 91 0:00:00

steinb4.txt 59 16989 0:00:04

steinb5.txt 61 229 0:00:00

steinb6.txt 122 8017 0:00:02

steinb7.txt 111 116 0:00:00

steinb8.txt 104 5475 0:00:02

steinb9.txt 220 220 0:00:01

steinb10.txt 86 251 0:00:00

steinb11.txt 88 79597 0:00:31

steinb12.txt 174 616 0:00:01

steinb13.txt 165 24812 0:00:03

steinb14.txt 235 15385 0:00:03

steinb15.txt 318 648 0:00:01

steinb16.txt 127 6684 0:00:03

steinb17.txt 129 14807 0:00:06

steinb18.txt 218 609 0:00:01

steinc1.txt 85 42185 0:00:14

steinc2.txt 144 9998 0:00:04

steinc3.txt 754 208448 0:01:00

steinc4.txt 1079 187174 0:01:10

steinc5.txt 1579 2120329 0:10:02

steinc6.txt 55 46065 0:00:12

steinc7.txt 102 1217 0:00:01

steinc8.txt 509 3294474 0:09:24

steinc9.txt 707 1465170 0:04:28

Page 49: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 41

steinc10.txt 1091 40343 0:00:08

steinc11.txt 32 38628842 *

steinc12.txt 46 134154 0:01:07

steinc13.txt 261 984108 *

steinc14.txt 323 4610 0:00:15

steinc15.txt 556 678430 *

steinc16.txt 11 44524 0:00:51

steinc17.txt 18 37739 0:00:48

steinc18.txt 113 705388 *

steinc19.txt 146 7210 0:00:45

steind1.txt 106 292764 0:00:54

steind2.txt 220 351428 0:00:53

steind3.txt 1565 4537 0:00:03

steind4.txt 1935 4502 0:00:02

steind5.txt 3250 15008 0:00:04

steind6.txt 71 1796306 **

steind7.txt 103 4860 0:00:13

steind8.txt 1099 386606 **

steind9.txt 1448 364561 0:33:50

steind10.txt 2110 321172 0:02:50

steind11.txt 29 705470 0:06:54

steind12.txt 42 9636 0:01:19

steind13.txt 500 10945002 1:03:19

Fig. 4.7 Tabla de resultados MTZ

Fuente: Elaboración propia

Resultados obtenidos para la versión del modelo D&L en el Problema de Steiner:

Problema Solución

obtenida

Nº total de

iteraciones

Tiempo

(h,min,s)

steinb1.txt 82 48 0:00:00

steinb2.txt 83 63 0:00:01

steinb3.txt 138 59 0:00:00

steinb4.txt 59 2293 0:00:01

steinb5.txt 61 359 0:00:01

steinb6.txt 122 48558 0:00:22

steinb7.txt 111 144 0:00:00

steinb8.txt 104 10770 0:00:02

steinb9.txt 220 93 0:00:01

steinb10.txt 86 256 0:00:00

steinb11.txt 88 65925 0:00:18

steinb12.txt 174 487 0:00:01

steinb13.txt 165 3965 0:00:02

steinb14.txt 235 10631 0:00:03

steinb15.txt 318 1103 0:00:00

steinb16.txt 127 12558 0:00:07

steinb17.txt 129 16146 0:00:09

Page 50: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 42

steinb18.txt 218 536 0:00:00

steinc1.txt 85 104435 0:00:41

steinc2.txt 144 92352 0:00:36

steinc3.txt 754 368074 0:02:40

steinc4.txt 1079 544849 0:02:36

steinc5.txt 1579 17813261 1:06:00

steinc6.txt 55 122208 0:00:31

steinc7.txt 102 2003 0:00:04

steinc8.txt 509 8390990 0:55:00

steinc9.txt 707 3304946 3:19:22

steinc10.txt 1091 28310 0:00:17

steinc11.txt 34 30497986 *

steinc12.txt 46 843572 0:18:38

steinc13.txt 265 113761 *

steinc14.txt 323 4464 0:00:16

steinc15.txt 571 1496150 *

steinc16.txt 11 16097 0:00:46

steinc17.txt 18 9140 0:00:42

steinc18.txt 114 1100923 *

steinc19.txt 146 26852 0:00:57

steind1.txt 106 377442 0:01:04

steind2.txt 220 115704 0:00:23

steind3.txt 1565 17020 0:00:04

steind4.txt 1935 8586 0:00:03

steind5.txt 3250 3454 0:00:03

steind6.txt 73 183422 **

steind7.txt 103 15948 0:00:18

steind8.txt 1082 715196 **

steind9.txt 1448 3881832 0:33:46

steind10.txt 2110 226330 0:02:47

steind11.txt 29 437149 0:07:37

steind12.txt 42 6795 0:01:22

steind13.txt 518 2265330 **

Fig. 4.8 Tabla de resultados D&L

Fuente: Elaboración propia

En las tablas anteriormente expuestas en las figuras 4.7 y 4.8 podemos apreciar los resultados obtenidos del

conjunto de problemas que nos fueron proporcionados para estudiar en el Proyecto, una vez éstos han sido

compilados en LINGO según las dos estratégias planteadas (MTZ y DL).

Las tablas representan, para cada grupo de problemas, el resultado obtenido, el número total de iteraciones

realizadas en el análisis y el tiempo de resolución (runtime) que precisó el estudio.

En el grupo “c”, el tiempo de resolución aparece representado con un asterisco (*) para aquellos problemas en

los que el Solver no llegó al óptimo tras un tiempode resolución estimado de 6 horas. Para el grupo “d”, el

tiempo de resolución de aquellos problemas que no llegaron al óptimo tras un tiempo estimado de 4 horas en

este caso aparece representado con dos asteriscos (**).

Page 51: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 43

Analizando los resultados obtenidos para el grupo de problemas “steinb.txt”, apreciamos que en todos ellos,

tanto para el modelo MTZ como para el modelo DL, se alcanza el valor de la función objetivo. Los tiempos de

resolución para todos estos problemas son prácticamente despreciables, del orden de segundos (algunos

incluso de menos de un segundo), en ambos casos.

En la figura 4.9 aparece representada la línea de tendencia del valor óptimo para los problemas del grupo “b”.

Fig. 4.9 Gráfico de óptimos: problemas “steinb.txt”

Fuente: Elaboración propia

La gráfica de óptimos para los problemas “steinb.txt” tiene tendencia lineal creciente. Presenta estacionalidad

cada tres problemas debido a la distribución de los nodos Terminales.

A continuación, en la gráfica de puntos de la figura 4.10, representamos la precisión que tienen los dos

modelos formulados a la hora de resolver los problemas incluidos en este grupo. Hemos hecho uso de una

única gráfica puesto que ambos llegan al óptimo, es decir, sus resultados no difieren.

82

83

138

59

61

122

111

104

220

86

88

174

165

235

318

127 129

218

0

50

100

150

200

250

300

350

stei

nb

1.t

xt

stei

nb

2.t

xt

stei

nb

3.t

xt

stei

nb

4.t

xt

stei

nb

5.t

xt

stei

nb

6.t

xt

stei

nb

7.t

xt

stei

nb

8.t

xt

stei

nb

9.t

xt

stei

nb

10

.txt

stei

nb

11

.txt

stei

nb

12

.txt

stei

nb

13

.txt

stei

nb

14

.txt

stei

nb

15

.txt

stei

nb

16

.txt

stei

nb

17

.txt

stei

nb

18

.txt

Óptimos clase "b"

serie de óptimos

Page 52: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 44

Fig. 4.10 Precisión del modelo para los problemas de clase “b”

Fuente: Elaboración propia

Dentro del grupo “steinc.txt” nos dimos cuenta de que todos los problemas, desde el “steinc1.txt” hasta el

“steinc10.txt”, alcanzan el óptimo para ambos modelos. Sin embargo, los tiempos de resolución de algunos de

estos problemas aumentan considerablemente respecto a aquellos del grupo “b”.

En la figura 4.11 aparece también representada la línea de tendencia del resultado óptimo para los problemas

del grupo “c”.

Fig. 4.11 Gráfico de óptimos: problemas “steinc.txt”

Fuente: Elaboración propia

82

83

138

59 61

122 111 104

220

86 88

174

165

235

318

127 129

218

0

50

100

150

200

250

300

350

0 5 10 15

MTZ/D&L Óptimo

85 144

754

1079

1579

55 102

509

707

1091

32 46

258 323

556

11 18 113 146

0 200 400 600 800

1000 1200 1400 1600 1800

stei

nc1

.txt

stei

nc2

.txt

stei

nc3

.txt

stei

nc4

.txt

stei

nc5

.txt

stei

nc6

.txt

stei

nc7

.txt

stei

nc8

.txt

stei

nc9

.txt

stei

nc1

0.t

xt

stei

nc1

1.t

xt

stei

nc1

2.t

xt

stei

nc1

3.t

xt

stei

nc1

4.t

xt

stei

nc1

5.t

xt

stei

nc1

6.t

xt

stei

nc1

7.t

xt

stei

nc1

8.t

xt

stei

nc1

9.t

xt

Óptimos clase "c"

Series1

Page 53: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 45

Se aprecia claramente que la gráfica de óptimos para el grupo “c” tiene tendencia decreciente, con un claro

patrón estacional que se repite cada cinco problemas (coincide con la distribución que sigue el número de

nodos terminales para cada problema). Podemos concluir que para los problemas de los grupos “b” y “c”el

óptimo es menor cuando el número de nodos terminales (subconjunto T c N ) también es menor, es decir,

cuando la densidad de nodos de Steiner es mayor (la densidad de nodos Steiner se refiere al porcentaje de

nodos (n) del grafo G=(N,A) que pertenecen al subconjunto S c (N-T) ). Ésto se debe a que la cantidad de arcos

incluidos en la solución final (subgrafo Gs) no es tan elevada y, por tanto, los costes a sumar derivados de ellos

tampoco.

Detectamos que el modelo DL responde más lentamente que la estratégia MTZ, como ocurre en los problemas

“steinc5.txt” y “steinc9.txt”, donde el “runtime” pasa del orden de minutos a horas. Otros ejemplos relevantes

son los problemas “steinc8.txt” y “steinc12.txt”, para los que el modelo MTZ también encuentra el óptimo en

menor tiempo.

Es a partir del problema “steinc11.txt” cuando el programa tiene más dificultades para alcanzar el óptimo.

Éste, tras dejarlo correr durante casi 16 horas no dio solución (en la tabla de resultados aparece la solución

obtenida para un runtime de 6 horas). Decidimos entonces reducir los tiempos de resolución a un máximo de 6

horas y, si en ese tiempo no se había obtenido la solución del problema, quedarnos con la mejor que LINGO

hubiese alcanzado hasta el momento.

En la figura 4.12 que se muestra a continuación aparece reflejada gráficamente la diferencia en cuanto al

tiempo que precisa cada uno de los modelos para la resolución de los problemas “steinc5.txt”, “steinc8.txt”,

“steinc9.txt” y “steinc12.txt” que mencionamos antes.

Fig. 4.12 Comparación del tiempo de resolución entre modelos

Fuente: Elaboración propia

1:06:00

0:55:00

3:19:22

0:18 0:10 0:09 0:04 0:01 0:00:00

0:28:48

0:57:36

1:26:24

1:55:12

2:24:00

2:52:48

3:21:36

3:50:24

steinc5.txt steinc8.txt steinc9.txt steinc12.txt

Tiempos de resolución

DL MTZ

Page 54: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 46

En la figura 4.13 se exponen, haciendo uso de un gráfico de barras, los resultados obtenidos de modelar los

problemas “steinc.txt” según las estrategias MTZ y DL.

Fig. 4.13 Precisión de los modelos MTZ y DL para los problemas de clase “c”

Fuente: Elaboración propia

En la gráfica de precisión de los modelos aparecen aquellos problemas para los que Lingo no alcanzó el

óptimo una vez transcurrido el tiempo de resolución estimado de 6 horas.

Haciendo uso de la estrategia MTZ, sólo en el problema “steinc13.txt” el programa no alcanzó el óptimo tras

dejarlo compilar 6 horas. Los problemas “steinc11.txt”, “steinc15.txt” y “steinc18.txt”, aunque alcanzaron el

óptimo, no muestran un resultado fiable pues, en su caso, hubo que interrumpir el Solver, es decir, tras 6 horas

no se llegó al óptimo. Sin embargo, coincide que la mejor solución alcanzada por LINGO hasta el momento es

igual al óptimo del problema.

Cuando interrumpimos el compilador (Solver), éste nos indica que la solución que va a presentar puede no ser

óptima.

En el caso del modelo DL, los problemas “steinc11.txt”, “steinc13.txt”, “steinc15.txt” y “steinc18.txt” no

alcanzaron el óptimo en el tiempo dispuesto para ello (6 horas). Aquí, nos damos cuenta que DL no se

aproxima a la solución óptima tanto como MTZ.

En la gráfica de la figura 4.14 se muestran aquellos problemas de clase “d” para los que el resultado obtenido

por LINGO es diferente. No contamos en nuestro proyecto con los óptimos de los problemas de este grupo,

32

261

556

113

34

265

571

114

32

258

556

113

0

100

200

300

400

500

600

steinc11.txt steinc13.txt steinc15.txt steinc18.txt

MTZ

DL

Óptimo

Page 55: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

RESULTADOS EXPERIMENTALES Página 47

presumiblemente por la magnitud de los tiempos de resolución que cabía esperar a priori. Sin embargo, una

vez llevamos a cabo el estudio nos damos cuenta de que ambas estratégias, tanto MTZ como DL, llegan a una

solución equivalente, con tiempos de resolución muy reducidos, en la mayoría de los casos. Como muestra la

figura, sólo en los problemas “steind6.txt”, “steind8.txt” y “steind13.txt” la solución encontrada por LINGO

para ambos modelos es diferente tras haber dejado compilar el programa cuatro horas en los dos casos (Solver

interrumpido). En el problema “steind13.txt”, sin embargo, el programa dio una solución al problema haciendo

uso del modelo MTZ y no para el DL. Nuevamente, aunque los resultados son muy similares entre sí, parece

que la estratedia MTZ responde mejor que la desarrollada por Desrochers y Laporte.

Fig. 4.14 Resultados obtenidos para los problemas de clase “d”

Fuente: Elaboración propia

71

1099

500

73

1082

518

0

200

400

600

800

1000

1200

steind6.txt steind8.txt steind13.txt

MTZ

DL

Page 56: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

CONCLUSIONES Página 48

CONCLUSIONES

Una vez realizado el estudio de los problemas llegamos a una serie de conclusiones derivadas de los resultados

obtenidos. Cabe destacar que las diferentes estrategias antibucles que hemos utilizado en nuestro Proyecto para

resolver el Problema de Steiner, aunque formuladas en un primer momento con el objetivo de evitar la

formación de ciclos dentro del Problema del Viajante de Comercio, funcionan correctamente, ya que los dos

modelos desarrollados encuentran el óptimo en la mayoría de los problemas.

Es cierto también, no obstante, que algunos problemas proporcionan una solución admisible pero no óptima

para los tiempos de resolución establecidos.

A la hora de analizar los problemas, se pueden distinguir dos etapas diferenciadas: primero, nos encontramos

con la etapa relativa a los problemas de la clase “b” (“steinb.txt”), en la cual el análisis es prácticamente

inmediato pues, como ya sabíamos, estos problemas son de menor complejidad al ser su dimensión menor;

después, en la etapa en que se estudia el grupo “c” (“steinc.txt”), la resolución con LINGO de algunos de los

problemas aquí incluidos no es igualmente satisfactoria, si bien se ha de reconocer que la solución obtenida se

acerca al óptimo considerablemente.

En cuanto a la comparación entre los modelos MTZ y DL, sabemos que ambos responden de manera rápida y

precisa para los problemas de clase “b”. Si bien en la primera etapa correspondiente al análisis (problemas

“steinb.txt”) no apreciamos diferencias entre ambos a la hora de resolver los problemas, es en la segunda

etapa, aquella correspondiente a la clase “c”, en la que el modelo MTZ responde mejor para determinados

problemas. Ésto puede deberse a que el número de restricciones en este modelo es mayor que en la estratégia

DL y, en consecuencia, su tiempo de resolución menor.

Dentro del grupo de problemas “steinc.txt” no se ha podido detectar ningún patrón en cuanto a la relación

directa entre el número de nodos, número de arcos y número de nodos terminales y su influencia en el tiempo

de resolución requerido para cada problema. Si parece, no obstante, que cuando la cantidad de nodos

terminales en un problema es pequeña, por lo general, el tiempo de resolución también lo es.

También, es llamativa la rapidez con que ambas estratégias alcanzan una solución óptima para la mayoría de

los problemas del grupo “steind.txt”.

Hemos de recordar que el modelo DL fue propuesto como alternativa a la estrategia MTZ para mejorar ésta

dentro de la formulación DFJ para el Problema del Viajante de Comercio. No obstante, y en vista de los

resultados obtenidos, parece que el modelo expuesto por Desrochers y Laporte no mejora el planteado con

anterioridad por Miller, Tucker y Zemlin cuando lo aplicamos al Problema de Steiner.

Page 57: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

BIBLIOGRAFÍA Página 49

BIBLIOGRAFÍA

1. INGENIERÍA DE ORGANIZACIÓN: Métodos Cuantitativos de Gestión

“Técnicas básicas para el modelado y resolución de problemas de gestión (Bloques)”

Autor: Jose Manuel García Sánchez

2. INGENIERÍA DE ORGANIZACIÓN: Métodos Cuantitativos de Gestión

“Resolución de problemas: librerías de optimización (LINGO, Solver)”

Autor: Jose Manuel García Sánchez

3. European Journal of Operational Research

“The Traveling Salesman Problem: An overview of exact and approximate algorithms”

Autor: Laporte, G. (1992)

4. Operations Research Letters 10

“Improvements and extensions to the Miller-Tucker-Zemlin subtour elimination constraints”

Autores: Desrochers, M., and Laporte, G. (1991)

5. OR-Library: Distributing Test Problems by Electronic Mail

J. E. Beasley: The Journal of the Operational Research Society (Nov., 1990)

6. Antonio García (GIOI): Conversión de los enunciados.txt a LINGO con C (pag.36)

7. https://es.wikipedia.org

8. https://www.wuolah.com

Page 58: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

ANEXOS Página 50

ANEXOS

Fichero de entrada de un problema

Formato: Problema Steinb1.txt

13 19 “NumNodos“, “NumAristas”

1 5 7 “i”, “j”, “cij”

3 9 1

3 1 7

4 8 2

6 4 2

6 5 2

6 3 8

8 10 4

9 2 8

9 7 5

10 2 6

11 1 8

11 2 14

12 6 8

12 10 9

12 11 2

12 13 7

12 7 15

13 9 11

8 “Nº nodos Terminales”

4 5 6 7 8 10 11 13 “Nodos Terminales”

41 “Coste asociado”

En la primera fila se indica el número de nodos y aristas.

Después aparece una fila para cada arista, con los dos nodos y el coste.

A continuación viene el número de nodos terminales y, en la siguiente fila, la lista de los terminales.

Finalmente viene un dato de coste asociado que hay que sumar a la FO pues estos problemas tienen un proceso

de reducción.

Page 59: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

ANEXOS Página 51

Modelo en C (Code::Blocks)

#include <stdio.h>

#include <stdlib.h>

int main()

{

printf("Problema:\n");

FILE*f1;

FILE*f2;

f1=fopen("steind13.txt","r");

f2=fopen("enunciadolingo.txt","w");

if(f1==NULL){

printf("no se puede abrir el programa");

exit(0);}

if(f2==NULL){

printf("error al abrir prueba.txt");

exit(0);}

int nodos,arcos;

int i,j;

fscanf(f1,"%d %d\n",&nodos,&arcos);

fprintf(f2,"MODEL:\nSETS:\nnodos/1..%d/:t,n,b,adyacentes;\narcos(nodos,nodos)/",nodos);

printf("nodos:%d arcos:%d",nodos,arcos);

printf("\n\ni j c\n");

int origen[arcos],destino[arcos],coste[arcos];

for(i=1;i<=arcos;i++)

{

fscanf(f1,"%d %d %d\n",&origen[i],&destino[i],&coste[i]);

if(i==1){

fprintf(f2,"%d %d,%d %d",origen[i],destino[i],destino[i],origen[i]);}

else{

fprintf(f2,",%d %d,%d %d",origen[i],destino[i],destino[i],origen[i]);}

printf("%d %d %d\n%d %d %d\n",origen[i],destino[i],coste[i],destino[i],origen[i],coste[i]);

}

fprintf(f2,"/:coste,x;\nENDSETS\n\nDATA:\nt=");

int numterminales;

fscanf(f1,"%d\n",&numterminales);

printf("\nNumero de terminales:%d\n",numterminales);

printf("Terminales:");

int terminal[numterminales-1];

int w,p;

int u=0;

int t=1;

Page 60: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

ANEXOS Página 52

for(j=1;j<=nodos-u;j++)

{

if(j<=numterminales){

fscanf(f1,"%d ",&terminal[j]);

for(w=t;w<=terminal[j];w++)

{

if(w!=terminal[j]&&w==1){

fprintf(f2,"0");

u=u+1;}

if(w!=terminal[j]&&w!=1){

fprintf(f2,",0");

u=u+1;}

if(w==terminal[j]&&w==1){

fprintf(f2,"1");}

if(w==terminal[j]&&w!=1){

fprintf(f2,",1");}

}

t=w;

printf("%d ",terminal[j]);}

else{

fprintf(f2,",0");}

}

p=terminal[1];

printf("\nP=%d",terminal[1]);

fprintf(f2,";\nP=%d; !nodo raíz;\ncoste=",terminal[1]);

for(i=1;i<=arcos;i++)

{

if(i==1){

fprintf(f2,"%d,%d",coste[i],coste[i]);}

else{

fprintf(f2,",%d,%d",coste[i],coste[i]);}

}

int costextra;

fscanf(f1,"\n %d",&costextra);

printf("\nEl coste extra es: %d\n",costextra);

fprintf(f2,";\ncostextra=%d;\nadyacentes=",costextra);

int adyacentes[arcos];

for(i=1;i<=nodos;i++)

{

adyacentes[i]=0;

for(j=1;j<=arcos;j++)

{

if(origen[j]==i||destino[j]==i){

adyacentes[i]=adyacentes[i]+1;}

}

if(i==1){

Page 61: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

ANEXOS Página 53

fprintf(f2,"%d",adyacentes[i]);}

else{

fprintf(f2,",%d",adyacentes[i]);}

}

fprintf(f2,";\nENDDATA\n\n");

fprintf(f2,"!FO y Restricciones;\n");

fprintf(f2,"min=%d+@sum(arcos(i,j)|i#NE#j:coste(i,j)*x(i,j)); !FO;\n\n",costextra);

fprintf(f2,"@for(nodos(i)|i#NE#P #AND# t(i)#EQ#1:1<=@sum(arcos(i,j):x(i,j))); !(1) los nodos terminales

deben tener un padre;\n");

fprintf(f2,"@sum(arcos(i,j)|i#EQ#P:x(i,j))=0; !(2) el terminal principal es el único que no tiene padre;\n\n");

fprintf(f2,"@for(nodos(j)|t(j)#EQ#0:@sum(arcos(i,j)|i#NE#j:x(i,j))<=b(j)*adyacentes(j)); !(3) la variable b(j)

se activa si j pertenece a la red;\n");

fprintf(f2,"@for(nodos(i)|t(i)#EQ#1:b(i)>=1); !(4) valor de la variable b(i)para los nodos terminales;\n\n");

fprintf(f2,"@for(arcos(i,j)|i#NE#j:x(i,j)<=1-x(j,i)); !(5) sólo se puede activar el arco en un único sentido;\n");

fprintf(f2,"@for(arcos(i,j):@sum(arcos(i,j)|i#NE#j:x(i,j))-t(j)<=@sum(arcos(j,k)|i#NE#k:x(j,k))); !(6) si un

nodo Steiner se activa, ese nodo debe tener un padre;\n\n");

fprintf(f2,"@for(arcos(i,j)|i#NE#j #AND# i#GT#1 #AND# j#GT#1:n(i)-n(j)+(%d-1)*x(i,j)<=%d-2);

!(8)MTZ, restricción anticiclos Modelo MTZ;\n",nodos,nodos);

fprintf(f2,"@for(nodos(i)|i#GT#1:1<=n(i)); !(9);\n");

fprintf(f2,"@for(nodos(i)|i#GT#1:n(i)<=%d-1);\n\n",nodos);

fprintf(f2,"@for(arcos(i,j)|i#NE#j #AND# i#GT#1 #AND# j#GT#1:n(i)-n(j)+(%d-1)*x(i,j)+(%d-

3)*x(j,i)<=%d-2); !(10)DL, restricción anticiclos Modelo D&L;\n\n",nodos,nodos,nodos);

fprintf(f2,"@for(nodos(i):@bin(t(i))); !(7) variables binarias{0,1};\n");

fprintf(f2,"@for(nodos(j):@bin(b(j)));\n");

fprintf(f2,"@for(arcos(i,j):@bin(x(i,j)));\n\nEND");

fclose(f1);

fclose(f2);

return 0;

}

Page 62: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

ANEXOS Página 54

Problema “steinb1.txt” Modelo MTZ en LINGO

MODEL:

SETS:

nodos/1..13/:t,n,b,adyacentes;

arcos(nodos,nodos)/1 5,5 1,3 9,9 3,3 1,1 3,4 8,8 4,6 4,4 6,6 5,5 6,6 3,3 6,8

10,10 8,9 2,2 9,9 7,7 9,10 2,2 10,11 1,1 11,11 2,2 11,12 6,6 12,12 10,10

12,12 11,11 12,12 13,13 12,12 7,7 12,13 9,9 13/:coste,x;

ENDSETS

DATA:

t=0,0,0,1,1,1,1,1,0,1,1,0,1;

P=4; !nodo raíz;

coste=7,7,1,1,7,7,2,2,2,2,2,2,8,8,4,4,8,8,5,5,6,6,8,8,14,14,8,8,9,9,2,2,7,7,1

5,15,11,11;

costextra=41;

adyacentes=3,3,3,2,2,4,2,2,4,3,3,5,2;

ENDDATA

!FO y Restricciones;

min=41+@sum(arcos(i,j)|i#NE#j:coste(i,j)*x(i,j)); !FO;

@for(nodos(i)|i#NE#P #AND# t(i)#EQ#1:1<=@sum(arcos(i,j):x(i,j))); !(1) los

nodos terminales deben tener un padre;

@sum(arcos(i,j)|i#EQ#P:x(i,j))=0; !(2) el terminal principal es el único que

no tiene padre;

@for(nodos(j)|t(j)#EQ#0:@sum(arcos(i,j)|i#NE#j:x(i,j))<=b(j)*adyacentes(j));

!(3) la variable b(j) se activa si j pertenece a la red;

@for(nodos(i)|t(i)#EQ#1:b(i)>=1); !(4) valor de la variable b(i)para los

nodos terminales;

@for(arcos(i,j)|i#NE#j:x(i,j)<=1-x(j,i)); !(5) sólo se puede activar el arco

en un único sentido;

@for(arcos(i,j):@sum(arcos(i,j)|i#NE#j #AND#

t(j)#EQ#0:x(i,j))<=@sum(arcos(j,k)|i#NE#k:x(j,k))); !(6) si un nodo Steiner

se activa, ese nodo debe tener un padre;

@for(arcos(i,j)|i#NE#j #AND# i#GT#1 #AND# j#GT#1:n(i)-n(j)+(13-1)*x(i,j)<=13-

2); !(8)MTZ, restricción antibucles Modelo MTZ;

@for(nodos(i)|i#GT#1:1<=n(i)); !(9);

@for(nodos(i)|i#GT#1:n(i)<=13-1);

@for(nodos(i):@bin(t(i))); !(7) variables binarias{0,1};

@for(nodos(j):@bin(b(j)));

@for(arcos(i,j):@bin(x(i,j)));

END

Page 63: Proyecto Fin de Grado - bibing.us.esbibing.us.es/proyectos/abreproy/91600/fichero/1600_GORG_TFG+OFICIAL.pdf · El objetivo del Trabajo es identificar qué modelo opera mejor en distintos

ANÁLISIS DE LAS ESTRATEGIAS ANTIBUCLES DE MILLER-TUCKER-ZEMLIN Y DESROCHERS-LAPORTE PARA EL PROBLEMA DE STEINER EN GRAFOS

ANEXOS Página 55

Problema “steinb1.txt” Modelo DL en LINGO

MODEL:

SETS:

nodos/1..13/:t,n,b,adyacentes;

arcos(nodos,nodos)/1 5,5 1,3 9,9 3,3 1,1 3,4 8,8 4,6 4,4 6,6 5,5 6,6 3,3 6,8

10,10 8,9 2,2 9,9 7,7 9,10 2,2 10,11 1,1 11,11 2,2 11,12 6,6 12,12 10,10

12,12 11,11 12,12 13,13 12,12 7,7 12,13 9,9 13/:coste,x;

ENDSETS

DATA:

t=0,0,0,1,1,1,1,1,0,1,1,0,1;

P=4; !nodo raíz;

coste=7,7,1,1,7,7,2,2,2,2,2,2,8,8,4,4,8,8,5,5,6,6,8,8,14,14,8,8,9,9,2,2,7,7,1

5,15,11,11;

costextra=41;

adyacentes=3,3,3,2,2,4,2,2,4,3,3,5,2;

ENDDATA

!FO y Restricciones;

min=41+@sum(arcos(i,j)|i#NE#j:coste(i,j)*x(i,j)); !FO;

@for(nodos(i)|i#NE#P #AND# t(i)#EQ#1:1<=@sum(arcos(i,j):x(i,j))); !(1) los

nodos terminales deben tener un padre;

@sum(arcos(i,j)|i#EQ#P:x(i,j))=0; !(2) el terminal principal es el único que

no tiene padre;

@for(nodos(j)|t(j)#EQ#0:@sum(arcos(i,j)|i#NE#j:x(i,j))<=b(j)*adyacentes(j));

!(3) la variable b(j) se activa si j pertenece a la red;

@for(nodos(i)|t(i)#EQ#1:b(i)>=1); !(4) valor de la variable b(i)para los

nodos terminales;

@for(arcos(i,j)|i#NE#j:x(i,j)<=1-x(j,i)); !(5) sólo se puede activar el arco

en un único sentido;

@for(arcos(i,j):@sum(arcos(i,j)|i#NE#j #AND#

t(j)#EQ#0:x(i,j))<=@sum(arcos(j,k)|i#NE#k:x(j,k))); !(6) si un nodo Steiner

se activa, ese nodo debe tener un padre;

@for(arcos(i,j)|i#NE#j #AND# i#GT#1 #AND# j#GT#1:n(i)-n(j)+(13-1)*x(i,j)+(13-

3)*x(j,i)<=13-2); !(10)DL, restricción antibucles Modelo DL;

@for(nodos(i):@bin(t(i))); !(7) variables binarias{0,1};

@for(nodos(j):@bin(b(j)));

@for(arcos(i,j):@bin(x(i,j)));

END