• Nenhum resultado encontrado

Quatro perspectivas sobre métodos baseados em pontos extremos para programação linear

N/A
N/A
Protected

Academic year: 2021

Share "Quatro perspectivas sobre métodos baseados em pontos extremos para programação linear"

Copied!
301
0
0

Texto

(1)

Q

UATRO PERSPECTIVAS SOBRE MÉTODOS BASEADOS EM PONTOS EXTREMOS PARA PROGRAMAÇÃO LINEAR

CAMPINAS 2016

(2)
(3)

Ficha catalográfica

Universidade Estadual de Campinas

Biblioteca do Instituto de Matemática, Estatística e Computação Científica Maria Fabiana Bezerra Muller - CRB 8/6162

Lemos, Luiz Fernando Ramos,

L544q LemQuatro perspectivas sobre métodos baseados em pontos extremos para programação linear / Luiz Fernando Ramos Lemos. – Campinas, SP : [s.n.], 2016.

LemOrientador: Sandra Augusta Santos.

LemDissertação (mestrado) – Universidade Estadual de Campinas, Instituto de Matemática, Estatística e Computação Científica.

Lem1. Programação linear. 2. Algoritmos. 3. Dualidade (Matemática). 4. Simplex (Matemática). 5. Experimentos numéricos. I. Santos, Sandra Augusta,1964-. II. Universidade Estadual de Campinas. Instituto de Matemática, Estatística e Computação Científica. III. Título.

Informações para Biblioteca Digital

Título em outro idioma: Four perspectives about extreme point based methods for linear

programming

Palavras-chave em inglês:

Linear programming Algorithms

Duality theory (Mathematics) Simplexes (Mathematics) Numerical experiments

Área de concentração: Matemática Aplicada e Computacional Titulação: Mestre em Matemática Aplicada e Computacional Banca examinadora:

Sandra Augusta Santos [Orientador] Lúcio Tunes dos Santos

Thadeu Alves Senne

Data de defesa: 24-02-2016

(4)

Pela Banca Examinadora composta pelos Profs. Drs.

Prof.(a). Dr(a). SANDRA AUGUSTA SANTOS

Prof.(a). Dr(a). LÚCIO TUNES DOS SANTOS

Prof.(a). Dr(a). THADEU ALVES SENNE

A Ata da defesa com as respectivas assinaturas dos membros encontra-se no processo de vida acadêmica do aluno.

(5)

Dei um grito no escuro “Sô parcero” do futuro Na reluzente “galáchia” Eu quase posso palpar A minha vida que grita Emprenha e se reproduz Na velocidade da luz A cor do céu me compõe mar azul me dissolve A equação me propõe Computador me resolve “Astronarta” libertado Minha vida me “urtrapassa” Em “quarqué” rota que eu faça Dei um grito no escuro “Sô parcero” do futuro Na reluzente “galáchia” Amei a velocidade Casei com sete planetas Por filho, cor e espaço Não me tenho nem me faço A rota do ano-luz

Calculo dentro do passo Minha dor é cicatriz Minha morte não me quis Nos braços de dois “mir” anos Eu nasci sem ter idade “Sô” casado “sô sortero” “Sô” baiano e “estrangero” Meu sangue é de gasolina “Corrrendo” não tenho mágoa Meu peito é “di sar” de fruta Fervendo “nu” copo d’água Astronauta libertado Minha vida me ultrapassa Em qualquer rota que eu faça Dei um grito no escuro Sou parceiro do futuro Na reluzente galáxia

(6)

Primeiramente, agradeço à CAPES e Unicamp pelas bolsas fornecidas, e também a todos que direta ou indiretamente contribuem para a educação pública, gratuita e de qualidade no Brasil.

À minha orientadora, Professora Sandra Augusta Santos, que me orientou com má-xima seriedade e cuidado, um trabalho de excelência.

Ao Professor Lúcio Tunes do Santos, membro da banca, orientador do projeto de graduação que originou este mestrado, e a quem tenho como grande amigo.

Sou grato também ao Professor Thadeu Alves Senne, membro da banca, pela minuci-osa correção do trabalho.

Não poderia deixar de mencionar o grande apoio da professora Valéria Abrão de Po-destá durante o curso de graduação, tendo também ajudado no projeto inicial.

À Professora Maria Aparecida Diniz Ehrhardt, participante da banca de qualificação, e professora inspiradora durante a graduação.

Aos meus familiares e amigos, que sem a ajuda e apoio jamais seria possível concluir este trabalho, em especial à minha tia Maria Martha Silvestre Ramos e minha sogra Terezinha Aparecida Silva pelos cuidados com minha filha Cecília.

Declaro também dívida eterna com o amor e suporte de meus pais, Ana Cristina Silvestre Ramos de Barros Lemos e Luiz Ricardo Régis de Barros Lemos.

E por fim, agradeço ao amoroso e incondicional apoio de minha companheira Míriam Porfírio da Silva com a qual compartilho a felicidade de ter uma filha muito sorridente, a já citada Cecília, nascida durante esse mestrado, que esperamos continuar sempre nesta mesma alegria preenchendo de felicidade a vida de de todos à sua volta!

(7)

Quatro perspectivas sobre métodos baseados em pontos extremos para Progra-mação Linear

Este trabalho apresenta dois métodos para a solução do problema de Programação Linear, Método de Cones de Crescimento e Método de Cones com Redução Viável, que utilizam mecanismos algébricos diferentes do Simplex e do Dual Simplex. Para tal, apresentamos duas formas de pensar geometricamente o problema de Programação Linear por pontos extremos, viá-veis ou não, e duas formas de representar geometricamente estes pontos, via soluções básicas e translações básicas. É demonstrada a equivalência entre as abordagens algébricas usadas pelos quatro métodos e, por não se basear na dedução do Método Simplex e nem na teoria de dua-lidade, este trabalho constitui um outro caminho para demonstrar os métodos tradicionais e a dualidade entre problemas de Programação Linear. Por fim, ilustramos a equivalência por testes computacionais em problemas selecionados, e apresentamos uma implementação revisada do Método de Cones de Crescimento e sua comparação com o Método Simplex do pacote MATLAB® em testes no conjunto de problemas NETLIB.

Palavras-chave: Programação Linear, Algoritmos, Álgebra Linear, Método Simplex, Dualidade, Experimentos numéricos.

(8)

Four perspectives about extreme point based methods for Linear Programming In this work two methods for Linear Programming are presented: the Increasing Cones Method and the Method of Cones with Feasible Reduction. The algebraic schemes of these methods are different from those of the Simplex Method and of the Dual Simplex Method. Two ways of geometrically addressing the Linear Programming problem by means of the geometric representation of the extreme points are discussed based on basic solutions and basic transla-tions. Equivalence among the algebraic schemes are proved. By not employing techniques from the Simplex Method nor from duality theory, this work can be seen as an option to reach the tra-ditional methods and duality in Linear Programming. The equivalences are illustrated by means of simple examples and computationally validated with a revised implementation of the Increas-ing Cones Method in comparison with the Simplex Method (routine

linprog

of MATLAB®) for the solution of selected problems from the NETLIB collection.

Keywords: Linear Programming, Algorithms, Linear Algebra, Simplex Method, Duality, Numerical experiments.

(9)

Dedicatória Agradecimentos

1 Introdução 13

2 Considerações iniciais 15

2.1 Notações utilizadas . . . 15

2.2 Definição e representação de poliedros . . . 16

2.3 Definição de ponto extremo . . . 17

3 Método de Cones de Crescimento 18 3.1 Problema abordado . . . 18

3.2 Desenvolvimento do método . . . 18

3.2.1 Definição de cones de crescimento . . . 19

3.2.2 Translações Básicas . . . 22

3.2.3 Identificando um cone de crescimento afim . . . 24

3.2.4 Identificação da solução ótima . . . 25

3.2.5 Ilimitação e inviabilidade . . . 26

3.2.6 Convergência . . . 28

3.3 Descrição algorítmica . . . 29

4 Método de Cones com Redução Viável 30 4.1 Problema abordado . . . 30

4.2 Desenvolvimento do método . . . 30

4.2.1 Definição de cone com redução viável . . . 31

4.2.2 Identificação de cone com redução viável afim . . . 33

4.2.3 Identificação da solução ótima . . . 34

4.2.4 Ilimitação e inviabilidade . . . 35

(10)

5.1 Soluções básicas . . . 38

5.2 Equivalências Duais . . . 40

5.2.1 Exemplo de equivalência dual: MCC-Simplex . . . 42

5.2.2 Equivalência dual: MCRV-MDS . . . 48

5.3 Equivalências Primais . . . 48

5.3.1 Exemplo de equivalência primal: MCRV-MS . . . 48

5.3.2 Identificação de ilimitação ou inviabilidade . . . 54

5.3.3 Teorema da equivalência primal . . . 54

5.3.4 Equivalência Primal: MCC-MDS . . . 56

6 Revisão dos métodos 57 6.1 Otimização por ordem . . . 57

6.1.1 Anticiclagem . . . 58

6.1.2 Vetor de custos inicial . . . 60

6.1.3 Equivalências das abordagens para os outros métodos . . . 61

6.2 Artifícios de desempenho e precisão . . . 62

7 Testes computacionais 64 7.1 Equivalências entre os métodos . . . 64

7.1.1 Entradas e saída . . . 64

7.1.2 Inicialização . . . 65

7.1.3 Montagem do tableau . . . 67

7.1.4 Início do ciclo iterativo . . . 69

7.1.5 Seleção por critério de Dantzig e avaliação de otimalidade . . . 69

7.1.6 Seleção pelo critério da razão . . . 70

7.1.7 Mudança de solução avaliada . . . 72

7.1.8 Registra controles e passa para iteração seguinte . . . 74

7.1.9 Retorno da solução . . . 75

7.1.10 Códigos completos . . . 78

7.1.11 Exemplo computacional . . . 82

7.2 Método de Cones de Crescimento Revisado . . . 86

7.2.1 Adaptação ao formato do método . . . 87

7.2.2 Inicialização . . . 89

7.2.3 Início do ciclo iterativo . . . 92

7.2.4 Seleção de restrição básica . . . 93

7.2.5 Seleção de variável básica . . . 97

7.2.6 Aplicação da translação básica . . . 99

7.2.7 Atualização dos registros, controle de esparsidade . . . 99

7.2.8 Fim do processo iterativo . . . 100

7.2.9 Cálculo da solução . . . 101

(11)

Referências 106

A MCC Revisado: Resultados por problemas 107

A.1 25FV47 . . . 111 A.2 80BAU3B . . . 113 A.3 ADLITTLE . . . 115 A.4 AFIRO . . . 117 A.5 AGG . . . 119 A.6 AGG2 . . . 121 A.7 AGG3 . . . 123 A.8 BANDM . . . 125 A.9 BEACONFD . . . 127 A.10 BLEND . . . 129 A.11 BNL1 . . . 131 A.12 BNL2 . . . 133 A.13 BOEING1 . . . 135 A.14 BOEING2 . . . 137 A.15 BORE3D . . . 139 A.16 BRANDY . . . 141 A.17 CAPRI . . . 143 A.18 CYCLE . . . 145 A.19 CZPROB . . . 147 A.20 D2Q06C . . . 149 A.21 D6CUBE . . . 151 A.22 DEGEN2 . . . 153 A.23 DEGEN3 . . . 155 A.24 DFL001 . . . 157 A.25 E226 . . . 159 A.26 ETAMACRO . . . 161 A.27 FFFFF800 . . . 163 A.28 FINNIS . . . 165 A.29 FIT1D . . . 167 A.30 FIT1P . . . 169 A.31 FIT2D . . . 171 A.32 FIT2P . . . 173 A.33 FORPLAN . . . 175 A.34 GANGES . . . 177 A.35 GFRD-PNC . . . 179

(12)

A.37 GREENBEB . . . 183 A.38 GROW15 . . . 185 A.39 GROW22 . . . 187 A.40 GROW7 . . . 189 A.41 ISRAEL . . . 191 A.42 KB2 . . . 193 A.43 LOTFI . . . 195 A.44 MAROS . . . 197 A.45 MAROS-R7 . . . 199 A.46 MODSZK1 . . . 201 A.47 NESM . . . 203 A.48 PEROLD . . . 205 A.49 PILOT . . . 207 A.50 PILOT-JA . . . 209 A.51 PILOT-WE . . . 211 A.52 PILOT4 . . . 213 A.53 PILOT87 . . . 215 A.54 PILOTNOV . . . 217 A.55 QAP8 . . . 219 A.56 RECIPELP . . . 221 A.57 SC105 . . . 223 A.58 SC205 . . . 225 A.59 SC50A . . . 227 A.60 SC50B . . . 229 A.61 SCAGR25 . . . 231 A.62 SCAGR7 . . . 233 A.63 SCFXM1 . . . 235 A.64 SCFXM2 . . . 237 A.65 SCFXM3 . . . 239 A.66 SCORPION . . . 241 A.67 SCRS8 . . . 243 A.68 SCSD1 . . . 245 A.69 SCSD6 . . . 247 A.70 SCSD8 . . . 249 A.71 SCTAP1 . . . 251 A.72 SCTAP2 . . . 253 A.73 SCTAP3 . . . 255 A.74 SEBA . . . 257 A.75 SHARE1B . . . 259

(13)

A.78 SHIP04L . . . 265 A.79 SHIP04S . . . 267 A.80 SHIP08L . . . 269 A.81 SHIP08S . . . 271 A.82 SHIP12L . . . 273 A.83 SHIP12S . . . 275 A.84 SIERRA . . . 277 A.85 STAIR . . . 279 A.86 STANDATA . . . 281 A.87 STANDMPS . . . 283 A.88 STOCFOR1 . . . 285 A.89 STOCFOR2 . . . 287 A.90 STOCFOR3 . . . 289 A.91 TRUSS . . . 291 A.92 TUFF . . . 293 A.93 VTP-BASE . . . 295 A.94 WOOD1P . . . 297 A.95 WOODW . . . 299

(14)

Capítulo 1

Introdução

Ao pensar em Matemática frequentemente nos baseamos em intuições geométricas para depois partir para teoremas e construções mais estruturadas. Com a Programação Linear não foi diferente. Apesar das primeiras modelagens terem tido apenas conotação algébrica, e em problemas econômicos que nada tem de visualmente intuitivos[6], não demorou para que a abstração geométrica nos levasse a caminhos muito frutíferos[7]. Pensar a região factível como um poliedro e imaginar o comportamento das curvas de nível neste objeto levou à elaboração do

Método Simplexde George B. Dantzig, sendo uma elegante abordagem algébrica para um passeio geométrico pelos pontos extremos do poliedro[8], porém não trivial para alguém com um curso básico de álgebra linear.

Neste trabalho, apresentamos uma outra perspectiva para resolução por vértices do problema de Programação Linear: o Método de Cones de Crescimento. Tal ideia partiu de uma perspectiva visual do problema e formalizou-se em uma abordagem algébrica, a abordagem de

translações básicas, descrita na Seção 3.2.2, que é distinta, porém equivalente à abordagem por

soluções básicasutilizada pelo Método Simplex. Trata-se de um método de pontos inviáveis equi-valente ao Método Simplex via dualidade. Porém, não foi construído com base nesta teoria, sendo outro caminho possível para justificar e compreender as relações entre um par primal-dual li-near. Podemos ver sobre dualidade tradicional em[2]. O método é análogo geometricamente ao

Método Dual Simplex, porém usa outros artifícios algébricos e dedução.

Por analogias algébricas e geométricas, temos outros dois métodos. O primeiro é o já conhecido Método Dual Simplex, que anda por pontos inviáveis pelos artifícios algébricos do

Método Simplex, frequentemente demonstrado pela teoria de dualidade. O segundo é o Método de

Cones com Reduções Viáveis, que anda por pontos factíveis com os artifícios algébricos do Método

de Cones de Crescimento.

Apresentaremos primeiro, no Capítulo 3, o Método de Cones de Crescimento, formali-zando durante a sua apresentação a abordagem algébrica, e também discutindo e ilustrando sua abordagem geométrica, a identificação de pontos extremos por translações básicas e passeio por

cones de crescimento. A seguir, no Capítulo 4, apresentaremos o Método de Cones com Reduções

Viáveis, usando a mesma abordagem algébrica, porém para pontos viáveis.

A fim de mostrar a equivalência entre esses métodos e os tradicionais Simplex e Dual

Simplex apresentaremos, no Capítulo 5, a relação entre translações básicas e soluções básicas, e as equivalências duais, terminando com a equivalência entre os quatro métodos.

Como artifício anticiclagem, e para adaptar os métodos para a resolução de qualquer problema de Programação Linear, introduzimos o conceito de Programação Linear por Ordem

(15)

distintas, com o qual foi implementada uma versão elaborada do Método de Cones de Crescimento. Vamos citar brevemente como por meio de equivalências esta abordagem pode se estender aos demais métodos.

Ao final, no Capítulo 7, apresentamos testes computacionais utilizando a base de problemas NETLIB para Programação Linear. Utilizamos o problema BRANDY para comparar os quatro métodos em implementação “ingênua” e suas equivalências. E, como validação final da abordagem por translações básicas, testamos toda a base de problemas, comparando a resolução obtida pela implementação do Método Simplex, acessada pela função

linprog

do MATLAB®, com os resultados da implementação elaborada do Método de Cones de Crescimento. Os resultados constam para consulta no Apêndice A.

(16)

Capítulo 2

Considerações iniciais

Vamos resgatar aqui alguns conceitos de programação linear e notações que serão utilizados no trabalho.

2.1

Notações utilizadas

Seguem algumas notações que serão frequentemente utilizadas: • A é uma matriz de coeficientes qualquer pertencente a Rm×n.

• I é uma matriz identidade de dimensão apropriada ao contexto.

• b é um vetor de deslocamento, denominada vetor do lado direito (RHS), pertencente a Rm.

• c é um vetor de custos pertencente a Rn.

• x é um vetor de variáveis pertencente a Rn.

• xf é um vetor de variáveis de folga pertencente a Rm.

• Dado um vetor d ∈ Rn, e um escalar a∈ R, uma comparação qualquer, d Ô a, denota que

a relação é válida termo a termo, ou seja, di Ô a, ∀ i = 1, . . . , n.

• Subscrições indicam indexação, e quando é usado • estamos indicando todos os valores naquela linha ou coluna. Por exemplo, I1• se refere à primeira linha da identidade I.

λ é um número real.

• Sobrescrições se referem a agrupamentos, por exemplo, B xB ≥ bB, xB é um agrupamento

de variáveis coerentes com a matriz B e bB são os vetores de deslocamento relativos a

B x. Podem significar também o sistema de coordenadas distintos, como por exemplo,

x = Bx0 ou x(1)= Bx(2). Não utilizamos potências em variáveis dos problemas, visto que são lineares.

Ao julgar que o leitor está familiarizado com os métodos, vamos nos referir a eles de forma abreviada:

• MCC: Método de Cones de Crescimento. • MCRV: Método de Cones com Redução Viável. • MS: Método Simplex.

(17)

2.2

Definição e representação de poliedros

Como trataremos diretamente de restrições lineares, utilizaremos a definição de po-liedro a partir destas. Usualmente se define popo-liedro como o conjunto de todas as combinações convexas de um conjunto de pontos e direções, partindo do Teorema da Representação [1] e mostrando equivalência em relação ao conjunto gerado por restrições lineares. Aqui, partiremos diretamente da definição através de restrições lineares. Trabalharemos com formatos específicos destas restrições, que apresentaremos nesta seção.

Definição 2.2.1. Um poliedro é o conjunto definido pelas soluções do sistema,

Ax ≥ b. (2.2.1)

Por simplicidade, adotaremos a descrição do poliedro na forma canônica de progra-mação linear.

Para minimização, temos

Ax ≥ b

x ≥ 0, (2.2.2)

e, para maximização,

Ax ≤ b

x ≥ 0. (2.2.3)

Os métodos Simplex e Dual Simplex utilizam-se da forma padrão. Isso nada mais é do que tratar as folgas como variáveis. No caso do problema de maximização, teríamos

Ax+ I xf = b

x, xf ≥ 0. (2.2.4)

Uma forma simples de demonstrar que todo poliedro pode ser abordado utilizando representações equivalentes aos formatos canônicos apresentados é a transformação de variáveis irrestritas para variáveis não-negativas. A conversão é bem simples, basta tomar xi = x+i − xi−em

que xi ∈ R é uma variável irrestrita do problema original, e x+i , xi ∈ R são tais que x+i , xi ≥ 0.

Assim, para a representação (2.2.1), tomando x = [x1, ..., xn]T = [x1+, ..., x+n]

T − [x− 1, ..., xn−] T = x+− x−, obtemos Ax+− Ax≥ b x+, x− ≥ 0. (2.2.5)

e, analogamente, para o formato (2.2.3)

−Ax++ Ax≤ −b

x+, x 0. (2.2.6)

Chamaremos de ponto viável todo ponto pertencente à região descrita pelas inequa-ções, e ponto inviável o ponto que não satisfaz ao menos uma restrição.

(18)

2.3

Definição de ponto extremo

Apresentamos aqui a definição de ponto extremo através de restrições lineares. Definição 2.3.1. Dado um poliedro definido por m restrições lineares e n variáveis, é dito ponto extremo um ponto que ativa, isto é, satisfaz em regime de igualdade, n restrições linearmente

inde-pendentes, .

Um ponto extremo pode ser viável ou não. Quando ele é viável é um vértice do polie-dro; caso contrário, é um vértice de um conjunto de restrições, mas não pertence ao poliedro por não satisfazer ao menos uma restrição, e será referenciado como ponto extremo inviável.

Ainda associado ao conceito de ponto extremo, temos as direções extremas.

Definição 2.3.2. Dado um poliedro P , contido em Rn, e um ponto p∈ P , uma direção extrema

d ∈ Rn, é tal que, para todoλ ∈ R, λ ≥ 0, p + λd ∈ P , e p + λd satura n − 1 restrições lineares de

P .

Podem existir poliedros sem pontos extremos. Estes se resumem a semi-espaços ou hiperplanos. E, neste caso, basta termos uma base para o espaço descrito para encontrarmos uma direção de melhoria, ou constatarmos que toda uma região é ótima. Porém, não vamos abordar este caso diretamente. Esta situação pode ser abordada por métodos de pontos extremos pela conversão de variáveis irrestritas para não-negativas, gerando um poliedro garantidamente com pontos extremos.

Pela definição de poliedro por combinações convexas, podemos definir ponto extremo como um elemento do conjunto gerador mínimo do poliedro, juntamente com suas direções extremas. Existe também um conjunto gerador de direções extremas mínimo[1].

O nome do Método Simplex advém que um ponto definido desta maneira é chamado de 0-simplex e um n-simplex é um politopo, que é um poliedro limitado, n-dimensional, definido pela combinação convexa de n+1 pontos, sendo nenhum destes pontos combinação convexa uns dos outros. Mais especificamente, essa é uma generalização do triângulo, que é um 2-simplex, para n dimensões. Porém, isso é apenas uma curiosidade e não será utilizado neste trabalho.

(19)

Capítulo 3

Método de Cones de Crescimento

Este método foi o motivador deste trabalho, assim será nosso ponto de partida. A razão de sua elaboração foi construir um método que fosse intuitivo geometricamente e que utilizasse recursos algébricos básicos, como translação e mudança de base. Aqui, a base se refere ao espaço das variáveis, e não ao espaço imagem, como no caso do Método Simplex.

Veremos adiante que este método caminha pelos mesmos pontos que o Método Dual Simplex, para um mesmo critério de seleção, e equivale operacionalmente ao Método Simplex aplicado ao problema dual, também para um critério de seleção apropriado.

3.1

Problema abordado

Abordaremos o problema linear canônico de minimização, com a hipótese inicial que

c> 0:

min cTx

s.a Ax ≥ b

x ≥ 0.

(3.1.1) Este formato foi escolhido, pois, ao contrário do formato padrão que utiliza restrições de igualdade, no formato canônico é possível trabalhar com poliedros de mesma dimensão do espaço das variáveis, o que pode facilitar a visualização do problema. Já a positividade do vetor de custos faz com que a origem seja o ponto ótimo se viável, pois, desta forma todas as direções positivas aumentam o valor da função objetivo. Nesse caso, a viabilidade ocorre se b≤ 0.

Veremos que o ortante positivo e a função objetivo formam um cone de crescimento, estrutura central deste método.

A positividade estrita é uma hipótese restritiva. Na verdade para convergência do métodos veremos hipóteses ainda mais restritivas. Porém apresentaremos como contornar estes inconvenientes no Capítulo 6.

3.2

Desenvolvimento do método

Desenvolveremos um método iterativo, onde a cada iteração teremos um problema de mesmo formato, de forma que, em alguma iteração, ou o problema avaliado satisfaz as condições de otimalidade, apresentadas com detalhes na Subseção 3.2.4, ou é identificado como inviável, conforme explicado na Subseção 3.2.5. Dessa forma,

min cTx s.a Ax ≥ b x ≥ 0 ⇐⇒ min c(k)Tx(k) + v(k) s.a A(k)x(k) ≥ b(k) x(k) ≥ 0. (3.2.1)

(20)

Na k-ésima iteração o ponto x(k)∗ = 0 é ótimo se b(k)≤ 0, sendo o valor ótimo dado por v(k). Cada x(k)está em um sistema de coordenadas diferente. Logo, a solução no sistema de coordenadas inicial não é necessariamente a origem.

Por ser um processo iterativo, a hipótese de positividade vale não apenas sobre o vetor de custos inicial, mas também para todo c(k), o que é extremamente restritivo, e frequen-temente não ocorre inicialmente ou durante todo o processo iterativo. Porém, contornamos isto no Capítulo 6.

Partiremos de um problema simples, apresentando a cada passo as formalizações e generalizações necessárias.

Para ilustrar a abordagem, trabalharemos com o seguinte problema, ilustrado pela Figura 3.1: min 4x1 + 6x2 s.a x1 + 3x2 ≥ 4 x1 + x2 ≥ 2 x ≥ 0. (3.2.2)

Figura 3.1: Ilustração do problema (3.2.2), que satisfaz as hipóteses apresentadas.

Destacamos na Figura 3.1 a região viável, e a curva de nível zero da função objetivo aparece tracejada. Seguiremos este padrão de ilustração ao longo de todo o trabalho.

Repare que a origem é um ponto otimista para o problema (3.2.2), pois o valor obje-tivo cresce em todas as direções do ortante posiobje-tivo, e necessariamente, todos os pontos viáveis devem pertencer a este ortante. Este é um caso particular de cone de crescimento, estrutura que apresentaremos a seguir.

3.2.1 Definição de cones de crescimento

Agora vamos resgatar a definição de cone poliedral e a definição de cone de cresci-mento, e mostrar formalmente o que afirmamos anteriormente.

(21)

Definição 3.2.1. Um cone poliedral C é um subconjunto de um espaço vetorial V , definido por

restrições lineares e fechado quanto à multiplicação por escalares não-negativos.

Definição 3.2.2. Chamaremos cone de crescimento um cone C associado a uma função objetivo

f :C → R, onde, para todo λ > 1 e x ∈ C tal que x 6= 0 temos f (λx) > f (x).

Teorema 3.2.1. O conjuntoC = {x ∈ Rn|C x ≥ 0}, onde C ∈ Rm×n, é umcone poliedral.

Prova. Tome x ∈ Rn tal que C x ≥ 0 e λ ≥ 0 então Cλx = λC x, como C x ≥ 0 então λC x ≥ 0.

Assimλx ∈ C para todo λ ≥ 0 e x ∈ C .

LogoC , que é definido por restrições lineares, é fechado para multiplicação por esca-lares não-negativos, sendo então um cone poliedral. „ Em particular, o conjunto C = {x ∈ Rn|x ≥ 0} é um cone poliedral. Vejamos seu

comportamento em relação à uma função objetivo particular.

Teorema 3.2.2. O ortante positivo é um cone de crescimento associado à função f : Rn → R dada

por f(x) = cTx se, e somente se, c> 0.

Prova. Dados c > 0, x > 0 e λ > 1, cT(λx) = λ(cTx). Como cTx > 0, temos λcTx > cTx.

Caso contrário, se existe uma j-ésima componente de c tal que cj ≤ 0, tomando x = I• j temos

que cTx = c

j ≤ 0, e então, para λ > 1, λcTx ≤ cTx o que contraria a definição de cone de

crescimento. „

Agora, olhando apenas para a primeira restrição do problema (3.2.2), vemos que o conjunto definido por ela e uma, exclusivamente uma, das restrições de não-negatividade formam um cone, a menos de uma translação. Ilustramos essa ideia na Figura 3.2 e seguiremos com as definições e teoremas.

Definição 3.2.3. Dados um vetor constante x ∈ Rn, uma matriz C ∈ Rm×n e o cone poliedral

C = {x ∈ Rn|C x ≥ 0}, chamaremos cone poliedral afim o conjunto ¯C = {x0 = x + ¯x|x ∈ C } =

{x0∈ Rn|C x0≥ C x}. Analogamente, chamaremos de cone de crescimento afim se o cone associado

for de crescimento.

Em outras palavras, um cone poliedral afim é um cone a menos de uma translação. Neste trabalho, abordaremos apenas o caso em que a matriz que define o cone é invertível.

(22)

Figura 3.2: Exemplo de cones poliedrais afins.

Definição 3.2.4. Considerando o cone afim ¯C = {x ∈ Rn|C x ≥ ¯y}, chamaremos de vértice do

cone afim, ou simplesmente vértice do cone, o ponto x tal que C ¯x = ¯y .

Partindo do problema (3.2.2), ilustrado pela Figura 3.1, vamos explorar os conceitos apresentados.

Tomando a translação x = x(1)+4 0 

, e aplicando ao problema (3.2.2), obtemos o subconjunto de restrições (3.2.3), que é um cone para o sistema de coordenadas x(1):

x1(1) + 3x2(1) ≥ 0

x2(1) ≥ 0. (3.2.3)

Porém, não é um cone de crescimento, pois a direção d =−3 1 

pertence ao cone e é de decrescimento. De fato, d1+ 3d2 = −3 + 3 · 1 = 0 ≥ 0 e d2 = 1 ≥ 0 satisfaz as restrições e

cTd= 4 · (−3) + 6 · 1 = −6 < 0, ou seja, tem valor objetivo menor que o valor da função objetivo

no vértice do cone.

Agora tomando a translação x = x(1)+ 

0 4/3



, identificamos o seguinte cone:

x1(1) + 3x2(1) ≥ 0

x1(1) ≥ 0. (3.2.4)

Este cone é de crescimento, pois toda direção do cone é formada por combinações convexas das direções d(1) = 0

1  e d(2) =  3 −1 

, que são direções de crescimento. De fato, combinações convexas de direções de crescimento também são direções de crescimento, basta notar que para todoλ ∈ (0, 1) e d(1), d(2)direções de crescimento, temos

(23)

ondeλcTd(1)≥ 0 e (1 − λ)cTd(2)≥ 0.

Portanto, podemos garantir que um cone é de crescimento apenas avaliando o va-lor da função objetivo nas suas direções extremas. Formalizaremos essa afirmação através do Teorema 3.2.3, reduzindo ao caso do cone ortante e recaindo no Teorema 3.2.2.

3.2.2 Translações Básicas

Para termos um processo iterativo, além de translações aplicaremos mudanças de base, transformando o cone de crescimento escolhido em um ortante, e assim obtendo a cada iteração um problema no formato (3.1.1).

Entraremos em detalhes mais formais de como escolher um cone de crescimento afim mais adiante. A seguir vamos prosseguir com ideias ilustrativas, utilizando dos exemplos de cones derivados do problema (3.2.2).

Aplicando o processo de translação e mudança de base para o cone de crescimento afim (3.2.4), o problema (3.2.2) se transforma em um problema no mesmo formato do inicial apresentado, um problema canônico de minimização com c> 0.

Nesse caso, aplicamos a transformação definida por

x = B−1x(1)+ x, (3.2.6) em que B=1 0 1 3  , B−1=  1 0 −1/3 1/3  , x =  0 4/3  , (3.2.7) ao problema (3.2.2): min (0) 4x1 + 6x2 s.a (1) → x1 + 3x2 ≥ 4 (2) x1 + x2 ≥ 2 (3) x1 ≥ 0 (4) x2 ≥ 0 ⇐⇒ min (0) 2x1(1) + 2x2(1) + 8 s.a (1) x2(1) ≥ 0 (2) 2 3x (1) 1 + 1 3x (1) 2 ≥ 2 3 (3) x1(1) ≥ 0 (4) −1 3x (1) 1 + 1 3x (1) 2 ≥ − 4 3. (3.2.8) Ilustramos este caso particular de translação básica na Figura 3.3.

(24)

(a) Aplicação de translação. (b) Aplicação da mudança de base. Figura 3.3: Aplicação da translação básica.

Podemos ver a generalização algébrica da operação ilustrada em (3.2.9) e (3.2.10). Nesse caso, realizamos um agrupamento em restrições básicas e não-básicas, sendo, neste exem-plo, as restrições não-básicas, N x ≥ bN, representadas pelas restrições (2) e (4), e as restrições

básicas, B x ≥ bB, pelas restrições, (1) e (3). As restrições básicas representam um cone poliedral

com matriz de coeficientes invertível e as não-básicas são o conjunto de restrições complementar a este.

Para o formato (3.1.1), a situação inicial apresenta Ax ≥ b como não-básicas e x ≥ 0 como básicas.

De forma genérica, considere um cone afim definido por um sub-agrupamento do problema (3.1.1) definido por B x ≥ bB com B invertível. Tal qual procedemos anteriormente

tomaremos a translação básica x= B−1x(1)+ x, onde x = B−1bB, obtendo um ortante de

cresci-mento na variável x(1). Vamos apresentar o efeito desta transformação utilizando duas formas de organização para as linhas do problema:

min cTx s.a Ax ≥ b x ≥ 0 ⇐⇒ min cTx s.a N x ≥ bN B x ≥ bB. (3.2.9) Aplicando a translação básica,

min cTB−1x(1) + cTx s.a AB−1x(1) ≥ b − Ax B−1x(1) −x ⇐⇒ min cTB−1x(1) + cTx s.a N B−1x(1) ≥ bN− N x x(1) 0. (3.2.10)

Tomando c(1)T = cTB−1, A(1)= N B−1, b(1)= bN − N x, v1 = cTx temos um problema

(25)

função objetivo

min c(1)Tx(1) + v1

s.a A(1)x(1) ≥ b(1)

x(1) 0.

(3.2.11)

Esses procedimentos de nada adiantariam se não houvesse um meio de recuperar a informação sobre o as coordenadas da origem do sistema transformado no sistema de coordena-das original. Felizmente as mudanças de base se acumulam no locus do ortante original, assim como as translações com seu sinal trocado, visto que dado um ponto x(1) nas coordenadas x(1),

x+ B−1x(1)nos retorna o valor dessa translação nas coordenadas originais. Por conta dessa iden-tificação, o mecanismo de translação básica aplicado ao formato canônico, de minimização, ou otimização, nos dá um caminho de identificar um ponto extremo, dado por x = B−1bBe de deixá-lo explícito, sendo um procedimento que será utilizado também para pontos extremos viáveis no Método de Cones com Redução Viável, que veremos no Capítulo 4.

3.2.3 Identificando um cone de crescimento afim

Na seção anterior, identificamos o cone de crescimento por inspeção, e dado um cone afim vimos como podemos transformar um problema no formato (3.1.1) em um outro equiva-lente no mesmo formato.

Agora, veremos como garantir que esse cone seja um cone de crescimento. A abor-dagem por mudança de base nos indica como identificar algebricamente cones de crescimento, como veremos a seguir.

Teorema 3.2.3. Um cone afim ¯B = {x ∈ Rn|B x ≥ y}, em que B é não-singular, é de crescimento

em relação a uma função objetivo f(x) = cTx se, somente se, cTB−1> 0.

Prova. Tomando o vértice ¯x = B−1y e a transformação x = B−1x0+ ¯x, temos B[B−1x0+ ¯x] = x0+ y ≥ y, o que nos leva ao ortante x0 ≥ 0, onde o valor da função objetivo é dado por

cTB−1x0+ cT¯x. O cone afim ¯B é de crescimento se, e somente se, x0 ≥ 0 for um cone de crescimento, sendo c0 T = cTB−1 > 0 a condição necessária e suficiente para tal, conforme o

Teorema 3.2.2. „

Teorema 3.2.4. Dado um problema no formato (3.1.1) com c > 0, assumindo A =     A1• .. . Am     e b =     b1 .. . bm    

, se existe pelo menos uma restrição tal que bi > 0, onde tenhamos pelo menos um

coeficiente Ai j > 0 e sendo ar gmin

{ j|Ai j>0}

¨ cj

Ai j

«

único, então existe um cone de crescimento afim, com vértice pertencente ao ortante positivo, definido por um subconjunto de restrições do problema. Prova. Fixando i tal que bi > 0 e j para o qual Ai j > 0 então o conjunto formado por Ai e Ik com k6= j é linearmente independente, logo a matriz B tal que Bk= Ikpara k6= j e Bj= Ai•é

(26)

De fato, a matriz inversa é dada por B−1kk|k6= j = 1, B−1 j j = 1 Ai j, B −1 jk|k6= j = − Ajk|k6= j Ai j , e as

entradas restantes são nulas, ou seja, B−1kl|k6=l,k6= j = 0.

Agora mostraremos a existência de j que garante que cTB−1> 0. Temos que

cTB−1 =h(c1− cj Ai1 Ai j) · · · cj 1 Ai j · · · (cn− cj Ain Ai j) i . (3.2.12)

Queremos que ck−cjAik/Ai j> 0 para todo k 6= j, e que cj

Ai j > 0, o que implica restringir j aos índices para os quais Ai j > 0, conforme o Teorema 3.2.3. Para os índices k tais que Aik≤ 0

isto já esta garantido pois ck> 0 e −cjAik/Ai j ≥ 0. Já para os índices k onde Aik > 0 precisamos

que ck/Aik > cj/Ai j. Escolhendo j para o qual Ai j > 0 de forma que cj/Ai j seja mínimo, como o mínimo é único por hipótese, temos a positividade de todos coeficientes o que implica na identificação de um cone de crescimento afim.

O vértice deste cone é dado por ¯xk = 0 para k 6= j e ¯xj = bi/Ai j. Como bi e Ai j são

positivos por hipótese, então ¯x ≥ 0. „

Concluímos aqui como identificar um cone de crescimento afim. 3.2.4 Identificação da solução ótima

Como destacado no início da apresentação do método, a viabilidade da origem ocorre quando b ≤ 0 e isso implica em otimalidade para um problema no formato canônico de mini-mização com c ≥ 0. Vamos seguir com a resolução do problema (3.2.2) a partir de sua forma transformada, conforme feito em (3.2.8), para exemplificar como extraímos a solução para o sis-temas de coordenadas original. As ilustrações correspondentes podem ser visualizadas na Figura 3.4. min 2x1(1) + 2x(1)2 + 8 s.a x(1)2 ≥ 0 → 23x1(1) + 1 3x (1) 2 ≥ 2 3 x1(1) ≥ 0 −13x1(1) + 13x(1)2 ≥ −43. (3.2.13)

Pelo Teorema 3.2.4, a segunda restrição é uma candidata para definir o próximo cone, pois 23 > 0, ou seja, esta restrição inviabiliza a origem. Calculando o mínimo de {22/3,12/3} identi-ficamos um cone de crescimento afim, com vértice no ortante positivo, dado por

2 3x (1) 1 + 1 3x (1) 2 ≥ 2 3 x2(1) ≥ 0. (3.2.14)

Aplicando a translação básica referente a este cone

x(1)=2/3 −1/2 0 1  x(2)+1 0  , (3.2.15)

(27)

obtemos min 3x1(2) + x2(2) + 10 s.a x2(2) ≥ 0 x1(2) 0 → 32x1(2) − 12x2(2) ≥ −1 → −12x1(2) + 1 2x (2) 2 ≥ −1. (3.2.16)

A origem é um ponto viável e a não-negatividade configura um cone de crescimento. Em relação ao sistema de coordenadas inicial, temos o ponto ótimo x = 1

1 

, indicado com o sinal trocado como o vetor de deslocamento das restrições de não-negatividade iniciais.

De forma genérica, se x∗ é solução, ela fica identificada da seguinte maneira após uma translação básica tendo-a como alvo

min cTB−1x0 + cTx

s.a AB−1x0 ≥ b − Ax∗ → B−1x0 −x∗,

(3.2.17)

com valor ótimo cTxtambém explicitado pela translação.

(a) Escolha do cone de crescimento. (b) Configuração final após translação básica. Figura 3.4: Iteração final para resolução do problema (3.2.2).

3.2.5 Ilimitação e inviabilidade

Agora discutiremos os casos que não couberam ao exemplo apresentado: a ilimitação e inviabilidade.

(28)

Inviabilidade

A inviabilidade do problema pode estar explícita no formato canônico de minimização (3.1.1). Trataremos deste caso especificamente.

Teorema 3.2.5. Dado o problema (3.1.1), assumindo A=     A1 .. . Am     e b =     b1 .. . bm     , se existir uma restrição i tal que bi > 0 e Ai≤ 0 então o problema é inviável.

Prova. Basta notar que Aix ≤ 0 < bi para todo x ≥ 0, contrariando Ax ≥ b. „

A inviabilidade pode não estar explícita inicialmente. Como exemplo, considere o problema, min x1 + 2x2 s.a → x1 + x2 ≥ 2 → −x1 − x2 ≥ −1 x ≥ 0. (3.2.18)

Aqui temos x1 + x2 ≥ 2 e x1+ x2 ≤ 1, o que é evidentemente impossível de ser

satisfeito. Mas nesse caso, a inviabilidade não está explícita, mas ela fica evidente após uma única iteração, min x1(1) + x2(1) s.a x1(1) ≥ 0 → −x1(1) ≥ 1 x1(1) − x2(1) ≥ −2 x2(1) ≥ 0. (3.2.19)

(a) Inviabilidade ainda não-explícita. (b) Inviabilidade explícita após uma iteração. Figura 3.5: Ilustração do processo de identificação de inviabilidade no problema (3.2.18)

A inviabilidade explícita nada mais é do que uma restrição que inviabiliza a origem “por trás”, conforme ilustrado na Figura 3.5.

(29)

Ilimitação

No formato canônico de minimização (3.1.1), o problema nunca tem solução ilimi-tada, pois a origem já é um ponto ótimo, ou otimista, e todos os pontos viáveis pertencem ao ortante positivo.

3.2.6 Convergência

A finitude do número de translações básicas é diretamente atrelada a conseguirmos, a cada iteração, um cone de crescimento, para que a cada iteração avaliemos um ponto cujo valor da função objetivo seja maior. Como o número de pontos extremos, e de cones de crescimento, é finito, o método converge em um número finito de iterações. Como já mencionamos, a existência de cones de crescimento à cada iteração é uma hipótese restritiva, que contornaremos no Capítulo 6.

Porém, o número de iterações pode ser exponencial. Mostraremos no Capítulo 5 que o Método de Cones de Crescimento equivale ao Método Simplex aplicado ao problema dual. Logo, ele pode também levar tempo exponencial para encontrar a solução, especificamente com o critério do máximo para selecionar qual restrição irá compor a base.

(30)

3.3

Descrição algorítmica

Agora, utilizando o aparato desenvolvido na seção anterior, vamos apresentar um algoritmo em pseudocódigo para a solução do problema (3.1.1) com c≥ 0.

Consideraremos o uso de uma matriz estendida T ∈ R(m+n)×n, englobando as restri-ções da não-negatividade e as demais.

Recebe: Matriz A∈ R(m×n); Vetor de custos c∈ Rnonde c

≥ 0; Vetor do lado direito b ∈ Rm Ação: Retorna x∈ Rnde valor objetivo mínimo para o problema (3.1.1), ou indicação que

o problema é inviável (invia) 1 início 2 # Inicializando variáveis # 3 Matriz∈ R(m+n)×n TA I  # Matriz estendida # 4 Vetor∈ R(m+n) ¯b ←      b 0 .. . 0     

# Vetor do lado direito estendido #

5 Escalar∈ R v ← 0 # Valor da função objetivo #

6 Booleano invia← falso # Indicador de inviável #

7 Booleano e x ist c← verdadeiro # Indicador de candidato para a base #

8 # Itera enquanto existe vértice do cone de crescimento afim no

ortante positivo #

9 enquanto e x ist c= verdadeiro faça 10 i← argmax(¯b)

11 # Condição de que o ponto não é ótimo #

12 se ¯bi> 0 então 13 j← ar gmin {k|Tik>0} (ck/Tik) 14 se j6= ; então 15 # Translação # 16 ¯b ← ¯b − T• j∗ bi/Ai j 17 v← v + cj∗ bi/Ti j 18 # Mudança de base # 19 Bi←− Ti 20 B(k6=i)•←− Ik 21 cT←− cTB−1 22 T←− T B−1 23 senão

24 e x ist c← falso # Para iterações e marca inviabilidade #

25 invia← verdadeiro

26 fim

27 senão

28 e x ist c← falso # Para iterações por ponto ótimo #

29 fim 30 fim

31 # Retorna a solução, que é viável se invia= f alse #

32 x=← −¯bk>m

33 fim

Algoritmo 1: Pseudo-código implementando o Método de Cones de Crescimento

A aplicação da inversa da matriz básica, apontada nas linhas 21 e 22 do pseudocódigo representa um pivoteamento por colunas, sendo seu cálculo da ordem de n operações, como indicado no Teorema 3.2.4.

(31)

Capítulo 4

Método de Cones com Redução Viável

Com as ferramentas algébricas utilizadas no Método de Cones de Crescimento, so-bretudo o mecanismo de translação básica, podemos transitar por pontos extremos de qualquer natureza, viáveis, inviáveis, vértices de cones de crescimento ou não.

Agora utilizaremos o mecanismo de translação básica para transitar por pontos extre-mos viáveis, buscando dentre eles o ponto ótimo.

Analogamente ao Método de Cones de Crescimento, caminharemos pelos mesmos pontos do Simplex, e teremos equivalência operacional ao Dual Simplex aplicado ao problema dual, também para um critério de seleção apropriado.

4.1

Problema abordado

Abordaremos novamente o problema linear canônico de minimização min cTx

s.a Ax ≥ b

x ≥ 0.

(4.1.1) As condições para o ponto x∗= 0 ser solução para o problema (4.1.1) são as mesmas discutidas anteriormente na Seção 3.1, pois o tipo de problema é o mesmo, ou seja, é preciso que

c≥ 0 e b ≤ 0, garantindo viabilidade e otimalidade. Porém, as condições iniciais para executar o método são outras. Exigiremos, agora, que o vetor de deslocamento b seja estritamente positivo.

4.2

Desenvolvimento do método

Construiremos um processo iterativo, obtendo um problema equivalente e de mesmo formato a cada iteração, tal qual mostrado em (3.2.1). Abdicaremos de qualquer restrição sobre o vetor de custos c, mas exigiremos que inicialmente b > 0 e, para garantia de convergência, adotaremos uma hipótese ainda mais restritiva; o problema transformado a cada iteração de-verá satisfazer as mesmas condições do problema original. O processo manterá a viabilidade e reduzirá a cada iteração o valor da função objetivo.

Aqui também utilizaremos a estrutura de cones. Porém não necessitaremos que esses sejam cones de crescimento. No entanto, vamos restringir que seus vértices sejam viáveis e que exista ao menos uma direção de redução do valor da função objetivo. Poderíamos falar de cones com melhoria viável, mas, como a mudança de maximização para minimização envolve apenas uma troca de sinal da função objetivo, só abordaremos o caso de redução.

(32)

Vamos exemplificar nossa argumentação a partir do problema seguinte, ilustrando sua região viável na Figura 4.1,

min −4x1 − 2x2

s.a −x1 − x2 ≥ −4

−3x1 − x2 ≥ −6

x 0.

(4.2.1)

Observe que a origem é um ponto viável para o problema (4.2.1).

Figura 4.1: Região viável do problema (4.2.1).

4.2.1 Definição de cone com redução viável

O problema (4.2.1) tem a origem viável, mas não é ótima. Todas as direções de componentes positivas reduzem o valor objetivo, e nesse caso existem segmentos viáveis ao longo de tais direções. Isso poderia não acontecer, por exemplo se o problema (4.2.1) tivesse a restrição −x1− x2≥ 0. Veremos sob quais condições existe a possibilidade de redução viável, e caminhar

por vértices de cones até encontrarmos um cone de crescimento viável. Formalizaremos essas ideias a seguir.

Definição 4.2.1. Um cone C associado a uma função objetivo f : Rn → R é chamado cone com

redução se f(λd) < f (d) para alguma direção d ∈ C e λ > 1.

É interessante comparar a Definição 4.2.1 com a Definição 3.2.2 de cones de cresci-mento. Agora, trataremos da redução com relação à função objetivo linear f(x) = cTx.

Res-saltando que, aqui, tratamos de cones poliedrais, cf. Definição 3.2.1, e, em particular, o ortante positivo.

Teorema 4.2.1. O ortante positivo, é um cone com redução associado à função objetivo linear f(x) = cTx se, e somente se, existe uma componente j do vetor de custos tal que cj < 0.

(33)

Prova. Suponha que não exista tal componente. Então, para todo d > 0 e λ > 1, temos que cTd

é uma soma de valores não-negativos e assim cT(λd) = λ(cTd) ≥ cTd. Se existe c

j < 0, basta

tomar d de forma que dj = I• j, daí cT(λd) = λcjdj< cjdj, o que satisfaz a definição de cone com

redução. „

Porém, em um problema linear, não basta que o ortante positivo seja um cone com redução. Para que possamos efetivamente reduzir o valor objetivo buscando a otimalidade, é necessário existir um segmento viável na direção de redução.

Definição 4.2.2. Em um problema linear, chamaremos de cone com redução viável um cone de redução com vértice viável, tal que, para alguma direção de redução d, exista λ > 0 de forma queλd seja viável. Em outras palavras, existe ponto viável pertencente ao cone com valor objetivo reduzido em relação à origem.

Voltando ao caso do ortante, estabelecemos o seguinte resultado.

Teorema 4.2.2. O ortante positivo de um problema linear de minimização na forma canônica (3.2.11), é umcone com redução viável se é um cone de redução, e se b< 0.

Prova. Considere o ortante positivo de um problema linear no formato (4.1.1) com b < 0 que satisfaça as hipóteses do Teorema 4.2.1. O vetor de custos do problema tem por hipótese uma componente cj < 0, implicando que a direção d = I• j seja de redução. Para essa direção, A(λd) =

λA• j, e, a fim de garantir a viabilidade é preciso que λA• j ≥ b. Logo temos a condição de viabilidadeλA• j−b ≥ 0. Considerando o caso Ai j≥ 0, teremos λAi j−bi≥ 0 para todo λ ≥ 0. Mas

se Ai j < 0, então λAi j− bi ≥ 0 ocorre somente se λ ≤ bi

Ai j. Neste caso basta tomarλ = min{i|Ai j<0}( bi Ai j).

Como b< 0, este mínimo não é nulo, o que garante que existem λ e d satisfazendo as hipóteses da Definição 4.2.2, de cone com redução viável . „ O ortante positivo do problema (4.2.1) é um cone com redução viável. Ilustramos isso na Figura 4.2.

(34)

4.2.2 Identificação de cone com redução viável afim

Agora, apresentaremos o teorema que servirá de fundamento para o passo iterativo do método.

Teorema 4.2.3. Dado um problema satisfazendo as condições do Teorema 4.2.2, se existir Ai j < 0 para algum j tal que cj < 0, e se ¯i = ar gmin

{i|Ai j<0}

¨ bi

Ai j

«

for único, então ¯x = b¯i

A¯ijI• j é viável, e tem valor objetivo reduzido em relação à origem. Mais ainda, x ou é um vértice de um cone com redução¯

viável, ou é o ponto ótimo. Prova. Dado ¯x = b¯i

A¯ijI• j satisfazendo as hipóteses elencadas, temos a viabilidade e a redução do

valor objetivo garantidas pelo Teorema 4.2.2.

E tal qual apresentado no Teorema 3.2.4, para todo par {i, j} tal que Ai j < 0, o

conjunto formado por Ai e Ik, com k 6= j, é linearmente independente. Logo, a matriz B definida por Bk= Ikpara k6= j e Bj= Aié invertível, e a matriz inversa é dada por B−1kk|k6= j = 1,

B−1j j = 1

Ai j, B

−1

jk|k6= j = −

Ajk|k6= j

Ai j e as demais componentes nulas, B

−1

kl|k6=l,k6= j = 0.

Tomando a translação básica x = B−1x0+ ¯x e aplicando ao problema temos

min cTB−1x0 + cTx s.a AB−1x0 ≥ b − Ax B−1x0 ≥ −x, (4.2.2) onde−xj = − b¯i

A¯ij < 0, b¯i− A¯i•x = 0, e, para as demais restrições, bi− Aix< 0 para i 6= ¯i, o que

é garantido pela hipótese de unicidade de ocorrência do mínimo min

{i|Ai j<0}

¨ bi

Ai j

«

, pois bi < 0 por hipótese e para Ai≥ 0 temos −Aix ≤ 0, e para todo i 6= j em que Ai< 0 temos

bi Ai j >

b¯i A¯ij = xj.

Agora, reescrevendo o problema transformado da seguinte forma, b0

i6=¯i= (b − Ax)i6=¯i,

b0¯i= −xj, A0i•|i6=¯i= Ai•|i6=¯i, A0¯i•= B¯i•−1, c0 T = cTB−1 e v0= cTx, temos

min c0x0 + v0

s.a A0x0 ≥ b0 x0 ≥ 0.

(4.2.3)

Como b0< 0, o ponto ¯x0= 0 é viável, e se c0≥ 0 então o ortante positivo não possui

direção de redução, logo o ponto ¯x0 = 0 é ótimo. Já se existe c0j < 0, o Teorema 4.2.2 garante

que o ortante-não negativo é um cone com redução viável.

Lembrando que ¯x0= 0 nada mais é que ¯x no sistema de coordenadas x0,

demonstra-mos para ¯x as propriedades mencionadas. „

No problema (4.2.1), podemos identificar o ponto ¯x = 2

0 

como sendo o vértice de um cone com redução viável. Aplicando uma translação básica para este ponto, temos um

(35)

problema equivalente de mesmo formato. Seguem os procedimentos algébricos e ilustração. Na Figura 4.3, as setas indicam o cone selecionado.

min −4x1 −2x2 s.a −x1 − x2 ≥ −4 → −3x1 − x2 ≥ −6 x1 ≥ 0 → x2 ≥ 0 ⇐⇒ min 43x(1)1 − 23x2(1) − 8 s.a 1 3x (1) 1 − 2 3x (1) 2 ≥ −2 → x(1)1 0 −13x(1)1 − 13x2(1) ≥ −2 → x2(1) ≥ 0. (4.2.4)

(a) Cone com redução viável afim. (b) Problema transformado. Figura 4.3: Translação básica para um cone com redução viável afim.

4.2.3 Identificação da solução ótima

Como foi explicado ao início e reforçado pelo Teorema 4.2.3, a identificação da oti-malidade segue a mesma idéia do Método de Cones de Crescimento. A diferença é que estamos sempre em um ponto viável e a otimalidade ocorre quando o vértice da iteração é vértice de um cone sem direções de redução.

A identificação do ponto nas coordenadas iniciais segue o mesmo procedimento visto na Subseção 3.2.4, visto que o mecanismo algébrico para transitar entre pontos é o mesmo, o mecanismo de translações básicas.

(36)

o cone selecionado com setas min 43x1(1) − 23x(1)2 − 8 s.a → 13x1(1) − 23x(1)2 ≥ −2 → x1(1) ≥ 0 −13x1(1) − 13x(1)2 ≥ −2 x(1)2 0 ⇐⇒ min x1(2) + x2(2) − 10 s.a → x2(2) ≥ 0 → x1(2) ≥ 0 −12x1(2) + 12x2(2) ≥ −1 1 2x (2) 2 − 3 2x (2) 2 ≥ −3. (4.2.5)

(a) Seleção do cone afim (b) Problema transformado Figura 4.4: Última iteração para o problema (4.2.1)

4.2.4 Ilimitação e inviabilidade

Agora, analogamente à Subseção 3.2.5, abordaremos os casos nos quais as hipóteses de existência de uma translação básica com melhoria são violadas.

Inviabilidade

Ao contrário do Método de Cones de Crescimento, o Método de Cones com Redução Viável parte de um problema inicial que tem a origem como ponto viável. Logo, o método não avalia inviabilidade.

Ilimitação

O problema pode ser ilimitado, ou seja, existe um raio em que o valor objetivo reduz mantendo a viabilidade. Veremos a situação em que a ilimitação é identificável a partir da origem. Teorema 4.2.4. Dado o problema (4.1.1), com b< 0, e assumindo A =”A•1· · · A•n

—

, se existir uma coluna j tal que cj< 0 e A• j≥ 0, então o problema é ilimitado.

Prova. Basta tomarmos d = I• j. Nesse caso, para todo λ > 1, cT(λd) = λc

j ≤ cj, mantendo a

(37)

A ilimitação pode não estar explícita inicialmente, a exemplo do problema a seguir: min −2x1 + x2 s.a −x1 + x2 ≥ −1 x ≥ 0. (4.2.6) A direção d =1 1 

é uma direção de redução, mas não está explícita. Porém, após efetuar uma iteração, já podemos identificá-la.

min 2x1(1) − x2(1) s.a −x1(1) ≥ 0 −x1(1) + x (1) 2 ≥ −1 x2(1) ≥ 0, ↑ (4.2.7) A direção d(1)=0 1 

é de redução ilimitada. Já a direção nas coordenadas iniciais são dadas pela coluna referente a esta redução da base do espaço original. Nesse caso, d=1

1 

. Em um problema genérico, para uma ilimitação referente a j-ésima componente cj < 0, tomaríamos

d = B• j−1.

(a) Ilimitação ainda não explícita. (b) Ilimitação explícita após uma iteração. Figura 4.5: Ilustração do processo de identificação de ilimitação

(38)

4.3

Descrição algorítmica

O algoritmo apresentado para o Método de Cones com Redução Viável é muito se-melhante ao que apresentamos para o Método de Cones de Crescimento, visto que as diferenças significativas são apenas a seleção de translação básica e a identificação de ilimitação.

Recebe: Matriz A∈ R(m×n)Vetor de custos c∈ RnVetor do lado direito b∈ Rm, sendo b< 0 Ação: Retorna x∈ Rnde valor objetivo mínimo para o problema (3.1.1) e a direção de

ilimitação d, que será nula se não houver ilimitação 1 início 2 # Inicializando variáveis # 3 Matriz∈ R(m+n)×n TA I  +# Matriz estendida # 4 Vetor∈ R(m+n) ¯b ←      b 0 .. . 0     

# Vetor do lado direito estendido #

5 Escalar∈ R v ← 0 # Valor da função objetivo # 6 Vetor∈ Rn d← 0# Direção de ilimitação #

7 Booleano e x ist c← verdadeiro # Indicador de candidato para a base #

8 # Itera enquanto existe vértice de um cone com redução viável afim no ortante positivo #

9 enquanto e x ist c= verdadeiro faça 10 j← ar gmin (¯c)

11 # Condição de que o ponto não é ótimo #

12 se ¯cj< 0 então 13 i← ar gmin {k|Tk j>0} (bk/Tk j) 14 se i6= ; então 15 # Translação # 16 ¯b ← ¯b − T• j∗ bi/Ai j 17 v← v + cj∗ bi/Ti j 18 # Mudança de base # 19 Bi←− Ti 20 B(k6=i)•←− Ik 21 cT←− cTB−1 22 T←− T B−1 23 senão 24 d← B−1 • j # Retorna Ilimitação #

25 e x ist c← falso # Para iterações por ilimitação #

26 fim

27 senão

28 e x ist c← falso # Para iterações por ponto ótimo #

29 fim 30 fim

31 x=← −¯bk>m # Retorna a solução #

32 fim

(39)

Capítulo 5

Equivalência entre Soluções Básicas e

Translações Básicas

Os métodos apresentados até agora têm como cerne a estrutura que nomeamos de translação básica, apresentada primeiramente na Subseção 3.2.2. Tal estrutura nos dá uma ponte entre a Álgebra Linear e a Geometria, nos indicando como representar pontos extremos e cami-nhar entre eles. No caso dos métodos Simplex e Dual Simplex, a identificação de pontos extremos se dá por soluções básicas. Veremos neste capítulo equivalências entre as abordagens.

5.1

Soluções básicas

Para identificar facilmente um ponto extremo de um poliedro pertencente a um es-paço de dimensão n, precisamos de uma maneira rápida de identificar a independência linear das restrições ativas em um determinado ponto, a fim de verificar a ativação de n restrições linearmente independentes tal qual apresentado na definição de ponto extremo, cf. Definição 2.3.1.

A abordagem por translações básicas faz isso aproveitando-se das restrições de não-negatividade da forma canônica, sempre ativas na origem, e tendo esse como ponto extremo identificado. Isso proporciona um meio de caminhar por pontos extremos apenas trocando a ativação de uma restrição, basta não termos as demais restrições nulas ou já ativas para que isso seja possível. Temos uma base para o espaço em que reside o poliedro, e então, com uma translação e uma mudança de base, podemos ter novamente uma situação semelhante à original para identificarmos outros pontos extremos.

No caso de soluções básicas, vamos forçar a ativação de um conjunto de restrições, ou seja, transitar por soluções de um sistema de igualdades. Tal procedimento utiliza a identificação de bases do espaço imagem da matriz deste sistema, daí o nome solução básica, embora a solução associada possa não ser um ponto viável em relação às demais restrições. Partiremos de um formato específico de poliedro para que isto resulte, de fato, em pontos extremos.

Considere um poliedro representado no formato canônico de maximização

Ax ≤ b

x ≥ 0. (5.1.1)

Podemos ampliar o espaço de variáveis da seguinte forma

Ax+ I xf = b

(40)

Este formato de restrições é o mesmo da chamada forma padrão de um problema de Programação Linear. Esses e outros formatos constam em Bazaraa et al. [1].

Vemos que as restrições de não-negatividade ativas definem um ponto, e o número de restrições possui a dimensão do espaço estendido, o ponto x = 0 e xf = 0. Este ponto

pode ou não ser viável, dependendo das restrições. Se b = 0, isso é verdade. De fato, este ponto é um ponto extremo, inviável ou viável, pois é definido pela ativação das restrições de não negatividade, que têm posto completo.

Outro ponto extremo, inviável ou não, imediatamente identificado é o ponto x = 0,

xf = b, que é viável se b ≥ 0. Este ponto torna ativa todas as restrições de igualdade e x ≥ 0, ou

seja o número de ativações é igual à dimensão do espaço estendido pelas folgas, e com todas as restrições sendo linearmente independentes.

Veremos que outros pontos extremos podem ser encontrados, tomando um subcon-junto de colunas da matriz [A|I] diferente das referentes às folgas que seja uma base para o espaço imagem. A matriz formada por estas restrições se chama matriz básica, representada por

B. Note que pode-se substituir uma coluna I• j por qualquer coluna k tal que Ajk 6= 0 para se obter uma base. Ou seja se A não é nula, sempre existe outra base para problemas no formato abordado. Chamaremos a matriz complementar de matriz não-básica e a representaremos por N . Reorganizando o problema, e tomando o devido cuidado com a reorganização das variáveis relativas às variáveis básicas xB e não-básicas xN, temos

N xN+ BxB = b

xN, xB ≥ 0. (5.1.3)

Agora, aplicando a inversa de B às restrições de igualdade temos

B−1N xN+ I xB = B−1b

xN, xB 0. (5.1.4)

Por fim, chegamos a um novo problema linear equivalente ao anterior. Podemos tomar ¯A= B−1N, ¯b= B−1bde modo que

¯

AxN+ I xB = ¯b

xN, xB ≥ 0, (5.1.5)

onde um ponto extremo é facilmente identificado. Analogamente ao apresentado com as folgas, o ponto xN = 0 e xB= ¯b é um ponto extremo. A viabilidade dele está sujeita à não-negatividade de ¯b. Por esta solução do sistema estar atrelada a uma base, a chamamos de solução básica, que pode ser ou não ser viável. É preciso mapear qual variável j está recebendo o valor de ¯bi relativo à i-ésima restrição para obtermos o valor do ponto extremo.

Note que, no sistema original, temos guardada a transformação aplicada na identi-dade inicial,

B−1Ax+ B−1xf = B−1b

x, xf 0. (5.1.6)

Isso será importante futuramente para implementações revisadas dos métodos apre-sentados.

Ao contrário da abordagem por translações básicas, na qual se muda o sistema de coordenadas e, por consequência, os custos da função objetivo passam a ser representados por

Referências

Documentos relacionados

Note on the occurrence of the crebeater seal, Lobodon carcinophagus (Hombron &amp; Jacquinot, 1842) (Mammalia: Pinnipedia), in Rio de Janeiro State, Brazil.. On May 12, 2003,

Após a realização de todas as atividades teóricas e práticas de campo, pode-se concluir que não há grande erosão do conhecimento popular e tradicional de plantas medicinais, que

Este estudo, que tem como objetivo a investigação do imaginário de estudantes de Psicologia sobre o primeiro atendimento clínico, insere-se num

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Para identificar quais treinamentos serão necessários para cada trabalhador ou equipe dentro de uma organização desenvolver um programa eficaz de T&amp;D, pode-se buscar

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a