Escolar Documentos
Profissional Documentos
Cultura Documentos
Tema6 - Programaà à o Inteira 2
Tema6 - Programaà à o Inteira 2
PROGRAMAÇÃO INTEIRA
1
6. Programação Inteira
6.1 Introdução
Áreas de aplicações:
Há muitas áreas onde se aplicam modelos de PI das quais pode-se citar as seguintes:
Problema de afectação
Problema da mochila
Problema do viajante do comércio
Problema de execução de projectos
etc.
Max Min Z f x
sujeito a :
g i x , , bi
X j 0; xj Z
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
2
6. Programação Inteira
O PR será:
Max Z f x
sa :
g i x , , bi
X j 0
Teorema 1׃
Caso contrário:
Teorema 2׃
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
3
6. Programação Inteira
A limitação refere-se ao limite superior que se obtém como valor da função objectivo entre os
subproblemas obtidos no processo de ramificação. Tal limite utiliza-se para ordenar as soluções
óptimas dos subproblemas e assim determinar a solução óptima do PI.
O processo de ramificação termina quando se obtém uma solução inteira ou quando o PR não
tem soluçãol, ou quando o valor da função objectivo não é melhor que o limite .
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
4
6. Programação Inteira
caso de minimização : Z I Z R* Li
2. Ramificação:
Suponhamos que o PR tem uma variável x j que toma um valor não inteiro x̂ j . Então
No caso de, na solução, existirem mais do que uma variável não inteira, escolhe-se a
variável que tem o valor que está mais longe de um inteiro para a ramificação, isto é, a
variável cuja parte decimal esteja mais próxima de 0,5. Em caso de empate escolhe-se
arbitrariamente uma das variáveis.
No caso de programação mista, a ramificação só se faz sobre as variáveis inteiras.
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
5
6. Programação Inteira
4. Sondagem:
Todos os subproblemas cujos valores da função objectivo forem inferiores que os limites
são considerados terminais. Também são considerados terminais os subprogramas que
não têm soluções.
O processo de ramificação prossegue a partir dos subproblemas cujas soluções não
inteiras produzem valores melhores que Z R* .
Se todos os subproblemas forem terminais, parar. A solução vem dada pela melhor
solução inteira.
Exemplo:
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x1 , x2 0 e inteiras
Resolução:
PR:
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x1 , x 2 0
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
6
6. Programação Inteira
x2
9
8
7
(0;6) (4;6)
6
5 x2 6
4 (6.46; 4.46)
(4; 0)
0 1 2 3 4 6 7 8 9 10 11 12 13 14 x1
5x1 8x 2 68
x1 x 2 2
5x1 8x 2 68
x1 x2
0 8.5
13.6 0
x1 x 2 2
x1 x2
2 0
3 1
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
7
6. Programação Inteira
x2 6
(x1; x2) Z
(0; 0) 0
(0; 6) 6
(4; 6) 14
(6.46; 4.46) 17.38
(2; 0) 4
X R 6.46;4.46
Z R 17.38
A solução óptima não é inteira então não é solução do PI.
Z I 17.38 Ls
Como todas as variáveis estão a mesma distância em relação ao inteiro mais próximo
podemos escolher qualquer uma delas para ramificação. Escolhendo arbitrariamente x 2
temos ( 4 x 2 5 ) e novas restrições são: x 2 4 e x 2 5
PL1:
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x2 4
x1 , x 2 0
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
8
6. Programação Inteira
x2
9
8
7
6
x2 6
5
4 (0;4) (6;4)
x2 4
3
2
1
(2;0)
0 1 2 3 4 6 7 8 9 10 11 12 13 14
x1 5x1 8x 2 68
x1 x 2 2
(x1; x2) Z
(0; 0) 0
(0; 4) 4
(6; 4) 16
(2; 0) 4
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
9
6. Programação Inteira
PL2:
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x2 5
x1 , x 2 0
x2
9
8
7
(0;6) (4;6) x2 6
6
x2 5
5
(0;5) (5.6;5)
4
x2 5
3
2
0 1 2 3 4 6 7 8 9 10 11 12 13 14 x1
x1 x 2 2 5x1 8x 2 68
(x1; x2) Z
(0; 5) 5
(0; 6) 6
(4; 6) 14
(5.6; 5) 16.2
A solução óptima não é inteira e é melhor que a solução inteira anterior. Então há que
ramificar por Ramificado por x1 ( 5 x1 6 ) então:
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
10
6. Programação Inteira
x1 5 e x1 6
PL2.1
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x2 5
x1 5
x1 , x 2 0
x2
9
8
7
(0;6) (4;6) x2 6
6
(5;5.38) x2 5
5
(0;5) (5;5)
4
x2 5
3
2
x1 5
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 x1
5x1 8x 2 68
x1 x 2 2
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
11
6. Programação Inteira
(x1; x2) Z
(0; 5) 5
(0; 6) 6
(4; 6) 14
(5; 5.38) 15.38
(5; 5) 15
Esta solução não é inteira e é pior que a solução inteira obtida em PL1, então é terminal.
PL2.2:
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x2 5
x1 6
x1 , x 2 0
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
12
6. Programação Inteira
x2
9
8
7
6 x2 6
5 x2 5
3
2
1 x1 6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 x1
x1 x 2 2 5x1 8x 2 68
x1 6
*
x2 4
*
Z * 16
O processo de ramificação e limitação pode ser representado em forma de árvore de maneira que
na raíz aparece o PR. Deste vértice inicial, partem dois arcos correspondentes a ramificação em
uma variável não inteira e os subproblemas nesses vértices são tomados a partir do PR
predecessor, adicionando respectivamente as restrições que figuram nos arcos e que para essa
variável de ramificação eliminam a solução óptima não inteira do problema da raíz. Com este
raciocínio, continua-se construíndo a árvore, terminando a ramificação quando se obtém uma
solução inteira ou quando o PR é não admissível, ou quando o valor da função objectivo não é
melhor que o limite. Em ambos casos diz-se que o vértice correspondente é Terminal.
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
13
6. Programação Inteira
PR
X=(6.46;4.46)
Z=17.38=Ls
x2 4 x2 5
PL1 PL2
X=(6;4) X=(5.6;5)
Z=16 Z=16.2
PL2.1 PL2.2
X=(5;5.38) Não admissível
Z=15.38
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
14
6. Programação Inteira
No método de planos de corte, desenvolvida por Gomory, adiciona-se uma nova restrição em
cada etapa. Neste caso a região admissível vai sendo diminuída e não dividida como acontece
com o método de ramificação e limitação.
Algoritmo de Gomory:
Passo 0: Resolve-se o PR mediante o Método de Simplex. Se o PR não tem solução, parar, o
PI impossível. Caso contrário, ir ao passo 1.
Passo 1: Se a solução de PR é inteira ou seja, todas as variáveis têm valores inteiros, parar, a
solução é óptima. Caso contrário, ir ao passo 2.
Passo 2: No quadro óptimo de PR selecciona-se uma das variáveis x j com valor não inteiro
Passo 4: Passar para o primeiro membro todos os termos com coeficientes fraccionários e
para o segundo membro todos os termos com coeficientes inteiros.
Passo 5: Exigir que o primeiro membro da equação obtida em 4 seja não negativa. A
desigualdade obtida será a nova restrição.
Passo 6: Introduzir uma variável de folga e resolver o problema pelo Método Dual de
Simplex.
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
15
6. Programação Inteira
Exemplo:
Max Z x1 2 x 2
sa
4 x1 3 x 2 12
x1 x 2 2
x1 , x 2 0 e int eiras.
PR:
Max Z x1 2 x 2
sa
4 x1 3 x 2 12
x1 x 2 2
x1 , x 2 0
Max Z x1 2 x 2 0 x3 0 x 4
sa
4 x1 3x 2 x3 12
x1 x 2 x4 2
x0
1:
1 2 0 0
B x1 x2 x3 x4 xb
0 x3 4 3 1 0 12
0 x4 -1 1* 0 1 2
Zj 0 0 0 0 0
Cj Zj 1 2 0 0
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
16
6. Programação Inteira
2:
Lˆ 2 L2 / 1 L2
Lˆ L 3Lˆ
1 1 2
1 2 0 0
B x1 x2 x3 x4 xb
0 x3 7* 0 1 -3 6
2 x2 -1 1 0 1 2
Zj -2 2 0 2 4
Cj Zj 3 0 0 -2
3:
Lˆ1 L1 / 7
Lˆ 2 L2 Lˆ1
1 2 0 0
B x1 x2 x3 x4 xb
1 x1 1 0 1/7 -3/7 6/7
2 x2 0 1 1/7 4/7 20/7
Zj 1 2 3/7 5/7 46/7
Cj Zj 0 0 -3/7 -5/7
x1 1 / 7 x3 3 / 7 x 4 6 / 7 x1 1 / 7 x3 1 4 / 7 x 4 6 / 7 x1 1 / 7 x 3 x 4 4 / 7 x 4 6 / 7
1 / 7 x3 4 / 7 x 4 6 / 7 x1 x 4 1 / 7 x 3 4 / 7 x 4 6 / 7 0 1 / 7 x3 4 / 7 x 4 6 / 7
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
17
6. Programação Inteira
3/ 7 5/ 7
r3 3; r4 5 / 4 1,25
1/ 7 4/7
Lˆ3 7 / 4 L3
Lˆ L 3 / 7 Lˆ
1 1 3
Lˆ 2 L2 4 / 7 Lˆ3
1 2 0 0 0
B x1 x2 x3 x4 x5 xb
1 x1 1 0 1/4 0 -3/4 3/2
2 x2 0 1 0 0 1 2
0 x4 0 0 1/4 1 -7/4 3/2
zj 1 2 1/4 0 5/4 11/2
Cj Zj 0 0 -1/4 0 -5/4
x1 1 / 4 x 3 3 / 4 x 5 3 / 2 x1 1 / 4 x 3 1 1 / 4x 5 1 1 / 2 x1 1 / 4 x 3 x 5 1 / 4 x 5 1 1 / 2
1 / 4 x 3 1 / 4 x 5 1 / 2 1 x1 x 5 1 / 4 x 3 1 / 4 x 5 1 / 2 0 1 / 4 x 3 1 / 4 x 5 1 / 2
1 / 4 x 3 1 / 4 x 5 x 6 1 / 2 1 / 4 x 3 1 / 4 x 5 x 6 1 / 2
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
18
6. Programação Inteira
1 2 0 0 0 0
B x1 x 2 x3 x 4 x5 x6 xb
1 x1 1 0 1/4 0 -3/4 0 3/2
2 x2 0 1 0 0 1 0 2
0 x4 0 0 1/4 1 -7/4 0 3/2
0 x6 0 0 -1/4* 0 -1/4 1 -1/2
zj 1 2 1/4 0 5/4 0 11/2
Cj Zj 0 0 -1/4 0 -5/4 0
1/ 4 5/ 4
r3 1; r4 5
1/ 4 1/ 4
Lˆ 4 4 L4
Lˆ L 1 / 4 Lˆ
1 1 4
Lˆ 2 L2
Lˆ 3 L3 1 / 4 Lˆ 4
1 2 0 0 0 0
B x1 x2 x3 x4 x5 x6 xb
1 x1 1 0 0 0 -1 1 1
2 x2 0 1 0 0 1 0 2
0 x4 0 0 0 1 0 1 1
0 x3 0 0 1 0 1 -3 2
zj 1 2 0 0 1 1 5
Cj Zj 0 0 0 0 -1 -1
x1* 1
x 2* 2
Z* 5
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
19
6. Programação Inteira
Exercícios
b)
Max Z 3x1 4 x 2
sa
2 x1 x 2 6
2 x1 3 x 2 9
x1 , x 2 0 e int eiras.
c)
Min Z 2x 1 3x 2 x 3
s.a
x 1 2 x 2 3x 3 40
2x 1 x 2 6 x 3 80
x 1 ; x 2 ; x 3 0, e inteiras
d)
Max Z 4x 1 3x 2 2 x 3
s.a
5x 1 2 x 2 3x 3 40
3x 1 3x 2 2 x 3 7
- x 1 2x 2 - x 3 9
x 0 e x 1 ; x 2 inteiras
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018
20
6. Programação Inteira
seguintes problemas:
a)
Max Z 2 x1 x 2
sa
5 x1 8 x 2 68
x1 x 2 2
x2 6
x1 , x2 0 e inteiras
b)
Min Z - 2x 1 x 2
s.a
- 8x 1 2 x 2 6x 3 10
1/5x 1 1 / 5x 2 1
x 1 ; x 2 0, e inteiras
c)
Min Z - 2x 1 x 2
s.a
- 8x 1 2 x 2 6x 3 10
1/5x 1 1 / 5x 2 1
x 1 ; x 2 0, e inteiras
d)
Max Z 2x 1 4x 2
s.a
x 1 2x 2 10
2x 1 x 2 6
x2 4
x 1 ; x 2 0, e inteiras
Fim
----------------------------------------------------------------------------------------------------------------
Domingos Uchavo, Maputo, 2018