LN Métodos Numéricos Computacional
LN Métodos Numéricos Computacional
LN Métodos Numéricos Computacional
E SISTEMAS
DEPARTAMENTO DE AUTOMAC
AO
METODOS
DE OTIMIZAC
AO:
TEORIA E PRATICA
Versao preliminar
Eduardo Camponogara
Florian
opolis, Setembro de 2006
Agradecimentos
ii
Sum
ario
1 As Sub
areas da Otimizac
ao
1.1 Conceitos Fundamentais . . . . . . . . . . . . . . . . . .
1.1.1 Modelagem de Problemas . . . . . . . . . . . . .
1.1.2 Elementos de um Problema de Otimizacao . . . .
1.1.3 Duas Excecoes `a Formulacao Geral . . . . . . . .
1.2 Programacao Linear . . . . . . . . . . . . . . . . . . . .
1.2.1 Problema Exemplo . . . . . . . . . . . . . . . . .
1.3 Programacao Linear Inteira . . . . . . . . . . . . . . . .
1.3.1 Problema Exemplo . . . . . . . . . . . . . . . . .
1.4 Programacao Quadratica . . . . . . . . . . . . . . . . . .
1.5 Mnimos Quadrados Nao-Linear . . . . . . . . . . . . . .
1.6 Mnimos Quadrados (Linear) . . . . . . . . . . . . . . . .
1.6.1 Exemplo Ilustrativo . . . . . . . . . . . . . . . . .
1.6.2 O Problema de Mnimos Quadrados . . . . . . . .
1.6.3 Ajuste de Curvas . . . . . . . . . . . . . . . . . .
1.7 Equacoes Nao-Lineares . . . . . . . . . . . . . . . . . . .
1.7.1 Aplicacao em Sistemas de Controle . . . . . . . .
1.8 Otimizacao Nao-Linear sem Restricoes . . . . . . . . . .
1.8.1 Problema Exemplo . . . . . . . . . . . . . . . . .
1.9 Otimizacao Nao-Linear com Limites Superiores/Inferiores
1.10 Otimizacao Nao-Linear com Restricoes . . . . . . . . . .
1.10.1 Problema Exemplo . . . . . . . . . . . . . . . . .
1.11 Programacao Semi-Definida . . . . . . . . . . . . . . . .
1.11.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . .
1.12 Referencias . . . . . . . . . . . . . . . . . . . . . . . . .
1.13 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Minimiza
c
ao de Fun
c
oes com o M
etodo de Descenso
2.1 Problemas de Interesse . . . . . . . . . . . . . . . . . .
2.2 Fundamentos de Otimizacao Irrestrita . . . . . . . . . .
2.2.1 O que e uma solucao para P1 ? . . . . . . . . . .
2.2.2 Reconhecendo Um Mnimo Local . . . . . . . .
2.3 O Algoritmo de Descenso . . . . . . . . . . . . . . . . .
2.3.1 O Algoritmo de Descenso em Detalhes . . . . .
2.3.2 Direcao de Busca . . . . . . . . . . . . . . . . .
2.3.3 Encontrando a Direcao de Busca . . . . . . . .
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
2
3
3
4
4
5
6
6
6
7
8
9
10
10
10
12
12
12
13
13
14
14
.
.
.
.
.
.
.
.
17
17
18
18
18
20
21
21
22
2.4
2.5
3 M
etodo de Newton: Soluc
ao de Equa
c
oes N
ao-Lineares
miza
c
ao de Fun
c
oes
3.1 Problemas de Interesse . . . . . . . . . . . . . . . . . . . . . .
3.2 O Metodo de Newton em uma Variavel . . . . . . . . . . . . .
3.2.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 O Metodo de Newton para Minimizacao em uma Variavel . . .
3.3.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 O Metodo de Newton em M
ultiplas Variaveis . . . . . . . . . .
3.5 Minimizacao Irrestrita . . . . . . . . . . . . . . . . . . . . . .
3.6 Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Convergencia Linear . . . . . . . . . . . . . . . . . . .
3.6.2 Convergencia Quadratica . . . . . . . . . . . . . . . . .
3.6.3 Convergencia do Metodo de Newton . . . . . . . . . .
3.7 Metodos de Regiao de Confianca . . . . . . . . . . . . . . . .
3.8 Otimizacao de Funcoes Sujeito a Igualdades . . . . . . . . . .
3.9 Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Otimizac
ao N
ao-Diferenci
avel
4.1 Otimizacao Black-Box . . . . . . . . . . . . . . . .
4.2 Algoritmo Genetico (AG) . . . . . . . . . . . . . .
4.2.1 Genetica e Evolucao . . . . . . . . . . . . .
4.2.2 Adaptacao Biologica . . . . . . . . . . . . .
4.2.3 Hereditariedade com Evolucao Simulada . .
4.2.4 Popularidade do Algoritmo Genetico . . . .
4.2.5 Algoritmo Genetico em Detalhes . . . . . .
4.2.6 Operador Genetico Cross-Over . . . . . . .
4.2.7 Exemplo de Aplicacao . . . . . . . . . . . .
4.2.8 Questoes Praticas . . . . . . . . . . . . . . .
4.2.9 Schema Theorem . . . . . . . . . . . . . . .
4.3 Simulated Annealing . . . . . . . . . . . . . . . . .
4.3.1 O Processo de Annealing . . . . . . . . . . .
4.3.2 O Algoritmo de Metropolis . . . . . . . . . .
4.3.3 Exemplo: O Problema do Caixeiro Viajante
4.4 Referencias . . . . . . . . . . . . . . . . . . . . . .
4.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . .
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
24
25
26
28
28
e Mini.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
31
32
33
33
35
36
37
37
37
38
39
41
43
43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
47
48
48
48
49
49
50
51
51
52
52
54
54
55
57
58
59
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
62
62
63
63
65
65
67
67
68
69
70
6 Programa
c
ao Linear
6.1 Problema Exemplo: Gerenciamento de Uma Unidade de Producao
6.1.1 Gerente de Producao Otimista . . . . . . . . . . . . . . . .
6.1.2 Gerente de Producao Pessimista . . . . . . . . . . . . . .
6.2 O Problema de Programacao Linear . . . . . . . . . . . . . . . . .
6.3 Algoritmo Simplex . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Algoritmo Simplex em detalhes . . . . . . . . . . . . . . .
6.3.3 Inicializacao . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Dualidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 O Problema Dual . . . . . . . . . . . . . . . . . . . . . . .
6.4.3 O Teorema Fraco da Dualidade . . . . . . . . . . . . . . .
6.4.4 O Teorema Forte da Dualidade . . . . . . . . . . . . . . .
6.4.5 Folga Complementar . . . . . . . . . . . . . . . . . . . . .
6.5 Algoritmo Simplex em Notacao Matricial . . . . . . . . . . . . . .
6.5.1 Dicionario em Forma Matricial . . . . . . . . . . . . . . .
6.6 Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
74
74
74
75
77
78
81
83
85
85
86
87
87
89
90
91
92
92
.
.
.
.
.
.
.
.
.
.
.
.
95
95
97
97
97
98
98
100
100
101
102
103
104
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
107
107
107
109
110
112
114
117
119
120
122
123
124
126
129
129
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
135
135
136
136
137
138
138
140
141
142
143
144
144
144
146
150
153
153
.
.
.
.
.
.
.
155
155
155
156
156
156
156
157
157
157
158
158
159
160
161
162
163
163
164
165
166
166
167
168
169
169
170
170
11 Programa
c
ao Inteira: Relaxa
c
oes e Algoritmo Branch-and-Bound
11.1 Condicoes de Otimalidade . . . . . . . . . . . . . . . . . . . . . . . . .
11.1.1 Limite Primal . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1.2 Limite Dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Relaxacao Baseada em PL (Relaxacao Linear) . . . . . . . . . . . . . .
11.3 Relaxacao Combinatoria . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3.1 O Problema do Caixeiro Viajante . . . . . . . . . . . . . . . .
11.3.2 O Problema da Mochila . . . . . . . . . . . . . . . . . . . . . .
11.4 Relaxacao Lagrangeana . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.5 Algoritmo Branch-and-Bound . . . . . . . . . . . . . . . . . . . . . . .
11.5.1 Estrategia de Divisao e Conquista . . . . . . . . . . . . . . . . .
11.5.2 Enumeracao Implcita . . . . . . . . . . . . . . . . . . . . . . .
11.5.3 Algoritmo Branch-and-Bound (B&B) . . . . . . . . . . . . . . .
11.6 Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.7 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
173
173
174
174
174
175
175
175
176
177
177
178
181
184
184
187
187
188
188
188
189
189
190
190
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12.3 Teoria
12.3.1
12.3.2
12.3.3
12.4
12.5
12.6
12.7
de Desigualdades Validas . . . . . . . . . . . . . . . . . . . . . .
Desigualdades Validas para Problemas Lineares . . . . . . . . .
Desigualdades Validas para Problemas Inteiros . . . . . . . . . .
Procedimento Chvatal-Gomory para Geracao de Desigualdades
Validas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O Algoritmo de Planos de Corte . . . . . . . . . . . . . . . . . . . . . .
Algoritmo de Planos de Corte Usando Cortes de Gomory Fracionarios .
12.5.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Desigualdades Disjuntivas . . . . . . . . . . . . . . . . . . . . . . . . .
12.6.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.6.2 Desigualdades Disjuntivas para Problemas 0-1 . . . . . . . . . .
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
190
191
191
192
192
193
194
195
195
196
197
13 Programa
c
ao com Restric
oes L
ogicas
199
14 Programa
c
ao Din
amica: Domnio Discreto
14.1 Um Exemplo de Programacao Dinamica . . . . . . . . . . . . . . . . .
14.1.1 Calculando N
umeros de Fibonacci . . . . . . . . . . . . . . . . .
14.2 Programacao Dinamica para o Problema da Mochila . . . . . . . . . .
14.2.1 Complexidade do Algoritmo . . . . . . . . . . . . . . . . . . . .
14.3 Elementos de um Algoritmo DP: Sequencia Crescente Mais Longa . . .
14.3.1 Construindo um Algoritmo . . . . . . . . . . . . . . . . . . . . .
14.4 Edicao Automatica de Cadeias de Smbolos (Approximate String Matching) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.4.1 Projeto de um Algoritmo DP . . . . . . . . . . . . . . . . . . .
14.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
201
202
203
204
205
206
207
15 Programa
c
ao Din
amica: Domnio Contnuo
15.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.1.1 Exemplo: Controle de Inventario . . . . . . . . . . . . . .
15.1.2 Distincao Entre Otimizacao Open-Loop e Closed-Loop
15.2 O Problema Basico de Programacao Dinamica . . . . . . . . . .
15.2.1 O Valor da Informacao . . . . . . . . . . . . . . . . . . . .
15.3 O Algoritmo de Programacao Dinamica . . . . . . . . . . . . . . .
15.3.1 Princpio da Otimalidade . . . . . . . . . . . . . . . . . . .
15.3.2 O Algoritmo de Programacao Dinamica . . . . . . . . . . .
15.4 Sistemas Lineares com Custo Quadratico . . . . . . . . . . . . . .
15.4.1 Aplicando o Algoritmo de Programacao Dinamica . . . . .
15.4.2 A Equacao de Riccati e seu Comportamento Assintotico .
15.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
215
215
216
217
218
218
219
219
219
220
221
222
224
16 Programa
c
ao N
ao-Linear Restrita: Fundamentos
malidade
16.1 Teoria da Otimizacao Nao-Linear sob Restricoes .
16.1.1 Solucao Local Solucao Global . . . . . .
16.1.2 Suavidade das Funcoes . . . . . . . . . . .
viii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
208
208
210
e Condi
c
oes de Oti229
. . . . . . . . . . . . 229
. . . . . . . . . . . . 230
. . . . . . . . . . . . 230
16.2 Exemplos . . . . . . . . . . . . . . . . . . . .
16.2.1 Uma Restricao de Igualdade . . . . . .
16.2.2 Uma Restricao de Desigualdade . . . .
16.2.3 Duas Desigualdades . . . . . . . . . . .
16.3 Condicoes de Otimalidade de Primeira Ordem
16.3.1 Exemplo . . . . . . . . . . . . . . . . .
16.4 Exerccios . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17 Programa
c
ao N
ao-Linear: Fundamentos de Algoritmos
17.1 Categorizando Algoritmos de Otimizacao . . . . . . . . .
17.1.1 O Metodo da Funcao Penalidade . . . . . . . . .
17.1.2 O Metodo de Barreiras . . . . . . . . . . . . . . .
17.1.3 O Metodo Lagrangeano Aumentado . . . . . . . .
17.1.4 Metodo Seq
uencial Linear . . . . . . . . . . . . .
17.1.5 Programacao Quadratica Seq
uencial . . . . . . .
17.2 Eliminacao de Variaveis . . . . . . . . . . . . . . . . . .
17.2.1 Exemplo: Problemas Que Podem Surgir . . . . .
17.2.2 Eliminacao de Restricoes Lineares . . . . . . . . .
17.2.3 Os Efeitos das Desigualdades . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
231
232
233
235
238
240
241
.
.
.
.
.
.
.
.
.
.
243
244
244
244
245
245
245
245
246
246
248
18 Programa
c
ao Quadr
atica
18.1 Exemplo: Otimizacao de Portofolio . . . . . . . . . . . . . . . . . . . .
18.2 Propriedades de Problemas Quadraticos com Apenas Restricoes de
Igualdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.2.1 Resolvendo o Sistema KKT . . . . . . . . . . . . . . . . . . . .
18.3 Problemas Quadraticos Sob Restricoes . . . . . . . . . . . . . . . . . .
18.3.1 Condicoes de Otimalidade . . . . . . . . . . . . . . . . . . . . .
18.4 O Metodo de Conjunto Ativo para Problemas Quadraticos Convexos .
18.4.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
251
252
19 Programa
c
ao N
ao-Linear sob Restric
oes: Algoritmos
19.1 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.2 O Metodo de Barreira Logartmica . . . . . . . . . . . . . . .
19.2.1 Propriedades das Funcoes de Barreira Logartmica . . .
19.2.2 Algoritmo Baseado na Funcao Barreira Logartmica . .
19.2.3 Propriedades da Funcao Log-Barrier e Algoritmo Geral
19.2.4 Manipulando Restricoes de Igualdade . . . . . . . . . .
19.3 Metodo Lagrangeano Aumentado . . . . . . . . . . . . . . . .
19.3.1 Motivacao e Estrutura do Algoritmo . . . . . . . . . .
19.3.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . .
19.3.3 Extensao para Restricoes de Desigualdade . . . . . .
19.3.4 Propriedades do Lagrangeano Aumentado . . . . . . .
19.4 Programacao Linear Sequencial . . . . . . . . . . . . . . . . .
19.5 Programacao Quadratica Sequencial . . . . . . . . . . . . . . .
19.5.1 O metodo SQP Local . . . . . . . . . . . . . . . . . .
ix
265
265
265
266
268
269
270
271
271
272
273
275
275
276
276
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
253
255
255
256
256
259
261
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A Exerccios Resolvidos
A.1 Introducao `a Otimizacao . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Minimizacao de Funcoes com o Metodo de Descenso . . . . . . . . . .
A.3 Metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.4 Otimizacao Black-Box . . . . . . . . . . . . . . . . . . . . . . . . . .
A.5 Treinamento de Redes Neurais . . . . . . . . . . . . . . . . . . . . . .
A.6 Programacao Linear . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.7 Teoria dos Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.8 Fluxo em Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.9 Linguagens de Modelagem . . . . . . . . . . . . . . . . . . . . . . . .
A.10 Programacao Inteira: Fundamentos . . . . . . . . . . . . . . . . . . .
A.11 Programacao Inteira: Relaxacoes e Algoritmo Branch-and-Bound . .
A.12 Algoritmos de Planos de Corte e Desigualdades Fortes . . . . . . . . .
A.13 Programacao Logica . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.14 Programacao Dinamica: Domnio Discreto . . . . . . . . . . . . . . .
A.15 Programacao Dinamica: Domnio Contnuo . . . . . . . . . . . . . . .
A.16 Programacao Nao-Linear Sob Restricoes: Fundamentos . . . . . . . .
A.17 Programacao Nao-Linear Sob Restricoes: Fundamentos de Algoritmos
A.18 Programacao Quadratica . . . . . . . . . . . . . . . . . . . . . . . . .
A.19 Programacao Nao-Linear sob Restricoes: Algoritmos . . . . . . . . .
.
.
.
.
278
279
280
280
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
287
288
290
294
298
299
300
305
308
312
315
320
328
330
331
339
343
345
346
349
Lista de Figuras
1.1
1.2
8
11
2.1
2.2
18
2.3
2.4
3.1
3.2
3.3
. . . . . .
a direcao
. . . . . .
. . . . . .
. . . . . .
21
23
23
34
34
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
51
51
53
54
55
56
56
57
58
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
61
62
63
64
65
66
67
69
69
71
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
6.1
6.2
6.3
77
78
91
7.1
8.1
8.2
Problema de transporte. . . . . . . . . . . . . . . . . . . . . . . . . . .
Alocacao balanceada de tarefas em dois processadores como um problema de corte mnimo. A alocacao otima consiste em processar os
modulos 1, 2 e 4 no processador 1, deixando os modulos 3 e 5 no processador 2. O custo de processamento dos modulos e igual 15 enquanto que
o custo de comunicacao e 3, perfazendo um custo total de 18 unidades.
O custo total e a capacidade do corte s-t mnimo como indicado na figura.
Exemplo de rede residual G(x) obtida a partir de uma rede G e fluxo x.
Rede residual G(x0 ) para fluxo x0 nulo. . . . . . . . . . . . . . . . . . .
Rede residual G(x1 ) para fluxo x1 . . . . . . . . . . . . . . . . . . . . . .
Rede residual G(x2 ) para fluxo x2 . . . . . . . . . . . . . . . . . . . . . .
Rede residual G(x3 ) para fluxo x3 . . . . . . . . . . . . . . . . . . . . . .
Transformacao de arestas em arcos. . . . . . . . . . . . . . . . . . . . .
Remocao de limite inferior nos arcos. . . . . . . . . . . . . . . . . . . .
Eliminando capacidade de arcos. . . . . . . . . . . . . . . . . . . . . . .
Exemplo de problema de fluxo de custo mnimo. As linhas tracejadas
correspondem ao fluxo otimo. . . . . . . . . . . . . . . . . . . . . . . .
Exemplo de rede residual. . . . . . . . . . . . . . . . . . . . . . . . . .
Exemplo de rede residual. . . . . . . . . . . . . . . . . . . . . . . . . .
Primeira iteracao do algoritmo de cancelamento de circuito negativo.
A figura mostra a rede residual G(x0 ), o circuito com custo negativo em linhas tracejadas e o fluxo x0 . O circuito e dado por w0 =
((4, 2), (2, 3), (3, 4)) que tem custo c(w0 ) = 1 e capacidade maxima
(w0 ) = 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Segunda iteracao do algoritmo de cancelamento de circuito negativo. A
figura mostra a rede residual G(x1 ), o ciclo w1 = ((3, 2), (2, 1), (1, 3))
com custo c(w1 ) = 1 e capacidade maxima (w1 ) = 1, e o fluxo x1 . . .
Terceira iteracao do algoritmo de cancelamento de circuito negativo. Na
figura e dada a rede residual G(x2 ) e o respectivo fluxo x2 . Tambem e
indicado o circuito w2 = ((2, 3), (3, 4), (4, 2)) com custo c(w2 ) = 3 e
capacidade (w2 ) = 1. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fluxo otimo x3 e rede residual G(x3 ). Nao ha ciclo de custo negativo. .
xii
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
8.13
8.14
8.15
8.16
8.17
108
112
113
115
115
116
116
121
121
122
122
124
125
127
132
132
133
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
158
162
163
165
167
168
169
171
172
11.1
11.2
11.3
11.4
11.5
11.6
11.7
11.8
11.9
Arvore
de enumeracao . . . . . . . . . . . . . . . . . .
Arvore de enumeracao . . . . . . . . . . . . . . . . . .
Arvore
de enumeracao completa, explcita . . . . . . .
Eliminacao por otimalidade . . . . . . . . . . . . . . .
Eliminacao por limite . . . . . . . . . . . . . . . . . . .
Nenhum ramo da arvore pode ser eliminado . . . . . .
Quebra do primeiro no da arvore de enumeracao B&B .
Dividindo S1 em S11 e S12 . . . . . . . . . . . . . . . .
Cortando o no S12 por meio da condicao de otimalidade
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
178
178
179
179
180
180
182
182
183
14.1 Arvore
de recursao do algoritmo recursivo para calculo do n
umero de
Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
14.2 Valores D[i, j] calculados pelo algoritmo DP ao calcular a distancia
de edicao mnima entre o padrao P = abcdef ghijkl e o texto T =
bcdef f ghixkl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
14.3 Hierarquia da empresa XYZ . . . . . . . . . . . . . . . . . . . . . . . . 213
15.1 Estrutura do sistema linear com controle otimo de realimentacao . . . 222
15.2 Sistema de fornos para aquecimento de materiais . . . . . . . . . . . . 224
15.3 Pendulo invertido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
16.1
16.2
16.3
16.4
16.5
16.6
16.7
.
.
.
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
xiii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
231
232
233
234
235
236
236
A.5 Arvore
branch-and-bound parcial . . . . . . . . . . . . . . . . . . . . . .
A.6 Arvore
branch-and-bound parcial . . . . . . . . . . . . . . . . . . . . . .
A.8 Arvore
branch-and-bound parcial . . . . . . . . . . . . . . . . . . . . . .
A.9 Arvore
branch-and-bound parcial . . . . . . . . . . . . . . . . . . . . . .
A.11 Arvore
branch-and-bound parcial . . . . . . . . . . . . . . . . . . . . . .
xiv
267
268
273
282
295
309
311
319
320
321
321
322
323
324
325
326
335
336
342
350
Lista de Tabelas
1.1
Dados amostrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
33
4.1
Populacao inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
5.1
70
8.1
8.2
8.3
8.4
8.5
9.1
9.2
fornecedores .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
109
109
111
111
10.1 N
umero de solucoes em funcao do tamanho do problema . . . . . . . . 162
10.2 Crescimento de funcoes . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
14.1 Tabelas DP para o Problema da Mochila . . . . . . . . . . . . . . . . . 206
14.2 Tabelas DP para o Problema de Subseq
uencia Mais Longa . . . . . . . 208
A.1
A.2
A.3
A.4
A.5
xv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
332
332
337
338
338
xvi
Nota
c
ao
xvii
xviii
Captulo 1
As Sub
areas da Otimizac
ao
Otimizacao e a area da Matematica Aplicada que se preocupa em calcular e computar valores otimos para variaveis de decisao que induzem desempenho otimo, ao mesmo
tempo que satisfazem restricoes, de um modelo matematico.
1.1
Conceitos Fundamentais
1.1.1
Modelagem de Problemas
1. As Subareas da Otimizacao
1.1.2
(1.1)
1.1.3
Duas Excec
oes `
a Formulac
ao Geral
1. As Subareas da Otimizacao
1.2
Programac
ao Linear
1.2.1
Problema Exemplo
.
.
.
.
.
.
.
a x + a x + ... + a
M,1 1
M,2 2
M,N xN > bM
onde x1 , x2 , . . . , xN > 0.
1. As Subareas da Otimizacao
3) Fun
c
ao objetivo: f = c1 x1 + c2 x2 + . . . + cN xN
4) Formulac
ao compacta:
Minimize cT x
x RN
Sujeito a : Ax b
x0
1.3
(1.2)
Programac
ao Linear Inteira
Uma variedade de problemas reais podem ser formulados com o emprego de variaveis
discretas. Dentre eles, citamos o problema de agendamento de trens, o problema de
agendamento de tripulacoes de avioes e o problema de alocacao em sistemas de telecomunicacoes. Todos estes problemas tem uma caracterstica em comum: fazem uso de
variaveis inteiras ou discretas. Nao se pode por exemplo dividir um vagao de trem em
fracoes; nao se pode alocar meio piloto a uma aeronave; e nao se pode instalar uma
fracao de um servidor de telecomunicacoes. Estes e muitos outros problemas fazem
parte do universo da programacao linear inteira, que engloba problemas da forma:
Minimize cT x
Sujeito a :
Ax b
Cx = d
x0
x Zn
1.3.1
Problema Exemplo
1. As Subareas da Otimizacao
m
n P
P
cij xij +
i=1 j=1
Sujeito a :
n
P
i=1
m
P
m
P
f j yj
j=1
di xij 6 uj yj
j = 1, . . . , m
xij
i = 1, . . . , n
= 1
j=1
xij B
i = 1, . . . , n
j = 1, . . . , m
j = 1, . . . , m
yj B
sendo B = {0, 1}.
1.4
Programac
ao Quadr
atica
1 T
x Qx
2
+ cT x
Ax 6 b
Cx = d
onde Q e uma matriz simetrica.
Programacao quadratica tem aplicacoes em identificacao de parametros para modelos de processos, modelos estruturais e sistemas de controle, e em algoritmos como
SQP (Sequential Quadratic Programming).
A dificuldade de se resolver tais problemas depende da natureza da matriz Q. Quais
caractersticas de Q tornam o problema difcil? Se Q > 0 (positiva semi-definida)1 ou
Q > 0 (positiva definida) o problema e relativamente facil de ser resolvido (ou seja,
encontrar a solucao otima global). Se Q e indefinida (ou negativa semi-definida ou
definida) entao o problema e muito difcil.
Q Rnn e dita positiva semi-definida se xT Qx > 0 para todo x Rn . A matriz e dita positiva
definida se a desigualdade e estrita para todo x 6= 0. Se Q = QT , ent
ao Q e positiva semi-definida se
e somente se os autovalores de Q s
ao nao negativos. Note que os autovalores de matrizes simetricas
s
ao n
umeros reais. A matriz Q e dita indefinida se existe x, y Rn tal que xT Qx > 0 e y T Qy < 0.
1
1.5
1. As Subareas da Otimizacao
Mnimos Quadrados N
ao-Linear
K
X
k=1
(gx (yk ) zk )2
Definindo f (x) = [f1 (x), . . . , fK (x)] tal que fk (x) = gx (yk ) zk , temos que o problema de encontrar o aproximador de menor erro se reduz a um problema de mnimos
quadrados nao-linear.
Uma aplicacao do problema de mnimos quadrados nao-linear e o treinamento de
redes neurais. Dado uma serie de exemplos de treinamento (pares entrada-sada), o
problema de treinar uma rede neural a aproximar a funcao descrita pelos pares entradasada se reduz a um problema de mnimos quadrados nao-linear.
1.6
1.6.1
Exemplo Ilustrativo
Seja w(h) um modelo que descreve a relacao entre a altura e o peso medio das
pessoas do sexo feminino. Suponha que o modelo escolhido e um polinomio da forma:
w(h) = x3 h3 + x2 h2 + x1 h + x0 ,
ou seja, w(h) e um polinomio de terceira ordem que modela o peso como uma funcao
da altura. Os dados amostrais sao dados na Tabela 1.1
1. As Subareas da Otimizacao
Problema Exemplo
Encontre os parametros x3 , x2 , x1 e x0 que minimizam a funcao erro, a qual consiste
na soma dos quadrados dos erros de predicao:
1
2
Minimize
x0 , x1 , x2 , x3
n
P
i=1
kw(hi ) wi k2
A solucao otima para o problema acima, tomando como dados as entradas da Tabela
1.1, e:
x0
x1
x2
x3
=
=
=
=
100.0000
32.0025
64.3704
42.1669
A Figura 1.1 ilustra os dados amostrais juntamente com a curva de aproximacao w(h)
dada pelo polinomio w(h) = x3 h3 + x2 h2 + x1 h + x0 .
1.6.2
a11 x1 + a12 x2 +
a21 x1 + a22 x2 +
a31 x1 + a32 x2 +
..
a x + a x +
m1 1
m2 2
a1n xn =
a2n xn =
a3n xn =
b1
b2
b3
. . . + amn xn = bm
1. As Subareas da Otimizacao
85
w(h) (Peso)
80
75
70
65
Aproximacao
60
Valores Amostrais
55
50
45
1.5
1.55
1.6
1.65
1.7
1.75
1.8
1.85
1.9
h (altura)
equivalente PM
Q:
2
T
PM
Q : Minimize kAx bk = (Ax b) (Ax b) =
x Rn
m
P
i=1
(aTi x bi )2
1.6.3
Ajuste de Curvas
O problema geral de ajuste de curvas pode ser colocado como segue. Ajuste a curva
dada pela funcao
g(t) = x1 g1 (t) + x2 g2 (t) + . . . + xn gn (t)
1. As Subareas da Otimizacao
= y1
= y2
.
= ..
= ym
m
P
i=1
m
P
i=1
[g(ti ) yi ]2
[x1 g1 (t) + x2 g2 (t) + . . . + xn gn (t) yi ]2
A=
1.7
g1 (t1 )
g1 (t2 )
..
.
g2 (t1 ) . . . gn (t1 )
g2 (t2 ) . . . gn (t2 )
..
..
..
.
.
.
g1 (tm ) g2 (tm ) . . . gn (tm )
eb=
y1
y2
..
.
ym
Equaco
es N
ao-Lineares
10
1. As Subareas da Otimizacao
1.7.1
Aplicac
ao em Sistemas de Controle
Dado um sistema de equacoes diferenciais, encontre um ponto de equilbrio. Considere o sistema de equacoes diferenciais abaixo:
x 1 = x1 1
x 3 = 2x2 2 2
De uma forma mais compacta, o sistema acima pode ser escrito como x = f (x) onde
x = [x1 , x2 , x3 ]. Um problema tpico no domnio de controle nao linear e a busca de
um ponto de operacao ou de equilbrio, i.e., um ponto x tal que x = 0. O problema
de encontrar um ponto de equilbrio pode ser reduzido `a solucao de um sistema de
equacoes n
ao lineares: f (x) = 0. Para o exemplo acima, um ponto de equilbrio e
x = [1, 2, x3 ].
1.8
Otimizac
ao N
ao-Linear sem Restrico
es
Otimizacao irrestrita (sem restricoes) constitui um bloco fundamental no desenvolvimento de software. Algoritmos para solucao de problemas de otimizacao restrita
fazem uso de otimizacao irrestrita. O problema de otimizacao irrestrita e definido
como:
Minimize f (x)
x Rn
Tipicamente procura-se um otimo local x , ou seja, x tal que f (x ) 6 f (x) para todo
x B(x , ) = {x : kxx k 6 } e > 0. Otimizacao global se preocupa em encontrar
um vetor x cujo valor f (x ) 6 f (x) para todo x Rn .
1.8.1
Problema Exemplo
Seja z = (x, y) a coordenada onde sera instalada uma central telefonica. Suponha
que as chamadas sao recebidas de um conjunto S = {z1 = (x1 , y1 ), . . . , zm = (xm , ym )}
de localidades com probabilidade uniforme. Seja Z a variavel randomica associada com
o local das chamadas. Portanto, Z assume valores do conjunto S tal que a probabilidade
de uma chamada vir do local k e P r{Z = zk } = 1/m, para k = 1, . . . , m.
Tarefa
Qual deve ser a localizacao da central telefonica para que E[kZ zk2 ] seja minimizado? Em outras palavras, desejamos minimizar o quadrado da distancia da central
telefonica aos locais das chamadas. E[f (Z)] e o valor esperado da funcao f (Z) da
variavel aleatoria Z 2 .
2
11
1. As Subareas da Otimizacao
Soluc
ao
Desenvolvendo a expressao do valor esperado, deduzimos:
2
E[kZ zk ] =
=
m
X
k=1
m
X
k=1
y
16
14
z1
z11
z12
z13
12
10
z2
z10
8
z3
z4
Central
z9
4
2
2
10 12 14 16 18
z5
z7
z8
z6
12
1. As Subareas da Otimizacao
1.9
Otimizac
ao N
ao-Linear com Limites Superiores/Inferiores
1.10
Otimizac
ao N
ao-Linear com Restrico
es
1.10.1
Problema Exemplo
Desejamos instalar uma estacao de bombeiros de forma que a mesma esteja dentro
de um raio r (km) de um conjunto S = {(x1 , y1 ), . . . , (xp , yp )} de predios nas proximidades da unidade dos bombeiros. Alem disso, desejamos localiza-la o mais afastado
possvel de um conjunto T = {(
x1 , y1 ), . . . , (
xq , yq )} de estacoes de bombeiros vizinhas.
Tarefa
Formule este problema em linguagem de otimizacao.
Formulac
ao
Maximize d
Sujeito a :
k(x, y) (xj , yj )k 6 r
k(x, y) (
xj , yj )k > d
j = 1, . . . , p
j = 1, . . . , q
13
1. As Subareas da Otimizacao
Observacoes:
d 6 min{k(x, y) (
xj , yj )k : j = 1, . . . , q}
r > max{k(x, y) (xj , yj )k : j = 1, . . . , p}
1.11
Programac
ao Semi-Definida
Esta classe compreende problemas com funcao objetivo linear e restricoes envolvendo matrizes e suas propriedades (tais como matriz positiva definida e semi-definida).
Tipicamente, uma matriz Fi (x) e definida como uma funcao afim com parametros dados
pelo vetor x. Mais precisamente:
Fi (x) = Fi,0 + Fi,1 x1 + . . . + Fi,n xn
T
onde Fij Rnn e uma matriz simetrica, ou seja, Fi,j = Fi,j
. Os problemas sao
expressos na forma a seguir:
Minimize cT x
Sujeito a :
Fi (x) > 0
i = 1, . . . , m
onde Fi (x) > 0 significa que a matriz Fi (x) deve ser positiva semi-definida (linear
matrix inequality).
1.11.1
Exemplo
d T
(x P x)
dt
= x T P x + xT P x
= (xT AT )P x + xT P (Ax)
= xT (AT P + P A)x
14
1. As Subareas da Otimizacao
1.12
Refer
encias
1.13
Exerccios
EX 1.1 (Produ
c
ao Industrial Otimizada): Uma companhia manufatura dois produtos (x e y) usando duas maquinas (M1 e M2 ). Para produzir uma unidade do
item x, sao necessarios 50 minutos de processamento na maquina M1 e 30 minutos de processamento na maquina M2 . Para produzir cada unidade do item
y, sao necessarios 24 minutos de processamento na maquina M1 e 33 minutos
de processamento na maquina M2 . No incio da semana, tem-se 30 unidades de
x e 90 unidades de y em estoque. O tempo disponvel para processamento na
maquina M1 durante a semana e de 40 horas, ja para a maquina M2 o tempo
disponvel e de 35 horas. A demanda por item x na semana corrente esta prevista
em 75 unidades, enquanto que para o item y a estimativa e de 95 unidades. O
objetivo da empresa e maximizar a quantidade agregada de itens x e y no fim da
semana.
Tarefa: formule em programacao linear o problema de decidir quantas unidades
de cada item devem ser produzidas.
EX 1.2 (Mnimos Quadrados): Formule os problemas a seguir como problemas de
mnimos quadrados. Para cada problema forneca a matriz A e o vetor b tal que
15
1. As Subareas da Otimizacao
d) Minimize x21 + 2x22 + 3x23 + (x1 x2 + x3 1)2 + (x1 4x2 + 2)2 (Sugestao:
expresse os tres termos principais na forma procurada, depois utilize os
resultados obtidos em (a), (b) e (c).)
EX 1.3 (Projeto de Latas): O preco do cm2 de latao e R$ 2,00. Deseja-se produzir
latas cilndricas sem tampa, com volume igual ou superior a 500 cm3 e de custo
mais baixo possvel. Formule em programacao matematica (otimizacao nao-linear
com restricoes) o problema de dimensionar a lata, ou seja, de encontrar a altura
possvel formular este problema em programacao
h (cm) e raio r (cm) da lata. E
nao-linear irrestrita?
16
1. As Subareas da Otimizacao
m
n P
P
cij xij +
i=1 j=1
Sujeito a :
n
P
i=1
m
P
m
P
f j yj
j=1
di xij 6 uj yj
j = 1, . . . , m
xij
i = 1, . . . , n
= 1
j=1
xij B
yj B
i = 1, . . . , n
j = 1, . . . , m
j = 1, . . . , m
Existem outras formulacoes para o problema? Quais sao as vantagens e desvantagens das formulacoes alternativas?
EX 1.9: Para problemas de otimizacao quadratica cuja matriz Q e simetrica, o Prof.
Kunz desenvolveu um algoritmo capaz de encontrar uma solucao global otima.
Suponha que voce tem que resolver um problema de otimizacao quadratica onde
Q nao e simetrica. Sera que e possvel resolver o problema em questao com o
algoritmo do Prof. Kunz?
Captulo 2
Minimiza
c
ao de Funco
es com o
M
etodo de Descenso
Este captulo se concentra nas propriedades gerais dos problemas de otimizacao
nao-linear sem restricoes e no algoritmo de descenso. Sao introduzidos conceitos de
otimo local e otimo global, bem como condicoes necessarias e condicoes suficientes
para que uma solucao candidata seja um otimo local. O algoritmo de descenso e as
condicoes para convergencia global a partir de um ponto qualquer para um otimo local
sao apresentados na seq
uencia. Por fim analisa-se a taxa de convergencia do algoritmo
de descenso.
2.1
Problemas de Interesse
Minimize f (x)
x Rn
onde f : Rn R
18
2.2
Fundamentos de Otimizac
ao Irrestrita
2.2.1
O que
e uma soluc
ao para P1 ?
f (x)
x*
2.2.2
19
f (x ) = 0.
Prova. Vamos supor o contrario. Seja x = f (x ) para algum > 0
pequeno, tal que x = (x + x) esteja na vizinhanca de x . Portanto, f (x) =
f (x + x) = f (x ) + f (x )T [f (x )] < f (x ). Isto configura uma contradicao.
2) Expans
ao de Taylor de Segunda Ordem
Se f e duas vezes diferenciavel, podemos utilizar uma aproximacao de segunda
ordem como segue:
1
f (x + x) f (x) + f (x)T x + xT 2 f (x)x + O(kxk3 )
2
onde a matriz 2 f (x) e denominada de Hessiana, sendo sua entrada i, j definida
por 2 f (x)/xi xj = [f (x)/xj ]/xi . Para um pequeno passo x, o resduo
pode ser desprezado resultando na expansao abaixo:
1
f (x + x) f (x) + f (x)T x + xT 2 f (x)x
2
Teorema 2.2 (Condicao necess
aria de segunda ordem) Se x e um otimo local
2
de f e f e contnua em uma vizinhanca aberta de x , ent
ao f (x ) = 0 e
2 f (x ) e positiva semi-definida.
Prova. Pelo Teorema 2.1, f (x ) = 0. Pela aproximacao de Taylor de segunda
ordem, podemos dizer que f (x + x) = f (x ) + 21 xT 2 f (x )x. Suponha que
2 f (x ) nao e positiva semi-definida, o que implica que existe x pequeno tal que
xT 2 f (x )x < 0. Portanto, f (x + x) = f (x ) + 21 xT 2 f (x )x < f (x )
e, conseq
uentemente, x nao pode ser um otimo local de f .
Teorema 2.3 (Condicao suficiente de segunda ordem) Suponha que 2 f (x) seja
contnua em uma vizinhanca de x , f (x ) = 0 e 2 f (x ) seja positiva definida.
Entao x e um
otimo local estrito de f .
20
3) Fun
c
oes Convexas
Uma funcao f : Rn R e convexa se para todo x, y Rn e (0, 1) tem-se:
f (x + (1 )y) 6 f (x) + (1 )f (y)
Se f e uma funcao duas vezes diferenciavel, entao f e convexa se 2 f (x) e positiva
semi-definita para todo x Rn . Uma funcao f e concava se f e convexa.
Teorema 2.4 Se f e convexa, ent
ao todo o mnimo local e tambem um mnimo
global.
Prova. Seja x um mnimo local e suponha, por absurdo, que x nao seja um
mnimo global. Seja x um mnimo global e considere o segmento de reta que une
os pontos x e x, ou seja,
x =
x + (1 )x onde (0, 1].
Por convexidade de f , temos que f (x) 6 f (
x) + (1 )f (x ) < f (x ) + (1
)f (x ) = f (x ). Qualquer vizinhanca N de x contem um pedaco do segmento
de reta acima definido e, portanto, sempre existira um x em N que satisfaca a
desigualdade f (x) < f (x ). Conclui-se que x nao e um otimo local.
2.3
O Algoritmo de Descenso
para k = 0, . . . , T 1
21
2.3.1
(2.1)
onde k e o passo a ser dado na direcao pk de forma que o proximo iterando passa a
ser xk+1 = xk + k pk .
A solucao exata de (2.1) induziria o benefcio maximo da direcao pk ; todavia, a minimizacao exata e cara computacionalmente e nao necessaria. Em vez disso, o metodo
de descenso gera um n
umero limitado de passos ate encontrar um passo k que aproxima o mnimo de (2.1). Um novo ponto e gerado, xk+1 = xk + k pk , uma nova direcao
pk+1 e encontrada e o processo se repete.
2.3.2
Direc
ao de Busca
x2
f (x1 , x2 ) = z2
f (x)
f (x1 , x2 ) = z1
x1
Figura 2.2: Ilustracao do gradiente de uma funcao, f (xk ), que assume a direcao
ortogonal `a curva de nvel que passa por xk .
22
2.3.3
Encontrando a Direc
ao de Busca
2.3.4
Encontrando o Passo
(2.2)
onde c1 (0, 1). Em outras palavras, a condicao estabelece que a reducao em f deve
ser proporcional ao passo k e `a derivada direcional f (xk )T pk . Seja l() = f (xk ) +
c1 f (xk )T pk , entao a condicao de Armijo pode ser expressa como f (xk + pk ) 6 l().
Note que a funcao l() e uma funcao decrescente e linear em . A Figura 2.3 ilustra a
condicao de Armijo (2.2).
A condicao de Armijo nao e, entretanto, suficiente para garantir progresso razoavel
e satisfatorio do algoritmo, pois a condicao pode ser satisfeita por passos extremamente pequenos. Para evitar passos muito pequenos, uma condicao de curvatura e
introduzida, a qual exige que:
f (xk + k pk )T pk > c2 f (xk )T pk ,
(2.3)
para alguma constante c2 (c1 , 1). Note que o lado esquerdo e simplesmente
d()/d = ()1 , assim a condicao de curvatura garante que a taxa de decrescimento () seja c2 vezes o gradiente (0). Em outras palavras, () deve ser menos
negativo do que (0). Isso faz sentido: se (0) e bastante negativo, entao temos uma
indicacao de que podemos reduzir f substancialmente ao longo da direcao escolhida;
caso contrario, se (0) e pouco negativo, temos um sinal de que nao podemos reduzir
f substancialmente. Passos satisfatorios que satisfazem simultaneamente as condicoes
de Armijo (2.2) e de curvatura (2.3) sao ilustrados na Figura 2.4
1
Use a regra da cadeia para verificar esta afirmacao: dz(y(x))/dx = (dz/dy)(dy/dx), onde z(y) e
uma funcao de y e y(x) e uma funcao de x.
23
() = f (xk + pk )
l()
Passo satisfatorio
Passo satisfatorio
() = f (xk + pk )
c2 f (xk )T pk
l()
Satisfaz Armijo
Satisfaz Armijo
Satisfaz Curvatura
Satisfaz Curvatura
24
Nao e difcil provar que existem passos k que satisfazem as condicoes de Wolfe se a
funcao f e suave e possui um limite inferior.
(2.6)
(2.7)
(2.8)
uma vez que c1 < c2 e fkT pk < 0. Assim, satisfaz as condicoes de Wolfe, e
as desigualdades (2.4) sao estritas. Portanto, de acordo com a propriedade de f ser
suave, deve existir um intervalo em torno de para o qual as condicoes de Wolfe sao
satisfeitas.
2.3.5
Reduc
ao Suficiente e Retrocesso
Utilizando-se o chamado metodo de retrocesso, podemos sistematicamente encontrar um passo k que satisfaz as condicoes de Wolfe (2.4) sem considerar a segunda
condicao.
O teorema do valor medio diz que f (y) f (x) = f (z)T (y x) sendo z um vetor que pertence
ao segmento x y.
3
Pelo Teorema do Valor Medio, faca y = xk + pk , x = xk e observe que y x = pk e
z = xk + pk .
2
25
Procedimento
Escolha > 0 (tipicamente = 1)
Escolha , c1 (0, 1)
Faca
Repita ate que f (xk + pk ) 6 f (xk ) + c1 f (xk )T pk
Faca
Fim-repita
Termine com k
O procedimento acima encontra um passo satisfatorio (i.e., que satisfaz as condicoes
de Wolfe) apos um n
umero finito de iteracoes pois k eventualmente se torna pequeno
o suficiente para satisfazer a condicao de Armijo.
2.3.6
Converg
encia do M
etodo de Descenso
(2.9)
Entao
X
k>0
(2.10)
|(fk+1 fk )T pk |
kfk+1 fk kkpk k
Lkxk + k pk xk kkpk k
k Lkpk k2 .
26
c2 1 fkT pk
.
L kpk k2
1 c2 (fkT pk )2
.
L
kpk k2
fkT pk
.
kfk kkpk k
k
X
j=0
cos2 j kfj k2 .
Uma vez que f e limitada inferiormente, sabemos que f0 fk+1 e uma constante positiva,
para todo k. Tomando o limite da expressao acima, conclumos que
X
j=0
A conseq
uencia do Teorema 2.5 e a convergencia global do metodo de descenso,
visto que este sempre escolhe como direcao de descenso um vetor pk com angulo k que
se afasta de 900 . Assim cos k > > 0 para todo k. Conseq
uentemente lim kfk k = 0.
k
2.3.7
Taxa de Converg
encia do M
etodo de Descenso Ingreme
x e dito
otimo local nao singular se as condicoes suficientes de otimalidade local de segunda
ordem s
ao satisfeitas.
27
desde que kx x k seja pequeno. Podemos assumir sem perda de generalidade que
x = 0 e f (x ) = 07 . Assim a aproximacao quadratica de f fica
1
f (x) = xT Qx, f (x) = Qx, 2 f (x) = Q.
2
O metodo de descenso ngreme ou de descenso maximo (steepest descent) pode ser
colocado na forma:
xk+1 = xk k f (xk ) = (I k Q)xk
o que nos leva a
kxk+1 k2 = xTk (I k Q)2 xk .
Uma vez que xT (I k Q)2 x 6 M ax{ ((I k Q)2 )}kxk2 , onde (A) denota o
conjunto de autovalores da matriz A, conclumos que:
kxk+1 k2 6 M ax{ ((I k Q)2 )}kxk k2 .
Os autovalores de (I k Q)2 sao iguais a (1 k i )2 , onde i sao os autovalores de Q.
Dessa forma podemos deduzir que
M ax{ ((I k Q)2 )} = M ax{(1 k m)2 , (1 k M )2 }
onde m (M ) e o menor (maior) autovalor de Q. Segue entao que para xk 6= 0
kxk+1 k
6 M ax{|1 k m|, |1 k M |}.
kxk k
(2.11)
2
M +m
o que implica em
kxk+1 k
M m
6
,
kxk k
M +m
(2.12)
28
2.4
Refer
encias
Este captulo foi produzido a partir dos textos de Bertsekas [9] e Nocedal e Wright
[39]. O primeiro texto e bastante completo e trata da parte tecnica em profundidade,
alem de apresentar varias aplicacoes e problemas com inspiracao fsica. O segundo texto
e mais introdutorio e recomendado para o leitor iniciante que deseja se aprofundar em
algoritmos de otimizacao nao-linear. Outras referencias com boa cobertura da teoria e
algoritmos de otimizacao nao-linear sao os livros de Gill et al. [22] e Bazaraa et al. [8].
2.5
Exerccios
29
(2.13)
30
ex
.
ex +ex
Captulo 3
M
etodo de Newton: Solu
c
ao de
Equac
oes N
ao-Lineares e
Minimiza
c
ao de Funco
es
Este captulo trata do metodo de Newton e suas aplicacoes na solucao de sistemas de
equacoes nao-lineares e na minimizacao de funcoes. Sao apresentados os fundamentos
do algoritmo, exemplos e a prova de convergencia local em uma variavel. Para garantir
convergencia global do metodo quando aplicado `a minimizacao de funcoes, aplica-se a
tecnica de regiao de confianca que e expandida e reduzida de forma que a aproximacao
quadratica da funcao seja satisfatoria dentro da regiao. A secao final do captulo
estende o metodo de Newton para o problema de minimizacao de funcoes sob restricoes
de igualdade. Esta secao pode ser omitida sem perda, pois a otimizacao de funcoes sob
restricoes sera topico de outros captulos.
3.1
Problemas de Interesse
Desenvolveremos metodos de Newton para a solucao de equacoes nao-lineares, formuladas como segue:
P2 : Encontre x Rn , tal que c(x) = 0
onde c : Rn Rm
Tambem investigaremos a solucao do problema de minimizacao irrestrita, ou seja:
P1 :
3.2
Minimize f (x)
x Rn
onde f : Rn R
O M
etodo de Newton em uma Vari
avel
3.2.1
Exemplo
k
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
3.3
Newton.
|xk x |
9.981492189406418e+002
4.982755005110344e+002
2.483399228600520e+002
1.233746971162049e+002
6.089721003960747e+001
2.966871514906535e+001
1.407494148177637e+001
6.318814880640609e+000
2.520799154294426e+000
7.708728263061098e-001
1.252806992472928e-001
4.546550413286443e-003
6.438287280197130e-006
1.294742091317858e-011
2.220446049250313e-016
O M
etodo de Newton para Minimizac
ao em
uma Vari
avel
3.3.1
Exemplo
y = f (x)
x
9 8 7 6 5 4 3 2 1
x2
3 4
x1
8 9
x0
y = cos(x)
3.4
O M
etodo de Newton em M
ultiplas Vari
aveis
c1 (x)
c(x) = ...
=0
cm (x)
(3.1)
c1 /x1 . . .
..
...
G(x) = .
cn /x1
cT1
c1 /xn
..
..
(3.3)
= .
.
cTn
. . . cn /xn
(3.4)
M
etodo de Newton em V
arias Vari
aveis
Dado um x inicial e uma tolerancia > 0
Repita
Calcule c(x) e G(x)
Se kc(x)k < , retorne x
Encontre uma solucao para G(x)x = c(x)
Faca x x + x
Ate que um n
umero maximo de iteracoes seja atingido
Enfatizamos que a iteracao Newton, conforme Equacao (3.4), nao e realizada atraves
do calculo direto da inversa de G(x). Fazemos uso de algoritmos de solucao de sistemas
de equacoes lineares para resolver o sistema G(x)x = c(x). Um forma robusta para
resolve-lo se da atraves da decomposicao LU , a qual decompoe G em duas matrizes
triangulares L (triangular inferior) e U (triangular superior), de maneira que G = LU .
Uma vez calculados os fatores L e U , a solucao de (3.4) pode ser obtida com duas
retrosubstituicoes. Quando a matriz G e positiva definida, o que ocorre no caso do
metodo de Newton estar sendo utilizado como ferramenta para encontrar um ponto
estacionario de uma funcao f , e recomendavel realizar uma fatoracao Cholesky. Esta
encontra uma matriz triangular inferior L de forma que G = LLT . Algoritmos eficientes e robustos podem ser encontrados na literatura para executar ambos os tipos de
fatoracao.
3.5
Minimiza
c
ao Irrestrita
Uma vez que o metodo de Newton se baseia na busca de um ponto para o qual o
gradiente de f (x) e nulo, nao ha garantia de que o processo iterativo convirja para
um ponto de mnimo, podendo divergir ou ser atrado para um ponto de inflexao ou
de maximo. Lembramos que as condicoes necessarias e suficientes (minimizacao de
funcoes) para que xk seja um mnimo local sao:
Condi
c
oes Necess
arias: f (xk ) = 0 e 2 f (xk ) > 0 (positiva semi-definida).
Condi
c
oes Suficientes: f (xk ) = 0 e 2 f (xk ) > 0 (positiva definida).
3.6
Converg
encia
3.6.1
Converg
encia Linear
Uma seq
uencia xk com limite x e linearmente convergente se existe uma constante
c (0, 1) tal que:
|xk x | 6 c|xk1 x |
(3.5)
(3.6)
3.6.2
Converg
encia Quadr
atica
Uma seq
uencia xk com limite x converge quadraticamente se existe uma constante
c > 0 tal que:
|xk x | 6 c|xk1 x |2
(3.7)
2k
3.6.3
Converg
encia do M
etodo de Newton
L
|xk x |2
2m
(3.10)
f (x)
f (x)
|x+ x | = |x
x |
f (x)
f (x)
| f (x) f (x)(x x)|
=
|f (x)|
|f (x ) f (x) f (x)(x x)|
=
|f (x)|
(3.11)
(f (u) f (x))du|
|f (x ) f (x) f (x)(x x)| = |
x
Z x
|f (u) f (x)|du
6
x
Z x
|u x|du
6 L
x
|x x|2
= L
2
(3.12)
|x1 x | 6
L
L 2
|x0 x |2 6
6 /2.
2m
2m
L 2
L
|x1 x |2 6
/4 6 /8.
2m
2m
2k
1
.
4
3.7
M
etodos de Regi
ao de Confianca
Como visto acima, o metodo de Newton puro para minimizacao de funcoes encontra
p = x xk que minimiza uma aproximacao de f em torno de xk dada pela expansao
de Taylor de segunda ordem:
1
fk (p) = f (xk ) + f (xk )T p + pT 2 f (xk )p.
2
Sabemos que fk (p) e uma boa aproximacao de f (xk + p) quando p esta dentro de uma
vizinhanca proxima de zero, mas a dificuldade e que na minimizacao de fk (p) podemos
obter um passo fora desta regiao. Se torna portanto relevante considerar um passo
de Newton restrito pk obtido por meio da minimizacao de fk (p) dentro de uma regiao
pequena na vizinhanca do zero, chamada regiao de confianca (trust region):
pk = Argmin fk (p)
kpk 6 k
(3.13)
onde k e um escalar positivo. Explorando o fato de que o problema (3.13) tem apenas
uma restricao, uma solucao aproximada pode ser obtida rapidamente.
importante enfatizar que mesmo quando 2 f (xk ) nao e positiva definida ou ate
E
mesmo quando a direcao Newton nao e uma direcao de descenso, o passo de Newton
f (xk )
k ,
kf (xk )k
1
f (xk + pk ) 6 f (xk ) + f (xk )T pk + pTk 2 f (xk )
pk } + o(k2 )
2
k2
f (xk )T 2 f (xk )f (xk ) + o(k2 )
= f (xk ) k kf (xk )k +
2kf (xk )k2
Para k suficientemente pequeno o termo negativo k kf (xk )k domina os u
ltimos dois
termos, o que nos leva a concluir que: f (xk+1 ) < f (xk ). Podemos tambem observar que
uma reducao nos custos pode ser obtida mesmo quando f (xk ) = 0 desde que k seja
suficientemente pequeno e f tenha uma direcao de curvatura negativa no ponto xk , o
que significa dizer que 2 f (xk ) nao e positiva semidefinida. Portanto, o procedimento
so falha em reduzir o custo quando f (xk ) = 0 e 2 f (xk ) e positiva semidefinida, que
corresponde a dizer que xk satisfaz as condicoes necessarias de segunda ordem.
Os desenvolvimentos acima nos levam a considerar passos da forma
xk+1 = xk + pk ,
onde pk e o passo de Newton restrito com respeito a um escalar k . A chave para a
convergencia rapida do metodo de Newton com regiao de confianca esta em ajustar
dinamicamente o parametro k , garantindo reducao significativa e se comportando
como o metodo de Newton puro proximo de um mnimo local nao singular4 . Uma
forma razoavel de ajustar o valor inicial de k e incrementar o valor quando o metodo
parece estar gerando reducoes no valor de f e reduzi-lo caso contrario. O progresso em
direcao a um otimo local pode ser medido com base na razao entre a reducao antecipada
e a reducao efetivamente observada:
rk =
f (xk ) f (xk+1 )
.
f (xk ) fk (pk )
Um mnimo local x e nao singular se satisfaz as condicoes suficientes de segunda ordem, ou seja,
f (x) = 0 e 2 f (x) > 0
Passo 1: Encontre:
pk = Argmin fk (p)
kpk 6 k
Se fk (pk ) = f (xk ) pare (xk satisfaz as condicoes necessarias de primeira e segunda
ordem).
Passo 2: Se f (xk + pk ) < f (xk ) defina xk+1 = xk + pk , calcule
rk =
f (xk ) f (xk+1 )
f (xk ) fk (pk )
1 kpk k
2 k
=
se rk < 1
se 2 6 rk e kpk k = k
caso contrario
3.8
Otimizac
ao de Funco
es Sujeito a Igualdades
Ate aqui vimos como o metodo de Newton pode ser empregado para encontrar uma
solucao simultanea de um sistema c(x) de equacoes nao-lineares e tambem encontrar
um otimo local para uma funcao f (x) (i.e., solucao que satisfaz as condicoes necessarias
de primeira ordem). Aqui vamos combinar estes dois problemas e estender o metodo
de Newton. Esta secao pode ser omitida sem perda de informacao ja que a otimizacao
restrita sera objeto de estudo detalhado em captulos futuros. Considere o problema
de encontrar um vetor x que minimiza uma funcao f (x) e ao mesmo tempo e solucao
simultanea de um sistema de equacoes:
Minimize f (x)
Sujeito a :
c(x) = 0
onde x Rn , f : Rn R e c : Rn Rm com m < n. Pela teoria classica de
otimizacao, podemos tomar o Lagrangeano:
L(x, ) = f (x) T c(x) = f (x)
m
X
i=1
i ci (x)
(3.14)
(3.15)
m
X
i=1
i ci (x)
= f (x) c(x)T
L = c(x)
(3.16)
(3.17)
onde c(x) e o Jacobiano de c. Note que as condicoes (3.14) e (3.15) podem ser satisfeitas por um par (x , ) que induz um mnimo local, maximo local ou simplesmente
um ponto estacionario. Da mesma forma que em otimizacao irrestrita, podemos desenvolver condicoes necessarias de segunda ordem. Primeiramente, vamos calcular a
Hessiana do Lagrangeano com respeito a x:
H = 2xx L
= 2 f (x)
m
X
i=1
i 2 ci (x)
(3.18)
Entao pode ser demonstrado que condicoes necessarias (3.19) e suficientes (3.20) para
que o par (x , ) seja um mnimo local sao respectivamente:
uT Hu > 0
uT Hu > 0
(3.19)
(3.20)
i 2 ci (
x)(x x)
ci (
x)(i
i=1
i=1
+ [2 f (
= x L(
x, )
x)
T
m
X
i=1
i 2 ci (
x)](x x) c(
x)T ( )
x)T ( )
= f (
x) c(
x) + H(x x) c(
= f (
x) + H(x x) c(
x) T
(3.21)
(3.22)
Logo, dado um par (xk , k ), o proximo iterando (xk+1 , k+1 ) do metodo de Newton e
obtido resolvendo um sistema de equacoes lineares:
x L(xk+1 , k+1 ) = 0
f (xk ) + H(xk+1 xk ) c(xk )T k+1 = 0
L(xk+1 , k+1 ) = 0
c(xk ) c(xk )(xk+1 xk ) = 0
ou, de forma mais compacta,
Hxk f (xk )
xk+1
H
c(xk )T
=
c(xk ) c(xk )xk
k+1
c(xk )
0
3.9
(3.23)
Refer
encias
Para um tratamento aprofundado e rigoroso do metodo de Newton recomendamos o livro texto de Bertsekas [9] sobre programacao nao-linear. Para problemas de
minimizacao de funcoes, os metodos quasi-Newton diferem do metodo de Newton no
sentido que os primeiros nao calculam a matriz Hessiana 2 f (xk ) a cada iterando xk .
Em vez disso, os metodos quasi-Newton utilizam uma aproximacao Bk de 2 fk que e
atualizada com base na seq
uencia de pares (x0 , f0 ), . . . , (xk , fk ). Aqueles interessados
em metodos quasi-Newton e os que desejam resolver problemas de grande porte devem
obrigatoriamente ler o survey de Dennis e More [16]. Este artigo apresenta de forma
clara e sucinta as regras de atualizacao de Bk propostas por: Broyden (B); Davidon,
Fletcher e Powell (DFP); e Broyden, Fletcher, Goldfarb e Shanno (BFGS).
3.10
Exerccios
log(x21 + 2x22 + 1)
EX 3.5: Embora as aplicacoes do metodo de Newton em Calculo sejam bastante antigas, so recentemente descobriu-se que sua extensao para o plano complexo pode
gerar fractais. Em 1879, Caley formulou a seguinte questao: dado um ponto inicial z0 , para qual das razes de uma funcao complexa f (z) o metodo de Newton
converge?
Seja f (x) = z 3 + 2. Encontre as tres razes desta funcao. Produza uma figura
seguindo o procedimento abaixo:
1) Se restrinja ao quadrado [2, 2] [2, 2] do plano complexo.
2) Divida esta regiao do plano em pequenos subquadrados.
2) f (x, y) = (y x2 )2 x2
3) f (x, y) = 21 x2 + x cos(y)
EX 3.8 [9]: Desejamos encontrar o ponto x em um plano cuja soma das distancias
ponderadas a partir de um conjunto de pontos y1 , . . . , ym seja minimizada. Matematicamente, o problema e:
Minimize
x Rn
m
P
k=1
wk kx yk k
onde w1 , . . . , wm sao escalares positivos. Mostre que existe um otimo global para
o problema e que este pode ser realizado atraves do modelo mecanico dado na
Fig. 3.3. Esta solucao otima global e u
nica?
y4
y2
x
y1
y3
w4
w2
w1
w3
Figura 3.3: Modelo mecanico. O modelo consiste de um tabuleiro com um furo perfurado a cada ponto yk . Atraves da cada buraco, um fio e passado com o correspondente
peso wk preso a sua ponta. Os outros extremos dos fios sao amarrados com um no. Na
ausencia de friccao e fios entrelacados, as forcas atingem um equilbrio no ponto do no
quando este esta localizado na solucao otima x .
Captulo 4
Otimizac
ao N
ao-Diferenci
avel
Nos captulos anteriores nos concentramos nos problemas de encontrar um otimo
local de uma funcao f (x) e de resolver um sistema de equacoes nao-lineares c(x) = 0.
Em ambas as situacoes assumimos que as funcoes f e c sao contnuas e diferenciaveis.
Isto permitiu utilizar aproximacoes de primeira e segunda ordem com base na expansao
de Taylor, bem como o desenvolvimento de algoritmos que fazem uso do gradiente (no
caso de minizacao de f (x)) ou da matriz Jacobiana (no caso de encontrar raiz para c(x)).
Aqui vamos tratar o problema de encontrar um mnimo para uma funcao f (x) qualquer
que pode ser descontnua e nao diferenciavel. Logo, metodos inspirados na expansao
de Taylor nao sao aplicaveis. Apresentaremos de forma sucinta o Algoritmo Genetico
e Simulated Annealing que podem ser empregados para resolver tais problemas.
4.1
Otimizac
ao Black-Box
48
4. Otimizacao Nao-Diferenciavel
4.2
Algoritmo Gen
etico (AG)
4.2.1
Gen
etica e Evoluc
ao
A percepcao de que certas caractersticas sao hereditarias (i.e., transmitidas geneticamente) data de varias decadas passadas. A Teoria da Evolucao [14] e considerada
um dos maiores avancos cientficos ate esta data. Ela tem implicacoes em varias areas
naturais, cientficas e sociais como, por exemplo, Biologia, Matematica, Fsica e Sociologia.
4.2.2
Adapta
c
ao Biol
ogica
Estudaremos maneiras pelas quais o processo de evolucao natural pode ser empregado para se evoluir solucoes computacionais (Algoritmo Genetico) e ate mesmo
programas ou algoritmos (Programacao Genetica) para problemas interessantes.
A propriedade de adaptacao e descrita pela seguinte expressao:
Adaptac
ao = Variedade + Hereditariedade + Sele
c
ao
1) Variedade: Se refere a como os indivduos diferem uns dos outros, portanto so
pode ocorrer se existirem m
ultiplos indivduos, implicando em paralelismo e multiplicidade espacial (Populacao).
uma forma de persistencia temporal que se propaga de pai
2) Hereditariedade: E
para filho, um processo iterativo que se repete (Processo Iterativo).
3) Sele
c
ao Natural: A capacidade de reproducao e exponencial, extremamente
maior do que a quantidade de recursos disponveis (limitada). Surge, portanto,
a frase a sobrevivencia dos reprodutores. Levando em conta esta capacidade
exponencial, os seres humanos formam um grupo seleto de indivduos (Selecao).
A frase mais conhecida e a sobrevivencia do mais dotado. Entretanto, a teoria diz
que o que importa e a reproducao, o que implica a frase a sobrevivencia do reprodutor.
Segundo a teoria da evolucao, as caractersticas de uma pessoa (cor dos olhos, alta,
inteligente, etc.) so importam se aumentam a capacidade de reproducao. A evolucao
das especies pode levar a processos cclicos como, por exemplo, a dinamica entre leoes
e gazelas. Se os leoes se tornam mais perspicazes ao cacarem gazelas, entao as gazelas
sobreviventes tendem a ser mais rapidas, que por sua vez vao gerar descendentes mais
ageis, dificultando a caca dos leoes.
4. Otimizacao Nao-Diferenciavel
4.2.3
49
4.2.4
50
4. Otimizacao Nao-Diferenciavel
O problema de otimizacao a ser resolvido e de maximizacao, em vez de minimizacao. Para transformar minimizacao em maximizacao, basta substituir o
operador min por max e f (x) por f (x).
A funcao objetivo (f (x) se maximizacao, f (x) se minimizacao) sera utilizada
como funcao de aptidao (fitness function, fi ). Portanto, quanto mais alto o valor
da fitness function (fi ) melhor a qualidade da respectiva solucao. Assumiremos
tambem que a fitness function assume um valor nao negativo. Isso pode ser
contornado atraves da adicao de uma constante, i.e., seja m = M in{fi (x) : x
pertence `a populacao}, entao basta substituir fi (x) por fi (x) m para que a
fitness function se torne nao negativa.
4.2.5
Algoritmo Gen
etico em Detalhes
O algoritmo genetico pode ser descrito como uma funcao AG(fi , ft , p, r, m) cujos
parametros de entrada definem um problema a ser resolvido. Abaixo segue o pseudocodigo.
Algoritmo AG(fi , ft , p, r, m)
Parametros de entrada:
fi - fitness function
ft - fitness threshold (condicao de parada)
p - tamanho da populacao
r - fracao da populacao a ser substituda por cross-over
m - taxa de mutacao
Inicialize a populacao P : gere p solucoes candidatas aleatoriamente
Avalie os elemento de P : para cada x P , calcule fi (x)
Enquanto max{fi (x) : x P } < ft , execute:
Faca P P
Calcule fi (x) para todo x P
51
4. Otimizacao Nao-Diferenciavel
4.2.6
Operador Gen
etico Cross-Over
Os operadores geneticos determinam como os membros de uma populacao sao combinados, ou sofrem mutacao, de forma a gerar novos candidatos. Na Figura 4.1 e
ilustrado o operador cross-over de um ponto, enquanto que o operador cross-over de
dois pontos e exemplificado na Figura 4.2. O operador de cross-over uniforme consistem em utilizar uma mascara cujos bits sao selecionados aleatoriamente com probabilidade uniforme. Ja o operador de mutacao simplesmente troca um ou mais bits de um
cromossomo de 0 para 1 (ou vice-versa). Os bits sao escolhidos aleatoriamente com
probabilidade uniforme.
Cromossomos pais
Filhos
11101001000
11101010101
M
ascara
11111000000
00001010101
00001001000
Cromossomos pais
Filhos
11101001000
00101000101
M
ascara
00111110000
00001010101
11001011000
4.2.7
Exemplo de Aplicac
ao
52
4. Otimizacao Nao-Diferenciavel
4.2.8
Quest
oes Pr
aticas
4.2.9
Schema Theorem
53
4. Otimizacao Nao-Diferenciavel
Populacao Inicial
Populacao Resultante
u(s, t)
m(s, t)
fm (t)
onde: m(s, t) e o n
umero de indivduos em Pt (t-esima populacao) que pertencam ao
schema s; fm (t) e o valor medio da funcao de aptidao dos elementos de Pt ; e u(s, t) e
o valor medio da funcao de aptidao dos elementos de Pt que pertencam ao schema s.
Se vemos o AG como um processo virtual paralelo que i) executa uma busca atraves
do espaco de possveis schemas e, ao mesmo tempo, ii) executa uma busca atraves do
espaco de indivduos, entao a equacao do Teorema 4.1 indica que schemas de maior
aptidao crescerao em influencia com o passar das geracoes.
Teorema 4.2 Considerando o operador cross-over de um ponto e mutacao, tem-se
pc d(s)
u(s, t)
m(s, t) 1
[1 pm ]o(s)
E[m(s, t + 1)] >
fm (t)
l1
onde:
1
54
4. Otimizacao Nao-Diferenciavel
4.3
Simulated Annealing
Simulated Annealing (SA) e um metodo de otimizacao bastante geral (como o Algoritmo Genetico) que tem demonstrado excelente desempenho em problemas que apresentam um n
umero muito grande de otimos locais. Uma das aplicacoes mais bemsucedidas de SA e o problema de localizacao de componentes eletronicos em microprocessadores, no qual procura-se minimizar o comprimento total das conexoes. A Figura
4.4 ilustra o problema de localizacao e empacotamento de circuitos eletronicos.
CI1
CI2
CI3
CI5
CI4
CI6
4.3.1
O Processo de Annealing
O processo de annealing se refere ao metodo por meio do qual lquidos (ou metais) se
resfriam e cristalizam. Aquecemos a substancia ate uma temperatura muito alta, depois
resfriamos lentamente. Na natureza, se o resfriamento e bastante lento, a substancia
55
4. Otimizacao Nao-Diferenciavel
Alta Temperatura
Baixa Temperatura
Cristalizacao
P r(E) e T
(4.1)
4.3.2
O Algoritmo de Metropolis
56
4. Otimizacao Nao-Diferenciavel
Energia do Sistema
1 / Temperatura
Figura 4.6: Comportamento tpico do nvel de energia conforme processo de annealing.
uma descricao das possveis configuracoes do sistema;
um gerador randomico de perturbacoes do sistema; essas perturbacoes definem
as opcoes de configuracao;
uma funcao objetivo (analoga a` energia) cuja minimizacao desejamos executar; e
um parametro de controle T (analogo `a temperatura) e um procedimento de
annealing que descreve a maneira pela qual T decresce.
Probabilidade
E2 E1
Figura 4.7: Probabilidade de transicao com a queda de temperatura.
57
4. Otimizacao Nao-Diferenciavel
4.3.3
8
Cidade
Rota
4
3
6
5
9
7
2
N
1
X
n=1
58
4. Otimizacao Nao-Diferenciavel
o valor de E
Defina Tmin como a temperatura mnima
Seja s um elemento qualquer de S
Seja sbest = s a melhor solucao encontrada
Faca k = 0
Equanto Tk > Tmin faca
Repita para n = 1 ate 100N
Obtenha uma solucao alternativa s perturbando s
Se E[s ] < E[s] entao
s s
Se E[s] < E[sbest ] entao
sbest s
Fim-se
Caso contrario
E[s ]E[s]
T
4.4
Refer
encias
Os livros de Davis [15] e de Goldberg [24] trazem uma discussao ampla da filosofia
por tras dos Algoritmos Geneticos, apresentam elementos teoricos e aplicacoes. Tais
59
4. Otimizacao Nao-Diferenciavel
4.5
Exerccios
60
4. Otimizacao Nao-Diferenciavel
O problema da bi-particao
EX 4.4: Suponha que os pesos das arestas do grafo G = (V, E) sao variaveis aleatorias
independentes: o peso da aresta (u, v) e uma variavel aleatoria w(u, v) com distribuicao, media e varianca conhecidos que independem dos pesos das demais
arestas. Em tal situacao, como que se poderia resolver os problemas da biparticao maxima e mnima se o objetivo e maximizar ou minimizar o valor esperado E[w(S, V S)] respectivamente?
Captulo 5
Treinamento de Redes Neurais: Um
Problema de Otimizac
ao
Redes Neurais Artificiais (RNs) constituem metodos robustos de aproximacao
de funcoes de valores vetoriais, reais ou discretos. Em outras palavras, as redes neurais toleram erros nos pares de treinamento. Uma rede neural pode ser vista como um
aproximador universal ou, mais precisamente, como um interpolador universal uma vez
que elas nao sao capazes de inferir informacoes que estao fora do conjunto de treinamento. Dado um conjunto qualquer de treinamento podemos, em princpio, construir
uma rede neural que produz os mesmos valores da funcao para os pares entrada-sada
de treinamento. O algoritmo de treinamento de propagacao reversa (back-propagation)
nada mais e do que uma implementacao especializada do algoritmo de descenso, sendo
objeto de estudo neste captulo.
Como o proprio nome sugere, redes neurais sao inspiradas em sistemas biologicos de
aprendizagem que tipicamente consistem de redes complexas de unidades elementares,
conforme a Figura 5.1. Na figura, a primeira camada recebe os sinais de entrada, que
sao processados e transformados em novos sinais a serem transmitidos `as unidades
da camada intermediaria, que por sua vez processa os sinais de entrada e os envia `a
camada de sada.
Entrada
Sada
62
neuronios (100 bilhoes de neuronios), cada um conectado com cerca de 104 neuronios.
O tempo de resposta de um neuronio e aproximadamente 103 segundos, muito mais
lento do que um computador, cujas portas logicas apresentam um tempo de resposta
da ordem de 1010 segundos. O cerebro humano reconhece uma figura em cerca de 101
segundos. Dado o tempo relativamente lento de resposta do neuronio, em comparacao
com a velocidade de processamento de informacao, podemos concluir que o sistema de
aprendizagem biologico e extremamente paralelo e distribudo, todavia nao possui um
n
umero muito grande de camadas.
Existem, entretanto, incompatibilidades entre as redes neurais artificiais e as unidades do sistema biologico de aprendizagem. A sada de uma unidade artificial e um
valor constante, enquanto que as unidades biologicas emitem uma serie complexa de
sinais, consistindo em pulsos com varias freq
uencias.
5.1
Elementos B
asicos das Redes Neurais
Entrada
x1
w1
x2
Sada
y1
Peso das sinapses
S
wn
xn
y2
w2
f (S)
S=
n
P
wi x i
i=1
ym
5.1.1
O Problema de Treinamento
Dados: uma rede neural (a sua topologia), ou seja, um grafo G = (V, E);
exemplos de treinamento, ou seja, uma lista de pares de entrada e sada desejados
D = {(x1 , y 1 ), . . . , (xK , y K )}.
63
Camadas Intermediarias
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
000000
111111
Entrada111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
Sada
5.1.2
k=1
5.1.3
Em geral, as redes neurais sao recomendadas para problemas de aproximacao complexos tipicamente de natureza nao-linear e sujeitos a rudos, tais como dados e sinais
64
Esquerda
Em frente
Direita
Comandos
Rede Neural
Imagem de
Entrada
65
5.2
Entrada
x0
Sada
y1 = sign(wT x)
w0
Peso das sinapses
x1
w1
y2
Threshold
S
S=
xn
n
P
wi x i
i=0
wn
ym
Figura 5.5: Perceptron.
5.2.1
Treinando um Perceptron
k=1
66
x2
x2
+
+ +
+
+
+
+
+
+
+
+
x1
x1
67
Fim-Repita
Uma propriedade interessante do algoritmo acima e que ele converge sempre que o
conjunto de treinamento for linearmente separavel [37].
5.3
Regra Delta
Um dos obstaculos ao uso do perceptron e a possibilidade de falha quando os exemplos de treinamento nao sao linearmente separaveis. A regra delta supera esta dificuldade, propiciando a concepcao de um algoritmo que converge para a melhor aproximacao linear da relacao entre entrada e sada (a funcao entrada-sada desconhecida).
Em sntese, a regra delta consiste em substituir a sada o(x) = sign(wT x) pela sada
o(x) = wT x, i.e., simplesmente eliminamos a funcao sinal deixando a funcao de sada
o uma funcao linear e diferenciavel. A unidade delta e ilustrada na Figura 5.7.
x0
Entrada
w0
Sada
y1 = w T x
x1 w 1
f (S) = S
xn
S=
wn
n
P
wi x i
i=0
ym = w T x
5.3.1
1
2
M
P
k=1
w T xk t k
2
68
E
2
=
w T xk t k
wj
wj 2 k=1
=
=
M
X
k=1
M
X
k=1
w T xk t k
w T xk t k
wj
wT xk tk xkj
Note que E pode ser convenientemente calculado em termos dos valores das sadas
para as diferentes entradas, wT xk tk , e o proprio valor da k-esima entrada xk . Se
utilizarmos um algoritmo de descenso para resolver o problema, entao dada uma
solucao candidata wl , o algoritmo de descenso busca a solucao alternativa wl+1 =
wl l E(wl ), sendo l a solucao (aproximada) do problema:
Minimize fl () = E wl l E(wl )
R
Sujeito a : > 0
A capacidade representacional de uma rede com m
ultiplas camadas de unidades lineares e superior `a capacidade de uma unidade linear? Nao, pois uma composicao
linear de funcoes lineares continua sendo uma funcao linear. Assim, uma rede neural
multi-camada de unidades delta nao e mais representativa do que o espaco das funcoes
lineares.
5.4
A Unidade Sigmoid
Objetivando contornar as limitacoes da unidade delta e, ao mesmo tempo, incorporar o poder representacional de uma rede de perceptrons, foi proposto a aproximacao
da funcao threshold com uma funcao diferenciavel. Uma funcao com tais propriedades
e a funcao sigmoid (x), cujo comportamento e ilustrado na Figura 5.8.
Dados i) um grafo G = (V, A) representando uma rede com m
ultiplas camadas, cujas
unidades de processamento neural sao do tipo sigmoid, e ii) uma lista com exemplos de
treinamento (x1 , t1 ), . . . , (xM , tM ), onde xk Rn+1 e tk Rm , podemos utilizar o algoritmo de propagacao reversa para treinar a rede. (Lembramos que xk = [xk0 , xk1 , . . . , xkn ],
wk = [w0k , w1k , . . . , wnk ] e xk0 = 1.) Este algoritmo consiste em um algoritmo de descenso
que objetiva minimizar o erro entre as sadas da rede e os valores desejados. Em
programacao matematica, este problema pode ser especificado como:
P : Minimize E(w) =
w Rr
1
2
M
P
P
oj (xk ) tk
2
k=1 jSaida
69
1
(x) =
1
1+ex
1
2
x
Figura 5.8: Funcao sigmoid.
Redes multi-camada com unidades sigmoid podem representar funcoes nao lineares
de elevada complexidade. Elas podem ser utilizadas em reconhecimento de voz, identificacao e modelagem de processos nao-lineares, e predicao de grandezas economicas.
Na Figura 5.9 e ilustrado um sistema neural para reconhecimento de palavras que toma
como entrada dois sinais com a intensidade de duas freq
uencias.
head
whod hood
hid
F2 (Hz)
had
heed
head
hid
hem
whod
F1
F2
hud
hood
heard
F1 (Hz)
5.5
Refer
encias
70
Uma abordagem unificada de Redes Neurais com enfoque em modelagem e sistemas de controle aparece no artigo de Hagan e Demuth [26]. Este artigo propoe uma
modelagem generica de redes tipo perceptron multicamadas, introduzindo conceitos
fundamentais, discutindo o emprego de redes Neurais como aproximadores universais
e descrevendo um algoritmo de treinamento tipo back-propagation. Por fim os autores
fazem uma breve apresentacao dos modelos de controladores baseados em Redes Neurais. Para um aprofundamento maior das abordagens de controle, recomendamos os
seguintes artigos de revisao: [29], [6], [2].
5.6
Exerccios
oj = (netj ) =
1
1 + enetj
Tarefas
71
x1
w15
7
5
y1
x2
y2
x3
y3
10
y4
x4
w46
72
Captulo 6
Programac
ao Linear
A programacao linear teve sua incepcao nos anos 30 e foi impulsionada nos anos
40 com o desenvolvimento do algoritmo Simplex por George Dantzig. Aplicacoes em
engenharia, ciencia da computacao, economia e matematica sao in
umeras. Alguns
pesquisadores consideram que os algoritmos de programacao linear sao os mais empregados na ciencia da computacao. Existem algoritmos que sao versoes especializadas do
algoritmo Simplex como, por exemplo, o algoritmo Simplex para problemas de fluxo
em redes. Em 1979, Khachiyan propos o primeiro algoritmo de tempo polinomial para
programacao linear. Este algoritmo, conhecido por elipsoide, nao teve sucesso pratico
em virtude do tamanho das matrizes geradas, pela necessidade de precisao numerica
acentuada e em decorrencia de instabilidade numerica. O algoritmo elipsoide tem conseq
uencias relevantes na programacao inteira e na solucao de problemas lineares com
um n
umero exponencial de restricoes1 . Mais recentemente, em 1984, Karmakar [30]
desenvolveu um algoritmo de ponto-interior com tempo polinomial e potencial para
resolver instancia praticas. Surge entao uma area intensa de pesquisa que se alastra
ate os dias atuais: algoritmos de ponto-interior para programacao linear, programacao
quadratica e outros problemas. Apesar do tempo polinomial dos algoritmos de pontointerior, o algoritmo Simplex continua sendo muito empregado, em parte porque ele
ainda e mais eficiente em uma gama consideravel de problemas e e tambem em funcao
de suas aplicacoes em programacao inteira.
Os assuntos tratados neste captulo sao uma compilacao de topicos dos textos de
Chvatal [11] e Vanderbei [42]. A Secao 6.1 ilustra uma aplicacao de programacao
linear e o conceito de problema dual. A Secao 6.2 apresenta a formulacao geral do
problema de programacao linear, enquanto a Secao 6.3 aborda o algoritmo Simplex por
meio de dicionarios. A Secao 6.4 trata da teoria da dualidade em programacao linear,
apresentando conceitos gerais, os teoremas fraco e forte da dualidade, e o teorema da
folga complementar. Por fim, a Secao 6.5 formaliza o algoritmo Simplex em notacao
compacta matricial.
1
74
6. Programacao Linear
6.1
6.1.1
Gerente de Produc
ao Otimista
n
P
c j xj
j=1
Sujeito a :
xj > 0
n
P
aij xj 6 bi
j = 1, . . . , n
(6.1)
i = 1, . . . , m
j=1
6.1.2
Gerente de Produc
ao Pessimista
Nesta situacao o gerente assume a posicao de contador tendo como tarefa avaliar o
preco de venda de cada materia-prima. Em outras palavras, a unidade de manufatura
nao produzira e passara a se comportar como um deposito. A unidade deve estar
preparada para vender a materia-prima. Assim seja wi o valor unitario para vender a
mat
Peria-prima i, a ser definido pelo gerente. O valor total da venda de todo o estoque
e m
e encontrar o valor mais baixo para venda que nao
i=1 bi wi . O objetivo do gerente
incorra perdas financeiras. Portanto, duas restricoes sao:
wi > i , i = 1, . . . , m, o valor do item i deve ser maior ou igual ao valor de
mercado; e
Pm
75
6. Programacao Linear
P1 : Minimize
bi w i
i=1
Sujeito a :
w i > i
m
P
aij wi > j
i = 1, . . . , m
j = 1, . . . , n
i=1
(6.2)
(6.3)
m
P
bi yi +
m
P
b i i
i=1
i=1
Sujeito a :
m
P
aij yi +
m
P
aij i > j
j = 1, . . . , n
i=1
i=1
yi > 0
i = 1, . . . , m
Uma vez que bi i e uma constante para todo i, o problema pode ser expresso na forma
abaixo:
m
P
bi yi
P3 : Minimize
i=1
Sujeito a :
m
P
aij yi > cj
j = 1, . . . , n
i=1
yi > 0
i = 1, . . . , m
Veremos na seq
uencia que P3 e o problema dual de P0 .
6.2
O Problema de Programac
ao Linear
Programacao linear (PL) envolve a escolha de valores para variaveis de forma otima.
As variaveis {xj } sao ditas variaveis de decisao. O objetivo em PL e sempre maximizar
(minimizar) uma funcao linear:
Minimize c1 x1 + c2 x2 + . . . + cn xn
sob restricoes da forma:
6
= b
a1 x 1 + a2 x 2 + . . . + a n x n
>
76
6. Programacao Linear
a1 x 1 + a2 x 2 + . . . + a n x n s = b
s>0
A variavel s e dita variavel de folga (slack variable), ja que seu valor corresponde `a
quantidade de recurso b nao utilizada. Podemos tambem converter uma restricao do
tipo = em restricoes equivalentes do tipo 6:
a1 x 1 + a2 x 2 + . . . + an x n 6 b
a1 x 1 + a2 x 2 + . . . + a n x n = b
a1 x 1 + a2 x 2 + . . . + an x n > b
Podemos ainda converter variaveis irrestritas em sinal em variaveis nao negativas:
x = x+ x
x+ > 0
xR
x >0
Portanto, podemos assumir que qualquer problema em PL pode ser especificado (reexpresso) na forma abaixo:
P L : Maximize c1 x1 + c2 x2 + . . . + cn xn
Sujeito a :
a1,1 x1 + a1,2 x2 + . . . + a1,n xn
a2,1 x1 + a2,2 x2 + . . . + a2,n xn
..
.
6 b1
6 b2
.
6 ..
77
6. Programacao Linear
x2
5
{x : x1 + x2 > 4.5}
4
3
2
{x : x1 + x2 6 1}
1
2
x1
5
x1 + x2 = 4.5
x1 + x2 = 1
3
6.3
Algoritmo Simplex
O algoritmo Simplex, proposto por George Dantzig nos anos 40, constituiu um
grande avanco cientfico-tecnologico e deu grande impulso ao campo da pesquisa operacional que estava dando os primeiros passos. O nome do algoritmo tem suas razes
no conceito de simplex: um plano que corta os vetores unitarios. O algoritmo como
e conhecido atualmente difere da versao original e tem servido de base para versoes
estendidas para tarefas especficas como, por exemplo, o metodo dual Simplex que e
amplamente adotado em implementacoes branch-and-bound e branch-and-cut para resolucao de problemas inteiros, e o metodo Simplex adaptado para o problema de fluxo
em redes de custo mnimo.
O algoritmo Simplex pode ser visto como um processo combinatorio que busca
encontrar as colunas da matriz de restricoes que induzem uma base e, portanto, uma
solucao basica otima. A dificuldade advem do fato que tipicamente existe um n
umero
78
6. Programacao Linear
x2
5
4
2x1 + x2 = 1
3
2
Regiao Factvel
{x : 2x1 + x2 6 1
x1 2x2 6 2}
1
2
3
x1
x1 2x2 = 2
Figura 6.2: Exemplo de problema ilimitado. Podemos avancar dentro da regiao factvel
de maneira a crescer o valor da funcao objetivo sem limites. Por exemplo, ao longo
da direcao (x1 , 0) podemos avancar sem limites, fazendo o valor da funcao objetivo
aumentar.
exponencial de possveis combinacoes de colunas, gerando portando um desempenho de
pior caso de ordem exponencial. Apesar deste aspecto desfavoravel, o algoritmo Simplex
e eficaz e para muitas instancias continua sendo o algoritmo mais rapido, mesmo quando
comparado com algoritmos de ponto-interior que tem desempenho polinomial no pior
caso.
No que segue apresentamos o algoritmo Simplex atraves de um exemplo.
seq
uencia daremos detalhes do algoritmo e trataremos aspectos de inicializacao.
6.3.1
Na
Exemplo
(6.4)
79
6. Programacao Linear
w1 = 5 2x1
w2 = 11 4x1
w3 = 8 3x1
x1 , x2 , x3 , w 1 , w 2 , w 3
3x2 x3
x2 2x3
4x2 2x3
>0
(6.5)
2.5
w1 = 5 2x1 > 0
x1 6 5/2 =
w2 = 11 4x1 > 0
x1 6 11/4 = 2.75
w3 = 8 3x1 > 0
x1 6 8/3 = 2.667
80
6. Programacao Linear
5
2
12 w1 23 x2 12 x3
w2 = 11 4 25 12 w1 23 x2 12 x3 x2 2x3
= 1 + 2w1 + 5x2
w3 = 8 3 25 12 w1 23 x2 12 x3 4x2 2x3
= 12 + 32 w1 + 21 x2 12 x3
(6.7)
= 5 25 21 w1 32 x2 12 x3 + 4x2 + 3x3
25 w1 27 x2 + 12 x3
= 25
2
A solucao induzida pelo dicionario (6.8) e y 1 = (x11 , x12 , x13 , w11 , w21 , w31 ) =
( 52 , 0, 0, 0, 1, 12 ) cujo valor da funcao objetivo e = 25
. Neste dicionario, as
2
variaveis x1 , w2 , e w3 sao ditas variaveis basicas tal que o conjunto B =
{x1 , w2 , w3 } contem as variaveis basicas. As demais variaveis sao ditas nao
basicas, sendo o conjunto N = {x2 , x3 , w1 } o conjunto das variaveis nao basicas.
Passo 2: A solucao corrente nao e otima! Note que um pequeno acrescimo no valor
de x3 invariavelmente aumenta o valor de . Mas nao podemos aumentar o valor
de x3 ilimitadamente uma vez que isto poderia tornar a solucao infactvel (outras
variaveis poderiam assumir valores negativos). Para que a solucao resultante seja
factvel, as desigualdades abaixo devem ser respeitadas:
x1 = 52 12 x3 > 0
x3 6 5
1
1
w 3 = 2 2 x3 > 0
x3 6 1
Portanto, w3 deve sair da base para que a variavel x3 possa entrar na base sem
violar as restricoes. Apos substituirmos a equacao x3 = 1 + 3w1 + x2 2w3 nas
equacoes do dicionario (6.8), obtemos:
x1 = 25 21 w1 32 x2 12 (1 + 3w1 + x2 2w3 )
= 2 2w1 2x2 + w3
25 w1 72 x2 + 12 (1 + 3w1 + x2 2w3 )
= 25
2
= 13 w1 3x2 w3
(6.9)
81
6. Programacao Linear
x1
w2
x3
= 13 w1 3x2 w3
= 2 2w1 2x2 +w3
= 1 +2w1 +5x2
= 1 +3w1 +x2 2w3
(6.10)
6.3.2
Nesta secao generalizamos os passos ilustrados acima para o caso geral do problema
de programacao linear. Considere a forma geral do problema de programacao linear:
Maximize
n
P
c j xj
j=1
Sujeito a :
n
P
(6.11)
aij xj 6 bi
i = 1, . . . , m
j=1
xj > 0
j = 1, . . . , n
Inicializa
c
ao: Obter Dicion
ario Inicial
Inicialmente e necessario introduzir variaveis de folga na formulacao (6.11) como
segue:
n
P
c j xj
=
j=1
(6.12)
n
P
aij xj
i = 1, . . . , m
w i = bi
j=1
n
P
c j xj
j=1
xn+i = bi
n
P
(6.13)
aij xj
i = 1, . . . , m
j=1
82
6. Programacao Linear
83
6. Programacao Linear
6.3.3
Inicializac
ao
Ate este momento, consideramos problemas cujos bi s sao todos nao negativos. Isso
permitia a obtencao de uma solucao viavel fazendo xj = 0 para j = 1, . . . , n e xi+n = bi
para i = 1, . . . , m. O que devemos fazer se algum bi e negativo? Contornamos esta
dificuldade ao resolvermos um problema auxiliar, cuja solucao inicial e viavel e cuja
solucao otima e viavel para o problema original, isto se este e factvel. O problema
auxiliar e expresso como segue:
PA : Maximize x0
Sujeito a :
n
P
aij xj x0 6 bi i = 1, . . . , m
(6.15)
j=1
xj > 0
j = 0, . . . , n
Nao e difcil de ver que o problema (6.11) possui uma solucao factvel se e somente
se a solucao otima do problema auxiliar (6.15) tem valor nulo como valor otimo da
facil de se obter uma solucao para (6.15): basta definir xj = 0 para
funcao objetivo. E
j = 1, . . . , n e tomar um valor suficientemente grande para x0 .
Exemplo
Aqui ilustramos o emprego do problema auxiliar na busca de uma solucao factvel
para um problema de programacao linear.
Problema Original: Considere como problema de programacao linear a formulacao:
Maximize 2x1 x2
Sujeito a :
x1 + x2 6 1
x1 2x2 6 2
x2 6
1
x1 , x2 > 0
Problema Auxiliar: De acordo com os desenvolvimentos anteriores, o problema auxiliar toma a forma:
Maximize x0
Sujeito a :
x1 + x2 x0 6 1
x1 2x2 x0 6 2
x2 x0 6
1
x0 , x1 , x2 > 0
Dicion
ario Inicial: Tomando o dicionario inicial como se os elementos bi s fossem
todos nao negativos, obtemos:
Max
w1
w2
w3
=
= 1 +x1 x2
= 2 +x1 +2x2
=
1
x2
x0
+x0
+x0
+x0
84
6. Programacao Linear
= 2 x1 2x2 + w2
w1 = 1 + x1 x2 + (2 x1 2x2 + w2 )
= 1 3x2 + w2
(6.16)
w 3 = 1 x2 + x0
= 1 x2 + (2 x1 2x2 + w2 )
= 3 x1 3x2 + w2
Executando o pivoteamento conforme
abaixo:
Max = 2
w1 = 1
x0 = 2
w3 = 3
w2
+w2
+w2
+w2
=
=
=
=
0 x0
1
3x2 +w2
2 x0 2x2 +w2
1 +x0 x2
Note que o dicionario acima e otimo para o problema auxiliar e, mais ainda, a
solucao candidata x1 = 2, x2 = 0, w1 = 1, w2 = 0 e w3 = 1 e factvel para o
problema original dado que = 0.
Obtendo Dicion
ario Factvel: Eliminando a coluna de x0 e introduzindo a funcao
objetivo inicial, obtemos um dicionario factvel para o problema original:
Max
w1
x1
w3
=
=
=
=
4
1
2
1
+3x2 2w2
3x2 +w2
2x2 +w2
x2
= 3 w1
= 31
w31
= 43
+ 23 w1
2
+ w31
= 3
w2
+ w32
+ 31 w2
w32
4
3
85
6. Programacao Linear
6.4
Dualidade
6.4.1
Motivac
ao
(6.17)
Qualquer solucao factvel para P induz um limite inferior. Por exemplo, x = (1, 0, 0)
nos diz que o valor otimo da funcao objetivo > 4. Usando a solucao x = (0, 0, 3)
descobrimos que > 9. Quao proximo do otimo estao estes limites inferiores? Vamos
multiplicar a primeira restricao de (6.17) por 2, multiplicar a segunda restricao por 3,
e depois adiciona-las como segue:
2(x1 + 4x2 )
6 2(1)
3(3x1 x2 + x3 ) 6 3(3)
11x1 + 5x2 + 3x3 6 11
Note que 4x1 + x2 + 3x3 6 11x1 + 5x2 + 3x3 6 11, pois xj > 0. Assim conclumos que
9 6 6 11. Para obtermos limites superiores mais apertados, utilizamos o mesmo procedimento mas desta vez com variaveis em vez de n
umeros especficos. Multiplicamos
as restricoes por duas variaveis nao negativas:
y1 (x1 + 4x2 )
6 y1
y2 (3x1 x2 + x3 )
6 3y2
(y1 + 3y2 )x1 + (4y1 y2 )x2 + y2 x3 6 y1 + 3y2
Agora, estipulamos que:
y1 + 3y2
4y1 y2
y2
y1 , y2
>
>
>
>
4
1
3
0
(6.18)
Valores para (y1 , y2 ) satisfazendo as desigualdades (6.18) nos levam `as seguintes desigualdades:
= 4x1 + x2 + 3x3
6 (y1 + 3y2 )x1 + (4y1 y2 )x2 + y2 x3
6 y1 + 3y2
86
6. Programacao Linear
Dessa maneira obtemos o limite superior (y1 + 3y2 ) para . Nossa tarefa e minimizar
este limite superior atraves da solucao do problema de programacao linear que segue:
D : Minimize y1 + 3y2
Sujeito a :
y1 + 3y2
4y1 y2
y2
y1 , y2
6.4.2
>
>
>
>
4
1
3
0
O Problema Dual
Aqui desenvolvemos a maneira atraves da qual o problema dual pode ser obtido a
partir do problema primal. Primeiramente, considere o problema primal que segue:
n
P
P : Maximize
c j xj
j=1
Sujeito a :
n
P
aij xj 6 bi
i = 1, . . . , m
> 0
j = 1, . . . , n
aij yi > cj
j = 1, . . . , n
> 0
i = 1, . . . , m
j=1
xj
O problema dual associado a P e:
m
P
D : Minimize
bi yi
i=1
Sujeito a :
m
P
i=1
yi
Queremos mostrar que o dual do dual e o problema primal. Podemos expressar o dual
como segue:
D : Maximize
Sujeito a :
m
P
bi yi
i=1
m
P
i=1
aij yi 6 cj
yi
> 0
j = 1, . . . , n
i = 1, . . . , m
n
P
j=1
Sujeito a :
n
P
j=1
xj
cj xj
aij xj > bi
> 0
i = 1, . . . , m
j = 1, . . . , n
87
6. Programacao Linear
DD : Maximize
c j xj
j=1
Sujeito a :
n
P
aij xj 6 bi
i = 1, . . . , m
> 0
j = 1, . . . , n
j=1
xj
6.4.3
Teorema 6.1 (Dualidade Fraca) Seja x = (x1 . . . xn )T uma solucao primal factvel e
y = (y1 . . . ym )T uma solucao dual factvel. Entao:
cT x =
n
X
c j xj 6
j=1
Prova:
n
P
c j xj 6
n
P
m
P
i=1
m
P
j=1
j=1
j=1
=
6
m
P
m
X
i=1
bi yi
pois
n
P
m
P
aij yi > cj
i=1
aij xj 6 bi e yi > 0
j=1
i=1
bi yi = bT y
T
Se obtemos uma solucao primal x = (x1 . . . xn )T e uma dual y = (y1 . . . ym
)
ambas factveis, tal que
n
m
X
X
c j xj =
bi yi
j=1
i=1
entao podemos concluir que ambas as solucoes sao otimas para seus respectivos problemas. Para o problema exemplo dado por (6.17) as solucoes otimas sao x =
(0 0.25 3.25)T e y = (1 3)T .
6.4.4
O fato de que em programacao linear nao ha folga entre o valor otimo da funcao
objetivo dos problemas primal e dual e conhecido como Teorema Forte da Dualidade.
Teorema 6.2 (Dualidade Forte) Se o problema primal admite uma solucao otima x
e o dual uma solucao
otima y , ent
ao:
c T x =
n
X
j=1
cj xj =
m
X
i=1
bi yi = bT y .
88
6. Programacao Linear
Ilustra
c
ao do Teorema Forte
Abaixo seguem os problemas primal e dual.
P : Max 4x1 + x2 + 3x3
S.a :
x1 + 4x2
6 1
3x1 x2 + x3 6 3
x1 , x2 , x3
> 0
D : Min y1 + 3y2
S.a :
y1 + 3y2
4y1 y2
y2
y1 , y2
>
4
>
1
>
3
>0
Max
z1
z2
z3
=
=
=
=
0
y1
4 +y1
1 +4y1
3
3y2
+3y2
y2
+y2
0 1 3
0
4
1
3
4
1
3
0
D=
P = 1 1 4
1
4 1
3 3
1 1
3
0
1
Max
z1
z2
y2
=
=
=
=
9 y1
5
+y1
4 +4y1
3
3z3
+3z3
z3
+z3
=
=
=
=
10 0.25z2
6
+ 41 z2
+1 + 14 z2
3
3.25z3
+3.25z3
+ 14 z3
+z3
89
6. Programacao Linear
6.4.5
Folga Complementar
A folga complementar estabelece uma relacao algebrica entre a solucao primal otima
e a solucao dual otima. Tais condicoes podem ser obtidas a partir das condicoes de otimamlidade de primeira ordem para problemas nao-lineares (the Karush-Kuhn-Tucker
conditions), a serem discutidas mais `a frente. Para dar uma ideia da importancia de
tais condicoes, os algoritmos ponto-interior primal-dual [45] em essencia buscam valores
para (x, y, w, z) R2(n+m) tal que (x, w) seja primal factvel, (y, z) seja dual factvel e
(x, y, w, z) satisfaca as condicoes de folga complementar.
Teorema 6.3 Suponha que x = (x1 . . . xn )T e uma solucao primal factvel e que
y = (y1 . . . yn )T e dual factvel. Seja w = (w1 . . . wm )T o vetor com as vari
aveis de
folga do primal e z = (z1 . . . zn )T o vetor com as vari
aveis de folga do dual. Entao x
e y s
ao solucoes
otimas para seus respectivos problemas se, e somente se,
xj zj = 0 para j = 1, . . . , n
(6.19)
yi wi = 0 para i = 1, . . . , m.
Fazendo X = diag(x1 , . . . , xn ), Z = diag(z1 , . . . , zn ), Y = diag(y1 , . . . , ym ) e W =
diag(w1 , . . . , wm ), as condicoes (6.19) podem ser expressas como:
XZe = 0
Y We = 0
onde e = (1 . . . 1)T e um vetor de dimensao apropriada com todas as entradas iguais
a 1. Portanto, (x, y, w, z) define solucoes primais e duais otimas se e somente se:
Ax + w
= b
= c
AT y z
XZe
= 0
(6.20)
Y
W
e
=
0
(x, y, w, z) > 0
Para o caso mais simples (mas igualmente geral), onde o problema primal so tem
restricoes de igualdade (Ax = b) enquanto o vetor de decisoes e nao nulo (x > 0), as
condicoes (6.20) assumem uma forma mais simples:
Ax
= b
T
A yz = c
(6.21)
= 0
XZe
(x, z)
> 0
90
6. Programacao Linear
Note que se nao fossem as restricoes x > 0 e as folgas duais z > 0, poderamos aplicar
o metodo de Newton. O caminho central C e um arco parametrizado por > 0, onde
um ponto (x , y , z ) C se resolver o sistema:
Ax
= b
T
A yz = c
(6.22)
XZe
=
(x, z)
> 0
6.5
Apos inserirmos variaveis de folga sempre que necessario, podemos assumir a seguinte formulacao do problema de programacao linear:
Maximize cT x
Sujeito a :
Ax = b
x
> 0
(6.23)
aij xj = bi
X
jB
aij xj +
aij xj = bi .
jN
91
6. Programacao Linear
basicas e xN , o vetor com as variaveis nao basicas. O problema (6.23) pode entao ser
expresso como:
Maximize cTB xB + cTN xN
Sujeito a :
(6.24)
BxB + N xN = b
x = (xB , xN ) > 0
x2
c
c
x(3) = x
x(2)
x(0)
x(1)
x1
Figura 6.3: Metodo simplex como um processo iterativo.
6.5.1
Dicion
ario em Forma Matricial
O dicionario tem a propriedade de que as variaveis basicas podem ser escritas como
uma funcao das variaveis nao basicas. Portanto,
BxB + N xN = b xB = B 1 b B 1 N xN .
(6.25)
(6.26)
92
6.6
6. Programacao Linear
Refer
encias
O material apresentado neste captulo foi compilado a partir dos textos de Chvatal [11] e Vanderbei [42], que sao excelentes referencias sobre programacao linear. A
segunda referencia e mais moderna, apresentando aplicacoes diversas, fazendo uma introducao `a programacao convexa e tambem discutindo algoritmos de ponto-interior.
Para um estudo mais aprofundado de metodos de ponto-interior recomendamos o livro
de Wright [45].
6.7
Exerccios
6
6
6
6
6
6
6
6
>
1
2
6
5
16
12
21
10
0
93
6. Programacao Linear
94
6. Programacao Linear
Captulo 7
Teoria dos Jogos
Situacoes onde os resultados dependem das decisoes de agentes independentes sao
comuns em engenharia, economia e ciencias humanas, entre outras. Em tais situacoes,
podemos estar interessados em formular um problema de decisao, simular o comportamento de um conjunto de entidades competitivas ou cooperativas, e ainda buscar uma
poltica de decisao que maximize os retornos. Com esse intuito, faremos uma breve introducao `a Teoria dos Jogos, apresentando alguns conceitos basicos e formalismos, mas
nos concentraremos em jogos matriciais onde o ganho de um agente invariavelmente
incorre prejuzos ao outro (finite two-person zero-sum games).
7.1
Introduc
ao
96
tomarei o t
unel. Isto e uma estrategia ou poltica de controle pois a decisao que sera
tomada depende de informacoes que nao estao sob controle do agente. Os resultados de
tal estrategia, apos as informacoes que nao podem ser antecipadas (condicoes climaticas
e condicoes de trafego) sao conhecidas, sao ditos acoes. De certa forma, uma estrategia
que nao depende de condicoes que nao podem ser antecipadas consiste de um conjunto
de acoes. No exemplo acima, as acoes sao seguir pelo t
unel ou seguir pela rodovia ao
longo do lago. Estrategias podem ser determinsticas, quando as acoes sao funcoes das
condicoes observadas (estado) ou estocasticas quando as acoes dependem das condicoes
mas sao tomadas probabilisticamente, podendo certas acoes ter mais ou menos probabilidade do que outras acoes alternativas. Ha jogos onde a estrategia otima deve ser
necessariamente estocastica. Um exemplo sera visto na parte de jogos matriciais na
seq
uencia.
A nocao de otimalidade tambem merece mencao. Para tanto, seja fm (x) a funcao
ganho que o m-esimo agente esta tentando maximizar, para m = 1, . . . , M . Observe
que fm depende tambem das decisoes de outros agentes. Surge portanto um jogo
dinamico. Seja x(k) o agregado das decisoes dos agentes no instante tk . Dado x(k), o
melhor curso de acao do agente m e uma decisao do seu conjunto reativo Rm (x(k)) no
ponto x(k), sendo este definido por:
Rm (x) = {xm : xm = argmaxym fm (x1 , . . . , xm1 , ym , xm+1 , . . . , xM )}
O conjunto reativo Rm (x) contem as solucoes otimas do problema de maximizar fm
sob a condicao que os demais agentes mantem fixas as suas decisoes. Logo, o agente m
implementa uma decisao xm (k + 1) Rm (x(k)) no instante tk+1 . Com todos os agentes
reagindo `as decisoes dos demais com acoes dos seus respectivos conjuntos reativos surge
um processo iterativo:
x(k + 1) = G(x(k))
(7.1)
onde G(x) = (G1 (x) . . . Gm (x))T e Gm (x(k)) Rm (x(k)) define a funcao reativa de
cada agente m = 1, . . . , M . Note que o processo iterativo (7.1) so pode ser estavel
quando nenhum agente tem incentivo para se desviar de suas decisoes correntes, o que
equivale a dizer que:
x(k + 1) = G(x(k)) x = G(x )
sendo x um ponto fixo. O ponto fixo x e um ponto estavel para agentes competitivos:
qualquer agente m que implementar uma solucao xm 6= xm estara incorrendo perdas a
si proprio. Tais pontos sao conhecidos por pontos Nash. Surge portanto a questao de
convergencia de processos iterativos descritos por (7.1). Nao e difcil mostrar que uma
condicao suficiente para convergencia e satisfeita quanto kG(x) G(y)k < kx yk para
alguma norma vetorial k k.
Em jogos com soma zero (zero-sum games), onde o ganho de um agente corresponde `a perda de outro agente, nao ha possibilidade para ganho m
utuo que permita
cooperacao, a menos que certos agentes sejam altrustas. Na proxima secao vamos
estudar polticas de decisao que induzem equilbrio em jogos sem possibilidade de cooperacao.
Em situacoes onde ha possibilidade de cooperacao, que levam dois ou mais agentes
a obterem ganhos maiores, o ponto Nash tipicamente induz ganhos inferiores. Os
pontos otimos sao conhecidos por solucoes Pareto. Um vetor de decisoes xP pertence
97
ao conjunto Pareto, denotado por P, se nao existe um vetor de decisoes x tal que
fm (x) > fm (xP ) para m = 1, . . . , M e fm (x) > fm (xP ) para algum m. Em outras
palavras, xP P se nao existe um conjunto de decisoes que induza ganhos melhores
do que os induzidos por xP para todos os agentes.
O restante do captulo se concentra em jogos matriciais, que sao mais simples e que
podem ser resolvidos por meio da programacao linear, o que consiste em encontrar os
pontos de equilbrio do jogo, ou seja, as estrategias para os jogadores que induzem um
ponto Nash.
7.2
Jogos Matriciais
7.2.1
Conforme matriz dada em (7.2), cada iteracao do jogo tem como resultado vitoria
para um dos agentes (e derrota para o outro agente) ou empate. Neste jogo, nenhum
agente possui uma estrategia determinstica vencedora: se um agente sempre escolhe
uma alternativa, entao o outro agente pode selecionar a opcao que o leva `a vitoria.
Portanto, os agentes devem randomizar suas estrategias mas, em virtude da simetria
do problema, cada agente deve selecionar uma das alternativas com probabilidade 1/3.
Por exemplo, se o agente linha seleciona papel com probabilidade 1/2 e escolhe pedra
e tesoura com probabilidade 1/4, entao se o agente coluna selecionar tesoura com
probabilidade 1 ele vencera em 50% das vezes, empatara em 25% das vezes e sera
derrotado em apenas 25% das vezes.
A=
7.2.2
P apel
T esoura
P edra
(7.2)
0
1 2
0
4
A = 3
5 6
0
(7.3)
Este jogo tem a propriedade de que qualquer estrategia fixa pode ser explorada pelo
agente oponente. Por exemplo, se o agente linha escolha a primeira linha em todas as
98
jogadas, entao o agente coluna pode escolher a segunda coluna obtendo um ganho de
1 unidade a cada iteracao. Novamente, os agentes devem randomizar suas estrategias.
Mas agora a probabilidade uniforme de 1/3 nao e mais otima. Alem disso, qual dos
agentes tem vantagem neste jogo? Note que:
X
aij = 10
i,j:aij >0
aij = 11
i,j:aij <0
o que nos leva a suspeitar que o agente linha tem vantagem neste jogo.
7.3
Formalizac
ao
Se o agente linha segue uma estrategia randomizada, entao o agente coluna observa
que a probabilidade do agente linha escolher a opcao i e yi . O vetor de probabilidades
y Rm do agente linha e chamado de vetor estocastico, o qual satisfaz as propriedades:
y > 0, eT y = 1
onde e e um vetor com todas as entradas iguais a 1. Se a estrategia do agente coluna
for modelada por um vetor estocastico x, entao o ganho esperado do agente coluna e
dado por:
m X
n
X
yi aij xj = y T Ax.
i=1 j=1
7.4
Estrat
egia Otima
para o Agente Coluna
Suponha que o agente coluna decide jogar de acordo com a estrategia x. Nesta
situacao, a melhor defesa do agente linha e a estrategia y que resolve o seguinte
problema:
y = Argmin
y T Ax
y Rm
Sujeito a :
(7.4)
T
e y=1
y>0
A partir do Teorema Fundamental da Programacao Linear, sabemos que existe pelo
menos uma solucao basica otima. Por exemplo, para a matriz A dada em (7.3), suponha
que x = (1/3, 1/3, 1/3). Entao:
1/3
1/3
0
1 2
0
1 2
0
4 1/3 = 1/3
0
4 x = 3
Ax = 3
1/3
1/3
5 6
0
5 6
0
Assim a melhor estrategia para o agente linha e y = (1, 0, 0), y = (0, 0, 1), ou qualquer
combinacao convexa de y e y . Uma vez que dado x o agente linha escolhe uma
99
estrategia y que produz o mnimo de (7.4), entao o agente coluna pode se antecipar
escolhendo a estrategia x que produz o maximo do seguinte problema:
x = Argmax Min y T Ax
x
y
S.a :
eT x = 1
eT y = 1
x, y > 0
(7.5)
Enquanto que o problema (7.4) pode ser resolvido atraves de programacao linear,
o problema (7.5) envolve dois operadores de otimizacao. De que forma poderamos
resolver (7.5)? O problema (7.5) pode ser resolvido por meio de programacao linear.
Lembre que ja verificamos como que o problema interno (Min) pode ser resolvido por
meio de uma estrategia determinstica:
Max Min y T Ax = Max Min {eT1 Ax, eT2 Ax, . . . , eTm Ax}
x
y
x
(7.6)
onde ei e um vetor com todas as entradas iguais a zero, com excecao da i-esima entrada.
O problema (7.6) pode ser expresso em programacao linear como segue:
Px : Max z
S.a :
z 6 eT1 Ax
..
.
Max z
S.a :
ez 6 Ax
eT x = 1
x>0
z irrestrito em sinal
z 6 eTm Ax
eT x = 1
x>0
z irrestrito em sinal
S.a :
0 1
x
z
0
6
x
A e
T
1
=
z
e 0
x>0
z irrestrito em sinal
(7.7)
100
7.5
Estrat
egia Otima
para o Agente Linha
Por simetria, pode ser verificado que o agente linha procura uma estrategia y que
produz a solucao otima do seguinte problema min-max:
Min Max y T Ax
Min Max {y T Ae1 , y T Ae2 , . . . , y T Aen }
y
x
y
S.a :
S.a :
T
e y=1
eT y = 1
T
e x=1
y>0
x, y > 0
(7.8)
Min w
S.a :
ew > AT y
eT y = 1
y>0
w irrestrito em sinal
Da mesma forma que para o agente coluna, podemos expressar o problema de encontrar
uma estrategia otima em uma forma matricial:
y
0 1
Py : Min
w
S.a :
0
>
y
AT e
(7.9)
1
=
w
eT 0
y>0
w irrestrito em sinal
7.6
Rela
c
ao entre os Problemas Px e Py
101
0 1
y
w
w
y>0
w irrestrito
A e
eT 0
>
=
0
1
T
(7.11)
(7.12)
7.7
Teorema Minimax
Inicialmente demonstrado por John Von Neumann em 1928, pode ser facilmente
demonstrado atraves da Teoria da Dualidade Linear.
Teorema 7.1 Existem vetores estocasticos x e y para os quais
Max y T Ax = Min y T Ax .
x
y
Prova: Observando que o dual de Px e Py e que ambos os problemas tem regioes
factveis limitadas, conclumos que z = w sendo z o valor otimo de Px e w o valor
otimo de Py . Pelo lado de Px , deduzimos que:
z = max min{eT1 Ax, . . . , eTm Ay}
x
102
O valor otimo z = w dos problemas primal e dual e chamado de valor otimo do
jogo. Ao adotar a estrategia y , o agente linha garante que nao perdera mais do que w
unidades em media. Similarmente, o agente coluna assegura que recebera pelo menos
z unidades em media se adotar a estrategia x .
Um jogo com valor z = w = 0 e dito justo. Jogos cujos papeis dos agentes podem
ser invertidos sao ditos jogos simetricos. Esses jogos sao justo e caracterizados por
aij = aji para todo i, j, isto e, A = AT . Uma matriz A e dita anti-simetrica se
A = AT .
7.8
Jogos Quadr
aticos
1 T
x Am x
2
+ bTm x + cm
Am =
Am,1,1
Am,2,1
..
.
1
2
M
M P
P
i=1 j=1
Am,1,2
Am,2,2
..
.
xTi Am,i,j xj +
...
...
...
Am,1,M
Am,2,M
..
.
M
P
i=1
bTm,i xi + cm
e bm =
bm,1
bm,2
..
.
bm,M
(7.15)
X
n6=m
(7.16)
103
onde ym = (x1 . . . xm1 xm+1 . . . xM )T e o vetor com as decisoes dos agentes adversarios ao agente m.
Agregando os processos iterativos (7.16) de todos os agentes, podemos expressar
o processo iterativo global G como sendo a solucao do sistema de equacoes lineares
abaixo:
Ax(k + 1) = Bx(k) b
(7.17)
A1,1,1
0
...
0
b1,1
0
b2,2
A2,2,2 0 . . .
0
A = ..
, b = .. e
..
.. . .
.
.
.
.
0
.
0
0
. . . 0 AM,M,M
bM,M
0
A1,1,2 A1,1,3
...
A1,1,M
A2,2,1
0
A2,2,3
...
A2,2,M
B=
..
..
..
.
.
.
.
.
0
.
AM,M,1 AM,M,2 . . . AM,M,M 1
0
(7.18)
Com relacao `a convergencia das decisoes dos agentes, se ela ocorre e para um ponto
Nash x :
x = G(x ) Ax = Bx + b
x = A1 Bx + A1 b
x = (I A1 B)1 A1 b = (A B)1 b
Nao e difcil mostrar que se |||A1 B||| < 1 para alguma norma-matricial ||| |||
induzida por uma norma-vetorial k k entao G induz um processo contrativo1 que, por
sua vez, garante convergencia do processo iterativo (7.18) para o ponto Nash x .
7.8.1
Exemplo
104
10
x2
9
R1
R2
Nash
10
x1
Figura 7.1: Curvas de nvel, conjuntos reativos, solucao Nash e pontos Pareto de um
jogo quadratico entre dois agentes.
7.9
Refer
encias
O texto de Aumann e Hart [4] e uma referencia padrao para a teoria dos jogos,
cobrindo a teoria, modelos e aplicacoes com enfoque economico. A referencia e recomendada para aqueles que desejam investigar a area mais a fundo e apreciar o espectro
de aplicacoes. O livro de Basar e Olsder [7] tambem e amplamente adotado. Este texto
trata de maneira rigorosa a teoria de jogos nao-cooperativos, sejam eles de natureza
estatica ou dinamica, discretos ou infinitos. Os autores apresentam a teoria e aplicacoes
com enfoque em engenharia de controle que podera ser particularmente desejavel aos
engenheiros de controle e eletricos. Mesterton-Gibbons [35] faz uma introducao suave
e gradual `a teoria dos jogos procurando integrar modelagem de fenomenos biologicos
e formalismos matematicos. Os conceitos fundamentais sao apresentados por meio de
105
exemplos ilustrativos sobre o comportamento humano e artificial, incluindo compartilhamento de recursos, estabelecimento de precos e taxas, e competicao sobre territorios.
A teoria dos jogos tem sido aplicada recentemente para facilitar o entendimento de
sistemas complexos e distribudos, bem como buscar polticas de controle que melhorem
o desempenho agregado. Por exemplo, a teoria pode ser empregada para modelar
problemas em robotica movel [33] e projetar polticas de alocacao de banda em redes
de computadores [46].
7.10
Exerccios
0
1 2
0
4 .
A = 3
5 6
0
106
A2 =
38.9772 34.4779
34.4779
51.0228
, b2 =
120
0
, c2 = 0.
Captulo 8
Fluxo em Redes
Neste captulo nos concentraremos em problemas de programacao linear que apresentam uma estrutura de redes, ou seja, problemas cujas variaveis advem de valores a
serem definidos para os arcos de um grafo direcionado. Na literatura existem algoritmos especficos para resolver problemas desta classe de uma forma mais eficiente do que
com algoritmos de proposito geral. O problema mais geral desta classe e o problema
de fluxo em redes de custo mnimo, para o qual uma variedade de problemas praticos
podem ser reduzidos e resolvidos eficientemente.
Visando motivar o estudo da otimizacao em redes, a Secao 8.1 apresenta os problemas classicos de transporte e de alocacao. Ambos foram estudados extensivamente
na literatura e podem ser reduzidos ao problema de fluxo de custo mnimo. Na Secao
8.2 investigaremos o problema de fluxo maximo que corresponde a enviar a quantidade
maxima de fluxo de um vertice fonte s a um vertice destino t, enquanto que respeitando as capacidades dos arcos. Apresentaremos algumas aplicacoes de fluxo maximo,
o algoritmo de caminhos aumentantes e o Teorema de Fluxo-Maximo Corte-Mnimo.
A Secao 8.3 se concentra no modelo mais geral de fluxo de custo mnimo, descrevendo
aplicacoes, operadores de transformacao entre modelos e um algoritmo basico para
resolucao do problema. Por fim, a Secao 8.4 faz uma introducao `a propriedade de
unimodularidade total de matrizes de incidencia de redes e suas implicacoes.
8.1
Dois Problemas Cl
assicos
No que segue apresentamos dois problemas classicos que podem ser reduzidos ao
problema de fluxo em redes de custo mnimo.
8.1.1
O Problema de Transporte
Neste problema nos sao dados um conjunto de fornecedores e um conjunto de clientes. Os fornecedores tem suas capacidades de producao limitadas, ja os clientes
possuem demandas a serem supridas. O custo unitario de transporte do deposito do
fornecedor si para o cliente tj e dado por cij . A Figura 8.1 traz uma ilustracao do problema de transporte. Desejamos entao encontrar a quantidade a ser produzida por cada
fornecedor e as quantidades a serem enviadas aos clientes de maneira que o custo total
108
8. Fluxo em Redes
Forncedores
(u1 )s1
c1n
c11
c12
t1 (d1 )
(u2 )s2
t2 (d2 )
(um )sm
tn (dn )
n
m P
P
cij xij
i=1 j=1
Sujeito a :
m
P
i=1
n
P
j=1
xij = dj
j = 1, . . . , n
xij ui
i = 1, . . . , m
xij 0
i = 1, . . . , m
j = 1, . . . , n
109
8. Fluxo em Redes
x11 = 0
x13 = 39 ,
x14 = 87
x21
x22
x31
x32
= 56
, e
x33
=0
x34
=6
= 83
=0
=4
8.1.2
O Problema de Alocac
ao
n
n P
P
cij xij
i=1 j=1
Sujeito a :
n
P
i=1
n
P
xij = 1
j = 1, . . . , n
xij = 1
i = 1, . . . , n
j=1
xij {0, 1}
i = 1, . . . , n
j = 1, . . . , n
(8.1)
110
8. Fluxo em Redes
8.2
O Problema de Fluxo M
aximo
Dada uma rede G = (V, A) com capacidade nos arcos, desejamos determinar o
fluxo maximo que pode ser enviado de um vertice s (fonte) a um vertice t (destino),
satisfazendo as restricoes de capacidade dos arcos e as equacoes de equilbrio de fluxo
em todos os vertices. Em programacao matematica, o problema de fluxo maximo e
expresso como:
Maximize v
Sujeito a :
para i = s
v
P
P
0
para todo i V {s, t}
xij
xji =
{j:(i,j)A}
{j:(j,i)A}
v para i = t
0 xij uij para cada (i, j) A
(8.2)
onde uij denota a capacidade de transporte do arco (i, j). Um vetor x = [xij : (i, j) A]
satisfazendo as restricoes de (8.2) e dito fluxo e o escalar v correspondente e dito valor
do fluxo.
O problema de fluxo maximo surge em aplicacoes e tambem como elemento-chave
de algoritmos para resolucao de problemas mais complexos. Por exemplo, podemos
encontrar um fluxo factvel para o problema de fluxo de custo mnimo (a ser estudado
na proxima secao), caso exista, resolvendo um problema de fluxo maximo. Outro
exemplo e o algoritmo primal-dual para fluxo de custo mnimo que a cada iteracao
resolve um problema de fluxo maximo [3].
Uma propriedade do problema de fluxo maximo e o Teorema Fluxo-Maximo CorteMnimo que diz que o valor do fluxo maximo de um vertice s para t e exatamente
igual a capacidade do corte s-t mnimo. Um corte [S, V S] e um corte s-t se s S e
denotamos por (S, S)
= {(i, j) A : i S, j S}
e
i S, j S} denota o conjunto
das arestas reversas. A capacidade do corte [S, S]
P
=
111
8. Fluxo em Redes
dois processadores). Seja um algoritmo constitudo de modulos que podem ser executados concorrentemente. Conhecemos de antemao o custo computacional de executarmos
cada modulo i no processador 1, denotado por i , e o custo de ser executado no processador 2, denotado por i . Sabemos ainda o custo cij de comunicacao entre os modulos
i e j caso estes modulos sejam alocados a processadores distintos, sendo nulo o custo
de comunicacao caso eles sejam processados em um mesmo processador. Desejamos
alocar os modulos aos processadores de forma que a soma do custo de processamento
e de comunicacao seja o menor possvel.
Este problema pode ser modelado como um problema de corte mnimo em uma rede
nao-direcionada e, por sua vez, resolvido com um algoritmo para o problema de fluxo
maximo. Defina um vertice s representando o processador 1, um vertice t representando
o processador 2, e um vertice i para cada modulo i = 1, . . . , n. Para cada modulo i,
insira um arco (s, i) com capacidade usi = i , um arco (i, t) com capacidade uit = i , e
um arco (i, j) com capacidade uij = cij se os modulos interagem. A Figura 8.2 ilustra
a rede obtida para um problema cujos tempos de processamento estao na Tabela 8.4 e
cujos custos de comunicacao sao dados na Tabela 8.5.
Tabela 8.4:
i
i
i
Custo
1 2
3 2
5 5
de
3
6
6
processamento
4 5
2 7
4 2
comunicacao
4 5
1
1
10
1
Observe que existe uma correspondencia de 1-para-1 entre corte s-t na rede e
alocacao de modulos a processadores, sendo a capacidade do corte precisamente o
custo da alocacao. Seja A1 A2 = {1, . . . , n}, A1 A2 = , uma alocacao de modulos
aos processores 1 e 2, respectivamente. O custo desta alocacao e dado por:
X
X
X
i +
i +
cij
(8.3)
iA1
iA2
(i,j)A1 A2
cij para cada (i, j) A1 A2 . Portanto u[S, S] = iA1 i + iA2 i + (i,j)A1 A2 cij .
Encontrando o corte de capacidade mnima estaremos produzindo uma alocacao de
112
8. Fluxo em Redes
custo mnimo. Para o exemplo da Figura 8.2, o corte mnimo esta indicado e este
induz uma alocacao A1 = {1, 2, 4} e A2 = {3, 5}, tendo custo de processamento total
igual a 7 + 8 + 3 = 18, que e precisamente a capacidade do corte s-t mnimo.
Corte
1
5
2
5
1
2
6
s
3
4
10
1
5
8.2.1
Fluxos e Cortes
O conceito de rede residual e chave no desenvolvimento de algoritmos para o problema de fluxo maximo1 . Dado um fluxo x para uma rede G, a capacidade residual rij
de um arco (i, j) A e a quantidade maxima de fluxo adicional que pode ser enviada
usando os arcos (i, j) e (j, i). Vamos assumir por simplicidade que o arco (j, i) sera um
elemento da rede sempre que o arco (i, j) fizer parte da rede. A capacidade residual
tem dois componentes: o componente uij xij (quantidade nao utilizada do arco (i, j))
e o componente xji (podemos cancelar o envio de xji unidades enviadas atraves do arco
(j, i)). Logo, rij = uij xij + xji . Denotamos por G(x) a rede residual que contem
apenas arcos com capacidade residual positiva. A Figura 8.3 traz um exemplo de rede
residual.
tem um conjunto de arcos diretos representado
Lembramos que um corte s-t [S, S]
S). A capacidade do
por (S, S) e um conjunto de arcos reversos denotado por (S,
sendo igual a soma da capacidade dos arcos diretos que
corte e denotada por u[S, S]
1
A nocao de rede residual sera estendida na proxima secao para resolver o problema de fluxo de
custo mnimo.
113
8. Fluxo em Redes
(xij , uij )
2
(2, 5)
(3, 4)
s
(5, 7)
rij
2
5
2
(0, 1)
(3, 3)
(0, 2)
4
Figura 8.3: Exemplo de rede residual G(x) obtida a partir de uma rede G e fluxo x.
atravessam o corte, ou seja:
=
u[S, S]
uij
(i,j)(S,S)
rij
(i,j)(S,S)
v=
X
iS
{j:(i,j)A}
xij
{j:(j,i)A}
xji
(8.4)
(i,j)(S,S)
(j,i)(S,S)
A primeira expressao no lado direito de (8.5) corresponde ao fluxo dos nos de S para
enquanto que a segunda nos da o fluxo dos nos de S para S. Logo, o
os nos de S,
que e precisamente
lado direito de (8.5) e o fluxo lquido atraves do corte s-t [S, S]
114
8. Fluxo em Redes
v
uij = u[S, S]
(8.6)
(i,j)(S,S)
(8.7)
A expressao (8.7) nos diz que se encontrarmos um fluxo x cujo valor v iguala a capacidade de algum corte s-t, entao x e um fluxo maximo. Tal propriedade pode ser definida
em termos das capacidades residuais. Suponha que x e um fluxo e seu valor e v. Seja
x um fluxo de valor v + v onde v 0. Neste caso, a desigualdade (8.6) implica:
X
v + v
uij
(8.8)
(i,j)(S,S)
(i,j)(S,S)
(i,j)(S,S)
(i,j)(S,S)
xji
(j,i)(S,S)
rij
(i,j)(S,S)
= r[S, S]
(8.9)
Assim, conclumos que para qualquer fluxo x de valor v em uma rede G, a quantidade
adicional de fluxo que pode ser enviada de um no s para um no t e menor ou igual a
capacidade residual de qualquer corte s-t.
8.2.2
115
8. Fluxo em Redes
rij
3
4
3
2
2
3
2
5
3
4
2
1
2
3
2
3
3
2
3
6 t
2
G(x1 )
2
5
3
x1
116
8. Fluxo em Redes
3
3
4
1
4
1
2
1
G(x2 )
x2
3
4
1
4
6 t
1
1
1
1
2
G(x3 )
1
3
x3
117
8. Fluxo em Redes
0 = r[S, S]
X
=
rij
(i,j)(S,S)
(i,j)(S,S)
e, portanto,
=
u[S, S]
uij
(i,j)(S,S)
(i,j)(S,S)
(i,j)(S,S)
= v
(xij xji )
xij
xji
(j,i)(S,S)
do corte [S, S]
iguala o valor do fluxo induzido
Conclumos que a capacidade u[S, S]
8.2.3
Implicac
oes Combinat
orias do Problema de Fluxo
M
aximo
118
8. Fluxo em Redes
119
8. Fluxo em Redes
Em outras palavras, o n
mnimo [S, S].
umero maximo de camimhos vertice-disjuntos e
igual ao n
umero mnimo de vertices que devem ser removidos de maneira de desconectar
4
s de t .
8.3
Sujeito a :
{j:(i,j)A}
xij
{j:(j,i)A}
xji = bi ,
iV
(8.10)
(i, j) A
120
8. Fluxo em Redes
8.3.1
Transformac
oes
A transformacao nao e v
alida se cij < 0 ou lij > 0: se lij > 0 ent
ao nao sabemos em que direcao
o fluxo dever
a satisfazer esta restricao; se cij < 0 ent
ao nao podemos garantir que o fluxo otimo sera
em apenas uma direcao.
121
8. Fluxo em Redes
xij
bi
j
x
ij
bj
bi
bj
j
xji
(cji , uji ) = (
cij , u
ij )
(
cij , lij , u
ij )
bi
bj
x
ij
bi = bi lij
bj = bj + lij
xij = x
ij lij
122
8. Fluxo em Redes
xik + xjk = uij , portanto xjk e o resduo de capacidade de transmissao atraves do arco
(i, j) (slack).
(cik , uik ) = (
cij , ) (cjk , ujk ) = (0, )
(
cij , u
ij )
bi
bi = bi
bj
xik
x
ij
xjk
bk =
uij
bj = bj + u
ij
8.3.2
Um Exemplo
(5, 7)
6
b1 = 10
6
4
4
(7, 8)
b4 = 10
4
3
(4, 10)
123
8. Fluxo em Redes
10
b=
0
10
8.3.3
0
1
0
1
0
0
1
1
0
0
l=
0
0
7
8
u=
6
10
5
7
c=
3
4
x12
x13
x=
x24
x34
Redes Residuais
No projeto e implementacao de algoritmos e conveniente expressar o fluxo em termos de incrementos em relacao a um fluxo factvel, em vez de expressa-lo em termos
absolutos. Aqui sera introduzida a nocao de rede residual ou rede de fluxo remanescente que descreve a capacidade de transmissao incremental. Existe uma relacao de
um-para-um entre a formulacao do problema na rede original e na rede residual, de
maneira que uma solucao factvel em uma formulacao esta diretamente relacionada
com uma solucao na outra formulacao e ambas induzem o mesmo custo.
|A|
Dados uma rede G = (V, A) e um fluxo x0 R+ , a rede residual e denotada por
G(x0 ) e descreve a capacidade incremental de fluxo relativa ao fluxo x0 ja transportado
atraves da rede. Considere o arco (i, j) e o fluxo inicial x0ij . Ha duas possibilidades:
1) podemos enviar uma quantidade adicional uij x0ij de fluxo atraves do arco (i, j),
incorrendo um custo unitario cij ; e
2) podemos enviar de volta uma quantidade x0ij atraves do arco (j, i), a custo cij
por unidade.
Uma ilustracao de rede residual G(x0 ) associada a um fluxo x0 em uma rede G =
(V, A) e dada na Figura 8.12. Abaixo listamos os passos para computo da rede residual
G(x0 ) tomando como base um fluxo inicial x0 :
1) substitua cada arco original (i, j) por dois arcos: (i, j) e (j, i);
2) o arco (i, j) tem custo cij e capacidade residual rij = uij x0ij ;
3) o arco (j, i) tem custo cij e capacidade residual rji = x0ij .
Proposi
c
ao 8.1 Um fluxo x e factvel para a rede G se e somente se o fluxo correspondente x, definido por xij xji = xij x0ij e xij xji = 0, e factvel na rede residual
G(x0 ). Alem disso, cT x = cT x + cT x0 .
124
8. Fluxo em Redes
bi
(cij , uij )
i
x0ij
bj
j
bi
i
bj
(cij , x0ij )
(8.11)
(8.12)
A condicao 8.12 nos diz que apenas um dos arcos tem fluxo nao nulo. Se xij x0ij ,
entao faca xij = xij x0ij e xji = 0; uma vez que xij uij temos que xij uij x0ij = rij
e portanto xij satisfaz a restricao de capacidade do arco (i, j) na rede residual. Caso
contrario, se xij < x0ij , entao faca xji = x0ij xij e xij = 0; uma vez que 0 xij x0ij ,
segue que xji = x0ij xij 0 e xji < x0ij = rji , portanto xji satisfaz a restricao de
capacidade do arco (j, i) na rede residual. O desenvolvimento acima mostra que se
o fluxo x e factvel em G, entao o fuxo residual x obtido conforme (8.11) e (8.12) e
factvel na rede residual G(x0 ). De forma similar, pode ser mostrado que para um fluxo
residual x factvel em G(x0 ) o fluxo x obtido de maneira a satisfazer as equacoes (8.11)
e (8.12) e factvel para a rede original G.
Resta estabelecer a relacao entre o custo do fluxo x em G e o custo do fluxo x em
G(x0 ). Para um fluxo xij na rede G, o custo no par de arcos (i, j) e (j, i) na rede
residual G(x0 ) e cij xij + cji xji = cij xij cij xji = cij (
xij xji ) = cij (xij x0ij ) que segue
de (8.11). Logo, estabelecemos que cx = cx cx0 .
De acordo com a proposicao, podemos trabalhar com a rede residual G(x0 ) para
um fluxo x0 em vez de trabalhar com a rede original G. Uma vez conhecido um fluxo
otimo na rede residual podemos converte-lo em um fluxo otimo na rede original por
meio da proposicao.
Na Figura 8.13 e ilustrada uma rede G com fluxo x e sua respectiva rede residual
G(x).
8.3.4
G(x ) n
ao contem nenhum circuito de custo negativo.
Proof: Seja x um fluxo factvel e suponha que G(x) contem um ciclo de custo negativo.
Entao podemos enviar uma quantidade nao nula de fluxo ao longo do ciclo e reduzir o
125
8. Fluxo em Redes
b) Rede original G e fluxo x
b2 = 0
2
(cij , uij ) = (2, 4)
(3, 3)
xij = 3
b1 = 4
0 (1, 2)
(2, 3)
3
4 b4 = 4
(2, 2)
1
1
3
(3, 3)
(2, 1)
(1, 2)
(2, 1)
(1, 1)
(1, 5)
(2, 1)
(1, 4)
3
b3 = 0
126
8. Fluxo em Redes
8.4
Observe que sempre e possvel eliminar arcos com custo negativo; basta pre-enviar a quantidade
uij de fluxo atraves do arco (i, j) se cij < 0.
7
O algoritmo de Bellman-Ford encontra um ciclo de custo negativo em tempo O(nm).
127
8. Fluxo em Redes
G(x0 )
(3, 3)
(2, 1)
2
3
(1, 2)
(2, 3)
1
x0
(2, 1)
(1, 1)
(1, 4)
(2, 1)
1 1
1
1
1 1 0
A2 = 0 1 1
1 0 1
A matriz adjunta adj(B) e a transposta da matriz cofatora cof (B) de B, i.e, adj(B) = cof (B)T .
A entrada cof (B)ij e o determinante da matriz obtida a partir de B removendo a linha i e a coluna
j e multiplicando o resultado por (1)i+j .
8
128
8. Fluxo em Redes
0 1 0
1 1 1
0
0 1 1
1
0
0
1
A2 = 1 0 1
A1 =
0
1
0 1
1 0 0
0
0
1
0
1 0 0
sao:
0
1
1
1
0
0
1
1
0
0
Proposi
c
ao 8.3 Uma matriz A e TU se e somente se:
a matriz transposta AT e TU; e
a matriz (A, I) e TU.
A condicao suficiente dada pela proposicao a seguir e simples e nos permite verificar
que uma das matrizes acima e TU.
Proposi
c
ao 8.4 (Condicao suficiente) A matriz A e TU se:
i. aij {+1, 1, 0} para todo i, j;
ii. cada coluna contem no maximo dois coeficientes n
ao nulos,
m
P
i=1
|aij | 2; e
iM2
Basta fazer M1 = M e M2 = .
129
8. Fluxo em Redes
1
2
3
4
5
6
8.5
x12
1
-1
0
0
0
0
x14
1
0
0
-1
0
0
x23
0
1
-1
0
0
0
x31
-1
0
1
0
0
0
x32
0
-1
1
0
0
0
x35
0
0
1
0
-1
0
x36
0
0
1
0
0
-1
x45
0
0
0
1
-1
0
x51
-1
0
0
0
1
0
x53
0
0
-1
0
1
0
x65
0
0
0
0
-1
1
b(i)
=
=
=
=
=
=
3
0
0
-2
4
-5
Refer
encias
Sao in
umeras as aplicacoes de modelos e algoritmos de fluxo em redes, em particular os modelo de fluxo de custo mnimo. Neste captulo tivemos a oportunidade de
apreciar alguns problemas de cunho teorico-pratico. Tais algoritmos sao rotineiramente
aplicados na resolucao de subproblemas resolvidos como etapas de outros problemas
mais complexos. Nos exerccios, por exemplo, podemos descobrir uma restricao de eliminacao de sub-rota nao satisfeita por uma solucao candidata ao problema do caixeiro
viajante a partir da solucao de um problema de fluxo em redes.
Uma das referencias mais atuais e completas em fluxo em redes e o texto de Ahuja,
Magnanti e Orlin [3]. Nele sao apresentadas varias aplicacoes e algoritmos para problemas que tem incio com o problema de fluxo maximo, passam pelo problema de fluxo
de custo mnimo, e tambem tratam de generalizacoes envolvendo funcoes objetivo convexas, fluxos distintos (multicommodity network flow problems) e tambem relaxacao
Lagrangeana. Os algoritmos sao tratados de forma gradual, comecando com algoritmos inspirados em princpios intuitivos, cobrindo algoritmos praticos e algoritmos com
tempo de execucao polinomial.
Outro texto recomendado e o livro de Lawler [34] que, embora mais antigo, tem uma
abordagem mais sucinta e direta. Este tambem faz um aprofundamento na teoria de
Matroids que esta relacionada a matrizes totalmente unimodulares e algoritmos gulosos
8.6
Exerccios
130
8. Fluxo em Redes
{j:(s,j)A}
{j:(i,j)A}
xij
0 xij uij
{j:(j,i)A}
xji = 0
i V {s, t}
(i, j) A
131
8. Fluxo em Redes
Sujeito a :
{j:(i,j)E}
{j:(j,i)E}
xij = 1, i V
(8.13)
xji = 1, i V
(i,j)(S,V S)
xij 1, S V, 2 |S| |V | 2
1
0
zj , j = 1, . . . , n 1
zj , j = 1, . . . , n 1
(8.14)
Podemos afirmar que o sistema de equacoes (8.14) forma uma matriz totalmente
unimodular? Justique sua resposta.
EX 8.13: Mostre que o sistema de equacoes (8.15) induz uma matriz de restricoes
totalmente unimodular.
Li + R
i
n
P
yi
i=1
Li , R
i , yi
= yi , i = 1, . . . , n
= 1
(8.15)
0, i = 1, . . . , n
Este sistema de equacoes surge da linearizacao por partes de uma funcao nao
n
n
P
P
[ai1 Li + ai R
linear f (x), onde x =
[f (ai1 )Li + f (ai )R
i ], f (x)
i ], e
i=1
i=1
132
8. Fluxo em Redes
G(x1 )
x1
(2, 1)
(2, 3)
1
(3, 1)
(3, 2)
(1, 2)
(2, 1)
(1, 3)
1
(1, 2)
(2, 1)
3
3
G(x2 )
x2
2
(2, 2)
(3, 2)
(2, 2)
1
(3, 1)
(1, 1)
(1, 1)
(1, 3)
(2, 2)
(1, 2)
3
2
3
133
8. Fluxo em Redes
G(x3 )
x3
2
2
(3, 3)
(2, 2)
(2, 2)
(1, 2)
(1, 4)
(1, 1)
(2, 2)
Figura 8.17: Fluxo otimo x3 e rede residual G(x3 ). Nao ha ciclo de custo negativo.
0
2
0
3
4
2
5
4
134
8. Fluxo em Redes
b2 = 20
2
(0, 10)
(1, 10)
0
6
(6, 10)
10 1
(4, 10)
3
(1, 5)
(2, 10)
5
0
(8, 10)
8 10
(7, 15)
(9, 15)
(2, 15)
(cij , uij ) = (1, 10)
4
5
7
15
Captulo 9
Linguagens de Modelagem
Neste captulo apresentamos os elementos fundamentais de duas linguagens de modelagem que permitem especificar problemas de otimizacao em uma linguagem muito
semelhante `a programacao matematica. Em particular, desenvolveremos os conceitos
basicos das linguagens AMPL e Mosel. Tais linguagens procuram separar o modelo dos
dados, dessa forma permitindo que um modelo possa ser utilizados na resolucao de diferentes instancias de uma mesma classe de problemas. Elas tambem sao responsaveis
pela parte de pre-processamento e interface com algoritmos de otimizacao, tais como
ILOG CPLEX, MINOS e XPress-MP.
9.1
Linguagem Mosel
136
9. Linguagens de Modelagem
3) Xpress-IVE: Xpress-IVE (The Xpress Interactive Visual Environment) e um ambiente para modelagem e solucao integrada de problemas de otimizacao em sistemas MS-Windows. IVE apresenta Mosel dentro de uma interface grafica amigavel
com editor embutido.
4) Console Xpress: Consiste em interfaces tipo texto para Mosel e Optimizer. Este
modulo permite a carga de modelos armazenados em arquivos tipo texto e resolucao de problemas, podendo ser executado em plataformas computacionais
diversas, incluindo Unix e MS-Windows. O Console Xpress pode ser aplicado em
ambientes de producao fazendo uso de arquivos shell-script.
5) Xpress-MP Libraries: Para implementacoes especializadas, bibliotecas XpressMP sao oferecidas para prover acesso direto a Mosel e Optimizer a partir de
codigo C/C++, Java e Visual Basic implementado e customizado pelo usuario.
A vantagem principal das bibliotecas e a possibilidade de interagir diretamente
com a funcionalidade de Xpress-MP e, dessa forma, desenvolver aplicacoes customizadas como, por exemplo, heursticas projetadas para problemas particulares
e algoritmos tipo branch-and-cut.
Uma versao limitada no n
umero de variaveis e restricoes, mas completa em termos
de funcionalidade, do Xpress-IVE pode ser obtida para uso academico e educacional
no site da Dash Optimization: http://www.dashoptimization.com.
9.1.1
9.1.2
Resolvendo um Problema
137
9. Linguagens de Modelagem
model Simple
uses mmxprs
declarations
a: mpvar
b: mpvar
end-declarations
primeira := 3*a + 2*b <= 400
segunda := a + 3*b <= 200
lucro := a + 2*b
maximize(lucro)
writeln(O lucro
e:
, getobjval)
end-model
9.1.3
138
9. Linguagens de Modelagem
formato. Detalhes sobre o formato MPS podem ser obtidos nos apendices do manual de
usuario do GNU solver. Mosel e Xpress-optimizer nao podiam ser diferentes e ambos
suportam a entrada e sada de problemas no formato MPS. Para gerar o arquivo MPS
correspondendo ao problema escrito em Mosel, basta executar o comando:
> export -m simple.mps
Mosel tambem e capaz de gerar o problema no formato LP, que pode
ser resolvido com certos pacotes de otimizacao como, por exemplo,
(ftp://ftp.es.ele.tue.nl/pub/lp solve)
e
glpk
da
GNU
lp solve
(http://www.gnu.org/software/glpk/glpk.html).
Para gerar o arquivo LP
correspondente ao problema escrito em Mosel, execute o comando:
> export simple.lp
9.1.4
9.1.5
n
P
c i xi
i=1
Sujeito a :
n
P
i=1
ai x i b
xi {0, 1}, i = 1, . . . , n
139
9. Linguagens de Modelagem
maximize(ValorTotal)
writeln(O valor da fun
ca
~o objetivo
e ,getobjval)
end-model
porte. Foi tedioso, por exemplo, ter que especificar que cada variavel e binaria. E
usual na modelagem, mesmo de problemas pequenos, o uso de vetores de variaveis ou
variaveis subscritas, como tambem sao conhecidas. Tal poltica de modelagem facilita
enormemente a especificacao de modelos e futuras alteracoes. Abaixo segue a segunda
versao Mosel do problema da mochila.
140
9. Linguagens de Modelagem
model mochila2
uses mmxprs
declarations
Itens = 1..8
Peso: array(Itens) of real
Valor: array(Itens) of real
x : array(Itens) of mpvar
end-declarations
! Itens
Peso:= [2, 20, 20, 30, 40, 30,
60, 10]
Valor:= [15, 100, 90, 60, 40,
15, 10, 1]
! Todas as vari
aveis x s~
ao inteiras
forall(i in Itens) x(i) is binary
! Objetivo
ValorTotal := sum(i in Itens) x(i)*Valor(i)
! Restri
ca
~o de capacidade da mochila
PesoTotal := sum(i in Itens) x(i)*Peso(i) <= 102
maximize(ValorTotal)
writeln(O valor da fun
ca
~o objetivo
e , getobjval)
forall(i in Itens) writeln(x(,i,) =,getsol(x(i)))
end-model
9.1.6
9. Linguagens de Modelagem
9.1.7
141
Modelagem Vers
atil
142
9. Linguagens de Modelagem
9.2
Linguagem AMPL
AMPL pode ser vista como uma linguagem utilizada para descrever de uma forma
declarativa problemas de planejamento, escalonamento e distribuicao da producao e
muitos outros problemas conhecidos em geral como problemas de otimizacao em larga
escala ou programacao matematica. A notacao algebrica de AMPL e o seu ambiente de
comandos interativo foram projetados para auxiliar na formulacao de modelos, comunicar com uma variedade de pacotes de otimizacao e examinar o resultado de solucoes.
A flexibilidade de AMPL a torna ideal para prototipacao rapida e desenvolvimento de
modelos, enquanto que sua velocidade e generalidade proveem os recursos necessarios
para resolucao em regime de producao.
AMPL e um entre varios sistemas de modelagem para otimizacao que sao projetados tomando como base linguagens de modelagem algebricas. Essas linguagens
empregam uma notacao matematica muito semelhante `a programacao matematica, tipicamente utilizada para descrever problemas de otimizacao como a minimizacao (ou
maximizacao) de uma expressao algebrica envolvendo variaveis de decisao algebricas,
estando estas subjeitas a restricoes expressas como igualdades e desigualdades entre
expressoes algebricas e variaveis de decisao. Interpretadores e interfaces para essas linguagem proveem suporte para simplificacao e analise de modelos. Algumas linguagens
tambem oferecem extensoes para descrisao de metodos algortmicos para atacar problemas difceis por meio da resolucao de subproblemas relacionados. MOSEL e AMPL
sao dois exemplos de linguagens de modelagem algebricas distribudas comercialmente.
AMPL foi projetada para combinar e estender as habilidades expressivas de linguagens de modelagem, mas sem perder a facilidade de ser utilizada em aplicacoes
elementares. AMPL e notavel pela simplicidade e naturalidade de sua sintaxe e pela
generalidade dos seus conjuntos e expressoes de indexacao. AMPL prove forte suporte
`a validacao, verificacao e analise de solucoes otimas atraves de um conjunto de alternativas para apresentacao de dados e resultados. O pre-processador de AMPL e capaz de
executar automaticamente transformacoes que reduzem o tamanho do problema e substituem variaveis. AMPL se distingue ainda pela continuidade do seu desenvolvimento
que visa atender `as necessidades dos usuarios. Adicoes recentes incluem construtores
de lacos e testes para escrita de scripts na linguagem de comandos AMPL, bem como
facilidades para definicao e manipulacao de varios problemas inter-relacionados.
No que segue apresentamos um exemplo de AMPL para o problema da mochila.
143
9. Linguagens de Modelagem
9.2.1
w
2
20
20
30
40
30
60
10
c :=
15
100
9
60
40
15
10
1;
param b := 120;
144
9. Linguagens de Modelagem
solve;
display
display
display
display
9.2.2
valor;
w;
c;
x;
Coment
arios
A linguagem AMPL rapidamente se tornou um padrao entre pesquisadores e engenheiros, hoje disponvel na maior parte dos pacotes de otimizacao. Ha um site exclusivamente dedicado `a AMPL, http://www.ampl.com, onde estao depositados exemplos
alem de in
umeras informacoes e ponteiros. A proposito, existe um livro sobre AMPL e
suas aplicacoes bem como uma versao educacional da linguagem que pode ser empregada para resolver problemas com um n
umero pequeno de variaveis e restricoes.
9.3
Com a rapida evolucao da Internet em termos de desempenho e seguranca, surgiu a exigencia de maior qualidade dos servicos oferecidos pelas operadoras de telecomunicacoes. Novas polticas operacionais foram implementadas com estrategias de
diferenciacao de servicos, adicionando flexibilidade e eficiencia `a infra-estrutura de comunicacoes. O gerenciamento da qualidade de servicos (QoS) desponta neste cenario
como uma alternativa vital ao sobre-provisionamento de recursos. Neste contexto, a
Engenharia de Trafego (ET) representa uma forma de aproveitar melhor os recursos de
rede existentes, com consequente reducao de custos [5].
Um elemento chave de suporte `a ET em redes IP e a tecnologia Multiprotocol Label
Switching (MPLS). A tecnologia MPLS possibilitou a extensao das funcionalidades
do protocolo IP, favorecendo a implementacao da engenharia de trafego em redes IP
gracas `a possibilidade de execucao do roteamento explcito sobre a arquitetura MPLS.
O roteamento explcito e a capacidade de encaminhamento de pacotes em caminhos
virtuais previamente definidos, os chamados Label Switched Paths (LSPs).
Busca-se portanto melhorar a eficiencia da rede atraves do uso parcimonioso de seus
recursos, num cenario de operacao dinamica, com um impacto mnimo na arquitetura
da infra-estrutura existente. Para tanto, faz-se necessaria a modelagem formal do problema de engenharia de trafego em programacao matematica e o projeto de algoritmos
eficientes.
9.4
Formulac
ao do Problema
Um modelo inicial foi proposto em [17] e depois estendido em [18] de forma a prover
uma poltica de admissao de requisicoes de transmissao (LSPs). Neste modelo busca-se
a maximizacao da vazao global dos fluxos de dados injetados em uma topologia de
rede. Para tanto sao configurados caminhos de menor distancia metrica entre origem
9. Linguagens de Modelagem
145
e destino dos fluxos de dados, bem como das larguras de bandas de LSPs, nos quais os
fluxos de dados serao encaminhados. Estas configuracoes devem respeitar as restricoes
de largura de banda dos enlaces e atraso fim-a-fim maximo de cada fluxo de dados. Do
ponto de vista da teoria de otimizacao, este problema e enquadrado como um problema
de caminhos mnimos sujeito `
a restricoes [23], sendo do tipo NP-completo [21].
Adotou-se uma poltica de diferenciacao de servicos que depende de um controle de
admissao e da configuracao de largura de banda dos LSPs, baseadas em parametros de
prioridade para cada fluxo de dados. Nesta poltica, na eminencia de congestionamento
da rede, os fluxos de baixa prioridade podem ter suas vazoes reduzidas ate zero (fluxos
rejeitados) para garantir os requisitos de QoS dos fluxos de alta prioridade.
A largura de banda a ser configurada nos LSPs e modelada em nveis, ou seja, cada
LSP sera configurado com um desses possveis nveis de largura de banda, necessarios `a
alocacao dos fluxos de dados. Estes nveis podem variar de um valor igual a zero ate um
valor maximo desejado. A discretizacao das larguras de banda a serem configuradas nos
LSPs permite a formulacao do problema em programacao linear inteira, o que significa
um tratamento computacional menos complexo do que num problema nao-linear [44].
A formulacao do problema de ET proposto tem como objetivo definir as caractersticas topologicas e logicas da rede, a funcao objetivo, as variaveis de decisao e as
famlias de restricoes.
As caractersticas topologicas sao modeladas por um grafo direcionado G = (V, E),
onde V = {1, . . . , n} corresponde aos nos da rede e E = {1, . . . , m} aos enlaces de
transmissao. A capacidade de transmissao de um enlace (i, j) e ij Kbps, sendo o custo
administrativo cij correspondente ao atraso de transmissao provocado pelo mesmo. A
funcao objetivo visa maximizar a vazao global dos fluxos de dados injetados na rede.
As variaveis de decisao permitem a selecao do nvel de largura de banda a ser
configurado em cada LSP, alem da definicao do caminho entre a fonte e o destino do
fluxo de dados correspondente. As variaveis adotadas sao: ykl denominada seletor de
nvel e xkl
a ou nao roteado no enlace (i, j) para o l-esimo
ij que determina se o LSP k est
nvel de transmissao. Qualquer caminho que atenda as restricoes podera ser selecionado
pela solucao do problema.
As caractersticas logicas da rede sao como segue:
o n
umero de LSPs a serem configurados e K;
o n
umero de nveis de largura de banda a serem configurados no k-esimo LSP e
lk ; o n
umero de nveis e a largura de banda de cada fluxo sao definidos de acordo
com criterios administrativoso procedimento de otimizacao escolhe somente
um nvel para configurar cada LSP onde sera encaminhado o fluxo de dados
correspondente;
a taxa de transmissao a ser configurada no l-esimo (1 l lk ) nvel do k-esimo
LSP e lk sendo esta medida em Kbps;
o maximo atraso fim-a-fim permitido ao k-esimo LSP e hk sendo este medido em
ms.
o parametro k e introduzido na funcao objetivo para indicar a importancia do
k-esimo fluxo de dados, que sera encaminhado no k-esimo LSP, denominado
146
9. Linguagens de Modelagem
lk
K X
X
k lk ykl
(9.1)
k=1 l=1
Sujeita a :
lk
X
ykl = 1
k K
(9.2)
(i, j) E
(9.3)
k K
(9.4)
i V, k K, l Lk
(9.5)
(i, j) E, k K, l Lk
(9.6)
l=1
lk
K X
X
k=1 l=1
lk xkl
ij ij
lk
X X
(i,j)E l=1
{j:(i,j)E}
cij xkl
ij hk
xkl
ij
xkl
ij {0, 1}
k l
xkl
ji = bi yk
{j:(j,i)E}
ykl {0, 1}
k K, l Lk
(9.7)
9.4.1
Formulac
ao em MOSEL
Abaixo apresentamos um modelo em linguagem Mosel para PET, mas omitimos detalhes das diretivas e truques de modelagem selecionados. O leitor podera recorrer ao
manual de usuario de Mosel e livros especializados [25] para maiores informacoes. Acreditamos que o modelo cobre elementos-chave da linguagem para modelagem avancada
que invariavelmente serao necessarios em aplicacoes teorico-praticas. Assumiremos que
o modelo ficara armazenado em um arquivo tipo texto denominado model.mos.
!-----------------------------------------------------------! Mosel formulation of the fully-fledged LSP-routing problem
model lsp
9. Linguagens de Modelagem
uses "mmxprs"
declarations
Node: set of integer
Arc: array(Node,Node) of integer
Arc_u: array(Node,Node) of integer
Arc_d: array(Node,Node) of integer
Lsp: set of integer
Level: set of integer
Lsp_s: array(Lsp) of integer
Lsp_d: array(Lsp) of integer
Lsp_p: array(Lsp) of integer
Lsp_delay: array(Lsp) of integer
Lsp_lbd: array(Lsp,Level) of integer
x: array(Lsp,Level,Node,Node) of mpvar
y: array(Lsp,Level) of mpvar
end-declarations
! Read in data from external file
initializations from "model.dat"
Node
Arc Arc_u Arc_d
Lsp Level
Lsp_s Lsp_d Lsp_p Lsp_delay Lsp_lbd
end-initializations
! Printing data
!------------------------------------------------fopen("f_data.txt",F_OUTPUT)
writeln
writeln("List of nodes")
writeln("-------------------------------------")
forall(i in Node)
writeln("node(",i,"): ",Node(i))
writeln
writeln("List of Arcs")
writeln("-------------------------------------")
forall(i in Node, j in Node | Arc(i,j)=1 )
writeln("arc: (",i,",",j,") u:",Arc_u(i,j)," delay: ",Arc_d(i,j))
writeln
writeln("List of Lsps")
writeln("-------------------------------------")
forall(k in Lsp)
writeln("lsp: (",k,"): ",Lsp(k),
" s: ",Lsp_s(k)," d: ",Lsp_d(k),
" p: ",Lsp_p(k))
writeln
writeln("List of bounds for Lsps")
147
148
9. Linguagens de Modelagem
writeln("-------------------------------------")
forall(k in Lsp) do
write("lsp: ",k," lbd:")
forall(l in Level)
write(" ",Lsp_lbd(k,l))
writeln
end-do
fclose(F_OUTPUT)
! Instantiate variables
forall(k in Lsp, l in Level, i in Node, j in Node | Arc(i,j)=1)
create(x(k,l,i,j))
forall(k in Lsp, l in Level)
create(y(k,l))
forall(k in Lsp, l in Level, i in Node, j in Node | Arc(i,j)=1)
x(k,l,i,j) is_binary
forall(k in Lsp, l in Level)
y(k,l) is_binary
! Objective Function
Total_Performance := sum(k in Lsp, l in Level)
Lsp_p(k)*Lsp_lbd(k,l)*y(k,l)
! arc capacity
forall(i in Node, j in Node | Arc(i,j)=1)
sum(k in Lsp, l in Level) Lsp_lbd(k,l)*x(k,l,i,j) <= Arc_u(i,j)
! maximum delay
forall(k in Lsp)
sum(i in Node, j in Node, l in Level | Arc(i,j)=1)
Arc_d(i,j)*x(k,l,i,j) <= Lsp_delay(k)
! Network Flow Constraints
forall(k in Lsp, l in Level, i in Node | i<>Lsp_s(k) and i<>Lsp_d(k) )
sum(j in Node | Arc(i,j)=1) x(k,l,i,j)
- sum(j in Node | Arc(j,i)=1) x(k,l,j,i) = 0
forall(k in Lsp, l in Level)
sum(j in Node | Arc(Lsp_s(k),j)=1) x(k,l,Lsp_s(k),j)
- sum(j in Node | Arc(j,Lsp_s(k))=1) x(k,l,j,Lsp_s(k)) = y(k,l)
forall(k in Lsp, l in Level)
sum(j in Node | Arc(Lsp_d(k),j)=1) x(k,l,Lsp_d(k),j)
- sum(j in Node | Arc(j,Lsp_d(k))=1) x(k,l,j,Lsp_d(k)) = -y(k,l)
forall(k in Lsp)
sum(l in Level) y(k,l) = 1
maximize(Total_Performance)
exportprob(EP_MAX,"t1.txt",Total_Performance)
fopen("f_sol.txt",F_OUTPUT)
149
9. Linguagens de Modelagem
writeln
writeln(Solution Found)
writeln(------------------------)
forall(k in Lsp, l in Level)
if( getsol(y(k,l))<>0) then
writeln("y(",k,",",l,") = ",getsol(y(k,l)))
end-if
writeln
forall(k in Lsp, l in Level, i in Node, j in Node | Arc(i,j)=1)
if( getsol(x(k,l,i,j))<>0) then
writeln("x(",k,",",l,",",i,",",j,") = ",getsol(x(k,l,i,j)))
end-if
writeln
writeln("objective: ",getobjval)
fclose(F_OUTPUT)
end-model
Inst
ancia Exemplo
Abaixo segue o conte
udo do arquivo model.dat com os parametros da instancia
a ser carregado quando da execucao do modelo model.mos dado acima. Observe
que em model.mos e feita referencia ao arquivo model.dat. A rede da instancia
exemplo esta ilustrada na Figura 9.1.
Lsp: [1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20 21]
Node: [1 2 3 4 5 6 7]
Arc: [ (1
(3
(4
(6
3)
4)
6)
7)
1
1
1
1
(3
(4
(6
(7
1)
3)
4)
6)
1
1
1
1]
(3
(4
(6
(7
1)
3)
4)
6)
(2 3) 1
(3 5) 1
(5 6) 1
(3 2) 1
(5 3) 1
(6 5) 1
Level: [0 1 2]
Arc_u: [(1
(3
(4
(6
3)
4)
6)
7)
100
100
100
100
Arc_d: [(1
(3
(4
(6
3)
4)
6)
7)
1
1
1
1
(3
(4
(6
(7
1)
3)
4)
6)
1
1
1
1]
100
100
100
100]
(2 3) 100
(3 5) 100
(5 6) 100
(2 3) 1
(3 5) 1
(5 6) 1
(3 2) 100
(5 3) 100
(6 5) 100
(3 2) 1
(5 3) 1
(6 5) 1
Lsp_s: [2 3 1 1 6 4 5 1 1 1 6 3 3 1 2 6 5 7 7 7 7]
Lsp_d: [5 1 4 5 5 2 2 2 2 6 2 1 6 4 4 2 4 5 3 2 1]
Lsp_p: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
150
9. Linguagens de Modelagem
Lsp_delay: [20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20]
Lsp_lbd: [(1 0) 0
(2 0) 0
(3 0) 0
(4 0) 0
(5 0) 0
(6 0) 0
(7 0) 0
(8 0) 0
(9 0) 0
(10 0) 0
(11 0) 0
(12 0) 0
(13 0) 0
(14 0) 0
(15 0) 0
(16 0) 0
(17 0) 0
(18 0) 0
(19 0) 0
(20 0) 0
(21 0) 0
(1 1) 8
(2 1) 10
(3 1) 14
(4 1) 5
(5 1) 1
(6 1) 3
(7 1) 8
(8 1) 11
(9 1) 9
(10 1) 1
(11 1) 2
(12 1) 13
(13 1) 1
(14 1) 6
(15 1) 14
(16 1) 4
(17 1) 5
(18 1) 4
(19 1) 5
(20 1) 6
(21 1) 2
(1 2) 16
(2 2) 20
(3 2) 28
(4 2) 11
(5 2) 2
(6 2) 6
(7 2) 17
(8 2) 22
(9 2) 18
(10 2) 3
(11 2) 5
(12 2) 26
(13 2) 2
(14 2) 13
(15 2) 28
(16 2) 9
(17 2) 10
(18 2) 8
(19 2) 10
(20 2) 13
(21 2) 4]
9.4.2
Formulac
ao em AMPL
LSPS;
# Set of LSP
NODES;
# nodes of the communication network
ARCS within (NODES cross NODES); # set of arcs
LEVELS;
# various amounts for LSPs
param lk_u
param lk_d
{(i,j) in ARCS};
{(i,j) in ARCS};
# arc capacity
# arc delay
9. Linguagens de Modelagem
param
param
param
param
param
Inst
ancia Exemplo
set LSPS := 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20 21;
set NODES := 1 2 3 4 5 6 7;
set ARCS :=
151
152
9. Linguagens de Modelagem
(6,7) (7,6);
set LEVELS := 0 1 2;
param:
lk_u lk_d :=
1 3 100 1
3 1 100 1
2 3 100 1
3 2 100 1
3 4 100 1
4 3 100 1
3 5 100 1
5 3 100 1
4 6 100 1
6 4 100 1
5 6 100 1
6 5 100 1
6 7 100 1
7 6 100 1;
param: lsp_s
1
2
2
3
3
1
4
1
5
6
6
4
7
5
8
1
9
1
10 1
11 6
12 3
13 3
14 1
15 2
16 6
17 5
18 7
19 7
20 7
21 7
lsp_d
5
1
1
1
4
1
5
1
5
1
2
1
2
1
2
1
2
1
6
1
2
1
1
1
6
1
4
1
4
1
2
1
4
1
5
1
3
1
2
1
1
1
param lsp_lbd:
0
1
2 :=
1
0
8
16
2
0
10 20
3
0
14 28
4
0
5
11
5
0
1
2
6
0
3
6
7
0
8
17
8
0
11 22
9
0
9
18
10 0
1
3
lsp_p lsp_delay :=
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20;
9. Linguagens de Modelagem
11
12
13
14
15
16
17
18
19
20
21
0
0
0
0
0
0
0
0
0
0
0
2
13
1
6
14
4
5
4
5
6
2
153
5
26
2
13
28
9
10
8
10
13
4;
9.5
Refer
encias
Para informacoes detalhadas e exemplos de uso avancado da linguagem AMPL, recomendamos o livro de Fourer, Gay e Kernighan [20]. Este texto apresenta a linguagem
por meio de exemplos que crescem em complexidade gradualmente sendo, portanto, recomendavel a todas as classes de usuarios. A leitura do livro e obrigatoria para aqueles
que desejam utilizar a linguagem na pratica e em pesquisa.
Da mesma forma que AMPL, o texto de Gueret, Prins e Sevaux [25] e uma das
referencias mais completas da linguagem MOSEL. Sao dados exemplos que variam
dos mais simples aos mais complexos juntamente com os respectivos modelos MOSEL.
Estes podem servir de base para a construcao de modelos adequados `as necessidades
do usuario.
9.6
Exerccios
154
9. Linguagens de Modelagem
1) Formule o problema de sequenciar as tarefas como um problema de programacao matematica inteira mista. (Sugestao: use variaveis xij = 1 se a
tarefa i precede j, e 0 caso contrario; e sj como o incio da tarefa j.)
2) Implemente o modelo desenvolvido em AMPL e/ou Xpress-MP. Encontre a
solucao otima para a instancia dada na Tabela 9.2
Tabela 9.2: Sequenciamento de tarefas
Tarefa j Peso wj Tempo pj
1
0.5
1.5
2
0.4
2.3
3
0.1
1.2
4
0.5
1.0
5
0.3
1.5
6
0.5
3.6
7
0.2
4.1
8
0.8
0.8
9
1.0
2.0
10
0.6
3.0
Captulo 10
Fundamentos de Programac
ao
Inteira
Este captulo inicia o estudo da programacao inteira. Apos apresentarmos alguns
problemas motivadores, descrevemos formalmente alguns casos particulares de problemas de programacao inteira e apresentamos um roteiro para modelagem de problemas.
Ao final introduzimos conceitos fundamentais para formulacao eficaz de problemas, em
particular formas de comparacao e avaliacao da qualidade de formulacoes alternativas
para um problema.
O material a seguir e uma sntese do Captulo 1 do livro de Wolsey [44].
10.1
Introduc
ao
Uma variedade expressiva de problemas de cunho pratico e teorico podem ser formulados em programacao linear inteira, incluindo problemas combinatorios freq
uentemente encontrados em teoria dos grafos, problemas de logica, situacoes praticas compreendendo a logstica de empresas, entre outros. No que segue, delineamos dois problemas praticos tipicamente resolvidos por meio de modelos e algoritmos de programacao
inteira.
10.1.1
Escalonamento de Trens
Considere uma empresa de transporte ferroviario que deseja encontrar um escalonamento de seus trens, ou seja, rotas incluindo datas de partida, chegadas e tempos de
permanencia em estacoes ao longo das rotas. Um aspecto relevante e o fato de que as
rotas se repetem diariamente, justificando portanto a otimizacao dos escalonamento.
Dados acerca do problema tambem estao disponveis e devem ser levados em consideracao: os tempos de percurso de uma estacao para outra sao conhecidos; dois trens
nao podem trafegar na mesma linha, a menos que separados por alguns minutos; e para
facilitar conexoes, o horario de partida de um trem A deve suceder o horario de chegada
de um trem B por alguns minutos. Enfim, o problema e encontrar um escalonamento
factvel que minimize algum criterio economico.
156
10.1.2
10.2
um Problema Inteiro?
O Que E
M ax cT x : Ax 6 b, x > 0
10.2.1
10.2.2
157
10.2.3
10.2.4
Problema de Otimizac
ao Combinat
oria
Problemas de natureza combinatoria compreendem aqueles em que se deseja encontrar um arranjo particular, dentre um n
umero comumente combinatorio e exponencial
de arranjos factveis, que minimize/maximize algum criterio de selecao para os diferentes arranjos. Seja N = {1, . . . , n} um conjunto finito, cj o custo de cada elemento
j de N , e F uma famlia de subconjuntos de N dita famlia de subconjuntos viaveis,
e.g., F 2N . Entao o problema de otimizacao combinatoria pode ser definido em
programacao matematica:
P OC : M axSN
X
jS
cj : S F
Freq
uentemente, POC pode ser formulado como PI ou PIB.
10.3
Programac
ao Linear e Arredondamento
Por que nao utilizar PL? Poderamos desconsiderar as restricoes de variaveis inteiras,
obter uma solucao otima x para PL e depois arredondar x de forma a se obter uma
solucao para PI, por exemplo. Infelizmente, esta abordagem nao funciona como mostra
o contra-exemplo abaixo:
M ax
x1 + 0.6x2
s.a : 50x1 + 31x2 6 250
3x1
2x2 > 4
x1 , x2 > 0 e inteiros
376 950
A solucao otima para PL, xP L = ( 193
, 193 ) = (1.94, 4.92), poderia ser arredondada para
a solucao xP L = (2, 4), que e bastante distante da solucao otima x = (5, 0). Uma
ilustracao e dada na Figura 10.1.
158
x2
(376/193, 950/193)
5
4
3
Fecho convexo
dos pontos inteiros
2
1
x
1
x1
10.4
Formulac
ao de PIs e PIBs
10.4.1
1
0
159
Definindo as Restric
oes
a) Cada pessoa i executa uma tarefa
n
X
xij = 1
i = 1, . . . , n
j=1
xij = 1
j = 1, . . . , n
i=1
i = 1, . . . , n j = 1, . . . , n
Definindo a Fun
c
ao Objetivo
Min
n X
n
X
cij xij
i=1 j=1
10.4.2
1
0
se o projeto j e selecionado
caso contrario
Defini
c
ao de Restric
oes
a) Limitacao de recursos:
n
P
aj x j 6 b
j=1
M ax
n
X
j=1
c j xj
160
10.4.3
jT
1
0
Definindo as Restric
oes
a) Pelo menos um centro deve servir a regiao i
n
X
aij xj > 1
para i = 1, . . . , m
j=1
para j = 1, . . . , n
Definindo a Fun
c
ao Objetivo
Min
n
X
j=1
c j xj
161
10.4.4
xij =
1
0
Definindo as Restric
oes
a) O viajante deixa a cidade i exatamente uma vez:
n
P
xij = 1
i = 1, . . . , n
j=1
n
P
xij = 1
j = 1, . . . , n
i=1
c) Restricoes de conectividade:
XX
S N, S 6=
xij > 1
iS j S
/
ou eliminacao de subrotas
X X
iS jS, j6=i
xij 6 |S| 1
S N, 2 6 |S| 6 n 1
Definindo a func
ao objetivo
Min
n X
n
X
i=1 j=1
cij xij
162
N S
10.5
Explos
ao Combinat
oria
Tabela 10.1: N
umero de solucoes em funcao do tamanho do problema
Tipo Problema
N
umero de solucoes
1 Alocacao (10.4.1)
n!
2 Mochila e cobertura
por conjuntos (10.4.2) e (10.4.3)
2n
3 Problema do caixeiro (10.4.4)
viajante assimetrico
(n 1)!
n
10
102
103
Tabela 10.2:
de
Crescimento
log2 n
n
n2
2n
3.32 3.16 102 103
6.64
10
104 1030
9.97 31.62 106 10301
funcoes
n!
3.6 106
9.3 10157
4 102567
163
10.6
Formulac
ao de Problemas Inteiros Mistos
(PIMS)
Modelos contendo variaveis discretas e contnuas apresentam propriedades sui generis, necessitando tratamento particular. Por exemplo, nos proximos captulos veremos
os cortes de Gomory que sao diferenciados dependendo do problema ser inteiro ou inteiro misto. No que segue sera apresentado um conjunto de truques de modelagem e
exemplos que podem ser u
teis.
10.6.1
Imagine a situacao onde se deseja modelar uma funcao nao-linear dada por:
h(x) =
f + px
0
se 0 < x 6 c
se x = 0
h(x)
Defini
c
ao de uma vari
avel adicional (y)
y=
1
0
se x > 0
se x = 0
164
Introduzindo a func
ao objetivo e restri
c
oes
h(x) = f y + px
x 6 cy
y {0, 1}
x>0
O modelo matematico acima e valido apenas para o caso de minimizacao. Note tambem
que x = 0 e y = 1 podem ocorrer.
10.6.2
Exemplo 2: Localiza
c
ao de Dep
ositos sem Limites de
Capacidade
1
0
m
P
xij 6 myj
j = 1, . . . , n
i=1
n
P
xij = 1
i = 1, . . . , m
j=1
c) Variaveis 0-1:
yj {0, 1}
j = 1, . . . , n
0 6 xij 6 1
i = 1, . . . , m e j = 1, . . . , n
Especificando a func
ao objetivo
Min
n
X
j=1
f j yj +
m X
n
X
i=1 j=1
cij xij
165
Problema completo
Minimize
n
P
f j yj +
n
P
j=1
m
P
cij xij
i=1 j=1
j=1
Sujeito a :
n
m P
P
xij = 1
i = 1, . . . , m
xij 6 myj
j = 1, . . . , n
(10.1)
i=1
yj {0, 1}
0 6 xij 6 1
10.6.3
j = 1, . . . , n
i = 1, . . . , m e j = 1, . . . , n
Uma area que tem recebido atencao de pesquisadores e esta tendo resultados promissores na pratica e a programacao disjuntiva, ou seja, modelagem e algoritmos com
base em disjuncoes. Para entender a programacao disjuntiva, suponha que x Rn
satisfaz
06x6ue
(10.2)
aT1 x 6 b1 ou aT2 x 6 b2
Em outras palavras, x deve satisfazer uma ou outra restricao linear, nao sendo necessario mas possvel que ele satisfaca ambas as restricoes. A regiao factvel de uma
disjuncao com duas restricoes e ilustrada na Figura 10.1. Note que a regiao factvel
nao e convexa.
x2
aT2 x = b2
Regiao Factvel
aT1 x = b1
x1
166
10.7
Formulaco
es Alternativas
Nesta e na proxima secao tentaremos entender o que leva uma formulacao a ser
melhor do que outra. Ha situacoes em que uma formulacao e superior a outra, em
especial se leva a uma solucao algortmica mais eficiente.
Defini
c
ao 10.1 Um subconjunto do Rn descrito por um conjunto finito de restricoes
lineares P = {x Rn : Ax 6 b} e dito um poliedro.
Defini
c
ao 10.2 Um poliedro P Rn+p e uma formulacao para um conjunto X
Zn Rp se, e somente se, X = P (Zn Rp ).
10.7.1
Formulac
oes Equivalentes para o Problema da Mochila
+ 61x2
+ 3x2
+ 3x2
+
x2
+ 49x3 + 20x4
+ 2x3 +
x4
+ 2x3 +
x4
+
x3
+
x4
6 100}
6
4}
6
4,
6
1,
6
1}
167
x2
x1
10.7.2
Localiza
c
ao de Dep
ositos sem Limites de Capacidade
yj {0, 1},
xij 6 myj ,
i=1
0 6 xij 6 1 para i M
(10.3)
(10.4)
n
m P
P
i=1 j=1
n
P
cij xij +
xij = 1
n
P
f j yj
j=1
i = 1, . . . , m
j=1
0 6 xij 6 yj
yj {0, 1}
(10.5)
i = 1, . . . , m e j = 1, . . . , n
j = 1, . . . , n
168
10.8
Formulaco
es Apertadas e Ideais
Ja observamos que o n
umero de formulacoes validas pode ser infinito. Dentre um
n
umero potencialmente infinito de formulacoes, qual e a melhor formulacao? Por exemplo, considere o conjunto e as formulacoes equivalentes ilustrados na Figura 10.6.
x2
3
P1
2
P2
P3
1
x1
169
10.8.1
Formulac
oes Equivalentes para o Problema da Mochila
Vamos relembrar as tres formulacoes alternativas para o problema da mochila sugerido na Secao 10.7.1.
P1 = {x R4 : 0 6 x 6 1, 83x1
P2 = {x R4 : 0 6 x 6 1, 4x1
P3 = {x R4 : 0 6 x 6 1, 4x1
x1
x1
+ 61x2
+ 3x2
+ 3x2
+
x2
+ 49x3 + 20x4
+ 2x3 +
x4
+ 2x3 +
x4
+
x3
+
x4
6 100 }
6
4 }
6
4
6
1
6
1 }
Portanto x P1 ; x P2 .
Agora mostraremos que P3 P2 : claramente, P3 P2 ; o ponto x = ( 21 , 0, 1, 0) P2
mas x
/ P3 . As relacoes de inclusao entre as tres formulacoes alternativas sao ilustradas
na Figura 10.7
P1
P2
P3
10.8.2
Formulac
ao para o Problema de Localiza
c
ao de
Dep
ositos
P2 : xij 6 yj para i M
(10.7)
170
10.9
Refer
encias
10.10
Exerccios
171
2
1
2
1
6
1
2
4
8
2
1
3
172
tubos mestres, um horizontal a ser instalado na altura y e um vertical a ser colocado na posicao x, terao como ponto de conexao a coordenada (x, y). Os pontos
de abastecimento de S deverao ser conectados ao tubo mestre horizontal (por um
tubo secundario vertical) ou ao tubo mestre vertical (por um tubo secundario
horizontal), conforme ilustrado na Figura 10.9.
Nosso problema e determinar o ponto de instalacao (x, y) e decidir como que
os pontos de abastecimento serao conectados (com o tubo mestre vertical ou
horizontal) de forma que a metragem total de tubos secundarios seja minimizada.
possvel colocar o proFormule este problema em programacao matematica. E
blema em um modelo inteiro misto?
Faca uso do modelo desenvolvido para resolver a instancia dada pela Figura
10.9, cujos pontos sao: (x1 , y1 ) = (239, 491); (x2 , y2 ) = (193, 455); (x3 , y3 ) =
(318, 478); (x4 , y4 ) = (276, 429); (x5 , y5 ) = (203, 406); (x6 , y6 ) = (149, 379);
(x7 , y7 ) = (151, 350); (x8 , y8 ) = (230, 340); (x9 , y9 ) = (325, 347); (x10 , y10 ) =
(383, 272); (x11 , y11 ) = (414, 360); (x12 , y12 ) = (440, 442); (x13 , y13 ) = (383, 506);
e (x14 , y14 ) = (463, 496).
(x13 , y13 )
(x14 , y14 )
(x1 , y1 )
(x3 , y3 )
(x2 , y2 )
(x4 , y4 )
(x12 , y12 )
(x5 , y5 )
(x6 , y6 )
(x7 , y7 )
(x8 , y8 )
(x9 , y9 )
Mestre Vertical
(x10 , y10 )
Captulo 11
Programac
ao Inteira: Relaxa
co
es e
Algoritmo Branch-and-Bound
Da mesma forma que em problemas de otimizacao diferenciaveis, e de grande valor
conhecermos condicoes sob as quais uma solucao candidata pode ter sua qualidade estimada em relacao `a solucao otima, mesmo sem conhecermos a solucao otima. Este tipo
de estimacao e comumente obtido atraves da solucao otima de problemas mais faceis,
todavia com espaco de solucoes mais abrangente do que o espaco do problema em
questao. Estes problemas sao ditos relaxacoes, podendo ser obtidos por meio da desconsideracao de algumas restricoes, da desconsideracao das restricoes de integralidade,
e da simplificacao do problema.
Neste captulo investigaremos questoes relacionadas `a otimalidade, diferentes tipos
de relaxacoes, e por fim apresentaremos o algoritmo de branch-and-bound que pode
ser visto como um procedimento de enumeracao implcita que faz uso de uma mais
relaxacoes.
O texto a seguir e uma sntese traduzida do livro texto de Wolsey [44].
11.1
Condico
es de Otimalidade
z = Max {cT x : x X Zn }
Dado PI e uma solucao candidata x , como podemos provar que x e uma solucao
otima? Em outras palavras, procuramos condicoes de otimalidade que provem uma
condicao de parada para algoritmos. Um metodo que a primeira vista parece ingenuo,
consiste em encontrar um limite inferior z 6 z e um limite superior z > z tal que se
z = z, entao z e otimo. Tipicamente, algoritmos produzem duas seq
uencias de limites:
uma seq
uencia de limites superiores z 1 > z 2 > . . . > z t > z
uma seq
uencia de limites inferiores z 1 < z 2 < . . . < z k 6 z
174
11.1.1
Limite Primal
Encontrar uma solucao factvel pode ser uma tarefa facil ou ardua, dependendo
intrinsecamente do problema e da instancia particular. Qualquer solucao viavel x,
x X, induz um limite inferior (limite primal para o caso de maximizacao) ja que
cT x 6 cT x = z . No caso de problema NP-Completos, como o de encontrar um
circuito Hamiltoniano em um grafo, a busca de uma solucao factvel se resulta a resolver
o problema enquanto, por outro lado, encontrar uma rota factvel do problema do
caixeiro viajante e facil, estando a dificuldade em encontrar a rota mais curta.
11.1.2
Limite Dual
Um metodo para encontrar limites superiores faz uso de uma relaxacao do problema
original, ou seja, um problema mais simples cuja solucao otima nao e inferior `a solucao
otima do problema original.
Defini
c
ao 11.1 Um problema (RP) z R = M ax{f (x) : x T Rn } e uma relaxacao
do problema (PI) z = M ax{c(x) : x X Rn } se:
i) X T
ii) f (x) > c(x) para todo x X.
Proposi
c
ao 11.1 Se (RP) e uma relaxacao de (PI) ent
ao z R > z.
11.2
Relaxa
c
ao Baseada em PL (Relaxac
ao Linear)
Defini
c
ao 11.2 Para o problema de programacao inteira M ax{cT x : x P Zn }
com formulacao P = {x Rn+ : Ax 6 b} a relaxacao em programacao linear e z P L =
M ax{cT x : x P }.
Exemplo:
z = M ax 4x1 x2
s.a : 7x1 2x2 6 14
x2 6 3
2x1 2x2 6 3
x Z2+
Limite inferior: observe que x = (2, 1) e factvel, portanto z > 7.
limite superior: a solucao otima da relaxacao linear e x =
portanto conclumos que z 6 8 6 59
, onde 8 = 59
.
7
7
20
,3
7
com z LP =
59
,
7
Proposi
c
ao 11.2 Sejam P1 , P2 duas formulacoes para o problema inteiro z =
M ax{cT x : x X Zn } sendo P1 mais apertada do que P2 (ou seja P1 P2 ).
Se ziP L = M ax{cT x : x Pi } para i = 1, 2 , ent
ao z1P L 6 z2P L .
175
Proposi
c
ao 11.3
(i) Se a relaxacao RP e infactvel, ent
ao o problema original PI e infactvel
(ii) Seja x uma solucao
otima para RP. Se x X Zn e f (x ) = c(x ), ent
ao x
e uma solucao
otima para PI.
11.3
Relaxa
c
ao Combinat
oria
11.3.1
n X
n
X
cij xij
i=1 j=1
n
X
j=1
n
X
(11.1)
xij = 1
i = 1, .., n
(11.2)
xij = 1
j = 1, .., n
(11.3)
i=1
XX
xij > 1
iS j S
/
xij {0, 1}
(i, j) A
(11.4)
(11.5)
Eliminando a famlia de restricoes (11.4), obtem-se um problema de alocacao, conforme o problema de alocacao de pessoas a tarefas visto em captulo anterior. Note que
o problema de alocacao pode ser eficientemente resolvido fazendo uso de algoritmos
para fluxo em redes de custo mnimo.
11.3.2
O Problema da Mochila
n
P
j=1
n
P
c j xj
aj x j 6 b
j=1
xj {0, 1}, j = 1, . . . , n
(11.6)
176
Uma primeira relaxacao pode ser obtida ao tomarmos os valores inteiros imediatamente
inferiores aos pesos dos objetos:
(RP1 ) M ax
s.a :
n
P
c j xj
j=1
n
P
aj xj 6 b
(11.7)
j=1
xj {0, 1}, j = 1, . . . , n
n
P
c j xj
j=1
n
P
aj xj 6 b
(11.8)
j=1
xj {0, 1}, j = 1, . . . , n
11.4
Relaxa
c
ao Lagrangeana
(11.9)
(11.10)
(11.11)
Como visto acima, uma relaxacao pode ser obtida ao eliminarmos o conjunto de restricoes {Ax 6 b}. Em vez de eliminar {Ax 6 b}, a relaxacao Lagrangeana incorpora
estas restricoes na funcao objetivo como segue:
(RL) z = M ax cT x + uT (b Ax)
s.a : x X
u>0
(11.12)
(11.13)
(11.14)
Proposi
c
ao 11.4 Seja z(u) = M ax {cT x + uT (b Ax) : x X}. Entao z(u) > z
para todo u > 0.
De acordo a Proposicao 11.4, a solucao otima do problema RL para u > 0 qualquer
induz um limite superior z(u) > z , onde z e o valor da solucao otima de PI. Nao
e difcil de se verificar que z(u) > cT x, para todo x P = {x : x X e Ax 6 b}:
cT x 6 cT x + uT (b Ax) uma vez que b Ax > 0 para x factvel e u > 0; ja que as
solucoes factveis de P I tambem fazem parte do espaco de solucoes factveis de RL,
verifica-se que z(u) > z . Uma vez que z(u) e um limite superior para z naturalmente
desejamos minimiza-lo, dando origem ao problema Lagrangeano dual:
LD :
M in z(u)
= M in M ax cT x + uT (b Ax)
u>0
u>0
s.a : x X
177
Um aspecto relevante do Lagrangeano dual e o fato do problema ser convexo mas nao
diferenciavel. Um algoritmo que pode ser usado para encontrar uma solucao aproximada para LD, e ate mesmo uma solucao otima quando certas condicoes sao satisfeitas,
e o algoritmo subgradiente. Este algoritmo opera de forma semelhante ao algoritmo
de descenso. Dada um vetor de multiplicadores de Langrange uk , o algoritmo encontra
um subgradiente dk que indica a direcao na qual os multiplicadores devem ser aumentados/diminudos. Assim, o iterando seguinte uk+1 = uk + k dk e obtido por meio do
passo k > 0. Em virtude da natureza nao-diferenciavel do problema, nao e possvel
obter condicoes como as de Armijo.
11.5
Algoritmo Branch-and-Bound
11.5.1
Estrat
egia de Divis
ao e Conquista
Considere o problema:
z = M ax{cT x : x S}
Como que o problema acima pode ser quebradoem subproblemas menores e depois
recombinadosde maneira a se obter uma solucao para o problema original? Abaixo
enumeramos algumas proposicoes que servem de regras gerais para que a quebra seja
feita de uma forma sistematica e com embasamento teorico.
Proposi
c
ao 11.5 Seja S = S1 . . . SK uma decomposicao de S em K conjuntos
menores. Seja tambem z k = M ax{cT x : x Sk } para k = 1, . . . , K. Entao, z =
M axk z k .
Uma maneira tpica de se ilustrar a estrategia de divisao e conquista, obedecendo
as premissas da Proposicao 11.5, e por meio de uma arvore de enumeracao.
Exemplo: Para S {0, 1}3 , podemos construir a arvore de enumeracao da Figura
11.1. Claramente S = S0 S1 , onde S0 = {x S : x1 = 0} e S1 = {x S :
x1 = 1}. Estendendo este princpio a mais um nvel, podemos subdividir cada um dos
subproblemas em subproblemas ainda menores, fazendo S0 = S00 S01 e S1 = S10 S11 ,
onde Si1 i2 = {x Si1 : x2 = i2 }.
178
S
x1 = 1
x1 = 0
S0
S1
x1 = 1
S0
S1
x2 = 0
x2 = 1 x2 = 0
x2 = 1
S00
S01
S11
S10
11.5.2
Enumera
c
ao Implcita
179
S
x1 = 0
x1 = 1
S0
S1
x2 = 0
x2 = 1 x2 = 0
x2 = 1
S00
S01
S11
x3 = 0
S10
x3 = 1
S111
27
27
S 13
lb = 13
S1
S 13
25
20
20
S2
15
S1
20
25
S2
15
20
eliminado por otimalidade
180
tambem foram computados e estao indicados ao lado de cada no da arvore de enumeracao. Note que l2 > u1 , o que significa que a melhor solucao possvel de ser obtida
no espaco de solucoes S1 e inferior a melhor solucao primal encontrada ate o momento.
Portanto, podemos eliminar a busca a partir de S1 dessa forma eliminando muitas
solucoes de forma implcita. Este corte e ilustrado na figura.
27
S
27
S
13
25
20
S1
S2
18
21
13
25
20
S1
S2
18
21
Exemplo de situac
ao sem possibilidade de corte
Agora tome como exemplo a arvore de enumeracao dada `a esquerda da Figura 11.6.
Note que o limite superior de S e maior do que o limite superior obtido em S1 e em
S2 , podemos entao substituir o limite anterior de 40 para 37, ja que S = S1 S2 . O
melhor limite inferior obtido ate entao e 13 que, neste momento, se torna o melhor
limite primal para o problema, como ilustrado na arvore `a direita. Todavia, ambos os
nos S1 e S2 devem ser quebrados em subproblemas menores.
40
37
37
24
S1
13
S2
13
24
37
S1
S2
13
Nenhum ramo da arvore pode ser eliminado
Conclus
oes
Baseado nos exemplos acima, podemos listar tres razoes para cortar ramos da
arvore:
i) Cortando por razao de otimalidade: zt = M ax{cT x : x St } foi resolvido
ii) Cortando por meio dos limites: z t < z
iii) Cortando devido `a infactibilidade do subproblema: St =
181
Lembramos aqui que os limites primais (inferiores) sao obtidos com solucoes
factveis, enquanto que os limites duais (superiores) sao obtidos atraves de relaxacao
imediata a aplicacao da tecnica de enumeracao com base nas ideias
ou dualidade. E
acima apresentadas. No entanto, as seguintes questoes sao de relevancia:
i. Que problema de relaxacao ou dual deve ser empregado para obter-se limites supe` vezes podemos tirar vantagem da estrutura do problema na concepcao
riores? As
de procedimentos de dualidade como, por exemplo, a relaxacao Lagrangeana das
restricoes de grau 1 do problema do caixeiro viajante.
ii. Como devemos decompor S em S1 . . . SK ? Nao e incomum se fazer valer de
uma heurstica que explora a natureza particular de um problema.
iii. Em que ordem devemos examinar os subproblemas? Duas estrategias empregadas
sao a busca em profundidade (depth-first search) e a busca pelo melhor ramo
(best-first search).
11.5.3
182
x1 > 3
x1 6 2
S1
S2
6 14
6 3
6 3
6 2
cuja solucao otima e (x11 , x12 ) = (2, 21 ) que por sua vez induz o limite superior
.
z = 15
2
Branching: Quebramos S1 em dois conjuntos: S11 = S1 {x : x2 6 0} e S12 = S1 {x :
x2 > 1}, o que faz com que a lista de nos ativos se torne L = {S2 , S11 , S12 }. O
resultado desta subdivisao esta indicado na Figura 11.8.
59/7
S
x1 > 3
x1 6 2
S1
x2 6 0
S11
15/2
S2
x2 > 1
S12
183
x1 > 3
x1 6 2
15/2
S1
x2 6 0
S2
x2 > 1
S11
S12
7
184
11.6
Refer
encias
11.7
Exerccios
= x0
= 86.5
6 77.3
6 82.3
185
186
Captulo 12
Algoritmos de Planos de Corte e
Desigualdades Fortes
Aqui iniciaremos o estudo de algoritmos branch-and-cut (planos de corte) que adicionam desigualdades validas `a relaxacao linear ate que se obtenha uma solucao inteira.
Em outras palavras, o algoritmo branch-and-cut se assemelha ao algoritmo branch-andbound mas procura aproximar o poliedro inteiro (o fecho convexo das solucoes inteiras)
de uma forma iterativa. Estudaremos ainda os chamados cortes de Gomory, que podem
ser aplicados a qualquer problema linear inteiro (ou misto), e cortes especficos para
alguns problemas de interesse.
12.1
Introduc
ao a Planos de Corte
M ax{cT x : x X},
onde X = {x : Ax 6 b, x Zn+ }
6 b, x > 0}
M ax{cT x : Ax
Note que qualquer ponto extremo de LP e uma solucao otima de IP . Para alguns problemas, tal como o problema de fluxo em redes, conhecemos uma descricao completa
de conv(X). Em geral, e particularmente para problemas NP-difceis, nao ha esperanca de se encontrar uma descricao completa de conv(X), mesmo porque esta pode
conter um n
umero exponencial de restricoes. Dado um problema NP-difcil, aqui nos
preocupamos em encontrar uma aproximacao para conv(X) para uma dada instancia,
podendo esta aproximacao ser construda gradualmente `a medida que se insere novas
restricoes validas e nao triviais, preferencialmente desigualdades que toquem no poliedro que descreve conv(X). O conceito fundamental que ja utilizamos informalmente e
o de desigualdade valida, agora formalizado pela definicao abaixo.
188
Defini
c
ao 12.1 Uma desigualdade T x 6 0 e uma desigualdade valida para X Rn
se T x 6 0 para todo x X.
Surgem imediatamente duas questoes relevantes:
a) Quais desigualdades sao boas e
uteis?
b) Se conhecemos uma famlia de desigualdades para um certo problema, como
podemos utiliza-las de uma forma eficaz?
Ambas as questoes acima serao respondidas nas proximas secoes, cujas respostas implicam diretamente na eficacia de uma abordagem por planos de cortes.
12.2
Exemplos de Desigualdades V
alidas
12.2.1
12.2.2
189
12.2.3
Considere o conjunto
X = {(x, y) : 0 6 x 6 10y, 0 6 x 6 14, y Z+ }
O leitor pode se convencer da validade da desigualdade
x 6 14 4(2 y)
O espaco de solucoes factveis X juntamente com a desigualdade valida e ilustrado na
Figura 12.1.
y
3
x 6 6 + 4y
(14,2)
x6y
(10,1)
10
12 14 16
12.2.4
Conjunto Combinat
orio
eE(T )
xe 6
|T | 1
2
190
propcio mencionarmos que conv(X) pode ser obtido atraves da insercao de todas as
E
desigualdades da forma acima, isto e, conv(X) e precisamente o poliedro dado por:
P
|E|
conv(X) = {x R+ :
xe 6 1
i V
Pe(i)
|T |1
T V, |T | mpar e |T | > 3}
eE(T ) xe 6
2
12.2.5
Arredondamento Inteiro
12.2.6
6
11
x4
x4
x4
x4
6
11
72
> 11
72
> 11
72
> 11
> 7
Considere o mesmo exemplo anterior mas com a adicao de uma variacao contnua.
Seja X = P (Z4 R) onde
P = {(y, s) R4+ R+ : 13y1 + 20y2 + 11y3 + 6y4 + s > 72}
Novamente dividindo a desigualdade por 11, obtemos
13
y
11 1
13
y
11 1
+
+
20
y
11 2
20
y
11 2
+
+
11
y
11 3
11
y
11 3
+
+
6
y
11 4
6
y
11 4
s
11
>
>
72
11
72s
11
= 7
2y1 + 2y2 + y3 + y4 > 11
726
2y1 + 2y2 + y3 + y4 > 11 = 6
se s = 0
se s = 6
12.3
Teoria de Desigualdades V
alidas
12.3.1
191
Desigualdades V
alidas para Problemas Lineares
T x 6 uT Ax 6 uT b 6 0
(, 0 ) e uma desigualdade valida.
12.3.2
Desigualdades V
alidas para Problemas Inteiros
Proposi
c
ao 12.3 A desigualdade y 6 b e valida para X = {y Z : y 6 b}.
Exemplo: Podemos utilizar a Proposicao 12.2 para gerar desigualdades validas para
um poliedro dado pelas restricoes abaixo:
7x1 2x2
x2
2x1 2x2
x
6
6
6
>
14
3
3
0, x inteiro
(12.1)
(12.2)
(12.3)
(12.4)
37
i) Multiplicamos as restricoes por um vetor de pesos nao negativos u = ( 27 , 63
, 0) e
obtemos a desigualdade valida:
2x1 +
121
1
x2 6
63
21
121
21
iii) Uma vez que o lado esquerdo so pode assumir valores inteiros, podemos reduzir
o valor do lado direito ao inteiro mais proximo, obtendo a desigualdade
2x1 6
5
121
= 5 x1 6
x1 6 2
21
2
192
12.3.3
Procedimento Chv
atal-Gomory para Gerac
ao de Desigualdades V
alidas
n
P
aj x j 6 b
j=1
Passo 2: A desigualdade
n
P
j=1
Passo 3: A desigualdade
n
P
j=1
e portanto
n
P
uT aj xj e inteiro
j=1
12.4
193
iT
12.5
x > 0 e inteiro
(12.6)
jN B
auo
auj xj +
jN B
jN B
jN B
auj xj 6 auo
(12.7)
(12.8)
(12.9)
jN B
onde fuj = auj auj e fuo = auo auo . Uma vez que 0 6 fuj < 1 e 0 < fuo < 1,
e xj = 0 para toda a variavel j N B na solucao x , a desigualdade (12.9) corta a
solucao corrente x .
194
12.5.1
Exemplo
6
6
6
>
14
3
3
0, inteiros
(12.10)
59
7
x1
4
x
7 3
1
x
7 3
2
x
7 3
x2
x1 , x2 ,
x3 ,
71 x4
+ 72 x4
+ x4
+ 10
x + x5
7 4
x4 ,
x5
= 20
(= 2.8571)
7
= 3
= 23
(= 3.2857)
7
> 0 e inteiros
(12.11)
, 3, 27
, 0, 0)
/ Z5+ , portanto usamos a
A solucao otima da relaxacao linear e x = ( 20
7
7
primeira linha de (12.11), na qual a variavel basica x1 e fracionaria, para gerar o corte
x1 + 17 x3 + 27 x4 6 20
x1 6 2
7
x1 + s = 2, x1 =
20
7
71 x3 27 x4 20
71 x3 27 x4 + s = 2
7
s = 2 20
+ 17 x3 + 72 x4
7
1
6
s = 7 + 7 x3 + 27 x4
com s, x3 , x4 > 0 e inteiros.
15
2
x1
1
x
2 5
1
x
2 5
x5
x4 + 21 x5
x1 , x2 , x3 , x4 ,
x5 ,
x2
x3
+
+
3s
s
s
5s
6s
s
= 2
= 12
= 1
= 52
> 0 e inteiros.
(12.12)
A solucao otima da relaxacao linear acima (12.12), x = (2, 21 , 1, 52 , 0, 0), continua fracionaria uma vez que x2 e x4 sao fracionarios. A aplicacao do corte de Gomory fracionario na segunda linha produz:
x2 + 12 x5 + 1s 6 21
x2 x5 + s 6 0
x2 x5 + s + t = 0, t > 0
( 21 + 21 x5 s) x5 + s + t = 0
t 21 x5 = 12 , t > 0
195
+
+
3s
s
s
5s
6s
s,
=
t =
2t =
+ t =
t =
t >
2
1
2
2
1
0 e inteiros
A solucao obtida e otima pois os valores de todas as variaveis sao inteiros. A solucao
otima e x = (2, 1, 2, 2, 1) cujo valor da funcao objetivo e z = 7.
12.6
Desigualdades Disjuntivas
j=1
Proposi
c
ao 12.5 Se P i = {x Rn+ : Ai x 6 bi } para i = 1, 2 s
ao poliedros n
ao-vazios,
ent
ao (, 0 ) e uma desigualdade valida para conv(P 1 P 2 ) se e somente se existem
u1 , u2 > 0 tal que:
T 6 uT1 A1
T 6 uT2 A2
0 > uT1 b1
0 > uT2 b2
12.6.1
Exemplo
Sejam P 1 = {x R2 : x1 + x2 6 1, x1 + x2 6 5} e P 2 = {x R2 : x2 6 4,
2x1 + x2 6 6, x1 3x2 6 2} dois poliedros. Fazendo u1 = (2, 1) e u2 = ( 25 , 12 , 0) e
depois aplicando a Proposicao 12.5 obtemos:
1 1
T 1
= 1 3
uT1 b1 = 7
u1 A = 2 1
1 1
0
1
1 = 1 3
uT2 b2 = 7
uT2 A2 = 25 12 0 2
1 3
196
x_2
7
6
5
4
3
2
1
10
11
x_1
12.6.2
6
6
>
>
uT0 A + v0 + w0 ej
uT1 A + v1 w1 ej
uT0 b + 1T v0
uT1 b + 1T v1 w1
197
1
1
2
2
6 4u0 + v10
6 4u1 + v11
6 5u0 + v20 + w0
6 5u1 + v21 w1
3 6 3u0 + v30
3 6 3u1 + v31
4 6 6u0 + v40
4 6 6u1 + v41
u0 , u1 , v 0 , v 1 , w 0 , w 1 > 0
Objetivando tornar o espaco de solucoes factveis limitado, devemos introduzir um
criterio de normalizacao. Duas possibilidades sao:
Pn
a)
j=1 j 6 1
b) 0 = 1
12.7
Exerccios
EX 12.1: Para os tres conjuntos X abaixo, encontre algebricamente uma desigualdade valida cuja adicao nos da conv(X). Verifique graficamente que a adicao da
desigualdade nos da conv(X).
i. X = {x B2 : 3x1 4x2 6 1}
198
Captulo 13
Programac
ao com Restri
co
es
L
ogicas
200
Captulo 14
Programac
ao Din
amica: Domnio
Discreto
Uma tecnica poderosa para resolver problemas de decisao sequencial e de controle
consiste em quebra-los em subproblemas menores, mais faceis de serem resolvidos.
Quando quebramos um problema em subproblemas do mesmo tipo, tipicamente podemos produzir algoritmos recursivos, frequentemente empregados para resolver problemas computacionais. Dois paradigmas de concepcao de algoritmos por meio de quebra
sao:
Divis
ao e Conquista: Este paradigma e amplamente adotado na concepcao de algoritmos tipicamente encontrados na Ciencia da Computacao, podendo ser dividido
em tres etapas:
quebre o problema em duas metades;
202
Este tipo de abordagem e comum em problemas de controle otimo, como sera abordado
` vezes e possvel conceber uma solucao
em mais detalhes no captulo seguinte. As
analtica fechada para cada estagio o que resulta em um algoritmo eficiente, mas mesmo
nos casos onde apenas uma solucao iterativa pode ser obtida, a programacao dinamica
pode resultar em uma solucao algortmica eficaz. Alguns aspectos importantes sobre
DP (Programacao Dinamica) sao:
1) problemas cujas instancias apresentam uma ordem da esquerda para a direita,
como cadeias de smbolos e vertices de polgonos, sao candidatos a uma solucao
por DP;
2) sem uma ordem, DP pode resultar em um algoritmo de tempo exponencial; e
3) DP produz uma solucao otima global.
As secoes abaixo apresentam o formalismo de programacao dinamica de uma forma
informal, atraves de exemplos. Comecamos com o problema de calcular os n
umeros
de Fibonacci, que ilustra a economia computacional que pode ser obtida por meio da
programacao dinamica. O exemplo seguinte mostra como DP pode ser empregada na
solucao do problema mochila, exemplificando uma maneira de se obter uma solucao
otima a partir dos valores otimos das funcoes objetivo. O terceiro exemplo trata da
identificacao da subseq
uencia de smbolos mais longa, enquanto que o u
ltimo exemplo
apresenta a solucao para um problema complexo de edicao de cadeias de smbolos.
Este u
ltimo problema e suas generalizacoes tem aplicacoes em sistemas operacionais,
casamento de padroes e sequenciamento de DNA.
14.1
Um Exemplo de Programac
ao Din
amica
Programacao dinamica e uma tecnica difcil de entender mas cuja solucao, uma vez
obtida, e de facil compreensao. Em algoritmos para problemas como o de ordenacao
de n
umeros, corretude e mais facil de verificar do que eficiencia. Este nao e o caso
de problemas de otimizacao, onde deseja-se provar que um algoritmo sempre produz
uma solucao otima. Algoritmos gulosos, heursticas que executam uma busca local
sao eficientes mas apenas ocasionalmente encontram uma solucao otima. Algoritmos
baseados em enumeracao, por outro lado, avaliam direta- ou indiretamente todas as
possveis solucoes e portanto encontram a solucao otima, todavia o custo computacional
pode ser proibitivo.
Programacao Din
amica combina estes dois universos (algoritmos gulosos e de enumeracao): a tecnica sistematicamente considera todas as possveis decisoes e sempre
seleciona a otima, armazenando as consequencias de todas as decisoes ate o presente
estagio, e usando estas informacoes de uma forma sistematica, o trabalho computacional pode ser minimizado.
A melhor maneira de aprender DP e por meio de exemplos.
14.1.1
203
Calculando N
umeros de Fibonacci
..
.
T (n 2) + T (n 2)
2T (n 2)
4T (n 4)
8T (n 6)
k
2 T (n 2k)
Note que
(14.1)
(14.2)
(14.3)
(14.4)
(14.5)
(14.6)
n1
2
n1
n/2
portanto, T (n) 2 2 T (n) (2 ). Conlcumos entao que o algoritmo recursivo e ineficiente, levando um tempo exponencial para calcular Fk . Voce pode mostrar
que o algoritmo executa em tempo (2n )? Veja a arvore de recursao dada na Figura
14.1.
Podemos desenvolver um algoritmo mais eficiente, de tempo linear se armazenarmos
os valores das instancias menores e nao recalcularmos os seus valores. O algoritmo
alternativo e dado abaixo.
n 2k = 1 k =
204
F(4)
F(5)
F(3)
F(2)
F(1)
F(2)
F(1)
F(1)
F(2)
F(1)
F(0)
F(1)
F(2)
F(3)
F(3)
F(4)
F(0)
F(2)
F(1)
F(1)
F(1)
F(0)
F(0)
F(0)
14.2
Programac
ao Din
amica para o Problema da
Mochila
n
P
j=1
n
P
j=1
c j xj
aj x j b
xj {0, 1}, j = 1, . . . , n
205
k
P
j=1
k
P
j=1
c j xj
aj x j
xj {0, 1}, j = 1, . . . , k
Em palavras, Pk () e o problema da mochila restrito aos k primeiros itens e uma
mochila de capacidade . Assim, z = fn (b) nos da a solucao otima para P . Nos resta
entao obter uma recursao que permite calcular fk () em termos dos valores de fs (u)
com s k e u .
O que podemos dizer sobre a solu
c
ao
otima x para o problema Pk ()
com valor fk ()? Claramente, xk = 0 ou xk = 1. Considerando cada caso, temos:
Caso 1) Se xk = 0, entao conclumos que a solucao otima satisfaz fk () = fk1 ()
Caso 2) Se xk = 1, entao conclumos que a solucao otima satisfaz fk () = ck +fk1 (ak )
Combinando os casos (1) e (2), obtemos a recorrencia abaixo:
fk () = M ax{fk1 (), ck + fk1 ( ak )}
(14.7)
14.2.1
Complexidade do Algoritmo
Calculando o n
umero de operacoes necessarias para obtermos z = fn (b), verificamos
que o calculo de fk () para = 0, 1, . . . , b e k = 1, . . . , n necessita de um n
umero
constante de operacoes. O algoritmo roda em tempo (nb), sendo portanto pseudopolinomial. O algoritmo tem tempo de execucao polinomial se b O(log n), ja que b
pode ser representado em notacao binaria com k bits, ou seja, b 2k .
Exemplo: Considere a instancia do problema da mochila que segue abaixo.
z = Maximize 10x1 + 7x2 + 25x3 + 24x4
sujeito a:
2x1 + x2 + 6x3 + 5x4 7
206
0
1
2
3
4
5
6
7
f0
0
0
0
0
0
0
0
0
f1
0
0
10
10
10
10
10
10
f2
0
7
10
17
17
17
17
17
f3
0
7
10
17
17
17
25
32
f4
0
7
10
17
17
24
31
34
p1
0
0
1
1
1
1
1
1
p2
0
1
0
1
1
1
1
1
p3
0
0
0
0
0
0
1
1
p4
0
0
0
0
0
1
1
1
14.3
207
(14.8)
(14.9)
Para a situac
ao sob considerac
ao, qual
e o n
umero de possveis solu
c
oes
candidatas?
n
n
n
(14.10)
+ ... +
+
T (n) =
n
2
1
n
X
n
(14.11)
=
k
k=1
= (1 + 1)n
(pelo Binomio de Newton)
n
= 2 T (n) (2n )
(14.12)
(14.13)
Nao e difcil construir um algoritmo com tempo de execucao (n2 ) para encontrar a
subseq
uencia mais longa de uma cadeia de n smbolos. Tomando como base o n
umero
de possveis solucoes para a versao do problema onde a subcadeia nao e necessariamente
contg
ua, (2n ), nos parece totalmente inviavel enumerar todas as possveis solucoes.
Veremos a seguir que, apesar do n
umero elevado de solucoes candidatas, podemos
projetar um algoritmo DP de tempo (n2 ).
14.3.1
Construindo um Algoritmo
208
0
0
0
1
9
1
0
2
5
1
0
3
2
1
0
4
8
2
2
5
7
2
2
6
3
2
3
7
1
1
0
8
6
3
6
9
4
3
6
Qual
e o tempo de execuc
ao do nosso algoritmo? Podemos determinar o
tempo de execucao atraves da recorrencia T (n) = T (n 1) + n, o que nos leva a
concluir que T (n) (n2 ). Utilizando estruturas de dados como dicionarios de uma
forma inteligente e possvel encontrar a sequencia mais longa em tempo (n log n).
14.4
Edi
c
ao Autom
atica de Cadeias de Smbolos
(Approximate String Matching)
14.4.1
Projeto de um Algoritmo DP
Que informacao seria necessaria para tomarmos a decisao final? Isto e, o que deve
acontecer na u
ltima posicao de T ? Possibilidades
209
a) o u
ltimo caracter pode ser emparelhado com o u
ltimo caracter de P , se eles
sao identicos
b) de outra forma, o u
ltimo caracter pode ser substitudo
c) as outras operacoes sao de delecao e insercao
Seja D[i, j] a distancia, isto e, o menor n
umero de operacoes para emparelhamento
entre < P1 , P2 , . . . , Pi > e < T1 , T2 , . . . , Tj >. Entao, D[i, j] e o mnimo das tres
possveis formas de estender as sub-cadeias.
1) Se (Pi = Tj ), entao D[i, j] D[i 1, j 1] (emparelhamento). Caso contrario,
D[i, j] D[i 1, j 1] + 1 (substituicao).
2) D[i, j] D[i 1, j] + 1, o que significa que ha um caracter adicional na cadeia de
busca P , portanto pagamos o custo de uma insercao e nao avancamos o ponteiro
do texto T .
3) D[i, j] D[i, j 1] + 1, o que significa que ha um caracter extra na cadeia T ,
portanto pagamos o custo de uma delecao em T e nao avancamos o ponteiro de
P.
Entretanto, ainda falta especificar as condicoes iniciais. A inicializacao correta dos
valores e crtica para que o algoritmo retorne o resultado correto. Por exemplo, o valor
D[0, j] corresponde a emparelhar os j primeiros smbolos do texto com nenhum caracter
do padrao P .
a) Se desejamos um emparelhamento entre todo o padrao P e todo o texto T , entao
D[0, j] e o custo de eliminarmos j smbolos de T . Assim, D[0, j] = j para
j = 1, . . . , |T |.
b) Se desejamos emparelhar P com qualquer subcadeia de T , entao o custo de iniciarmos o emparelhamento na posicao j do texto deve ser o mesmo de iniciarmos
na posicao 1. Assim, D[0, j] = 0 para j = 1, . . . , |T |.
Em ambos os casos, D[i, 0] = i pois nao podemos eliminar smbolos de P sem pagarmos
o preco de delecao. Antes de apresentarmos o algoritmo, assumimos que m = |T | e
n = |P |.
Algoritmo EditDistance(P, T )
for i = 0 to n do D[i, 0] = i
for j = 0 to m do D[0, j] = j
fori = 1 to n do
forj = 1 to m do
D[i, j] = M in(D[i 1, j 1] + matchcost(Pi , ti ), D[i 1, j] + 1, D[i, j 1] + 1)
Fim algoritmo
210
Qual
e a complexidade do algoritmo? A partir do pseudo-codigo do algoritmo
EditDistance fica claro que o tempo de execucao e da ordem (mn).
Exemplo: A tabela abaixo traz o resultado da operacao EditDistance(P, T ) para
P = abcdef ghijkl e T = bcdef tghixkl.
A Figura 14.2 traz em forma tabular o valores D[i, j], i = 0, . . . , n e j = 1, . . . , m,
calculados pelo algoritmo de programacao dinamica. Abaixo listamos as operacoes
executadas pelo algoritmo, conforme n
umeros 1 ate 13 indicadas na figura.
1) insert (custo 1)
2) match (custo 0)
3) match (custo 0)
4) match (custo 0)
5) match (custo 0)
6) match (custo 0)
7) delete (custo 1)
8) match (custo 0)
9) match (custo 0)
10) match (custo 0)
11) substitute x j (custo 1)
12) match (custo 0)
13) match (custo 0)
14.5
Exerccios
EX 14.1: Implemente o algoritmo que calcula a distancia entre uma cadeia de smbolos
padrao p = (p1 , p2 , . . . , pn ) e um texto t = (t1 , t2 , . . . , tm ) em qualquer linguagem
(e.g., awk, shell script, C/C++, Pascal ou ate mesmo Matlab). Produza uma
versao onde p pode aparecer em qualquer posicao de t e outra onde o emparelhamento deve ser perfeito. Ilustre a execucao dos algoritmos implementados
para uma/duas instancias.
211
P
a
b
c
d
e
f
g
h
i
j
k
l
T
0
1
2
3
4
5
6
7
8
9
10
11
12
b
1
12
1
2
3
4
5
6
7
8
9
10
11
c
2
2
3
2
1
2
3
4
5
6
7
8
9
10
d
3
3
3
4
2
1
2
3
4
5
6
7
8
9
e
4
4
4
3
5
2
1
2
3
4
5
6
7
8
f f
5 6
5 6
5 6
4 5
3 4
6
2 77 3
1 2
2 2
3 3
4 4
5 5
6 6
7 7
g
7
7
7
6
5
h
8
8
8
7
6
i
9
9
9
8
7
x
10
10
10
9
8
4 5 6 7
38 4 5 6
9
2 3 4 5
10
3 2 3 4
4 3 2 311
5 4 3 3
6 5 4 4
7 6 5 5
k
11
11
11
10
9
8
7
6
5
4
12
4
3
4
l
12
12
12
11
10
9
8
7
6
5
5
13
4
3
que
e (k + 1)|b b|, onde
j=0 Li+j < A. O custo associado com a linha
b = (A Li . . . Li+k )/(k + 1) e o tamanho medio dos brancos, exceto se a
linha e a u
ltima linha, sendo neste caso o custo igual a zero se b b. Tarefas:
a) Coloque este problema no formalismo de programacao dinamica. Sugestao:
considere os subproblemas de separar as sequencias wi , . . . , wN , i = 1, . . . , N
de forma otima.
212
213
para todos os convidados, o presidente nao quer que os chefes imediatos de cada
convidado estejam na festa.
Tarefas:
i. Projete um algoritmo para encontrar um subconjunto S = {1, . . . , N } dos
membros da empresa que satifaca a restricao imposta pelo presidente e que
maximize a somatoria do ndices sociais dos convidados. Qual e o tempo de
execucao do algoritmo? Quanta memoria e utilizada pelo algoritmo? Ilustre
o funcionamento do algoritmo para a hierarquia dada na Figura 14.3. Os
valores rm sao dados em ordem de identificador: 0.9715, 0.1711, 0.1360,
0.7552, 0.3132, 0.4633, 0.3394, 0.0096, 0.3338, 0.2468, 0.9941, 0.9056, 0.3498,
0.2781, 0.0929, 0.2405, 0.9016, 0.3242, 0.5727, 0.1851, 0.7379, 0.1118, 0.3838,
0.8624, 0.8571, 0.8194, 0.2457, 0.8976, 0.6041, 0.1397, 0.1613, 0.8832, 0.9786,
0.6013, 0.3618, 0.2314.
ii. Como que o Prof. Kunz poderia fazer para garantir que o presidente e um
dos convidados?
1
10
21
31
11
12
23
22
32
13
14
24
25
33
15
17
16
26
27
28
34
20
19
18
29
30
35
36
214
Captulo 15
Programac
ao Din
amica: Domnio
Contnuo
Este captulo se concentra na aplicacao de programacao dinamica onde as variaveis
de decisao sao contnuas, sujeitas a um sistema de equacoes dinamicas que descreve
o comportamento de um sistema ao longo do tempo, e tambem susceptveis a perturbacoes estocasticas. Problemas de controle, como o problema classico de regulacao e
problemas de inventario se enquandram dentro deste formalismo e podem ser resolvidos
de forma otima por meio da programacao dinamica. As proximas secoes exemplificam
o uso da programacao dinamica na solucao do problema de regulacao. Conceitos de
contrabilidade e observabilidade sao tambem apresentados.
15.1
Introduc
ao
216
e da forma:
k = 0, 1, . . . , N 1
xk = fk (xk , uk , wk )
onde:
(15.1)
N
1
X
gk (xk , uk , wk )
(15.2)
k=0
N
1
X
gk (xk , uk , wk )}
(15.3)
k=0
importante ressaltar que o valor esperado (15.3) e calculado com respeito `a disE
tribuicao conjunta das variaveis randomicas w1 , w2 , . . . , wN 1 . Note tambem que a
otimizacao e sobre os controles u0 , u1 , . . . , uN 1 , que correspondem `as variaveis cujos
valores podem ser definidos pelo controlador.
15.1.1
(15.4)
217
N
1
X
[r(xk ) + cuk ]}
(15.5)
k=0
Desejamos minimizar (15.5) por meio da escolha de u0 , u1 , . . . , uN 1 sujeito `a restricao uk 0 para todo k.
15.1.2
Distinc
ao Entre Otimizac
ao Open-Loop e ClosedLoop
(15.6)
N
1
X
(15.7)
k=0
218
15.2
O Problema
Din
amica
B
asico
de
Programac
ao
k = 0, 1, . . . , N 1
(15.8)
(15.9)
onde k e uma funcao que mapeia o estado xk no controle uk = k (xk ), tal que k (xk )
Uk (xk ) para todo xk Sk . Tais polticas sao ditas admissveis pois respeitam as
restricoes impostas nas variaveis de controle.
Dado um estado x0 e uma poltica admissvel = (0 , . . . , N 1 ), o sistema de
equacoes
xk+1 = fk (xk , k (xk ), wk )
k = 1, . . . N 1
(15.10)
torna xk e wk em variaveis randomicas com distribuicoes bem definidas. Portanto,
dadas funcoes gk , o custo esperado pode ser expresso como segue:
J = Ewk {gN (xN ) +
N
1
X
gk (xk , k (xk ), wk )}
k=0
k = 0, 1, . . . , N 1
(15.11)
Note que (15.11) e uma quantidade bem definida. Dado um estado inicial x0 , uma
poltica otima e aquela que minimiza o custo:
J (x0 ) = M in J (x0 )
15.2.1
(15.12)
O Valor da Informac
ao
Com polticas de malha fechada e possvel de se induzir um custo reduzido, essencialmente ao tirar-se vantagem da informacao adicional (i.e., o valor do estado corrente).
A reducao no custo em relacao `as polticas de malha aberta e conhecida como valor da
informacao.
15.3
219
O Algoritmo de Programac
ao Din
amica
15.3.1
Princpio da Otimalidade
15.3.2
O Algoritmo de Programac
ao Din
amica
Considere o problema de inventario apresentado anteriormente. Abaixo desenvolvemos um algoritmo para determinar a poltica otima que comeca no u
ltimo estagio e
procede para tras.
Perodo N-1 : Independentemente do que aconteceu no passado, devemos minimizar
cuN 1 + E{R(xN )}, que pode ser escrito como:
cuN 1 + EwN 1 {R(xN 1 + uN 1 wN 1 )}
(15.14)
220
Perodo N-2 : Deve ser evidente que devemos minimizar nao apenas o custo do perodo
N 2 mas sim a soma das parcelas abaixo:
O custo esperado +
O custo esperado
= r(xN 2 ) + cuN 2
do perodo N-2
do perodo N-1, utilizando-se
+E{JN 1 (xN 1 )}
uma poltica otima para N-1
(15.16)
Usando-se a equacao xN 1 = xN 2 + uN 2 wN 2 , o u
ltimo termo pode ser escrito
como JN 1 (xN 2 + uN 2 wN 2 ). Portanto, se comecarmos com xN 2 , o custo otimo
para os dois u
ltimos perodos e denotado por JN 2 (xN 2 ) e dado pela expressao que
segue:
JN 2 (xN 2 ) = r(xN 2 ) + M inuN 2 0 cuN 2 + EwN 2 {JN 1 (xN 2 + uN 2 wN 2 )}
(15.17)
Novamente, JN 2 (xN 2 ) e calculado para cada valor xN 2 . Simultaneamente, obtemos
uma poltica de controle otimo N 2 (xN 2 ).
Observa
c
oes: Enquanto que o problema de inventario necessita de uma otimizacao
sobre o conjunto de polticas, o algoritmo DP decompoe o problema em uma sequencia
de minimizacoes feita sobre um conjunto de controles. Cada uma dessas minimizacoes
e muito mais simples do que o problema original.
15.4
Esta secao desenvolve um algoritmo de programacao dinamica para resolver o problema de controle que tem como sistema dinamico equacoes lineares, uma funcao de
erro quadratica, e um horizonte de tempo finito. Consideramos o caso especial de um
sistema linear na forma:
xk+1 = Ak xk + Bk uk + wk
k = 0, 1, . . . , N 1
k = 0, . . . , N 1
(15.18)
(15.19)
221
15.4.1
(15.20)
e
Jk (xk ) = M inuk E{xk T Qk xk + uk T Rk uk + Jk+1 (Ak xk + Bk uk + wk )}
(15.21)
Uma vez que o cost-to-go Jk e uma funcao quadratica, a lei de controle otima e uma
funcao linear do estado. Escrevendo a equacao (15.21) para k = N 1, obtemos
JN 1 (xN 1 ) = M inuN 1 E{xN 1 T QN 1 xN 1 + uN 1 T RN 1 uN 1 +
+(AN 1 xN 1 + BN 1 uN 1 + wN 1 )T QN
(AN 1 xN 1 + BN 1 uN 1 + wN 1 )}
(15.22)
(RN 1 + BN 1 T QN BN 1 )uN 1 = BN 1 T QN AN 1 xN 1
(15.24)
uN 1 = (RN 1 + BN 1 T QN BN 1 ) BN 1 T QN AN 1 xN 1
(15.25)
(15.26)
222
Uma vez que JN 1 e uma funcao quadratica positiva semi-definida (salvo uma constante inconsequente), podemos prosseguir de forma similar e obter a partir da equacao
(15.21) uma lei de controle otima para o estagio N 2. Procedendo desta forma
podemos obter uma lei de controle otima para cada estagio k. Esta lei toma a forma:
k (xk ) = Lk xk
(15.28)
(15.29)
(15.30)
1
(15.31)
xk
xk+1 = Ak xk + Bk uk + wk
uk
Lk
Figura 15.1: Estrutura do sistema linear com controle otimo de realimentacao
15.4.2
A Equac
ao de Riccati e seu Comportamento Assint
otico
K = AT [K KB(B T KB + R) B T K]A + Q
(15.32)
k = 0, 1, . . . , N 1
(15.33)
223
e um n
umero grande de estagios N , podemos aproximar a lei de controle (15.28) com
a lei de controle ( , , . . . , , ) onde
(x) = Lx
e
(15.34)
L = (B T KB + R) B T KA
(15.35)
(15.36)
(15.38)
xn A x0 = [B, AB, A B, . . . , A
n1
B]
un1
un2
..
.
u0
(15.39)
Se (A, B) e controlavel, a matriz [B, AB, . . . , An1 B] tem posto completo e como resultado da equacao (15.39) podemos posicionar xn em qualquer lugar do Rn .
A proposicao a seguir mostra que para um sistema estacionario controlavel e matrizes constantes Q, R, a solucao da equacao de Riccati converge para uma matriz
simetrica positiva semi-definida a partir de qualquer matriz inicial.
Proposi
c
ao 15.1 Para simplificar a notacao, revertemos o ndice k e, portanto, Pk
corresponde `
a matriz Knk . Seja A uma matriz n n, B uma matriz n m, Q uma
matriz n n simetrica positiva semi-definida, e R uma matriz m m simetrica positiva
definida. Considere a equacao de Riccati discreta que segue:
1
k = 0, 1, . . .
(15.40)
sendo que a matriz inicial P0 e arbitraria, mas simetrica positiva definida. Vamos
assumir que o par (A, B) e controlavel. Vamos assumir ainda que Q = C T C para uma
matriz C tal que o par (AT , C T ) e controlavel. Entao:
224
a) Existe uma matriz simetrica positiva definida P tal que para qualquer matriz
inicial P0
lim Pk = P
k
15.5
Exerccios
k = 0, 1
x0
Forno #1
u0
x1
Forno #2
x2
u1
225
probabilidades:
P (A = 3) = 0.3
P (A = 6) = 0.1
P (B = 3) = 0.23
P (B = 6) = 0.1
Encontre uma poltica de controle otima para este jogo que, dado o valor sk dos
dados na iteracao k, decide qual dado deve ser rolado com o intuito de maximizar
os ganhos. Observe que temos apenas tres iteracoes: s0 = 0 e o valor no incio
do jogo; s1 e igual ao resultado do primeiro dado; e s2 e igual a soma dos valores
dos dois dados.
EX 15.6: Para o pendulo invertido ilustrado na Figura 15.3, a dinamica do movimento
= (0, 0, 0, 0) pelas equacoes
pode ser aproximada em torno do estado (y, y,
, )
diferenciais abaixo :
(M + m)
y + ml = u
(15.41)
2l 2g + y
= 0
226
(15.42)
x(t)
= lim
+ x(t)
x(t + T ) = [Ax(t) + Bu(t)]T + x(t)
x(t + T ) = (I + T A)x(t) + T Bu(t)
Para t = 0, T, 2T, . . . , e estado inicial x(0), podemos expressar a aproximacao discretizada da seguinte forma:
x((k + 1)T ) = (I + T A)x(kT ) + T Bu(kT ),
k = 0, 1, . . .
(15.43)
227
m
V
mg
M H V
228
Captulo 16
Programac
ao N
ao-Linear Restrita:
Fundamentos e Condico
es de
Otimalidade
Os primeiros captulos do livro se concentraram na minimizacao de funcoes de
m
ultiplas variaveis, onde foram apresentadas condicoes necessarias e suficientes para
que um ponto definisse um otimo local, para problemas em geral e com estrutura
particular, como os problemas convexos. Algoritmos de descenso e de Newton foram
desenvolvidos para resolver tais problemas e tambem encontrar a solucao de sistemas de
equacoes nao lineares. Tanto no caso de minimizacao de funcoes quanto na programacao
dinamica no domnio contnuo, nao se considerou a possvel presenca de funcoes que
caracterizam a regiao factvel. O presente captulo da incio ao estudo dos problemas
de minimizacao de funcoes nao-lineares sob restricoes. Serao apresentados conceitos
fundamentais, exemplos e condicoes de otimalidade local de uma forma gradual.
16.1
Teoria da Otimizac
ao N
ao-Linear sob Restrico
es
iE
iI
(16.1)
(16.2)
230
(16.3)
Nas proximas secoes desenvolveremos uma caracterizacao matematica das solucoes para
o problema (16.3).
16.1.1
Solu
c
ao Local Solu
c
ao Global
Ja verificamos que uma solucao global e difcil de ser encontrada, mesmo na ausencia
de restricoes. Esta situacao pode ser melhorada com a introducao de restricoes: as
restricoes podem reduzir o n
umero de mnimos locais. Entretanto, restricoes podem
tornar o problema muito mais difcil. Como um exemplo, considere o problema abaixo:
P1 : Minimize kxk2 2
Sujeito a :
kxk2 2 1
(16.4)
(16.5)
Sem a restricao, P2 tem uma solucao otima no ponto (0, 100). Com a restricao, temos
otimos locais proximos dos pontos:
(x1 , x2 ) = (k, 1)
para k = 0, 1, 2,
(16.6)
16.1.2
231
x2
1
Regiao Factvel
1
x1
(16.7)
1
1
1
1
(16.8)
Problemas sem restricoes e nao-suaves podem `as vezes ser reformulados como problemas suaves com restricoes. Considere o problema abaixo:
P3 : f (x) = M ax{x2 , x}
(16.9)
Podemos obter uma formulacao suave para P3 por meio da adicao da variavel t:
P3 : Minimize t
Sujeito a :
tx
t x2
16.2
(16.10)
Exemplos
232
16.2.1
Uma Restric
ao de Igualdade
O espaco de solucoes fact veis e o c rculo de raio 2, com o centro na origem, conforme
a Figura 16.2.
x2
c1 (x )
c1 (x )
2
x
x1
x
c1 (x )
c1 (x )
(16.13)
(16.14)
233
(16.15)
Conclumos entao que uma direcao de descenso d deve satisfazer as equacoes (16.14)
e (16.15). A Figura 16.3 ilustra uma direcao d que satisfaz ambas as condicoes. A
condicao necessaria de otimaliade para o problema P4 e que nao exista d satisfazendo
as equacoes (16.14) e (16.15) simultaneamente.
c1 (x)
f (x)
= {x : c1 (x) = 0}
x
d
f (x)
16.2.2
Uma Restric
ao de Desigualdade
Considere uma alteracao simples de P4 , obtida ao substituir-se a restricao de igualdade por uma desiguladade:
P5 : Minimize x1 + x2
Sujeito a :
2 x21 x22 0
(16.16)
234
x2
f (x )
c1 (x )
f (x )
d
x
x1
(16.17)
c1 (x) + c1 (x)T d 0
(16.18)
Caso I: x est
a estritamente dentro do crculo, c1 (x) > 0
Neste caso, qualquer vetor d satisfaz a condicao (16.18) se kdk for pequeno o suf (x)
ficiente. Em particular, sempre que f (x) 6= 0, a direcao d = c1 (x). kf
satisfaz
(x)k
(16.17) e (16.18). A u
nica situacao onde esta direcao falha e quando f (x) = 0.
Caso II: x est
a na fronteira do crculo, de forma que c1 (x) = 0
Portanto, as condicoes (16.17) e (16.18) se tornam:
f (x)T d < 0
(16.19)
c1 (x)T d 0
(16.20)
A primeira das condicoes (16.19) define um meio-espaco aberto, enquanto que a segunda
(16.20) define um meio-espaco fechado, como ilustrado na Figura 16.5.
Ja a Figura 16.6 ilustra uma regiao vazia. Pela figura, e facil de verificar que as
duas regioes, R1 = {d : f (x)T d < 0} e R2 = {d : c1 (x)T d 0}, nao se interceptam
apenas quando f (x) e c1 (x) apontam na mesma direcao, ou seja,
f (x) = 1 c1 (x)
para algum 1 0
(16.21)
235
Regiao de descenso
R1 = {d : f (x)T d < 0} x
f (x)
Regiao de factibilidade
c1 (x)
R2 = {d : c1 (x)T d 0}
R1 R2 6=
Regiao de descenso e factibilidade
(16.22)
(16.23)
(16.24)
As condicoes (16.24) implicam que o multiplicador Lagrangeano 1 pode ser estritamente positivo apenas quando a restricao correspondente c1 esta ativa. No caso I,
temos c1 (x ) > 0 e a condicao (16.24) se reduz a 1 = 0 e f (x) = 0, como esperado.
No caso II, 1 pode assumir qualquer valor nao negativo, portanto (16.24) se torna
(16.21).
16.2.3
Duas Desigualdades
(16.25)
236
f (x)
c1 (x)
R = {x : 2 x21 x22 0
x2 0}
c2 (x)
f (x)
c1 (x)
x1
(16.27)
237
R2 = {d : c2 (x)T d 0}
c2 (x)
f (x)
c1 (x)
x
R1 = {d : c1 (x)T d 0}
R3 = {d : f (x)T d < 0}
para algum 0
(16.28)
2 c2 (x ) = 0
(16.29)
f (x ) =
1
1
0
2 2
, c1 (x ) =
.
, c2 (x ) =
1
0
2 2
Vamos
agora examinar o comportamento do Lagrangeano em outros pontos. Para
x = ( 2, 0), novamente ambas as restricoes estao ativas. Contudo, f (x) nao esta na
regiao definida por R = {d : ci (x)T d 0 , i = 1, 2}. Ver Figura 16.9.
O ponto d = (1, 0) e uma direcao de descenso de primeira ordem, a qual satisfaz
as condicoes (16.26) e (16.27). Note que:
f (x) =
1
1
c1 (x) =
2x1
2x2
2 2
,
0
c2 (x) =
0
1
238
R = {x : 2 x21 x22 0
x2 }
c2 (x)
f (x)
c1 (x)
x
2
x1
c1 (x) + c1 (x)T d 0
1 + c1 (x)T d 0
c2 (x) + c2 (x)T d 0
c2 (x)T d 0
(16.30)
T
f (x) d < 0
f (x)T d < 0
Nao precisamos nos preocupar com a primeira desigualdade, pois podemos multiplicar
d por uma constante pequena ate que 1 + c1 (x)T d 0.
Observando que,
0
1
e c2 (x) =
f (x) =
1
1
16.3
Condico
es de Otimalidade de Primeira Ordem
O conjunto ativo A(x) para qualquer ponto factvel x e a uniao do conjunto E com os
ndices das desigualdades ativas, ou seja:
A(x) = E {i I : ci (x) = 0}
239
(16.32)
i ci (x )
=
=
0
0
0
0
0
para
para
para
para
todo
todo
todo
todo
iE
iI
iI
iE I
(16.33)
240
0 para todo i E I, implica que os multiplicadores de Lagrange associados `as restricoes inativas devem ser nulos, podemos reescreve-la como:
X
0 = x L(x , ) = f (x )
i ci (x )
(16.34)
iA(x )
Observa
c
ao: Para um dado problema (16.32), podem existir varios vetores satisfazendo (16.33). Todavia, quando a condicao LICQ e satisfeita, a solucao e u
nica.
16.3.1
Exemplo
1 x1 x2
1 x1
x2
0
1
x1 x2
1
x1
x2
(16.35)
Regiao factvel
1
2
x1
f (x ) =
, c2 (x ) =
, c1 (x ) =
12
1
1
Portanto, as condicoes KKT sao satisfeitas para = ( 34 , 41 , 0, 0).
16.4
241
Exerccios
EX 16.1: Use as condicoes KKT para mostrar que o problema abaixo possui um
n
umero infinito de otimos locais:
Minimize kxk2
Sujeito a :
kxk2 1, onde k k e a norma Euclidiana.
EX 16.2: O problema abaixo possui um n
umero finito ou infinito de otimos locais?
Use as condicoes KKT para justificar a sua resposta.
Minimize (x2 + 100)2 + 0.01x1 2
Sujeito a :
x2 cos(x1 ) 0
EX 16.3: Quais sao as dificuldades para se resolver o problema abaixo com software
de otimizacao?
Minimize |x| + y 2
x, y
Sujeito a : x2 = 1
Proponha uma formulacao alternativa equivalente para o problema.
EX 16.4: Quais sao as dificuldades para se resolver o problema abaixo com software
de otimizacao?
Minimize Max {|yk dk | : k = 1, 2, 3}
x1 , x2
onde yk = x1 + x2 k, k = 1, 2, 3, e d = (1, 1.5, 1.2). Proponha uma formulacao
alternativa equivalente para o problema.
EX 16.5: Seja f : Rn Rn uma funcao nao-linear contnua e diferencialmente
contnua. Prof. Kunz dispoe de um pacote de otimizacao de funcoes nao-lineares
contnuas que resolve problemas da forma:
Minimize g(x)
x Rn
onde g : Rn R e uma funcao contnua e diferenciavel. Prof. Kunz afirma
que se pode utilizar o pacote de software para encontrar uma raiz para f, ou
seja, x Rn tal que f (x) = 0. Voce concorda ou discorda do Prof. Kunz? Se
voce discorda, mostre porque nao podemos utilizar o pacote de software. Se voce
concorda, mostre como que uma raiz pode ser encontrada.
EX 16.6: Seja f : R R uma funcao nao-linear contnua e diferencialmente contnua.
Prof. Kunz dispoe de um pacote para solucao de sistemas de equacoes e desigualdades nao-lineares, que encontra, caso exista, uma solucao x para:
g(x) < 0
h(x) = 0
242
n
X
c i xi +
i=1
Sujeito a :
n
X
n
X
gi (xi )
i=1
xj 6 b
i=1
xi > 0, i = 1, . . . , n
onde gi (xi ), i = 1, . . . , n, sao funcoes diferenciaveis.
Captulo 17
Programac
ao N
ao-Linear:
Fundamentos de Algoritmos
Aqui iniciamos a discussao de algoritmos para a solucao do problema geral de
otimizacao sob restricoes.
P : M inimize f (x)
x Rn
Sujeito a :
ci (x) = 0
ci (x) 0
(17.1)
iE
iI
Onde, a funcao objetivo f e as restricoes ci sao funcoes suaves com valores reais, I
e E sao conjuntos de ndices finitos para as restricoes de desigualdade e igualdade,
respectivamente. No captulo anterior desenvolvemos condicoes que caracterizam as
solucoes otimas (Karush-Kuhn-Tucker Conditions). Algoritmos, para serem eficientes,
devem levar em conta propriedades e a estrutura das funcoes que aparecem em (17.1).
Algumas classes de problemas, para os quais existem algoritmos especializados, sao:
a) Programacao Linear
b) Programacao Quadratica
c) Programacao Nao-Linear
A grande maioria dos algoritmos para otimizacao nao-linear e iterativa: eles geram
uma seq
uencia xk de solucoes aproximadas que esperamos que seja convergente a uma
solucao otima local x . Os algoritmos utilizam informacoes sobre a solucao corrente
xk , bem como as derivadas de f e ci , i E I, no processo de obtencao do proximo
iterando, xk+1 .
Estudo Inicial de um Problema
recomendavel o estudo inicial de um problema, no sentido de que simplificacoes
E
podem ser encontradas:
a) Um exame das restricoes pode indicar que a regiao factvel e vazia;
244
x 2 tenha significado; as restricoes duras podem ate mesmo nao ser definidas
fora da regiao de factibilidade.
Restric
oes Flexveis Aquelas que sao definidas mesmo na regiao infactvel.
17.1
17.1.1
O M
etodo da Func
ao Penalidade
1 X 2
c (x)
2 iE i
(17.2)
17.1.2
O M
etodo de Barreiras
Adicionamos `a funcao objetivo, termos que sao insignificantes quando x esta seguramente no interior da regiao factvel mas que tendem a + quando x se aproxima
da fronteira da regiao factvel. Se apenas desigualdades estao presentes, a funcao de
barreira logartmica tem forma:
f (x)
log ci (x)
(17.3)
iI
17.1.3
245
O M
etodo Lagrangeano Aumentado
i ci (x),
iEI
i 0, i I
(17.4)
i ci (x) +
iE
1 X 2
c (x)
2 iE i
(17.5)
17.1.4
M
etodo Seq
uencial Linear
Esses metodos minimizam, a cada iteracao uma certa funcao Lagrangeana sujeito
a uma linearizacao das restricoes.
17.1.5
Programac
ao Quadr
atica Seq
uencial
1 T
p Wk p
2
+ fkT p
(17.6)
Ak p + ck = 0
O objetivo do problema e uma aproximacao da funcao Lagrangeana e as restricoes sao
uma linearizacao das restricoes do problema (17.1). O iterando seguinte e obtido por
meio de uma busca ao longo da direcao pk , obtida a partir da solucao de (17.6), ate
que uma certa funcao merito seja decrescida. Programacao Quadratica Seq
uencial e
considerado um dos metodos mais eficientes na pratica.
17.2
Eliminac
ao de Vari
aveis
246
(17.8)
(17.9)
17.2.1
Considere o problema:
M inimize x2 + y 2
Sujeito a :
(x 1)3 = y 2
(17.10)
A Figura 17.1 mostra as curvas de nvel para a funcao objetivo e a restricao, a qual
mostra que a solucao otima e (x, y) = (1, 0).
Considere a tentativa de eliminarmos a variavel y e resolvermos o problema irrestrito
abaixo:
M ininize h(x) = x2 + (x 1)3
(17.11)
17.2.2
Elimina
c
ao de Restric
oes Lineares
247
(x1)^3=y^2
x^2+y^2=4
x^2 + y^2 =1
x*
(1,0)
(2,0)
B N
(17.13)
P x=
xB
xN
(17.14)
(17.15)
A partir dessa formula, deduzimos que as variaveis basicas sao dadas por:
xB = B 1 b B 1 N xN
(17.16)
248
x6
)
2
(17.18)
0 0 1 0 0 0
0 0 0 1 0 0
1 0 0 0 0 0
P =
(17.19)
0
0
0
0
1
0
0 0 0 0 0 1
0 1 0 0 0 0
1 0 8 6 9 4
(17.20)
AP =
0 4 3 2 1 6
A matriz base B e diagonal, portanto facil de se inverter. Com base em (17.16),
obtemos:
x
1
x2
6
x3
8 6 9 4
(17.21)
+
= 3 1 1 3
x3
1
x6
4
2
4
2
x4
Substituindo-se x3 e x6 em (17.18), obtemos o seguinte problema irrestrito:
2
M inimize f (x1 , x2 ,x4 , x5 ) = sin (x1 + x2 ) + (8x1 6x2 + 9x
4 + 4x5 6)
1
3
1
1
3
1
x1 , x2 , x4 , x5
+ 3 x4 + x45 ( 2 + 8 x1 + 4 x2 8 x4 + 4 x5 )
(17.22)
17.2.3
(17.23)
249
(17.24)
250
Captulo 18
Programac
ao Quadr
atica
Um problema de otimizacao com funcao objetivo quadratica e restricoes lineares e
dito problema de programacao quadratica. Por si so esta classe de problemas e relevante
mas tambem desempenha um papel fundamental em metodos gerais de otimizacao naolinear sob restricoes como, por exemplo, programacao quadratica seq
uencial.
Na sua forma geral, o problema quadratico e expresso como segue:
PQ : Minimize q(x) = 21 xT Gx + dT x
Sujeito a :
aTi x = bi , i E
aTi x bi , i I
(18.1)
onde G e uma matriz simetrica nn, E e I sao conjuntos finitos de ndices de restricoes,
e d, x e ai , i E I, sao vetores coluna com n elementos.
252
18.1
Exemplo: Otimizac
ao de Portofolio
xi 0,
i = 1, . . . , n
(18.2)
xi = 1
(18.3)
i=1
n
X
x i ri
(18.4)
i=1
Levando em consideracao que uma variavel aleatoria nao pode ser otimizada diretamente, podemos medir a qualidade do investimento de acordo com o valor esperado,
obtendo portanto a expressao:
E[R] = E[
n
X
i=1
= xT
x i ri ] =
n
X
i=1
xi E[ri ] =
n
X
xi i
i=1
(18.5)
onde = (1 , . . . , n ).
A variancia do retorno total esperado pode ser calculada a partir do coeficiente de
correlacao ij entre pares de variaveis, conforme a expressao:
ij =
E[(ri i )(rj j )]
para todo par i, j
i j
(18.6)
253
n X
n
X
xi i j ij xj
i=1 j=1
= xT Gx
(18.7)
(18.8)
A matriz G e positiva semi-definida, todavia nao desenvolveremos uma demonstracao. Estamos interessados em um portofolio cujo retorno total xT seja alto ao
mesmo tempo que a variancia xT Gx seja pequena. No modelo proposto por Markowitz,
combina-se estes dois objetivos em uma u
nica funcao usando o chamado par
ametro
de tolerancia de risco denotado por k. Entao, resolvemos o problema abaixo.
Maximize xT kxT Gx
Sujeito a :
n
P
xi = 1
(18.9)
i=1
x0
O problema (18.9) expressa o desejo de maximizar o retorno e simultaneamente minimizar os riscos incorridos nos investimentos. As restricoes garantem que o vetor x Rn
induz um portofolio.
18.2
(18.10)
254
G AT
A
0
d
b
(18.12)
Podemos novamente reescrever (18.12) em uma outra forma que facilita a computacao.
Fazendo x = x + p onde x e uma estimativa da solucao otima, obtemos:
g
p
G AT
(18.13)
=
A 0
onde:
c = Ax b
g = d + Gx, e
p = x x
(18.14)
Lema 18.1 Seja A uma matriz m n, m n, tal que rank(A) = m. Seja Z uma
matriz que define uma base para N ull(A), ou seja, N ull(A) = {Zu : u Rnm }. Se a
matriz Hessiana reduzida Z T GZ e positiva definida, ent
ao a matriz KKT:
G AT
(18.15)
K=
A 0
e n
ao singular e, portanto, o par (x , ) satisfazendo (18.12) e u
nico.
Prova: Se existe (p, ) satisfazendo:
p
G AT
=0
A 0
Entao temos que:
0=
T
G AT
A 0
= pT Gp
=
b
A 0
b
A
0
d
x
=
K
b
Portanto, o par (x , ) e u
nico pois K e nao singular.
Corol
ario 18.1 Se as condicoes do Lema 18.1 s
ao satisfeitas, ent
ao o vetor x que
satisfaz (18.12) e a solucao global u
nica do problema quadratico (18.10).
255
Exemplo 1
Considere a instancia de PQEC dada a seguir:
Minimize
Sujeito a :
(18.16)
x1 + x3 = 3
x2 + x3 = 0
Podemos reescrever (18.16) na forma (18.10), fazendo:
8
6 2 1
3
1 0 1
e b=
G = 2 5 2 , d = 3 , A =
0
0 1 1
3
1 2 4
A solucao otima x e os multiplicadores de Lagrange otimos sao:
2
3
e =
x = 1
2
1
(18.17)
(18.18)
18.2.1
18.3
Problemas Quadr
aticos Sob Restrico
es
256
18.3.1
Condi
c
oes de Otimalidade
(18.20)
Para um ponto otimo x de (18.20), definimos conjunto ativo A(x ) como os ndices
das restricoes que sao satisfeitas com igualdade, ou seja,
A(x ) = {i E I : aTi x = bi }
Desenvolvendo as condicoes KKT para (18.20), obtemos:
X
Gx + d
i ai = 0
(18.21)
(18.22)
iA(x )
aTi x = bi , i A(x )
aTi x bi , i I A(x )
i 0, i I A(x )
(18.23)
(18.24)
(18.25)
18.4
O M
etodo de Conjunto Ativo para Problemas
Quadr
aticos Convexos
257
Aqui nos concentraremos no metodo primal, o qual inicia computando uma solucao
factvel x0 e segue gerando iterandos factveis2 . O metodo encontra um passo que transforma o iterando corrente no proximo iterando por meio da solucao de um subproblema
quadratico, no qual um subconjunto das restricoes e imposto como igualdades. Tal subconjunto e referido como conjunto de trabalho e denotado por Wk na k-esima iteracao.
Wk consiste de todas as restricoes de igualdade i E juntamente com algumas, nao
necessariamente todas, as desigualdades ativas.
Dado um iterando xk e um conjunto de trabalho Wk , primeiramente verificamos se
xk minimiza q(x) no subespaco definido pelo conjunto de trabalho Wk . Em caso negativo, calculamos um passo p por meio da solucao do subproblema quadratico tomando
como restricoes de igualdade todas as restricoes do conjunto ativo.
Primeiramente, expressamos o subproblema em termos do passo p, definido por:
p = x xk
gk = Gxk + d
(18.26)
(18.27)
onde c = 21 xTk Gxk + dT xk e um termo constante. Uma vez que podemos remover a
constante c da funcao objetivo, sem modificar a solucao do problema, podemos escrever
o subproblema quadratico a ser resolvido na k-esima iteracao como segue:
SPk : Minimize
Sujeito a :
1 T
p Gp
2
aTi p
+ gkT p
= 0,
(18.28)
i Wk
Denotamos a solucao de (18.28) por pk . Note que para cada i Wk o termo aTi x nao
se altera `a medida que movemos na direcao pk , uma vez que aTi (xk + pk ) = aTi xk = bi .
Portanto uma vez que as restricoes em Wk sao satisfeitas por xk , elas tambem sao
satisfeitas no ponto xk + pk , qualquer que seja o valor .
Suponha, por um momento, que a solucao otima pk para (18.28) e nao nula. Temos
entao que decidir quao longe seguiremos na direcao dada por pk . Se xk + pk e factvel
com respeito a todas as restricoes, entao definimos xk+1 = xk + pk . Caso contrario,
definimos:
xk+1 = xk + k pk
(18.29)
onde k e o maior passo com valor entre [0, 1) tal que todas as restricoes sao satisfeitas.
Podemos definir uma formula explicita para k considerando apenas as restricoes i
/
Wk , pois toda restricao i Wk sera satisfeita com certeza.
Se aTi pk 0 para algum i
/ Wk , entao para todo k 0 temos que aTi (xk +
k pk ) aTi xk bi , portanto a restricao sera satisfeita.
2
Surge a quest
ao de como encontrar um iterando inicial x0 que seja factvel para o problema (18.20).
De que forma voce encontraria x0 ?
258
bi aTi xk
aTi pk
(18.30)
Uma vez que k deve ser o maior possvel dentro da faixa [0, 1) e tal que as restricoes
sejam respeitadas, obtemos a seguinte definicao:
bi aTi xk
T
:i
/ W k , ai p k < 0
(18.31)
k = min 1, min
aTi pk
A restricao i na qual o mnimo de (18.31) e obtido e chamada de restricao bloqueante.
Note que e possvel que k seja zero, uma vez que podemos ter uma restricao i que seja
ativa para xk mas nao seja um membro de Wk .
Se k < 1, ou seja, o passo ao longo de pk foi bloqueado por alguma restricao que nao
pertence a Wk , entao um novo conjunto de trabalho Wk+1 e construdo adicionando-se
uma restricao bloqueante a Wk .
Continuamos este processo iterativo, adicionando restricoes ao conjunto de trabalho,
ate que se atinja um ponto x que minimiza o objetivo quadratico sob o conjunto
. E
facil reconhecer tal ponto x pois o subproblema SPk tera uma
de trabalho W
solucao pk = 0. Uma vez que pk = 0 satisfaz as condicoes de otimalidade (18.13) do
subproblema SPk , temos que:
P
i = g
ai
iW
(18.32)
= G
x+d
i, i W
. Segue, portanto, que
para algum conjunto de multiplicadores de Lagrange
satisfazem as condicoes KKT (18.22), isso se definirmos os multiplicadores das
x e
como zero.
restricoes que nao aparecem em W
Uma vez que o controle imposto no comprimento do passo garante a factibilidade
de x com respeito a todas as restricoes, temos que a segunda e a terceira condicao
KKT, (18.23) e (18.24) respectivamente, sao tambem satisfeitas por x.
Agora devemos examinar os sinais dos multiplicadores das restricoes de desigualdade
, ou seja, os ndices i W
I. Se todos estes
contidas no conjunto de trabalho W
multiplicadores sao nao-negativos, a quarta condicao KKT (18.25) e satisfeita e x e um
ponto KKT para o problema original. Se G e positiva semi-definida entao x e tambem
um mnimo local.
j , j W
I e negativo, a condicao (18.25) nao
Por outro lado, se um multiplicador
e satisfeita, entao a funcao objetivo q(x) pode ser reduzida se removermos a restricao
. Neste caso removeremos j de W
para todo j tal que j < 0 e resolvemos um
j de W
novo subproblema (18.28).
O pseudo-codigo completo do algoritmo e dado na seq
uencia.
259
18.4.1
Exemplo
(18.33)
260
x2
Curva de nvel
da funcao objetivo
(2, 2)
x1 2x2 + 6 = 0
(2)
(1)
(0, 1)
(4, 1)
(4)
(3)
(5)
x1
(2, 0)
1
2
3 +
0
1
5 =
2
5
(18.34)
3,
5 ) = (2, 1)
cuja solucao e (
Podemos agora remover a restricao 3 do conjunto ativo uma vez que esta apresenta
o multiplicador mais negativo, portanto, W1 = {5}.
Itera
c
ao 1: Iniciamos a iteracao 1 buscando uma solucao de SPk para k = 1, a qual
e p1 = (1, 0). A formula de comprimento de passo (18.31) produz 1 = 1, e um
novo iterando x2 = (1, 0) e obtido.
Nao ha restricoes bloqueantes, portanto W2 = W1 = {5}.
Itera
c
ao 2: Descobrimos no incio da iteracao 2 que a solucao de (18.28) e novamente
p2 = 0, implicando em x3 = x2 = (1, 0). A partir de (18.32) deduzimos que
5 = 5. Assim,
o multiplicador de Lagrange para a u
nica restricao ativa e
eliminamos a restricao 5 do conjunto de trabalho obtendo W3 = .
Itera
c
ao 3: A iteracao 3 tem incio com a solucao do problema irrestrito, pois W3 =
, para o qual obtemos a solucao p3 = (0, 2.5). A formula (18.31) nos da o
comprimento do passo 3 = 0.6 e um novo iterando x4 = (1, 1.5). Ha apenas
uma restricao bloqueante: a restricao 1. Da deduzimos que W4 = {1}.
261
Itera
c
ao 4: A solucao de (18.28) com k = 4 produz p4 = (0.4, 0.2), e o proximo passo
e de comprimento 1. Nao ha restricoes bloqueantes o que deixa o conjunto de
trabalho na sua forma: W5 = {1}. O novo iterando e x5 = (1.4, 1.7).
Itera
c
ao 5: Finalmente, resolvemos SPk com k = 5 o que nos leva a obter a solucao
1 = 1.25. Portanto
p5 = 0. A formula (18.32) nos da o multiplicador de Lagrange
uma solucao foi encontrada.
A solucao otima e x = (1.4, 1.7). A Figura 18.2 ilustra a trajetoria de iterandos,
desde o ponto inicial x0 ate a solucao otima x .
x2
Curva de nvel
da funcao objetivo
(2, 2)
x5
(1)
x1 2x2 + 6 = 0
(2)
x4
(0, 1)
(4, 1)
(4)
x0 , x1
(5)
x2 , x3
(3)
x1 + 2x2 + 2 = 0
(2, 0)
x1
18.5
Exerccios
262
= (AAT ) (b Ax0 ).
Usando , encontre a solucao otima x . (Sugestao: aplique as condicoes KKT.)
EX 18.3: Partindo do ponto inicial x0 = (3, 0) e com conjunto ativo A0 = {2} aplique
o algoritmo de conjunto ativo e encontre a solucao global otima do problema:
Minimize k(x1 , x2 )k2
Sujeito a :
c1 (x) = x1 + x2 2 0
c2 (x) = 3 x1 23 x2 0
EX 18.4: Considere o problema de encontrar x Rn tal que:
Minimize kxk
Sujeito a :
Ax = b
onde A Rmn . Prof. Kunz afirma que nao faz sentido resolver este problema
quando ha mais equacoes do que variaveis, ou seja, quando m > n. Voce concorda
ou discorda? Justifique a resposta.
EX 18.5: Prof. Kunz desenvolveu um algoritmo para resolver problemas quadraticos
dados por:
PQ : Minimize q(x) = 12 xT Qx + dT x + c
Sujeito a :
Ax b
263
P : Minimize
w, b, e
Sujeito a :
cX 2
1 T
e
w w+
2
2 i=1 i
yi = wT (xi ) + b + ei , i = 1, . . . , m
onde:
c e uma constante positiva;
1 Q + c1 I
kxx k22
)
2 2
264
Captulo 19
Programac
ao N
ao-Linear sob
Restri
c
oes: Algoritmos
Os captulos anteriores apresentaram fundamentos de otimizacao nao-linear sob
restricoes, estabelecendo condicoes de otimalidade local de primeira ordem e desenvolvendo algoritmos para resolver problemas quadraticos. Este captulo tem foco em
algoritmos para resolver problemas gerais desta classe de problemas.
19.1
Algoritmos
(19.1)
iE
iI
onde as funcoes sao suaves. Uma classe importante de algoritmos, a serem vistos a
seguir, busca uma solucao para (19.1) atraves da solucao de uma seq
uencia de subproblemas irrestritos.
19.2
O M
etodo de Barreira Logartmica
266
19.2.1
Iniciamos a discussao por meio de uma ilustracao das funcoes de barreira para
problemas com apenas restricoes de desigualdade.
Minimize f (x)
x
Sujeito a : ci (x) > 0, i I
(19.2)
(19.3)
Assumimos que F 0 e nao-vazia para o proposito desta discussao. Funcoes barreira para
este problema tem as seguintes propriedades:
a) elas sao infinitas em qualquer lugar, menos em F 0 .
b) elas sao suaves dentro de F 0 .
c) O valor delas se aproxima de `a medida que x se aproxima da fronteira de F 0 .
A funcao barreira mais importante e a funcao barreira logartmica, que para o conjunto
de restricoes ci (x) > 0, i I, assume a forma:
X
log ci (x)
(19.4)
iI
onde log(y) denota o logaritmo natural de y. Para o problema (19.2), a funcao combinada objetivo-barreira e dada por:
X
P (x, ) = f (x)
log ci (x)
(19.5)
iI
onde > 0 e dito parametro barreira. Daqui em diante, vamos nos referir a P (x, )
como funcao barreira logartmica do problema (19.2).
Exemplo 1
Considere o problema abaixo em uma variavel.
Minimize
Sujeito a :
x
x > 0
1x > 0
(19.6)
(19.7)
A Figura 19.1 ilustra P (x, ) para = 1.0, 0.4, 0.1, 0.01. Naturalmente, para valores
pequenos de , a funcao P (x, ) se aproxima da funcao objetivo f na maior parte
da regiao factvel; a funcao P (x, ) tende para + nas proximidades da fronteira.
267
0.4
0.1
=
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.01
0.9
Exemplo 2
Considere o problema:
Minimize
Sujeito a :
x1 +
1 2
2
x1 [0, 1]
x2 [0, 1]
+ x2
1 2
2
(19.8)
(19.9)
As curvas de nvel da funcao (19.9) sao ilustradas na Figura 19.2 para os valores = 22,
= 5 e = 2. A partir da figura, observamos que as curvas de nvel se aproximam
da curva de uma parabola `a medida que 0. As curvas de nvel que envolvem
o minimizador, (x1 = 0, x2 = 21 ), nos casos onde = 22 e = 5 nao sao muito
alongadas, sendo quase elpticas. Neste caso podemos aplicar metodos de minimizacao
268
irrestrita sem maiores problemas. Para o valor = 2, entretanto, as curvas de nvel sao
mais alongadas e menos elpticas quando o minimizador x() e deslocado em direcao `a
fronteira da funcao barreira. O carater alongado das curvas de nvel indica normalizacao
pobre, acarretando baixo desempenho de metodos de otimizacao irrestritos, como por
exemplo, o algoritmo de descenso.
0.8
0.6
= 22
0.4
0.2
0.2
0.4
0.6
0.8
0.4
0.6
0.8
0.4
0.6
0.8
0.8
0.6
= 5
0.4
0.2
0.2
0.8
0.6
0.4
= 2
0.2
0.2
19.2.2
1 2
)
2
+ (x2
1 2
)
2
Os algoritmos baseados na funcao barreira logartmica procuram aproximar os minimizadores de P (x, ) para uma seq
uencia decrescente de valores .
Algoritmo Log-Barrier (Esbo
co)
269
19.2.3
Propriedades da Func
ao Log-Barrier e Algoritmo Geral
270
Para problemas mais gerais, o resultado correspondente e mais local por natureza.
Dada uma solucao local x bem comportada do problema (19.2), isto e, uma solucao
x que satisfaca as condicoes suficientes de segunda-ordem, as restricoes e ainda as
condicoes de complementaridade, a funcao barreira P (x, ) apresenta um minimizador
proximo de x para valores suficientemente pequenos de .
Teorema 19.2 Suponha que F 0 e uma regiao n
ao-vazia e que x e uma solucao para o
problema (19.2), o qual satisfaz as condicoes KKT (Karush-Kuhn-Tucker) para algum
. Suponha tambem que a condicao LCG de qualificacao de restricoes seja garantida, bem como a condicao de complementaridade estrita e as condicoes suficientes de
segunda ordem.
Entao, as afirmacoes abaixo s
ao verdadeiras:
i) Existe uma funcao vetorial x() contnua, u
nica e diferenci
avel, definida para
todo suficientemente pequeno em funcao de que x() e um minimizador local
de P (x, ) em uma certa vizinhanca de xk , tal que lim0 x() = x .
ii) Para a funcao x() em (i), o estimador () dos multiplicadores de Lagrange
definidos por
i ()
,i I
(19.10)
ci (x())
convergem para `
a medida que 0.
iii) A matriz Hessiana 2xx P (x, ) e positiva definida para todo suficientemente
pequeno.
A trajetoria cp definida por
cp {x() : > 0}
(19.11)
19.2.4
Manipulando Restric
oes de Igualdade
Ate este momento assumimos que o problema apresenta apenas restricoes de desigualdade e que F 0 e nao-vazio. Aqui discutimos um procedimento que nos permite
aplicar a tecnica de Barreira Logartmica ao problema geral 19.1.
Nao podemos simplesmente reescrever ci (x) = 0 como duas desigualdades ci (x) > 0
e ci (x) > 0, ja que isto tornaria F 0 vazio. Uma forma de tratar as restricoes de
igualdade e incluir termos quadraticos de penalidade para estas restricoes na funcao
objetivo. Se assumimos, por um momento, que o coeficiente da penalidade quadratica
e 1 , onde e o parametro barreira, entao a funcao barreira logartmica/penalidade
quadratica a ser minimizada para cada valor e:
B(x, ) f (x)
X
iI
log ci (x) +
1 X 2
c (x)
2 iE i
(19.12)
271
O algoritmo geral apresentado na secao 19.2.2 pode ser estendido de forma que
reducoes sucessivas de e minimizacoes aproximadas de B(x, ) nos levam a uma
solucao para 19.1.
19.3
M
etodo Lagrangeano Aumentado
Este metodo tende a produzir sub-problemas menos mal-condicionados do que aqueles gerados pelo metodo de barreira logartmica. As implementacoes podem ser construdas a partir de software padrao para otimizacao irrestrita. O metodo de multiplicadores e a base de implementacoes praticas de alta qualidade, como Lancelot por
exemplo.
19.3.1
Motivac
ao e Estrutura do Algoritmo
(19.13)
LA (x, ; ) = f (x)
i ci (x) +
iE
1 X 2
c (x)
2 iE i
(19.14)
i ci (x)
(19.15a)
iE
1 X 2
c (x)
2 iE i
(19.15b)
Observa-se que a funcao Lagrangeana aumentada (19.14) difere da funcao Lagrangeana padrao devido `a presenca da penalidade quadratica, e tambem difere da funcao
penalidade quadratica (19.15a) devido `a presenca do termo com os multiplicadores de
Lagrange. Assim, LA e uma combinacao de (19.15a) e (19.15b).
Diferenciando-se LA com respeito `a x, obtem-se:
X
ci (x)
ci (x)
(19.16)
x LA (x, ; ) = f (x)
i
iE
272
ci (xk )
para todo i E
k
(19.17)
para todo i E
(19.18)
ci (xk )
para todo i E
k
(19.19)
19.3.2
Exemplo
(19.20)
1 2
(x1 + x22 2)2
2
(19.21)
273
0.5
0.5
1.5
1.5
0.5
0.5
1.5
19.3.3
Extens
ao para Restric
oes de Desigualdade
O primeiro passo para tratar o problema geral e substituir as desigualdades ci (x) >
0, i I, por
ci (x) si = 0, si > 0 para todo i I
(19.22)
Podemos tratar das restricoes si > 0, i I, diretamente no subproblema Lagrangeano
de maneira a eliminarmos as variaveis de folga si , i I. Por razoes de simplicidade,
vamos assumir que nao ha restricoes de igualdade (E = ). A introducao das variaveis
de folga produz o seguinte problema:
Minimize f (x)
x, s
Sujeito a : ci (x) si = 0, si > 0, i I
(19.23)
LA (x, ; ) = f (x)
iI
x, s
Sujeito a : si > 0 para todo i I
i (ci (x) si ) +
1
2
iI
(ci (x) si )2
(19.24)
274
Note que cada si ocorre em dois termos de (19.24), que de fato e uma funcao convexa com respeito `as variaveis de folga. Podemos portanto executar uma minimizacao
explcita em (19.24) com respeito a cada si . A derivada parcial da funcao objetivo de
(19.24) com respeito a si e:
1
ki (ci (x) si )
(19.25)
k
O minimizador irrestrito de (19.24) com respeito a si ocorre quando as derivadas parciais sao nulas, ou seja,
si = ci (x) k ki
(19.26)
Se o minimizador irrestrito e menor do que 0, entao porque (19.24) e convexa, o valor
otimo de si e 0. Resumindo, obtemos os valores otimos para si :
si = max ci (x) ki , 0 para todo i I
(19.27)
1
ki ci (x) + 2 c2i (x),
2 (ki )2 ,
se ci (x) ki 6 0
caso contrario
Definimos a funcao (t, ; ) cujos argumentos sao escalares, de maneira a representar a logica de (??)
1
t + 2 t2 , se t 6 0
(19.28)
(t, ; ) =
2
caso contrario
2 ,
e utilizando-se a funcao , pode-se expressar o subproblema transformado como:
P
(ci (x), ki ; k )
Min LA (x, ; ) = f (x) +
(19.29)
iI
x
19.3.4
275
Dois resultados encontrados na literatura justificam o uso do Lagrangeano aumentado e dos algoritmos desenvolvidos.
Quando o valor exato dos multiplicadores de Lagrange sao conhecidos, entao
a solucao otima x do problema (19.13) e tambem um minimizador estrito de
LA (x, ; u) para u suficientemente pequeno.
Embora nao conhecamos na pratica, os resultados mostram que podemos
obter uma solucao x muito proxima de x ao minimizarmos LA (x, ; u), mesmo
quando u nao esta particularmente proximo de zero, desde que seja uma boa
estimativa de .
19.4
Programac
ao Linear Sequencial
A ideia principal por tras da programacao linear sequencial (PLS) esta na geracao
de um passo por meio da minimizacao do Lagrangeano sujeito a uma linearizacao das
restricoes.
Aqui nos concentraremos no problema de optimizacao nao-linear sob restricoes de
igualdade, por razoes de conveniencia. Para o problema (19.13), o subproblema PLS
assume a forma:
Minimize Fk (x)
x
Sujeito a : ci (xk )T (x xk ) + ci (xk ) = 0 i E
Existem diferentes escolhas para Fk (x). Os primeiros metodos definiam:
X
Fk (x) = f (x)
ki cki (x)
(19.31)
(19.32)
iE
onde:
ki e a estimativa corrente de i ; e
cki (x) e a diferenca entre ci (x) e sua linearizacao no ponto xk , ou seja,
k
k T
k
ck
i (x) = Ci (x) ci (x ) ci (x ) (x x )
(19.33)
X
iE
ki cki (x) +
1 X k
[
c (x)]2
2 iE i
(19.34)
276
19.5
Programac
ao Quadr
atica Sequencial
19.5.1
O m
etodo SQP Local
277
(19.37)
(19.40)
(19.41)
(19.42)
equivalente a 19.42.
A iteracao definida por 19.42 e conhecida como metodo de Newton-Lagrange,
sendo bem-definida quando F e uma matriz nao-singular. A nao-singularidade desta
matriz e uma consequencia das condicoes estabelecidas abaixo.
Condi
c
ao: 19.5.1
i. A matriz Jacobiana das restricoes Ak tem posto de linha completo.
ii. A matriz Wk e positiva definida no espaco tangente das restricoes, i.e., dT wk d > 0
para todo d 6= 0 tal que Ak d = 0.
A premissa (1) advem da condicao de cualificacao de independencia das restricoes.
A premissa (2) e satisfeita quando (x, ) e proximo do otimo (x , ) e as condicoes
suficientes de segunda-ordem sao satisfeitas pela solucao.
Sob as condicoes acima estabelecidas, o algoritmo de Newton 19.41 e 19.42 converge
quadraticamente para o otimo local, constituindo um otimo algoritmo para resolver problemas nao-lineares sob restricoes de igualdade, isto se o ponto inicial x0 esta proximo
do otimo local x .
278
19.5.2
Linhas Gerais do M
etodo SQP
M in
P
+ fkT P
(19.43)
Sujeito a :
(19.44)
Ak P + Ck = 0
(19.46)
Wk Pk ATk P ATk k = fk
Ak Pk = Ck
Wk Pk ATk (P + k ) = fk
Ak Pk = Ck
Wk ATk
Ak
0
Pk
k+1
fk
Ck
(19.47)
279
19.5.3
Restric
oes de desigualdade
O algoritmo SQP geral pode ser facilmente estendido para o caso geral de programacao nao-linear:
M inimizef (x)
(19.48)
Sujeito a :
Ci (x) = 0,
iE
(19.49)
Ci (x) 0,
(19.50)
1 T
P Wk P + fkT P
2
(19.51)
Sujeito a :
Ci (xk )T P + Ci (xk ) = 0
iE
(19.52)
Ci (xk ) P + Ci (xk ) 0
(19.53)
280
Teorema 19.5.3.1 Suponha que x e uma solucao para 19.48. Assuma que a matriz
Jacobiana Ak do conjunto de restricoes ativas no ponto x possui posto de linha cheio,
e que dT W d > 0 para todo d 6= 0 tal que A d = 0, e que complementaridade estrita e
garantida. Entao se (xk , k ) e suficientemente pr
oximo de (x , ), existe uma solucao
local do subproblema 19.51 cujo conjunto ativo Ak e identico ao conjunto ativo A(x )
do problema n
ao-linear 19.48 no ponto x .
19.5.4
Implementac
ao de SQP
19.6
Exerccios
0
0
0
0
0
0
0
0
0
0
Passos sugeridos:
1) Encontre uma solucao inicial x0 que pertenca ao interior da regiao factvel
281
P10
k=1
log(gk (x))
Observa
c
ao: se o algoritmo for implementado em Matlab, faca uso da funcao
fminsearch e tambem reduza o parametro de tolerancia TolX para 108 .
EX 19.2: Elipsoides sao conjuntos convexos com amplo emprego em otimizacao convexa [27]. Alem da conveniencia computacional, eles podem ser empregados
para aproximar outros conjuntos convexos ou nao convexos. Uma representacao
padrao de um elipsoide E e:
E = {x : (x x0 )T A1 (x x0 )}
onde A = AT e uma matriz positiva definida, e x0 Rn e o centro do elipsoide.
A Figura 19.4 da uma ilustracao de elipsoide no R2 . Os eixos doelipsoide tem
direcoes dadas pelos autovetores de A, com comprimento dado por i onde i e o
autovalor
associado ao i-esimo autovetor. O volume do elipsoide e proporcional a
p
det(A). Note que i > 0 pois A e positiva definida. Note tambem que det(A) =
det(U T U ) = det(U T )det()det(U
) onde U 1 = U T e = diag(1 , . . . , n ).
Qn
Logo, det(A) = det() = i=1 i (pois det(U T ) = 1/det(U )). Em verdade, um
elipsoide E pode ser representado equivalentemente nas formas abaixo:
p
1) E = {x : (x x0 )T A1 (x x0 )}, com volume det(A).
2) Imagem de uma bola unitaria sob uma transformacao afim: E = {Bu + x0 :
kuk 1} com volume det(B).
3) Pre-imagem de uma bola unitaria sob uma transformacao afim: E = {x :
kAx bk 1} com volume det(A1 ).
282
x0
Figura 19.4: Elipsoide
Refer
encias Bibliogr
aficas
[1] E. Aart and J. Korst. Simulated Annealing and Boltzmann Machines. Wiley, New
York, 1989.
[2] M. Agarwal. A systematic classification of neural-network-based control. IEEE
Control Systems Magazine, 17(2):7593, 1997.
[3] R. K. Ahuja, T. L. Magnanti, and J. B. Orlin. Network Flows. Prentice-Hall,
Upper Saddle River, New Jersey, 1993.
[4] R. J. Aumann and S. Hart. Handbook of Game Theory with Economic Applications,
volume 1. North-Holland, Amesterdan, 1992.
[5] D. O. Awduche, J. Malcom, J. Agogbua, J. ODell, and J. McManus. Requirements
for traffic engineering over MPLSrequest for comments, September 1999.
[6] S. N. Balakrishnan and R. D. Weil. Neurocontrol: A literature survey. Mathematical Modeling and Computing, 23:101117, 1996.
[7] T. Basar and G. J. Olsder. Dynamic Noncooperative Game Theory. Society for
Industrial and Applied Mathematics, 1999.
[8] M. S. Bazaraa, H. D. Sherali, and C. M. Shetty. Nonlinear Programming Theory
and Algorithms. John Wiley, 1993.
[9] D. P. Bertsekas. Nonlinear Programming. Athena Scientific, 1995.
[10] A. E. Bryson and Y.-C. Ho. Applied Optimal Control. Blaisdell, 1969.
[11] V. Chvatal. Linear Programming. W. H. Freeman, 1983.
[12] T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. MIT
Press, Cambridge, Massachusetts, 1990.
[13] L. Costa and P. Oliveira. Evolutionary algorithms approach to the solution of
mixed integer non-linear programming problems. Computers and Chemical Enginnering, 25:257266, 2001.
[14] Charles Darwin. On the origin of species by means of natural selection, or the
preservation of favoured races in the struggle for life. 1859.
[15] L. Davis. Handbook of Genetic Algorithms. Van Nostrand Reinhold, 1991.
284
Referencias Bibliograficas
Referencias Bibliograficas
285
[31] S. Kirkpatrick. Optimization by simulated annealing: Quantitative studies. Journal of Stastical Physics, 34:975986, 1984.
[32] S. Kirkpatrick, C. D. Gelatt, and M. P. Vecchi. Optimization by simulated annealing. Science, 220:671680, 1983.
[33] S. M. LaValle. Robot motion planning: a game-theoretic foundation. Algorithmica,
26:430465, 2000.
[34] E. L. Lawler. Combinatorial Optimization: Networks and Matroids. Holt, Rinehart
and Winston, New York, 1976.
[35] M. Mesterton-Gibbons. An Introduction to Game-Theoretic Modelling. American
Mathematical Society, 2000.
[36] N. Metropolis, A. Rosenbluth, M. Rosenbluth, A. Teller, and E. Teller. Simulated
annealing. Journal of Chemical Physics, 21:10871092, 1953.
[37] M. Minsky and S. Papert. Perceptrons. MIT Press, 1969.
[38] T. M. Mitchell. Machine Learning. McGraw-Hill, 1997.
[39] J. Nocedal and S.J. Wright. Numerical Optimization. Springer-Verlag, 1999.
[40] D. A. Pomerlau. Robot Learning, chapter Knowledge-based training of artificial
neural networks for autonomous robot driving, pages 1943. Kluwer Academic
Publishers, 1993.
[41] H. D. Sherali. On mixed-integer zero-one representations for separable lowersemicontinuous piecewise-linear functions. Operations Research Letters, 28:155
160, 2001.
[42] R. J. Vanderbei. Linear Programming: Foundations and Extensions. Kluwer
Academic Publishers, second edition, 2001.
[43] H. P. Williams. Model Building in Mathematical Programming. John Wiley, 4th
edition, 1999.
[44] L. A. Wolsey. Integer Programming. John Wiley & Sons, 1998.
[45] S. J. Wright. Primal-Dual Interior-Point Methods. Society for Industrial and
Applied Mathematics, 1997.
[46] H. Yaiche, R. R. Mazumdar, and C. Rosenberg. A game theoretic framework for
bandwidth allocation and pricing in broadband networks. IEEE/ACM Transactions on Networking, 8(5):667678, October 2000.
286
Referencias Bibliograficas
Ap
endice A
Exerccios Resolvidos
288
A. Exerccios Resolvidos
A.1
Introduc
ao `
a Otimizac
ao
EX 1.1: Seja x o n
umero de unidades do produto x a serem produzidas, enquanto
y e o n
umero de unidades do produto y. O problema pode ser colocado em
programacao matematica como:
Maximize x + y
x, y
Sujeito a:
50x + 24y
30x + 33y
x
y
B
I
40 60
35 60
75 30
95 90
= 2400
= 2100
=
45
=
5
d
.
0
eb=
a) Basta fazer A =
d
B
podemos reduzir o problema em consie b =
b) Fazendo A =
g
F
deracao ao problema de mnimos quadrados.
B
d
c) Faca A =
eb=
.
2F
2g
EX 1.2:
1 0
0
0
2 0
, b1 = 0 ,
A1 = 0
0
3
0 0
A2 = 1 1 1 , b2 = [1],
A3 = 1 4 0 , b3 = [2].
Por fim, basta fazer
b1
A1
A = A2 e b = b2
b3
A3
289
A. Exerccios Resolvidos
M
P
m=1
yt
|yt ym |
EX 1.5: Seja xij = 1 se a posicao (i, j) do tabuleiro e ocupada por uma rainha e,
caso contrario, xij = 0. Seja n = 8 o n
umero de colunas e tambem de linhas do
tabuleiro. O problema pode entao ser colocado em programacao linear inteira:
Maximize
n
n P
P
xij
i=1 j=1
Subjeito a:
n
P
i=1
n
P
xij 1,
j = 1, . . . , n
xij 1,
i = 1, . . . , n
xi,i+k 1
k = 0, . . . , n 2
xi+k,i 1
k = 1, . . . , n 2
xi,ni+1k 1
k = 0, . . . , n 2
xi+k,ni+1 1
k = 1, . . . , n 2
j=1
nk
P
i=1
nk
P
i=1
nk
P
i=1
nk
P
i=1
xij {0, 1}
i = 1, . . . , n
j = 1, . . . , n
290
A. Exerccios Resolvidos
A.2
Minimiza
c
ao de Funco
es com o M
etodo de Descenso
f (x) =
f (x) =
e que
2
Observando que f (x) 0 para qualquer x, o menor valor que esta pode assumir
e f (x ) = 0. Uma vez que x = (1, 1) e tal que f (x ) = 0, conclumos que x e
um otimo global. Note que para x1 6= 1 ou x2 6= x21 tem-se f (x) > 0, portanto x
e u
nico. Pode-se calcular o gradiente e a Hessiana no ponto x , obtendo:
f (x ) =
0
0
e f (x ) =
802 400
400 200
8 + 2x1
12 4x2
= 0 x1 = 4 e x2 = 3.
f (x ) =
2 0
0 4
a11 a12
a21 a22
291
A. Exerccios Resolvidos
EX 2.4:
a11 a12
a21 a22
x1
x2
b) h(x) = f (x) g(x) pode nao ser convexa. Para f (x) = x e g(x) = x2
obtemos h(x) concava.
c) h(x) = f (x)2 nao e necessariamente convexa. Para f (x) = x2 30 pode-se
verificar que h(x) nao e convexa.
d) Para f (x) = x verifica-se f (x) 0 no domnio x 0. Contudo, h(x) e uma
funcao concava no domnio x 0.
EX 2.5: Para o problema definido por
Q=
0, 9561 0, 6888
0, 6888 0, 6044
eb=
1
2
30, 3585
8, 4746
24, 8628
25, 0717
25, 1599
25, 1611
25, 1615
25, 1615
292
A. Exerccios Resolvidos
=
=
=
=
[z = U x]
i=1
zi2 max{
(A)}
max{ (A)}z T z
max{ (A)}(xT U T U x)
max{ (A)}kxk2
max{ (I Q)2 }kxk2
iv. A afirmacao esta incorreta. Para f (x) = x3 tem-se f (x) = 3x2 e f (x) = 6x.
Para x = 0 verificamos que f (x) = 0 e f (x) = 0 (x satisfaz as condicoes
necessarias de segunda ordem) contudo x nao e um mnimo local. Para
qualquer x > 0 podemos verificar que f (x x) < f (x) e, da, deduzimos
que existe x = x x na vizinhanca de x com valor inferior.
A. Exerccios Resolvidos
293
294
A. Exerccios Resolvidos
A.3
M
etodo de Newton
EX 3.1: Para encontrarmos as regioes de convergencia e divergencia podemos, inicialmente, descobrir a regiao em que o metodo de Newton tem comportamento
cclico. Para funcao f (x) = arctan(x), o operador de Newton e definido por
xk+ = xk
arctan(xk )
f (xk )
= xk
f (xk )
1/(1 + x2k )
(A.1)
(A.2)
Portanto, um ponto em que o metodo de Newton entra em ciclo infinito e precisamente uma solucao para (A.2). As solucoes de (A.2) sao
1.39174520027073, 0 e 1.39174520027073. Logo, o metodo de Newton diverge
para x0 (, 1.39174520027073) (1.39174520027073, ) e converge para
x0 (1.39174520027073, 1.39174520027073). O metodo entra em ciclo infinito
para x0 {1.39174520027073, 1.39174520027073}.
EX 3.2: Com x(0)
=
(1, 1) o metodo converge para x
=
(0)
(0.69684555124075, 0.28559372228403). Com x
= (1, 1) o metodo converge para x = (0.69684555124075, 0.28559372228403). Com x(0) = (1, 1) e
x( 0) = (1, 1) o metodo nao converge. As solucoes do sistema de equacoes
nao-lineares estao ilustradas na Figura A.1.
EX 3.3: Seja F (x) = 0 o sistema de equacoes nao-lineares no espaco das variaveis x.
A partir de um iterando inicial x0 , o metodo de Newton e dado por:
xk+1 = xk F (xk )1 F (xk ),
k = 0, 1, . . .
Seja x = H(y) uma funcao de y onde H(y) = Sy. A solucao do sistema F pode
ser colocado no espaco de y como:
G(y) = 0, onde G(y) = F (H(y))
Portanto,
G(y) = F (H(y) = x F (x).y H(y) = F (x).S
y k G(y k )1 G(y)
y k [F (Sy k )S]1 F (Sy k )
y k S 1 F (Sy k )1 F (Sy k )
S 1 xk S 1 F (xk )1 F (xk )
S 1 [xk F (xk )1 F (xk )]
S 1 xk+1
[Por inducao xk = Sy k ]
295
A. Exerccios Resolvidos
1
x
0.8
log(x2 + 2x2 + 1) 1/2 = 0
0.6
0.4
O
0.2
2
x2x1 + 0.2 = 0
0.2
0.4
0.6
0.8
1
1
0.8
0.6
0.4
0.2
0.2
0.4
0.6
0.8
1
x
2x + y + 1
2y + x + 2
0
0
(A.3)
296
A. Exerccios Resolvidos
x =
Uma vez que para || = 2 nao existe ponto estacionario, todo mnimo local
(x(), y()) satisfaz || < 2 e, consequentemente, satisfaz as condicoes suficientes
de segunda ordem. Alem disso, f (x) se torna convexa e todo ponto estacionario
e um mnimo local que por sua vez e um mnimo global.
EX 3.8: Analisamos cada uma das funcoes separadamente.
1) Observando que f (x, y) = (4x(x2 4), 2y) podemos calcular os pontos
estacionarios fazendo f = 0. Da conclumos que os pontos estacionario
sao z1 = (0, 0), z2 = (2, 0), z3 = (2, 0). Observando que f (x, y) 0 para
todo (x, y), podemos concluir que z2 e z3 sao mnimos globais.
Calculando a Hessiana de f , obtemos
12x2 16 0
2
f=
0
2
No ponto (0, 0) verificamos que 2 f (0, 0) e indefinida implicando que (0, 0)
nao e um mnimo local, nem um mnimo global.
A funcao f e ilimitada por cima e nao possui maximo local.
2) Calculando o gradiente de f obtemos
4x(y x2 )2 2x
f =
2(y x2 )
A. Exerccios Resolvidos
297
298
A. Exerccios Resolvidos
A.4
Otimizac
ao Black-Box
(u,v)(S,V S)
299
A. Exerccios Resolvidos
A.5
OR: w0 = 0, w1 = 1 e w2 = 1.
NOR: w0 = 0.5, w1 = 1 e w2 = 1.
EX 5.2: Seja T o n
umero de exemplos de treinamento. O problema de treinar a rede
neural pode ser colocado em programacao matematica como segue:
P : Minimize
4
T P
P
(ykt otk+6 )2
t=1 k=1
Sujeito a:
otk = xtk
nettk =
P4
m=1
wm,k otm
k = 1, . . . , 4
t = 1, . . . , T
k = 5, 6
t = 1, . . . , T
k = 7, . . . , 10
t = 1, . . . , T
k = 5, . . . , 10
t = 1, . . . , T
T X
4
X
t=1 k=1
"
ykt
w5,k+6 (
4
X
m=1
wm,5 xtm )
+ w6,k+6 (
4
X
m=1
wm,6 xtm )
!#2
300
A. Exerccios Resolvidos
A.6
Programac
ao Linear
EX 6.1: Uma vez que b1 < 0, vamos tomar o problema auxiliar para encontrar uma
solucao factvel:
Maximize x0
Sujeito a :
x1 x2 x3 x0 2
2x1 x2 + x3 x0
1
x0 , x1 , x2 , x3 0
Tomando o dicionario inicial como se os elementos bi s fossem todos nao negativos,
obtemos:
Max =
x0
w1 = 2 +x1 +x2 +x3 +x0
w2 =
1 2x1 +x2 x3 +x0
Realizando pivoteamento em x0 e na restricao mais negativa, temos que x0 =
w1 + 2 x1 x2 x3 e substituindo no dicionario obtemos:
Max
que passa ser factvel para o problema auxiliar. Fazendo x1 entrar na base, a
variavel w2 deve sair da base pois 3/3 = 1 < 2/1 = 1. Logo, x1 = 1 2x3 /3 +
w1 /3 w2 /3 e substituindo no dicionario acima obtemos o dicionario:
Max
= 1
x2 +x3 /3 2w1 /3 w2 /3
x0 =
1 x2 x3 /3 +2w1 /3 +w2 /3
x1 =
1
2x3 /3 +w1 /3 w2 /3
=
x0
x1 = 1 2x3 /3 +w1 /3 w2 /3
x2 = 1 x3 /3 +2w1 /3 +w2 /3 x0
Note que o dicionario corrente e factvel para o problema original, logo basta remover a coluna correspondente `a variavel auxiliar x0 , substituir a funcao objetivo
original e continuar deste ponto em diante. Calculamos a funcao objetivo como
segue:
f =
=
=
=
2x1 6x2
2(1 2x3 /3 + w1 /3 w2 /3) 6(1 x3 /3 + 2w1 /3 + w2 /3)
2 4x3 /3 + 2w1 /3 2w2 /3 6 + 6x3 /3 12w1 /3 6w2 /3
4 + 2x3 /3 10w1 /3 8w2 /3
301
A. Exerccios Resolvidos
Au
nica variavel que deve entrar na base e x3 . A variavel que sai da base e x1
pois 3/2 < 3. Substituindo x3 = 3/2 3x1 /2 + w1 /2 w2 /2 na linha da funcao
objetivo e na segunda u
ltima do dicionario, teremos
=
=
=
=
x2 =
=
=
=
O dicionario inicial e:
Maximize x1 + x2
Sujeito a :
3x1 + x2 6
x1 , x2 0
D1 : = 0 +x1 +x2
w1 = 6 3x1 x2
D2 : = 2 w1 /3 +2x2 /3
x1 = 2 w1 /2 x2 /3
302
A. Exerccios Resolvidos
EX 6.5: Seja xi a variavel que saiu da base e xk a variavel que entrou na base. Denote
por B o conjunto dos ndices das variaveis basicas; e N o conjunto dos ndices
das variaveis nao basicas. Entao, a seguinte equacao pertencia ao dicionario:
X
X
xi = bi
a
ij xj = bi
a
ij xj a
ik xk
jN
Portanto:
jN {k}
xk = bi /
aik
jN {k}
a
ij xj xi /
aik
onde bi 0 e a
ik > 0. Sabemos tambem que o custo reduzido de xk e ck > 0.
(Caso contrario, xk nao entraria na base.) No dicionario resultante, a variavel xi
tera custo reduzido dado por:
ci = ck /
aik < 0
implicando que xi nao e uma variavel candidata para entrar na base na proxima
iteracao.
EX 6.6: O problem pode ser colocado na forma:
P : Maximize cT x
Sujeito a :
Ax
Ax
Ix
Ix
x
b
a
u
l
D : Minimize bT w1 aT w2 + uT v1 lT v2
Sujeito a :
AT w1 AT w2 + v1 v2 c
w 1 , w 2 , v1 , v2 0
EX 6.7: Resolvendo o dual:
D : Minimize 2y1 + y2
Sujeito a :
y1 +2y2
y1 y2
y1 +y2
y1
y2
2
6
0
0
0
303
A. Exerccios Resolvidos
(3 + 2 3 2)0
10=0
(3 3 + 6)1/2
0 1/2 = 0
(3 + 3 0)3/2 = 0
(0 1/2 3/2 + 2)3
03=0
(2 0 1/2 + 3/2 1)3
03=0
Min cT (
x + N y)
S.a: A(
x + N y) = b
Min cT x + cT N y
S.a: A
x + AN y = b
Min cT N y
S.a: b + 0 = b
Min cT N y
304
A. Exerccios Resolvidos
m
P
dj
j=1
S.a :
dj aTj x bj dj , j = 1 . . . , m
dj 0, j = 1, . . . , m
lxu
sendo A =
aT1
aT2
..
.
aTm
e aj Rn1 , j = 1 . . . , m.
Segue a formulacao P2 :
P2 : Min
m
P
(e+
j + ej )
j=1
S.a :
aTj x bj = e+
j ej , j = 1 . . . , m
+
ej , ej 0, j = 1, . . . , m
lxu
305
A. Exerccios Resolvidos
A.7
y = (y5 , y10
) = (2/3, 1/3)
306
A. Exerccios Resolvidos
1) v = axa + axb w1
2)
bxb =
=
=
(a + b)xb =
xb =
bxa v w2
bxa + axa axb + w1 w2
(a + b)xa axb + w1 w2
(a + b)xa + w1 w2
xa + (w1 w2 )/(a + b)
3)
xa + xb = 1 xa + (xa + (w1 w2 )/(a + b)) = 1
2xa = 1 + (w2 w1 )/(a + b)
1 w2 w1
xa = +
2 2(a + b)
4)
xb = xa + (w1 w2 )/(a + b)
1 w2 w1 w1 w2
+
+
=
2 2(a + b)
a+b
1 w1 w2
w1 w2
=
+2
2 2(a + b)
2(a + b)
1 w1 w2
+
=
2 2(a + b)
5) Podemos deduzir a partir dos itens (1), (3) e (4) que
v = axa + axb w1
= a(xb xa ) w1
1 w1 w2 1 w2 w1
) w1
= a( +
2 2(a + b) 2 2(a + b)
(w1 w2 )
= a
w1
(a + b)
(bw1 + aw2 )
=
a+b
6) Fazendo w1 = 0 e w2 = 0 variaveis nao basicas, podemos concluir a
partir do desenvolvimento acima que v 0. Tomando o dicionario:
xa
xb
v
= 0
= 12
= 21 +
= 0
bw1
a+b
w1
2(a+b)
w1
2(a+b)
bw1
a+b
+
+
aw2
a+b
w2
2(a+b)
w2
2(a+b)
aw2
a+b
307
A. Exerccios Resolvidos
aya byb = 0
aya + byb = 0 yb = 1 ya .
ya + yb = 1
b
Logo, podemos concluir que ya = a+b
e yb =
estrategias otimas para denominacoes a e b sao:
x = 1
xa = 12
b
y =
a
yb =
b
a+b
a
a+b
a
.
a+b
Em sntese, as
308
A. Exerccios Resolvidos
A.8
Fluxo em Redes
EX 8.1: O problema de fluxo em redes de custo mnimo (primal) pode ser especificado
como segue para uma rede G = (N, A):
P
P : Minimize
cij xij
(i,j)A
Sujeito a:
{j:(i,j)A}
xij
xij uij
xij lij
xji = b(i)
{j:(j,i)A}
iN
(i, j) A
(i, j) A
(i,j)A
(i,j)A
Sujeito a:
(i, j) A
iA
(i, j) A
309
A. Exerccios Resolvidos
(10,10)
(1,10)
3
0
310
A. Exerccios Resolvidos
EX 8.6: Substitua cada vertice i pelos vertices i1 e i2 . Substitua cada arco (i, j) por
(i2 , j1 ), utilizando a mesma capacidade e custo do arco original. Para cada vertice
i, introduza o arco (i1 , i2 ) definindo c(i1 , i2 ) = 0 e u(i1 , i2 ) = w(i). Para cada
vertice i com b(i) 0, faca b(i1 ) = 0 e b(i2 ) = b(i). Para cada vertice i com
b(i) < 0, faca b(i1 ) = b(i) e b(i2 ) = 0.
EX 8.7: Ver exerccio EX 8.4.
EX 8.8:
311
A. Exerccios Resolvidos
G = (V , A )
G = (V, A)
p2 = 1
2
c12 = 3
c 1 2 = 3
p4 = 1
s
2
p1 = 2 1
3
3
4
t
4
2
3
3
p3 = 2
todos estes cortes. Logo, o problema pode ser resolvido computando |V |1 fluxos
maximos em G. Isto decorre do teorema fluxo-maximo corte-mnimo.
EX 8.11: O dual do problema de fluxo maximo pode ser
P
D : Minimize
(i,j)E uij wij
Sujeito a :
yi yj + wij 0,
ys + yt 1
wij 0,
yi R,
expresso como:
(i, j) A
(i, j) A
i V
312
A. Exerccios Resolvidos
A.9
Linguagens de Modelagem
n
P
sj w j
j=1
Sujeito a :
sj si + pi M (1 xij )
xij + xji = 1
sj 0
xij {0, 1}
M=
n
P
i = 1, . . . , n
j = 1, . . . , n, j 6= i
i = 1, . . . , n
j = i + 1, . . . , n
j = 1, . . . , n
i = 1, . . . , n
j = i = 1, . . . , n
pj
j=1
#-------------------------------------------------------------var x
{ i in 1..n, j in 1..n : i!=j } integer >=0, <=1;
var s
{ j in 1..n} >= 0;
#-------------------------------------------------------------minimize cost:
sum{j in 1..n} w[j]*s[j];
A. Exerccios Resolvidos
313
w
p :=
1.5
2.3
1.2
1.0
1.5
3.6
4.1
0.8
2.0
3.0;
314
A. Exerccios Resolvidos
O conte
udo do arquivo de dados definindo a instancia e:
Jobs: [1 2 3 4 5 6 7 8 9 10]
M: 25
w: [0.5 0.4 0.1 0.5 0.3 0.5 0.2 0.8 1.0 0.6]
p: [1.5 2.3 1.2 1.0 1.5 3.6 4.1 0.8 2.0 3.0]
315
A. Exerccios Resolvidos
A.10
Programac
ao Inteira: Fundamentos
6
6
>
>
x1
x2
x1 Cy
x2 C(1 y)
y {0, 1}
0 6 xj 6 C, j = 1, 2.
>
>
6
6
x1 x2
x2 x1
x1 x2 + 2Cy
x2 x1 + 2C(1 y)
y {0, 1}
0 6 xj 6 C, j = 1, 2.
X {x } = {x Z n : Ax 6 b
xT x 6 eT x + n(1 y)
xT (e x ) > 1 y
y {0, 1}
}
316
A. Exerccios Resolvidos
+
+
+
+
+
+
+
+
x13
x23
x23
x34
x56
x56
x57
x78
=
+
+
+
+
+
+
=
2;
x24
x34
x45
x57
x68
x78
2;
+
+
=
=
=
=
x26 = 2;
x37 = 2;
2;
2;
2;
2;
<=
<=
<=
<=
<=
<=
<=
<=
<=
<=
<=
<=
1;
1;
1;
1;
1;
1;
1;
1;
1;
1;
1;
1;
int
int
int
int
int
int
int
int
int
int
int
int
x12;
x13;
x23;
x24;
x26;
x34;
x37;
x45;
x56;
x57;
x68;
x78;
317
A. Exerccios Resolvidos
EX 10.5:
1) yij e igual a xi xj :
yij > xi + xj 1
yij 6 xi
yij 6 xj
yij > 0
2) Se x1 = 1 entao x2 + x3 = 1:
x2 + x3 6 2 x1
x2 + x3 > x1
3) x3 e 1 se e somente se x1 e 1 ou
x3
x3
x
x3
x1 x2
x2 x1
2 x1 x2
x1 + x2
xj 6 naj1
mas permite que se tenha uma subsequencia de comprimento menor que lmin
no extremo direito da sequencia a.
EX 10.7: Seja an BM 1 um vetor tal que anm = 1 se a rota rn passa por pm e anm = 0
caso contrario, para n = 1, . . . , N e m = 1, . . . , M . O problema pode ser colocado
como um problema de cobertura de conjuntos:
PN
Minimize
n=1 cn xn
Sujeito a :
PN n
n=1 am > 1, m = 1, . . . , M
xn {0, 1}, n = 1, . . . , N
318
A. Exerccios Resolvidos
n
P
Minimize
dj
j=1
Sujeito a :
xj 6 xj x 6 xj
yj 6 yj y 6 yj
xj > 0
, j = 1, . . . , n
yj > 0
dj = min{
xj , yj }
n
P
dj
j=1
Sujeito a :
xj
yj
yj
dj
dj
dj
dj
6
6
>
>
6
6
>
>
xj x 6 xj
yj y 6 yj
0
0
xj
, j = 1, . . . , n
yj
xj M zj
yj M (1 zj )
zj {0, 1}
n
P
dj
j=1
Sujeito a :
xj x = x+
j xj
yj y = yj yj
+
xj , xj > 0
, j = 1, . . . , n
y
,
y
>
0
j j
+
dj = min{x+
j + xj , yj + yj }
319
A. Exerccios Resolvidos
P com um problema de programacao inteira mista:
PI : Minimize
n
P
dj
j=1
Sujeito a :
xj x = x+
j xj
yj y = yj+ yj
x+
j , xj > 0
+
yj , yj > 0
d j 6 x+
, j = 1, . . . , n
j + xj
+
d j 6 yj + yj
d j > x+
j + xj M z j
dj > yj+ + yj M (1 zj )
zj {0, 1}
(x14 , y14 )
(x3 , y3 )
(x2 , y2 )
Mestre Horizontal
(x, y)
(x5 , y5 )
(x12 , y12 )
(x4 , y4 )
(x6 , y6 )
(x11 , y11 )
(x7 , y7 )
(x8 , y8 )
(x9 , y9 )
Mestre Vertical
(x10 , y10 )
320
A. Exerccios Resolvidos
A.11
Programac
ao Inteira: Relaxa
co
es e Algoritmo
Branch-and-Bound
= x0
= 86.5
77.3
82.3
x1 <= 1
P1
oo
x1 >= 2
P2
(Bounding) Resolvendo a relaxacao R(P22 ) detectamos que o problema e infactvel, portanto o no correspondente ao problema P22 e fechado devido a infactibilidade.
(Bounding) Resolvendo a relaxacao R(P1 ) obtemos o limite superior 1052 e a
solucao x1 = 1, x2 = 0, x3 = 4.4089, y1 = 5.4838 e y2 = 1.4851 que viola a
restricao de integralidade das variaveis x.
(Branching) Quebramos P1 em dois subproblemas P11 = P1 {x : x3 4} e P12 =
P1 {x : x3 5}. A arvore branch-and-bound resultante aparece na Figura A.7.
Note que o limite superior do no P passa de 1165 para 1052 = max{1052, 771}.
321
A. Exerccios Resolvidos
1165
P
oo
x1 >= 2
x1 <= 1
771
P2
P1
x3 <= 2
oo
x3 >= 3
P21
P22
1165
P
x1 <= 1
oo
x1 >= 2
771
1052
oo
x3 <= 4
P11
P2
P1
x3 >= 5
P12
x3 <= 2
P21
oo
x3 >= 3
infactivel
P22
322
A. Exerccios Resolvidos
oo
x1 >= 2
x1 <= 1
659
1052
oo
x3 <= 4
P2
P1
x3 >= 5
x3 <= 2
x3 >= 3
659
infactivel
P11
oo
P12
oo
x2 <= 0
P211
infactivel
P21
P22
x2 >= 1
P212
323
A. Exerccios Resolvidos
1165
P
oo
x1 >= 2
x1 <= 1
657
1052
oo
x3 <= 4
P2
P1
x3 >= 5
x3 <= 2
x3 >= 3
657
infactivel
P11
oo
P12
oo
infactivel
P21
x2 >= 1
x2 <= 0
657
P211
P212
oo
infactivel
x1 <= 2
P2111
x1 >= 3
P2112
P22
324
A. Exerccios Resolvidos
A.10.
991
P
oo
x1 >= 2
x1 <= 1
657
991
oo
P2
P1
x3 >= 5
x3 <= 4
991
x2 <= 0
x3 <= 2
infactivel
oo P11
oo
657
P12
oo
x2 >= 1
x3 >= 3
infactivel
P21
P22
x2 >= 1
x2 <= 0
657
P111
P211
P112
P212
oo
infactivel
x1 <= 2
P2111
x1 >= 3
P2112
325
A. Exerccios Resolvidos
991
P
oo
x1 >= 2
x1 <= 1
657
991
oo
P2
P1
x3 >= 5
x3 <= 4
991
x2 <= 0
x3 <= 2
infactivel
oo P11
P12
oo
infactivel
P21
P22
x2 >= 1
x2 <= 0
982
x3 >= 3
657
x2 >= 1
P111
oo
657
P211
P112
P212
oo
982
infactivel
otimalidade
x1 <= 2
657
P2111
x1 >= 3
657
cortado por
cortado por
P2112
por limite
por limite
17x1 + 12x2
+u1 (40 10x1 7x2 ) + u2 (5 x1 x2 )
x1 4
x2 5
x1 , x2 0
x1 , x2 Z
ou, equivalentemente,
L(u1 , u2 ) = Maximize
Sujeito a :
x1 4
x2 5
x1 , x2 0
x1 , x2 Z
O Lagrangeano dual e dado por:
LD : Minimize L(u1 , u2 )
u1 , u2 0
326
A. Exerccios Resolvidos
ub = 68.33
s0
x1 2
x1 1
s1
ub = 68.2857
ub = 65
s2
lb = 65
(x1 , x2 ) = (1, 4)
solucao inteira
x2 3
x2 2
ub = 68.2
s3
s4
s5
ub = 68.1425
ub = 58
s6
lb = 58
x2 2
x2 1
s7
x1 3
s9
lb = 63
ub = 68.1
s8
ub = 68
s10
ub =
infactvel
x1 4
ub = 63
lb = 63
infactvel
x1 3
x1 2
ub =
solucao inteira (
otima)
lb = 68
(x1 , x2 ) = (4, 0)
A. Exerccios Resolvidos
327
328
A. Exerccios Resolvidos
A.12
EX 12.1:
x2 1
3x1 3x2 2
x1 x2 2/3
x1 x2 2/3
x1 x2 0
12
12
12
50
x1 + x2 + x3 + 2x4 + 2x5 12
x1 + x2 + x3 + 2x4 + 2x5 5
Observe que a u
ltima desigualdade e valida por construcao e corta a
solucao fracionaria corrente, pois 25/6 6> 5.
329
A. Exerccios Resolvidos
v. X = {x Z4+ : 4x1 + 8x2 + 7x3 + 5x4 33} e x = (0, 0, 33/7, 0).
Dividindo a desigualdade por 7 e realizando arredondamento obtemos:
8
7
5
33
4
8
7
5
33
4
x1 + x2 + x3 + x4
x1 + x2 + x3 + x4
7
7
7
7
7
7
7
7
7
7
x2 + x3 4
Observe que a desigualdade acima corta a solucao fracionaria, pois
4.7143 = x2 + x3 6 4.
33
7
4
5
9
12
34
4
5
9
12
34
y1 + y2 + y3 + y4
y1 + y2 + y3 + y4
5
5
5
5
5
5
5
5
5
5
y2 + y3 + 2y4 6
EX 12.4: As iteracoes do algoritmo de planos de corte seguem abaixo.
Itera
c
ao 1: Introduzindo as variaveis de folgas w1 , w2 e w3 , e resolvendo a relaxacao linear obtemos o dicionario:
Max 68 +
S.a :
1
3
x1
x2
35
w
21 1
1
w
3 2
1
w
3 1
1
w
3 1
1
w
3 1
+
+
7
w
3 2
10
w
3 2
7
w
3 2
+ w3
=
=
=
5
3
10
3
7
3
1
7
5
x1 3w2 (x1 + w1 w2 ) 1
3
3
3
2
2
1
w1 w2
3
3
3
1
2
2
w1 w2 + w4 =
(A.4)
3
3
3
Itera
c
ao 2: Resolvendo a relaxacao linear apos introduzir o corte (A.4), obtemos
uma solucao inteira: x1 = 4, x2 = 0. O valor da funcao objetivo para esta
solucao e 68.
330
A.13
A. Exerccios Resolvidos
Programac
ao L
ogica
A. Exerccios Resolvidos
A.14
Programac
ao Din
amica: Domnio Discreto
331
332
A. Exerccios Resolvidos
end
end
end
b
1
1
2
c
2
2
2
d
3
3
3
e
4
4
4
f
5
4
5
f
6
5
5
g
7
6
5
h
8
7
6
i
9
8
7
x
10
9
8
k
11
10
9
l
12
11
10
b
0
1
2
c
0
1
2
d
0
1
2
e
0
1
2
f
0
0
1
f
0
0
1
g
0
1
0
h
0
1
1
i
0
1
2
x
0
1
2
k
0
1
2
l
0
1
2
EX 14.3: Seja Ji,N o custo de formatacao otima para a subcadeia (wi , . . . , wN ). Podemos desenvolver as recorrencias estagio por estagio.
a) i = N : Temos o valor terminal:
JN,N =
0
|b b|
se b = A LN b
se b < b
333
A. Exerccios Resolvidos
b) i = N 1: Temos a recorrencia:
JN 1,N 1 = |b b| onde b = A LN 1
JN 1,N 1 = min
se LN 1 + LN A and
b = (A LN 1 LN )/2 b
se LN 1 + LN A and b < b
2|b b|
JN 1,N + JN,N
c) i = N 2: Temos a recorrencia:
JN 2,N 2 = |b b| onde b = A LN 2
JN 2,N 1 = min
JN 2,N
2|b b|
JN 2,N 2 + JN 1,N 1
3|b b|
= min
J
+ JN 1,N
N 2,N 2
JN 2,N 1 + JN,N
se LN 2 + LN 1 A and
b = (A LN 2 LN 1 )/2
se LN 2 + LN 1 + LN A and
b = (A LN 2 LN 1 LN )/3 b
se LN 2 + LN 1 + LN A
E assim sucessivamente ate obtermos J1,N . Uma analise inicial nos leva a deduzir
que o computo de Ji,j consome (j i + 1) operacoes elementares. Portanto, o
custo total para resolucao das recorrencias e (N 2 ), consumindo tambem (N 2 )
unidades de memoria para armazenamento das tabelas Ji,j , i, j {1, . . . , N }.
Podemos melhorar a analise observando que nao e necessario computar Ji,j se
P
j
a que neste caso a subcadeia (wi , wi+1 , . . . , wj ) nao pode ser
k=i Lk > A, j
acomodada na linha. Assim, um algoritmo mais eficiente pode ser obtido com
base nesta observacao, o qual tera complexidade (N min{A, N }), que sera mais
eficiente quando o n
umero de palavras for maior do que o comprimento da linha.
O algoritmo sera linear no tamanho da entrada.
EX 14.4: As respostas estao enumeradas abaixo:
a) Seja gk (b) o comprimento do caminho mais curto de s ate k com custo
maximo b. Entao podemos formular o problema de forma recursiva:
gs (b) = 0, para b = 0, . . . , B
k V {s}, b {1, . . . , B}
b) As recorrencias podem ser resolvidas atraves do algoritmo a seguir. O algoritmo tambem matem os parametros k (b), o qual nos da o predecessor de
k no caminho mais curto de s ate k com custo maximo b.
334
A. Exerccios Resolvidos
Algoritmo
Inicializa
c
ao
Para b = 0, . . . , B faca
gs (b) 0
s (b) nil
Para todo k V {s} faca
gk (0)
k (0) nil
Recorr
encia
Para b = 1, . . . , B faca
Para todo k V {s} faca
gk (b) gk (b 1)
k (b) k (b 1)
Para todo (j, k) A faca
Se cjk b e gj (b cjk ) + wjk < gk (b)
gk (b) gj (b cjk ) + wjk
k (b) j
Para cada valor b {1, . . . , B}, o algoritmo varre todos os arcos do grafo.
Assumindo que existe caminho com origem em s para todo k, a complexidade
do algoritmo e (B|E|). A memoria ocupada pelo algoritmo e tambem da
ordem (2B|E|) necessaria para armazenar as tabelas gk (b) e k (b).
EX 14.5: Seja D(i, j) o comprimento da maior subsequencia em comum para as subcadeias x(i) = (x1 , . . . , xi ) e y(j) = (y1 , . . . , yj ). Se i = 0 entao definimos x(i) =
como uma cadeia vazia, o mesmo ocorrendo quando j = 0 que implica y(j) =.
Podemos entao colocar o problema de uma forma recursiva:
D(0, j) = 0, j = 0, . . . , m
D(i, 0) = 0, i = 0, . . . , n
(A.5)
D(i, j) = max{D(i, j 1), D(i 1, j),
D(i 1, j 1) + 1 se xi = yj }, i, j > 0
A recorrencia dada por (A.5) nos leva imediatamente a um algoritmo de programacao dinamica.
Algoritmo
Inicializa
c
ao
Para j = 0, . . . , m faca
D(0, j) 0
Para i = 0, . . . , n faca
D(i, 0) 0
335
A. Exerccios Resolvidos
Recorr
encia
Para j = 1, . . . , m faca
Para i = 1, . . . , n faca
D(i, j) min{D(i 1, j), D(i, j 1)}
Se xi = yj entao
D(i, j) min{D(i, j), D(i 1, j 1) + 1}
y2
y3
y4
y5
y6
x1 A
x2 B
x3 C
x4 B 0
x5 D 0
x6 A 0
x7 B 0
Figura A.13: Exemplo de execucao do algoritmo de programacao dinamica para subsequencia mais longa de duas cadeias de caracteres.
336
A. Exerccios Resolvidos
1
x 2 y1
1
x 4 y1
2 x 3 y3
2
x 5 y2
3
x 6 y4
3 x 4 y5
4 x 6 y6
4 x y
7
5
0
1
Jn = max{Jn , Jn }
Podemos resolver eficientemente as recorrencias (A.6) seguindo um ordem topologica reversa de G. Obtemos um algoritmo de programacao dinamica.
Algoritmo
Inicializa
c
ao
Obtenha uma ordem topologica reversa I = (i1 , . . . , iN )
dos vertices de G
Para n = 1, . . . , N faca
337
A. Exerccios Resolvidos
Jn Jn0 Jn1 0
Recorr
encia
Para k = 1, . . . , N faca
n iP
k
Jn0 = jAn Jj
P
Jn1 = rn + jAn Jj0
Jn = max{Jn0 , Jn1 }
36
0
0.2314
0.2314
26
0
0.8194
0.8194
16
1.0651
0.2405
1.0651
6
2.2340
1.4419
2.2340
35
0
0.3618
0.3618
25
0
0.8571
0.8571
15
0
0.0929
0.0929
5
2.7765
1.9883
2.7765
34
0
0.6013
0.6013
24
0.9786
0.8624
0.9786
14
0.8571
0.2781
0.8571
4
3.7543
4.5095
4.5095
33
0
0.9786
0.9786
23
0
0.3838
0.3838
13
0.9786
1.3284
1.3284
3
2.2616
2.1511
2.2616
32
0
0.8832
0.8832
22
1.0445
0.1118
1.0445
12
0
0.9056
0.9056
2
5.0105
5.1816
5.1816
31
0
0.1613
0.1613
21
0
0.7379
0.7379
11
1.4283
2.0386
2.0386
1
11.9527
11.9979
11.9979
30
0.5932
0.1397
0.5932
20
0
0.1851
0.1851
10
0.7379
0.2468
0.7379
29
0
0.6041
0.6041
19
0.5932
1.1659
1.1659
9
2.8527
2.4287
2.8527
28
0.6013
0.8976
0.8976
18
1.5017
0.9255
1.5017
8
0.9016
0.0096
0.9016
27
0
0.2457
0.2457
17
0
0.9016
0.9016
7
2.0151
2.2616
2.2616
Note que uma ordem topologica pode ser obtida em tempo O(N + M ) = O(N ),
onde N = |V | e M = |E|. O laco de inicializacao e executado em tempo O(N ).
O laco de recorrencia percorre cada vertice precisamente uma vez. Para cada
vertice n, sao executadas O((n) + 1) operacoes sendo
(n) = |An |. Portanto,
P
o custo computacional do laco e da ordem de O( nV (n)) + O(N ) = O(N ).
Conclumos que o algoritmo executa em tempo linear (N ).
Para garantir que o presidente sera convidado, basta utilizar a solucao cujo valor
e J11 , segundo a qual o presidente (vertice 1) e convidado.
Na solucao otima para o problema o presidente e convidado, pois J11 > J10 conforme a Tabela A.3. Nao e difcil construir um algoritmo que percorre esta tabela
e produz a lista de convidados. Os seguintes convidados constam da lista: 1, 7,
11, 12, 13, 17, 19, 20, 21, 25, 26, 27, 28, 29, 31, 32, 33, 35 e 36.
338
A. Exerccios Resolvidos
1
1
0
2
1
1
3
2
1
4
3
1
5
*
0
6
1
1
7
2
1
8 9
3 *
1 0
10
1
1
11
2
1
12
3
1
14
1
1
15
2
1
16
3
1
17
*
0
18
1
1
19
2
1
20
3
1
21
*
0
13
*
0
339
A. Exerccios Resolvidos
A.15
Programac
ao Din
amica: Domnio Contnuo
Procedendo ao primeiro estagio, podemos obter J0 (x0 ) com base na poltica otima
a ser aplicada no estagio seguinte:
J0 (x0 ) = u20 + J1 (x1 )
r[(1 )x1 T ]2
= u20 +
1 + r2
Uma vez que J0 e convexa, podemos calcular o valor mnimo fazendo a derivada
em relacao a u0 assumir o valor nulo. A derivada de J0 e:
d
2r
[(1 )2 x0 + (1 )u0 T ](1 )
J0 = 2u0 +
du0
1 + ra2
e fazendo dJ0 /du0 nula, calculamos a lei de controle otima para o primeiro estagio:
0 (x0 ) =
r(1 )
[T (1 a)2 x0 ]
1 + r2 (1 + (1 )2 )
340
A. Exerccios Resolvidos
341
A. Exerccios Resolvidos
(A.7)
1
=
(2M + m)l
2l
ml
1 (M + m)
u
2g
(A.8)
x 3 = 0 0
x 4
0 0
0
2mg
2M +m
2g(M +m)
(2M +m)l
0
x1
0 x2
1 x3
x4
0
2
2M +m
(2M 1+m)l
x1
x 1
0
0 1
0
0
x 2 0 0 0.4780 0 x2 0.0976
+
x 3 = 0 0
0
0
1 x3
0.0976
0 0 20.0780 0
x4
x 4
(A.9)
obtemos os ssi
(A.10)
342
A. Exerccios Resolvidos
1/2
1/2
FP
SP
0.3
1/2
$110
0.7
0.7
S
1/2
0.3
B
A
0.7
1/2
FI
SI
B
$100
0.3
343
A. Exerccios Resolvidos
A.16
Programac
ao N
ao-Linear
Fundamentos
Sob
Restrico
es:
cos x1 + 100 = 0
2
(A.11)
(A.12)
(A.13)
100. Subs(A.14)
(A.15)
(A.16)
(A.17)
onde h(x1 ) = 0.02x1 e g(x1 ) = 2 cos x1 sin x1 + 200 sin x1 . Note que g(x1 ) e
periodica e limitada, sendo g(x1 ) [202, 202]. Portanto a reta h(x1 ) intercepta
g(x1 ) um n
umero finito de vezes. Da conclumos que o n
umero de solucoes de
(A.16) e finito, portanto, o n
umero de solucoes KKT tambem e finito.
EX 16.5: Em princpio podemos utilizar o pacote do Prof. Kunz fazendo g(x) =
f (x)T f (x) = kf (x)k2 . Note que g : Rn R, sendo g contnua e diferenciavel
pois f e contnua e diferenciavel. Seja f = [f1 (x) . . . fn (x)]T com fj : Rn R.
Entao g(x) = 0 f (x)T f (x) = 0 fj (x) = 0, j = 1, . . . , n x e solucao de
f (x) = 0.
EX 16.6: Podemos fazer uso do pacote de software do Prof. Kunz fazendo h(x) =
f (x) e g(x) = f (x). Neste caso, se encontrarmos x tal que h(x) = 0 e g(x) < 0
entao x satisfaz as condicoes suficientes de segunda ordem, f (x) = 0 e f (x) > 0,
e deve ser um mnimo local.
344
A. Exerccios Resolvidos
n
X
c i xi +
i=1
n
X
gi (xi ) + (
i=1
n
X
xi b)
i=1
n
X
i xi
(A.18)
i=1
i = 1, . . . , n
i=1
xi > 0,
i > 0,
>0
n
X
i=1
i = 1, . . . , n
i = 1, . . . , n
xi b) = 0
i xi = 0,
i = 1, . . . , n
Fazendo
i = ci +
gi (xi )
+
xi
xi b 6 0
xi > 0,
gi (xi )
+ > 0,
xi
>0
n
X
(
xi b) = 0
ci +
i = 1, . . . , n
i = 1, . . . , n
i=1
gi (xi )
+ = 0,
xi c i +
xi
i = 1, . . . , n
A. Exerccios Resolvidos
A.17
Programac
ao N
ao-Linear Sob
Fundamentos de Algoritmos
345
Restrico
es:
346
A. Exerccios Resolvidos
A.18
Programac
ao Quadr
atica
2x2
4x2
2x2
4x2
=
1
=
2
= 1
= 2
Observe que m > n, mas rank(A) = rank([A|b]) = 1 < n pois a segunda, a terceira e a quarta linha sao m
ultiplos da primeira linha, contradizendo a afirmacao
do Prof. Kunz.
347
A. Exerccios Resolvidos
EX 18.5: Note que minimizar uma funcao f (x) equivale a minimizar 2f (x). Logo:
min q(x) min 2q(x) min 22 xT Qx + 2dT x + 2c min 12 xT Qx + 21 xT QT x +
2dT +2c min + 21 xT (Q+QT )x+2dT x+2c. Assim podemos resolver o problema
em consideracao resolvendo um problema tipo PQ onde Q e substituda por Q +
QT , d por 2d e c por 2c. Entao resolvemos o problema abaixo:
1 T
x (Q
2
Minimize
Subjeito a :
+ QT )x + 2dT x + 2c
Ax b
EX 18.6: Obtenha primeiramente o Lagrangeano:
m
cX 2 X
1
ei +
i (yi wT (xi ) b ei )
L(w, b, e, ) = wT w +
2
2 i=1
i=1
m
X
i (xi )
(A.19)
i=1
m
X
(A.20)
i=1
L/ei = cei i , i = 1, . . . , m
T
L/i = yi w (xi ) ei , i = 1, . . . , m
(A.21)
(A.22)
Uma vez que as derivadas de L devem ser nulas, para satisfazer condicoes necessarias de otimalidade, fazendo:
ei = i /c, i = 1, . . . , m
m
X
w=
i (xi )
(A.23)
(A.24)
i=1
i = 0
(A.25)
i=1
yi
m
X
j=1
(xj )T j (xi ) b i /c = 0, i = 1, . . . , m
(A.26)
1 Q + c1 I
onde: 1 = (1, . . . , 1)T , y = (y1 , . . . , ym )T , = (1 , . . . , m )T e Q e uma matriz
m m com entrada Qij = (xi )T (xj ). A solucao do problema PQ se reduz
a resolver a equacao (A.27) e encontrar w a partir de (A.24), assim obtendo o
aproximador otimo f(x, w, b) = wT (x) + b.
348
EX 18.7: Basta fazer q = bA1 u.
A. Exerccios Resolvidos
A. Exerccios Resolvidos
A.19
349
Programac
ao N
ao-Linear sob Restrico
es: Algoritmos
350
A. Exerccios Resolvidos
12
x
10
solucao otima
8
4
trajetoria
x1
{x : (x x0 )T A1 (x x0 ) 1} {x : kA 2 (x x0 )k2 1
1
{x : kA 2 (x x0 )k 1
{x : kuk 1} com u = A 2 (x x0 )
1
{x : kuk 1} com A 2 u + x0 = x
1
{A 2 u + x0 : kuk 1}