Você está na página 1de 54

Conteudo

Problema linear inteiro misto


Problema da mochila
Problema do carteiro chines
Problema do caixeiro viajante
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Programacao linear inteira mista

Adriano Chaves Lisboa


Douglas Alexandre Gomes Vieira
Rodney Rezende Saldanha

27 de maio de 2009

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila
Problema do carteiro chines
Problema do caixeiro viajante
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problema linear inteiro misto


Forma geral
Formas especficas
Problemas classicos
Solucao
Problema da mochila
Forma geral
Formas especficas
Solucao
Problema do carteiro chines
Forma geral
Formas especficas
Solucao
Problema do caixeiro viajante
Forma geral
Formas especficas
Solucao
Problema do roteamento de veculos capacitados
Forma geral
Solucao
Problema do empacotamento de caixas
Forma linear
Forma linear mista
Forma geral
Solucao

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral

Um problema linear inteiro misto e aquele na forma

minimize c T x
sujeito a Ax b
Aeq x = beq (1)
n
x R
xI Zni , ni n, I {1, 2, ..., n}

onde funcao objetivo e funcoes de restricao sao funcoes lineares.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Exemplo simples
5

optimum
4

3
minimize 22x1 12x2
sujeito a 12x1 + 7x2 40

2
2

x
x2 1/2
1
x Z2
nearest
0

relaxed optimum
1
1 0 1 2 3 4 5
x
1

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Formas especficas

I Problema linear inteiro: todas as variaveis sao inteiras, i.e. x Zn


I Problema linear inteiro binario: todas as variaveis sao binarias, i.e.
x {0, 1}n

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problemas classicos de programacao linear inteira mista

I Problema da mochila:
I Soma de subconjuntos: O(NP)
I Binario: O(NP)
I Limitado: O(NP)
I Ilimitado: O(P)
I Problema do carteiro chines:
I Direcionado: O(P)
I Nao-direcionado: O(P)
I Misto: O(NP)
I Problema do caixeiro viajante: O(NP).
I Problema de roteamento de veculos: O(NP).
I Empacotamento de caixas: O(NP).

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Relaxacao do problema

I Solucao relaxada y fornece apenas um limite inferior para c T x


I Solucao factvel mais proxima de y fornece apenas um limite
superior para c T x
I Se estes limites nao forem suficientes, estrategias mais elaboradas
devem ser adotadas

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Algoritmo branch-and-bound: solucao inicial

10

[10, 50]

[20, 50]
x2 5

0
0 5 10
x1

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Algoritmo branch-and-bound: arvore

10

[10, 50]

x1 < 4.5 x1 > 4.5


[10, 30] [20, 50]
x2 5

0
0 5 10
x1

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Algoritmo branch-and-bound

10

[10, 50]

x1 < 4.5 x1 > 4.5


[10, 30] [20, 50]
x2 5
x2 < 4.5 x2 > 4.5
[10, 15] [12, 30]

0
0 5 10
x1

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma geral
Problema da mochila
Formas especficas
Problema do carteiro chines
Problemas classicos
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Algoritmo branch-and-bound: poda

10

[10, 50]

x1 < 4.5 x1 > 4.5

x2 5
[10, 30]
X
[20, 50]

x2 < 4.5 x2 > 4.5


[10, 15] [12, 30]

0
0 5 10
x1

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problema da mochila

Devem ser colocados os tens de maior valor dentro de uma mochila com
capacidade limitada.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral

O problema da mochila pode ser escrito na forma de um problema linear


inteiro [1] como

minimize c T x
sujeito a aT x b
(2)
x x
x Nn = {0, 1, 2...}n

onde c Rn e o vetor com o valor de cada tipo de objeto, a Rn e o


vetor com a capacidade ocupada por cada tipo de objeto, x e o vetor
com o numero maximo de cada tipo de objeto que pode estar na
mochila, e b R e a capacidade maxima da mochila.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Formas especficas

I Soma de subconjuntos: no maximo 1 objeto de cada tipo pode estar


na mochila e a capacidade ocupada por ele e o seu proprio valor, i.e.
x = 1 (ou x {0, 1}n sem a restricao x x) e a = c
I Problema da mochila binario: no maximo 1 objeto de cada tipo pode
estar na mochila, i.e. x = 1 (ou x {0, 1}n sem a restricao x x)
I Problema da mochila limitado: no maximo xi objetos do tipo i
podem estar na mochila, i.e. forma geral
I Problema da mochila ilimitado: nao existe limite no numero de
objetos de cada tipo, i.e. sem restricao x x

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema da mochila ilimitado

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Limite superior: relaxacao

c = [40, 20, 30, 10]


w = [15, 10, 20, 20]
k = 30

c* 40 + 20 + 30(5/20)

k w

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Limite inferior: busca gulosa

c = [40, 20, 30, 10]


w = [15, 10, 20, 20]
k = 30

c* 40 + 20

k w

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Estrategia branch-and-bound

I Ordenacao dos tens: ci /wi ci +1 /wi +1


I Movimento para frente: i = i + 1
I Tenta inserir itens inteiros na mochila
I Atualiza limite inferior cada vez que conseguir: xi = 1
I Atualiza limite superior cada vez que nao conseguir: xi = 0
I Movimento para tras: i = arg maxj j : xj = 1
I Procura ultimo tem inserido
I Termina se xj = 0, j
I Remove item i fazendo xi = 0 e volta a fazer movimentos para frente

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Estrategia branch-and-bound

c = [70, 20, 39, 37] 0 [0, 107.55]


w = [31, 10, 20, 19]
k = 50 x1 = 1 x1 = 0

1 [70, 107.55] 9 [0, 96]


x2 = 1 x2 = 0

2 [90, 107.55] 5 [70, 107.05]

x3 = 0 x3 = 0

3 [90, 107.53] 6 [70, 107]

x4 = 0 x4 = 1 x4 = 0

4 [90, 90] 7 [107, 107] 8 [70, 70]

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Referencias

Silvano Martello and Paolo Toth.


Knapsack problems: algorithms and computer implementations.
John Wiley & Sons, 1990.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problema do carteiro chines

Um carteiro chines deve percorrer um dado conjunto de ruas, comecando


e terminando no mesmo lugar, pelo caminho mais curto possvel.

1
1
1

1 1
2 4
3

1
1-2-3-4-1-3-4-2-4-1

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Grafo Euleriano

I Todo grafo Euleriano (nos de grau par) possui um circuito Euleriano


(passa uma vez por cada aresta, comecando e terminando em um
mesmo no)
I Para grafos direcionados possuirem circuitos Eulerianos, os nos
devem ser simetricos: numero de arcos saindo e igual ao numero de
arcos entrando
I Problema do carteiro chines: como aumentar de maneira mnima o
numero de arestas/arcos para obter um circuito Euleriano?

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Parametrizacao

Multiplicidade de arcos do grafo direcionado aumentado

1 1

1 3
2
4 5
2 4 2 4
3 3

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral
O problema do carteiro chines pode ser escrito na forma de um problema
linear inteiro como
min c T x
sujeito a xe + xe 1, e E+ (restricao de visitar arestas)
xe 1, e A (restricao de visitar arcos)
X X
xe xe = 0, v V (restricao de simetria)
e + (v) e (v)

x N = {0, 1, 2...}n (restricao inteira)


n

onde E e o conjunto de arestas a serem visitadas, A e o conjunto de


arcos a serem visitados, V e o conjunto de nos, E+ e E formam pares
de arcos e e e para E, n = |A| + 2|E| e o numero aumentado de arcos,
c Rn e o vetor com o custo de cada arco, + (v ) e o conjunto de arcos
que saem do no v , e (v ) e o conjunto de arcos que chegam ao no v .
Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha
Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Formas especficas

I Problema do carteiro chines direcionado: o conjunto de arestas e


vazio, i.e. E =
I Problema do carteiro chines nao-direcionado [2]: o conjunto de arcos
e vazio, i.e. A =
I Problema do carteiro chines misto: forma geral

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema direcionado


I Separa nos assimetricos em dois grupos: um onde chegam mais arcos V
e o outro onde saem mais arcos V+
I Algoritmo de Dijkstra: caminho de custo mnimo entre nos de V e V+
I Algoritmo Hungaro: associacao de custo mnimo em grafo bi-partido
I Algoritmo de Fleury: circuito Euleriano a partir de um grafo Euleriano

1 2 1
3

1
1 1
1
3
1 1
2 4 4 2
2
3
2+2=4
1
1-2-3-4-1-3-4-1-2-4-1 1+3=4

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema nao-direcionado


I Identificacao de nos de grau mpar
I Algoritmo de Dijkstra: caminho de custo mnimo entre nos de grau mpar
I Algoritmo de Edmonds: associacao de custo mnimo em grafo completo
I Algoritmo de Fleury: circuito Euleriano a partir de um grafo Euleriano
1

1 1 1

1 1
1 2 4
1
1
1 1 1
2 4 1
3
3
1 1+1=2
1-2-3-4-2-1-3-4-1 1+1=2
1+1=2

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Algoritmo de Fleury

1 5
ok
3 4

nok ok
2 6

1-3-4-

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Referencias

Jack Edmonds and Ellis L. Johnson.


Matching, euler tours, and the chinese postman.
Mathematical Programming, 5:88124, 1973.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problema do caixeiro viajante

Um caixeiro deve viajar por um certo numero de cidades, comecando e


terminando em uma dada cidade, pelo caminho mais curto possvel.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Parametrizacao

Presenca/ausencia de arestas do grafo completo

2
1 4
3
1 2
5
6
3

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral
O problema do caixeiro viajante pode ser escrito na forma de um
problema linear inteiro binario como

min c T x (caminho mais barato)


X
sujeito a xe = 2, v V (restricao de grau 2)
e(v)
X
xe 2, S V, 3 |S| bm/2c (restricao de subtour)
e(S)

x {0, 1}n (restricao binaria)

onde V e o conjunto de cidades a serem visitadas, m = |V| 4 e o


numero de cidades, c Rn e o vetor com o custo de cada aresta das
n = m(m 1)/2 do grafo completo de V, e (S) denota o conjunto de
todas as arestas com exatamente um no em S.
Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha
Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral

T n
min c x, x em {0,1}

T n T n
min c x, x em {0,1} min c x, x em {0,1}
com vrtices de grau 2 com vrtices de grau 2
sem subtours

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Formas especficas

I Problema do caixeiro viajante simetrico: forma geral


I Problema do caixeiro viajante assimetrico: o custo para ir de uma
cidade a outra depende da direcao (aresta orientada). Pode ser
transformado em um problema simetrico duplicando o numero de
cidades.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema do caixeiro viajante

O problema linear inteiro do caixerio viajante possui


I (m 1)!/2 tours factveis, o que para m = 4 a 10 vale
3, 12, 60, 360, 2520, 20160, 181440 (...)
I m restricoes de igualdade
I restricoes de desigualdade apenas para m 6
(
m!
P(m/2)1 m!
I 2[(m/2)!2 ] + i =3 i !(mi )! , m par
P(m1)/2 m!
i =3 i !(mi )! , m mpar
restricoes de desigualdade, o que para m = 6 a 15 vale
10, 35, 91, 210, 456, 957, 1969, 4004, 8086, 16263 (...)

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema do caixeiro viajante

Dantzig-Fulkerson-Johnson propuseram em 1954 [4] a relacao das


restricoes binarias x {0, 1}n para y [0, 1]n e retiraram a princpio as
restricoes de subtour, levando ao problema linear

min c T y (caminho mais barato)


X
sujeito a ye = 2, v V (restricao de grau 2)
e(v)

y [0, 1]n (restricao binaria relaxada)

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema do caixeiro viajante

I Se x = by c implicar em um caminho Hamiltoniano, onde y e a


solucao do problema relaxado, entao x e a solucao do problema
original x .
I Caso contrario, novas restricoes de desigualdade (seja de subtour ou
nao [3]) sao adicionadas ao problema relaxado, que passa a ser
resolvido de maneira iterativa.
I Por ser menos restrito, o problema relaxado fornece limites inferiores
para o custo otimo do problema original.
I Quando nao e possvel adicionar mais restricoes de desigualdade, o
algoritmo branch-and-bound entra em acao.
I Limites superiores sao obtidos apenas quando x = by c implicar em
um caminho Hamiltoniano (ele e otimo quando a arvore
branch-and-bound possuir apenas um no folha).

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Heurstica: connectividade parametrica

Subconjuntos mais separados violam a desigualdade de subtour: O(nm)


4 4
1 0.1 0.9 5 1 0.9 5
0.1
0.9 0.1 0.1 0.8 0.9
0.9 0.9
0.0
0.8 0.1 0.1
2 0.0 6 2 6
0.9 0.2 0.9
3 3

6 x 0.1 + 0.2 = 0.8 < 2

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Heurstica: encolhimento

I Encolhe arestas cuja conectividade e maior ou igual a 1, ate que


todas sejam menores que 1
I Os nos originais de arestas com conectividade maiores que 1 violam
a desigualdade de subtour

S1

0.05 0.9

1.2
1.0 S4 0.35 S4
S3 S3
S5
0.3
0.3

S2
S5 U S4 = S1 U S2 U S4

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Separacao exata de Padberg-Rinaldi

P
I Achar S tal que s = min e(S) xe , 3 S bm/2c
I Se s < 2, entao S gera uma desigualdade de subtour violada

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila Forma geral
Problema do carteiro chines Formas especficas
Problema do caixeiro viajante Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Referencias

David Applegate, Robert Bixby, Vasek Chvatal, and William Cook.


Implementing the Dantzig-Fulkerson-Johnson algorithm for large
traveling salesman problems.
Mathematical Programming, pages 91153, 2003.
G.B. Dantzig, R. Fulkerson, and S. M. Johnson.
Solution of a large-scale traveling salesman problem.
Operations Research, 2:393410, 1954.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila
Forma geral
Problema do carteiro chines
Solucao
Problema do caixeiro viajante
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problema do roteamento de veculos

Veculos de capacidade limitada devem partir de um deposito para


atender clientes, e retornar, pela rota mais barata.

6
1

0 8
2 3

4 5

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila
Forma geral
Problema do carteiro chines
Solucao
Problema do caixeiro viajante
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral
O problema do roteamento de veculos pode ser escrito na forma de um problema linear inteiro [5]
como
T
minimize c x
X
sujeito a xe = 2k
e(v0 )
X
xe = 2, v V {v0 }
e(v )
P (3)
wv
X 
v S
xe 2 , S V {v0 }, |S| 2
e(S)
W

xe {0, 1, 2}, e (v0 )


xe {0, 1}, e 6 (v0 )
k {1, 2, 3...}

onde V e o conjunto de locais a serem visitados, v0 V e o deposito, m = |V| e o numero de


locais, c Rn e o vetor com o custo de cada aresta das n = m(m 1)/2 do grafo completo de V,
(S) denota o conjunto de todas as arestas com exatamente um no em S, W e a capacidade do
veculo, e w Rm e o vetor com a demanda de cada no.
Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha
Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila
Forma geral
Problema do carteiro chines
Solucao
Problema do caixeiro viajante
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema do roteamento de veculos

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Problema da mochila
Forma geral
Problema do carteiro chines
Solucao
Problema do caixeiro viajante
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Referencias

G. B. Dantzig and J. H. Ramser.


The truck dispatching problem.
Management Science, 6(1):8091, 1959.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Problema do empacotamento de caixas


Um certo conjunto de caixas devem ser colocado dentro de uma caixa
com o menor volume possvel.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Parametrizacao

l01
l11

l21
l12
l22 l02

(p11, p12)
(p21, p22)

(p01, p02)

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma linear

O problema do empacotamento de m caixas na dimensao d pode ser


escrito na forma de um problema linear como
d
X
minimize `0i
i =1
sujeito a pji + `ji pki ou pki + `ki pji , k > j > 0, i {1, 2, ..., d}
pji p0i e pji + `ji `0i , i, j > 0
p, ` Rm+1d

onde pji e `ji > 0 sao, respectivamente, a posicao do canto inferior e a


dimensao da caixa j ao longo da dimensao i. Por convencao, a caixa
envolvente e j = 0, de modo que p0 e `>0 sao constantes.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Relacoes logicas entre restricoes


I Logica natural e:
uma restricao deve ser satisfeita e outra e outra...
I Como implementar logica ou?

uma restricao deve ser satisfeita ou outra ou outra...


Solucao:
g1 (x) = a1T x b1 0 ou g2 (x) = a2T x b2 0
e equivalente a
g1 (x) (1 z1 )g1 0
g2 (x) (1 z2 )g2 0
z1 + z2 1
z1 , z2 {0, 1}
caso gi gi (x), x : gi (x) > 0.
Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha
Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma linear mista


O problema do empacotamento de m caixas na dimensao d pode ser escrito na forma
de um problema linear inteiro misto [6, 7] como
d
X
minimize `0i
i =1
sujeito a pji + `ji (1 zjki )M pki , k > j > 0, i
pki + `ki (1 zkji )M pji , k > j > 0, i
d
X
(zjki + zkji ) 1, k > j > 0
i =1
p0i pji M, i , j > 0
pji + `ji `0i M, i , j > 0
p, ` Rm+1d
z {0, 1}mmd
Note que as variaveis zjji , i , j, nao sao utilizadas (apenas completaram a notacao).

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Rotacao das caixas

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Forma geral

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Solucao do problema do empacotamento de caixas

I Solucao generica de problemas inteiros mistos


M m
P
j=1 maxi `ji
I

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista
Conteudo
Problema linear inteiro misto
Forma linear
Problema da mochila
Forma linear mista
Problema do carteiro chines
Forma geral
Problema do caixeiro viajante
Solucao
Problema do roteamento de veculos capacitados
Problema do empacotamento de caixas

Referencias

C. S. Chen, S. Sarin, and R. Balasubramanian.


A mixed-integer programming model for a class of assortment
problems.
European Journal of Operational Research, 63:362367, 1993.
Han-Lin Li and Ching-Ter Chang.
An approximately global optimization method for assortment
problems.
European Journal of Operational Research, 105:604612, 1998.

Adriano Chaves LisboaDouglas Alexandre Gomes VieiraRodney Rezende Saldanha


Programacao linear inteira mista