Vous êtes sur la page 1sur 69

Modelizacin Avanzada en Logstica y

Transporte
El problema del agente viajero

Luis M. Torres
Escuela Politcnica del Litoral
Guayaquil, Diciembre 2010

Maestra en Control de Operaciones y Gestin Logstica p.1

Contenido

Grafos: conceptos bsicos


El problema del agente viajero
Formulacin del TSP como un programa entero

Maestra en Control de Operaciones y Gestin Logstica p.2

Contenido

Grafos: conceptos bsicos


El problema del agente viajero
Formulacin del TSP como un programa entero

Maestra en Control de Operaciones y Gestin Logstica p.2

Todo empez en Knigsberg...

Kaliningrado (2005)
exclave ruso en el mar
bltico...

Maestra en Control de Operaciones y Gestin Logstica p.3

Todo empez en Knigsberg...

Kaliningrado (2005)
exclave ruso en el mar
bltico...
Knigsberg ( 1750)
... puerto del antiguo
imperio prusiano

Maestra en Control de Operaciones y Gestin Logstica p.3

...con un problema de puentes


El Pregel atraviesa la
ciudad formando dos
islas

Maestra en Control de Operaciones y Gestin Logstica p.4

...con un problema de puentes


El Pregel atraviesa la
ciudad formando dos
islas
Problema:
Cruzar cada uno de
los siete puentes
exactamente una vez

Maestra en Control de Operaciones y Gestin Logstica p.4

Modelo

Maestra en Control de Operaciones y Gestin Logstica p.5

Modelo
Cuatro orillas...

Maestra en Control de Operaciones y Gestin Logstica p.5

Modelo
Cuatro orillas...
... unidas por siete
puentes ...

Maestra en Control de Operaciones y Gestin Logstica p.5

Modelo
Cuatro orillas...
... unidas por siete
puentes ...
Idea:
Olvidar la ciudad,
retener la estructura!

Maestra en Control de Operaciones y Gestin Logstica p.5

Grafos
Definicin:
Un grafo es un par ordenado G = (V, E) donde:
V es un conjunto finito
E es un multiconjunto de la forma
E {{i, j} : i V, j V}

Maestra en Control de Operaciones y Gestin Logstica p.6

Grafos
Definicin:
Un grafo es un par ordenado G = (V, E) donde:
V es un conjunto finito
E es un multiconjunto de la forma
E {{i, j} : i V, j V}

Ejemplo:
1

V = {1, 2, 3, 4, 5}

5
2

E = {{1, 2} , {1, 3} , {2, 4} ,


{3, 4} , {3, 5} , {4, 5}}

4
Maestra en Control de Operaciones y Gestin Logstica p.6

Grafos
Definicin:
Un grafo es un par ordenado G = (V, E) donde:
V es un conjunto finito
E es un multiconjunto de la forma
E {{i, j} : i V, j V}
Los elementos de V se llaman nodos de G,
los elementos de E son las aristas de G.

Ejemplo:
1

V = {1, 2, 3, 4, 5}

5
2

E = {{1, 2} , {1, 3} , {2, 4} ,


{3, 4} , {3, 5} , {4, 5}}

4
Maestra en Control de Operaciones y Gestin Logstica p.6

Algunos conceptos bsicos


una arista e E es incidente a un nodo i V si i e

Maestra en Control de Operaciones y Gestin Logstica p.7

Algunos conceptos bsicos


una arista e E es incidente a un nodo i V si i e
dos nodos i, j V son adyacentes si {i, j} E

Maestra en Control de Operaciones y Gestin Logstica p.7

Algunos conceptos bsicos


una arista e E es incidente a un nodo i V si i e
dos nodos i, j V son adyacentes si {i, j} E
el conjunto de aristas incidentes a un cierto nodo i V
se denota por
(i) := {e E : i e}

Maestra en Control de Operaciones y Gestin Logstica p.7

Algunos conceptos bsicos


una arista e E es incidente a un nodo i V si i e
dos nodos i, j V son adyacentes si {i, j} E
el conjunto de aristas incidentes a un cierto nodo i V
se denota por
(i) := {e E : i e}

el grado de un nodo i es el nmero de aristas


incidentes a ste:
d(i) := |(i)|

Maestra en Control de Operaciones y Gestin Logstica p.7

Algunos conceptos bsicos (2)


dos aristas e1 , e2 E se llaman paralelas, si unen los
mismos nodos, es decir, si e1 = e2 = {i, j}

Maestra en Control de Operaciones y Gestin Logstica p.8

Algunos conceptos bsicos (2)


dos aristas e1 , e2 E se llaman paralelas, si unen los
mismos nodos, es decir, si e1 = e2 = {i, j}
una arista que une a un nodo con s mismo se llama
lazo

Maestra en Control de Operaciones y Gestin Logstica p.8

Algunos conceptos bsicos (2)


dos aristas e1 , e2 E se llaman paralelas, si unen los
mismos nodos, es decir, si e1 = e2 = {i, j}
una arista que une a un nodo con s mismo se llama
lazo
un grafo es simple si no tiene aristas paralelas ni lazos
trabajaremos en adelante siempre con grafos simples

Maestra en Control de Operaciones y Gestin Logstica p.8

Algunos conceptos bsicos (2)


dos aristas e1 , e2 E se llaman paralelas, si unen los
mismos nodos, es decir, si e1 = e2 = {i, j}
una arista que une a un nodo con s mismo se llama
lazo
un grafo es simple si no tiene aristas paralelas ni lazos
trabajaremos en adelante siempre con grafos simples
un grafo completo es un grafo simple con todas las
aristas posibles:
i, j V, i 6= j : e E, e = {i, j} .

Maestra en Control de Operaciones y Gestin Logstica p.8

Senderos, ciclos, conexidad


un sendero es una sucesin (ordenada)
i0 , e0 , i1 , e1 , . . . , in1 , en1 , in

con ik V , ek E, ek = {ik , ik+1 }, 0 k < n.

3
5

Maestra en Control de Operaciones y Gestin Logstica p.9

Senderos, ciclos, conexidad


un sendero es una sucesin (ordenada)
i0 , e0 , i1 , e1 , . . . , in1 , en1 , in

con ik V , ek E, ek = {ik , ik+1 }, 0 k < n.


un ciclo es un sendero cerrado (i0 = in ) que pasa por
nodos distintos entre s
1

3
5

Maestra en Control de Operaciones y Gestin Logstica p.9

Senderos, ciclos, conexidad


un sendero es una sucesin (ordenada)
i0 , e0 , i1 , e1 , . . . , in1 , en1 , in

con ik V , ek E, ek = {ik , ik+1 }, 0 k < n.


un ciclo es un sendero cerrado (i0 = in ) que pasa por
nodos distintos entre s
dos nodos estn conectados si existe un sendero que
los una

Maestra en Control de Operaciones y Gestin Logstica p.9

Senderos, ciclos, conexidad


un sendero es una sucesin (ordenada)
i0 , e0 , i1 , e1 , . . . , in1 , en1 , in

con ik V , ek E, ek = {ik , ik+1 }, 0 k < n.


un ciclo es un sendero cerrado (i0 = in ) que pasa por
nodos distintos entre s
dos nodos estn conectados si existe un sendero que
los una
un grafo es conexo si cada par de nodos estn
conectados

Maestra en Control de Operaciones y Gestin Logstica p.9

Cortes y aristas internas


Dado un subconjunto S V de nodos:
el corte (S) de S es el conjunto de aristas que tienen
un extremo en S y el otro afuera de S:
(S) := {ij S : i S, j 6 S}

Maestra en Control de Operaciones y Gestin Logstica p.10

Cortes y aristas internas


Dado un subconjunto S V de nodos:
el corte (S) de S es el conjunto de aristas que tienen
un extremo en S y el otro afuera de S:
(S) := {ij S : i S, j 6 S}

el conjunto E(S) de aristas internas a S contiene


aquellas aristas cuyos dos extremos estn en S
E(S) := {ij S : i S, j S}

Maestra en Control de Operaciones y Gestin Logstica p.10

Cortes y aristas internas


Dado un subconjunto S V de nodos:
el corte (S) de S es el conjunto de aristas que tienen
un extremo en S y el otro afuera de S:
(S) := {ij S : i S, j 6 S}

el conjunto E(S) de aristas internas a S contiene


aquellas aristas cuyos dos extremos estn en S
E(S) := {ij S : i S, j S}

Se cumple siempre que


X

d(i) = |(S)| + 2 |E(S)| .

iS

Maestra en Control de Operaciones y Gestin Logstica p.10

Cortes y aristas internas


Dado un subconjunto S V de nodos:
el corte (S) de S es el conjunto de aristas que tienen
un extremo en S y el otro afuera de S:
(S) := {ij S : i S, j 6 S}

el conjunto E(S) de aristas internas a S contiene


aquellas aristas cuyos dos extremos estn en S
E(S) := {ij S : i S, j S}

Se cumple siempre que


X

d(i) = |(S)| + 2 |E(S)| .

iS

Maestra en Control de Operaciones y Gestin Logstica p.10

Representacin computacional
Matriz de adyacencia:
Dado un grafo G = (V, E), definimos su matriz de
adyacencia M(G) MV V por medio de:
mij :=

1,
0,

si i y j con nodos adyacentes


caso contrario

Maestra en Control de Operaciones y Gestin Logstica p.11

Representacin computacional
Matriz de adyacencia:
Dado un grafo G = (V, E), definimos su matriz de
adyacencia M(G) MV V por medio de:
mij :=

1,
0,

si i y j con nodos adyacentes


caso contrario

Ejemplo:
1

3
5

M(G) =

0
1
1
0
0

1
0
0
1
0

1
0
0
1
1

0
1
1
0
1

0
0
1
1
0

Maestra en Control de Operaciones y Gestin Logstica p.11

Representacin computacional
Matriz de incidencia:
Dado un grafo G = (V, E), definimos su matriz de incidencia
H(G) MV E por medio de:
hij :=

1,
0,

si la arista j es incidente al nodo i


caso contrario

Maestra en Control de Operaciones y Gestin Logstica p.12

Representacin computacional
Matriz de incidencia:
Dado un grafo G = (V, E), definimos su matriz de incidencia
H(G) MV E por medio de:
hij :=

si la arista j es incidente al nodo i


caso contrario

1,
0,

Ejemplo:
1

3
5

H(G) =

1
1
0
0
0

1
0
1
0
0

0
1
0
1
0

0
0
1
1
0

0
0
1
0
1

0
0
0
1
1

Maestra en Control de Operaciones y Gestin Logstica p.12

Representacin computacional
Listas de adyacencia:
Dado un grafo G = (V, E), almacenamos para cada nodo
i V una lista con su vecindad.

Maestra en Control de Operaciones y Gestin Logstica p.13

Representacin computacional
Listas de adyacencia:
Dado un grafo G = (V, E), almacenamos para cada nodo
i V una lista con su vecindad.

Ejemplo:
1

L[1] = h2, 3i

L[2] = h1, 4i

5
2

L[3] = h1, 4, 5i
L[4] = h2, 3, 5i
L[5] = h3, 4i

Maestra en Control de Operaciones y Gestin Logstica p.13

Dos problemas clsicos


Problema del circuito euleriano:
Dado un grafo G = (V, E), determinar si existe un camino
cerrado que visita todas las aristas de G.

Maestra en Control de Operaciones y Gestin Logstica p.14

Dos problemas clsicos


Problema del circuito euleriano:
Dado un grafo G = (V, E), determinar si existe un camino
cerrado que visita todas las aristas de G.

Problema del circuito hamiltoniano:


Dado un grafo G = (V, E), determinar si existe un camino
cerrado que visita todos los nodos de G.

Maestra en Control de Operaciones y Gestin Logstica p.14

Y los puentes?

Maestra en Control de Operaciones y Gestin Logstica p.15

Y los puentes?

Teorema:
Un grafo admite un
circuito euleriano si y slo
si todos sus nodos tienen
grado par.

Maestra en Control de Operaciones y Gestin Logstica p.15

Y los puentes?

Teorema:
En contraste, el problema
deladmite
circuito
Un grafo
un
hamiltoniano es muy
difcil...
circuito
euleriano si y slo
si todos sus nodos tienen
grado par.

Maestra en Control de Operaciones y Gestin Logstica p.15

Matemticas discretas
Problemas:
Caminos eulerianos
Caminos ms cortos
Arboles generadores
Flujos mximos
Programacin lineal y
entera
...

Maestra en Control de Operaciones y Gestin Logstica p.16

Matemticas discretas
Problemas:

Aplicaciones:

Caminos eulerianos

Logstica

Caminos ms cortos

Transporte

Arboles generadores

Telecomunicaciones

Flujos mximos

Redes de distribucin

Programacin lineal y
entera

Secuenciamiento
gentico

...

...

Maestra en Control de Operaciones y Gestin Logstica p.16

Contenido

Grafos: conceptos bsicos


El problema del agente viajero
Formulacin del TSP como un programa entero

Maestra en Control de Operaciones y Gestin Logstica p.17

Definicin
Problema del agente viajero
[Traveling salesman problem, TSP]
Dado un conjunto de ciudades, y conocidas todas las
distancias entre stas...

Cul es la ruta ms corta para visitar cada ciudad exactamente una vez, retornando al final al punto de partida?
Maestra en Control de Operaciones y Gestin Logstica p.18

Ejemplo
Solucin ptima a un problema con 666 ciudades

Maestra en Control de Operaciones y Gestin Logstica p.19

Hechos y datos
El TSP...
es uno de los problemas ms ampliamente estudiados
en optimizacin computacional
variantes fueron consideradas en el s.XIX por Sir
William Rowan Hamilton y Thomas Penyngton
fue estudiado en su forma general desde los aos 30s
(Karl Menger)
pertenece a la clase de problemas NP-difciles
aparece en variadas aplicaciones prcticas, bien sea
solo o como subproblema de otros
ha sido motor del desarrollo de teora matemtica,
algoritmos e implementaciones
Maestra en Control de Operaciones y Gestin Logstica p.20

Algunos rcords...
1954

Dantzig, Fulkerson & Johnson

49

1971

Held & Karp

64

1977

Grtschel

120

1980

Crowder & Padberg

318

1987

Padberg & Rinaldi

532

1987

Grtschel & Holland

666

1987

Padberg & Rinaldi

2,392

1994

Applegate, Bixby, Chvtal & Cook

7,397

2001

Applegate, Bixby, Chvtal & Cook

15,112

2004

Applegate, Bixby, Chvtal, Cook, & Helsgaun

24,978

2006

A,B,C,C, Espinoza, Goycoolea & Helsgaun

85,900

Fuente: http://www.tsp.gatech.edu/index.html
Maestra en Control de Operaciones y Gestin Logstica p.21

El TSP y el VRP
El TSP es un caso particular del VRP...
la flota consiste de un slo vehculo
no se consideran las capacidades de los vehculos
ni las demandas de los clientes
ni otras restricciones adicionales
ventanas de tiempo
duracin mxima de rutas
tiempos de servicio
...

Maestra en Control de Operaciones y Gestin Logstica p.22

Contenido

Grafos: conceptos bsicos


El problema del agente viajero
Formulacin del TSP como un programa entero

Maestra en Control de Operaciones y Gestin Logstica p.23

Formulacin matemtica
Datos de entrada:
un grafo completo con n nodos
un valor de costo cij para cada arista ij E
Objetivo:
Seleccionar un conjunto de aristas
que formen un ciclo
que visite todos los nodos (ciclo hamiltoniano)
cuya suma de costos sea la menor posible

Maestra en Control de Operaciones y Gestin Logstica p.24

Formulacin matemtica (2)


Idea
Asignar a cada arista del grafo una variable binaria que
indique si la misma es seleccionada en la solucin:
xij = 1

usar ij.

Notar entonces que la expresin


X

cij xij

ijE

mide el costo total de las aristas seleccionadas.

Maestra en Control de Operaciones y Gestin Logstica p.25

Formulacin matemtica (2)


Idea
Asignar a cada arista del grafo una variable binaria que
indique si la misma es seleccionada en la solucin:
xij = 1

usar ij.

Notar entonces que la expresin


X

cij xij

ijE

mide el costo total de las aristas seleccionadas.


Emplear restricciones para forzar que las nicas
soluciones vlidas sean ciclos hamiltonianos!!!
Maestra en Control de Operaciones y Gestin Logstica p.25

Formulacin matemtica (3)


Observacin:
El grado de cada nodo en un ciclo es 2.

Maestra en Control de Operaciones y Gestin Logstica p.26

Formulacin matemtica (3)


Observacin:
El grado de cada nodo en un ciclo es 2.
Primer intento:
Formular una restriccin de grado por cada nodo:
min

cij xij

ijE

s.r.

xij = 2,

i V,

ij(i)

xij {0, 1},

ij E.

Maestra en Control de Operaciones y Gestin Logstica p.26

Formulacin matemtica (3)


Observacin:
El grado de cada nodo en un ciclo es 2.
Primer intento:
Formular una restriccin de grado por cada nodo:
min

cij xij

ijE

s.r.

xij = 2,

i V,

ij(i)

xij {0, 1},

ij E.

Funciona?
Maestra en Control de Operaciones y Gestin Logstica p.26

Formulacin matemtica (3)


Observacin:
El grado de cada nodo en un ciclo es 2.
Primer intento:
Formular una restriccin de grado por cada nodo:
min

cij xij

ijE

s.r.

xij = 2,

i V,

ij(i)

xij {0, 1},

ij E.

Funciona?
NO.
Maestra en Control de Operaciones y Gestin Logstica p.26

Formulacin matemtica (4)


Observaciones:
todos los ciclos hamiltonianos estn asociados a
soluciones factibles
hay soluciones extraas que contienen subciclos
son las nicas soluciones extraas
en un ciclo, el nmero de vrtices y de aristas internas
son iguales
en un ciclo hamiltoniano esto no ocurre para ningn
subconjunto estricto de V

Maestra en Control de Operaciones y Gestin Logstica p.27

Formulacin matemtica (3)


Segundo intento:
Aadir una restriccin por cada S V para eliminar
subciclos:
min

cij xij

ijE

s.r.

xij = 2,

i V,

ij(i)

xij |S| 1,

S V,

ijE(S)

xij {0, 1},

ij E.

Maestra en Control de Operaciones y Gestin Logstica p.28

Formulacin matemtica (3)


Segundo intento:
Aadir una restriccin por cada S V para eliminar
subciclos:
min

cij xij

ijE

s.r.

xij = 2,

i V,

ij(i)

xij |S| 1,

S V,

ijE(S)

xij {0, 1},

ij E.

Funciona?
Maestra en Control de Operaciones y Gestin Logstica p.28

Formulacin matemtica (3)


Segundo intento:
Aadir una restriccin por cada S V para eliminar
subciclos:
min

cij xij

ijE

s.r.

xij = 2,

i V,

ij(i)

xij |S| 1,

S V,

ijE(S)

xij {0, 1},

Funciona?

ij E.

SI!!!
Maestra en Control de Operaciones y Gestin Logstica p.28

Formulacin matemtica (4)


Observaciones:
el modelo tiene 21 n(n 1) variables...

Maestra en Control de Operaciones y Gestin Logstica p.29

Formulacin matemtica (4)


Observaciones:
el modelo tiene 21 n(n 1) variables...
... n restricciones de grado...

Maestra en Control de Operaciones y Gestin Logstica p.29

Formulacin matemtica (4)


Observaciones:
el modelo tiene 21 n(n 1) variables...
... n restricciones de grado...
... y 2n1 restricciones de eliminacin de subciclos!

Maestra en Control de Operaciones y Gestin Logstica p.29

Formulacin matemtica (4)


Observaciones:
el modelo tiene 21 n(n 1) variables...
... n restricciones de grado...
... y 2n1 restricciones de eliminacin de subciclos!
Para n = 30, obtenemos un PE con 435 variables y...

Maestra en Control de Operaciones y Gestin Logstica p.29

Formulacin matemtica (4)


Observaciones:
el modelo tiene 21 n(n 1) variables...
... n restricciones de grado...
... y 2n1 restricciones de eliminacin de subciclos!
Para n = 30, obtenemos un PE con 435 variables y...
536870.942 restricciones!

Maestra en Control de Operaciones y Gestin Logstica p.29

Formulacin matemtica (4)


Observaciones:
el modelo tiene 21 n(n 1) variables...
... n restricciones de grado...
... y 2n1 restricciones de eliminacin de subciclos!
Para n = 30, obtenemos un PE con 435 variables y...
536870.942 restricciones!
Un modelo alternativo sustituye las restricciones de eliminacin de subciclos por restricciones de corte...

Maestra en Control de Operaciones y Gestin Logstica p.29

Formulacin matemtica (5)


min

cij xij

ijE

s.r.

xij = 2,

i V,

xij 2,

S V, S 6= ,

ij(i)

ij(S)

xij {0, 1},

ij E.

El nmero de restricciones de corte tambin es


exponencial.
Maestra en Control de Operaciones y Gestin Logstica p.30

El TSP asimtrico (ATSP)


Se define de forma anloga sobre un grafo dirigido
completo
min

cij xij

(i,j)A

s.r.

xij =

(i,j) (i)

xij = 1,

i V,

(i,j)+ (i)

xij 1,

S V, S 6= ,

(i,j) (S)

xij {0, 1},

(i, j) A.

Maestra en Control de Operaciones y Gestin Logstica p.31