96
INTRODUÇÃO .......... Os Sistemas Industriais e de Engenharia nos últimos 60 anos, vêm utilizando técnicas de otimização de forma maciça, como se pode confirmar pelas referências científico-tecnológicas, onde novos produtos no mercado atingem avanços em qualidade, minimização de custos e maximização de conforto, depois de terem passado pela utilização de resultados de pesquisas e testes de natureza técnica. Assim associados aos avanços na tecnologia computacional foi sendo possível resolver rotineiramente problemas procedentes do desenho de aeronaves, refinaria de petróleo, ajuste de curvas, expansão de capitais, previsão de estoques de peças de reposição, etc. .......... A programação matemática tem um rol fundamental em cada uma dessas áreas e pode ser considerada como ferramenta principal para as técnicas de otimização. Segundo Mahey (1987): “O objetivo da Programação Matemática é o estudo teórico de problemas de otimização em dimensão finita, assim como a concepção e implementação de métodos numéricos para resolvê-los.” A formulação geral de um problema de programação matemática, na literatura, é: Otimizar f(x) s.a g(x) 0 h(x) = 0 xX Onde otimizar envolve a maximização ou a minimização. Um caso particular de problemas de otimização são o problemas de Programação em Dois Níveis, assunto de pesquisas teóricas e computacionais intensas, a partir de sua primeira abordagem computacional feita por Bard (1983). Segundo, Campêlo (1999): “A Programação em Dois Níveis é um ramo da programação matemática que se ocupa de problemas de otimização, onde a região viável é parcialmente definida 9

INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

  • Upload
    dohanh

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

INTRODUÇÃO

.......... Os Sistemas Industriais e de Engenharia nos últimos 60 anos, vêm utilizando

técnicas de otimização de forma maciça, como se pode confirmar pelas referências

científico-tecnológicas, onde novos produtos no mercado atingem avanços em

qualidade, minimização de custos e maximização de conforto, depois de terem

passado pela utilização de resultados de pesquisas e testes de natureza técnica.

Assim associados aos avanços na tecnologia computacional foi sendo possível

resolver rotineiramente problemas procedentes do desenho de aeronaves, refinaria

de petróleo, ajuste de curvas, expansão de capitais, previsão de estoques de peças

de reposição, etc.

.......... A programação matemática tem um rol fundamental em cada uma dessas

áreas e pode ser considerada como ferramenta principal para as técnicas de

otimização. Segundo Mahey (1987):

“O objetivo da Programação Matemática é o estudo teórico de problemas de

otimização em dimensão finita, assim como a concepção e implementação de

métodos numéricos para resolvê-los.”

A formulação geral de um problema de programação matemática, na literatura, é:

Otimizar f(x)

s.a g(x) ≤ 0

h(x) = 0

x∈ X

Onde otimizar envolve a maximização ou a minimização.

Um caso particular de problemas de otimização são o problemas de Programação

em Dois Níveis, assunto de pesquisas teóricas e computacionais intensas, a partir

de sua primeira abordagem computacional feita por Bard (1983).

Segundo, Campêlo (1999):

“A Programação em Dois Níveis é um ramo da programação matemática que se

ocupa de problemas de otimização, onde a região viável é parcialmente definida

9

Page 2: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

pelo conjunto de soluções de um segundo problema de otimização. Nesse segundo

problema de otimização assumem-se como parâmetros as variáveis de decisão do

primeiro”.

........ Um modelo de Programação em Dois Níveis é apresentado como um

problema de otimizações encaixadas, ou composição de problemas de otimização.

Isto é, no conjunto de restrições além das desigualdades aparece uma outra

otimização indicada. A Programação em Dois Níveis tem sido um assunto bastante

estudado nos últimos anos. A primeira formulação desses tipos de problemas

encontrada na literatura data do início dos anos 80. Um caso particular são os

modelos de Programação Linear em Dois Níveis (PLDN) que foi, pela primeira vez,

formalmente apresentado por Candler e Norton (1977) relacionados a modelar

problemas relacionados à políticas econômicas.

Um modelo de Programação em Dois Níveis apresenta as seguintes características,

Arica (1995), Vicente (1992), Dantas (1998):

• Possui uma estrutura hierárquica, tal como a organização de cargos em

empresas que, para resolver problemas de planejamento necessitam da

síntese das decisões de vários departamentos, pessoas ou agências;

• Possui dois critérios de decisão (ou vários, no caso multinível) no processo,

isto é, as funções objetivo que, podem ser independentes (ou não) e às vezes

conflitantes. Quando há cooperação entre os níveis, para que uma meta seja

alcançada, chama-se de caso cooperativo. Mas, pode ocorrer que haja a

impossibilidade de comunicação entre os níveis ou a proibição de qualquer

tipo de acordo. Estes são os casos não-cooperativos;

• O segundo nível executa sua política depois e de acordo com as decisões do

primeiro;

• O primeiro nível tem seu objetivo e seu espaço de decisão determinado, em

parte, pelo segundo nível e cada nível tem controle somente sobre uma certa

parcela de variáveis.

10

Page 3: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Devido à sua estrutura hierárquica, são muitos os problemas reais que podem ser

modelados pela Programação em Dois Níveis. Entre eles encontram-se problemas

como: design de redes viárias, localização espacial de facilidades, coordenação e

controle de energia elétrica, administração e gestão (VICENTE, 1992).

Figura I.1.1: Fluxo na tomada de decisões de um problema de PLDN.

Fonte: Vicente (1992)

.......... O presente trabalho aborda um caso específico de Programas de Dois Níveis:

a Programação Linear em Dois Níveis onde o problema do 1º nível só contém a

restrição de não-negatividade do vetor x (PLDNP). Os problemas modelados pela

Programação Linear em Dois Níveis constituem-se em problemas onde todas as

funções envolvidas são lineares e por essa característica é possível que métodos da

Programação Linear sejam aproveitados para a sua resolução. Objetivou-se fazer

um estudo e implementar em Matlab dois algoritmos propostos na literatura: o

Algoritmo k-ésimo melhor vértice que identifica soluções globais do PLDNP através

da enumeração dos vértices do Problema Relaxado, que consiste em um problema

em que se omite a função objetivo do 2º nível, e o algoritmo proposto por Campêlo

(1999), Campêlo e Scheimberg (2002), que identifica soluções locais ou globais do

problema (PLDNP). O estudo é feito no sentido de identificar os conceitos usados

em cada algoritmo, as vantagens e desvantagens de cada um e apresentar uma

análise numérica de uma rodada de cada algoritmo para um determinado exemplo

acadêmico em duas dimensões. Adicionalmente se apresentam exemplos

numéricos. Um estudo sobre as condições de Karush-Kunh-Tucker também é feito,

uma vez que um problema equivalente ao problema (PLDNP) que utiliza tais

condições é abordado no trabalho.

11

Macro Econômicas

DecisõesGovernamentais

Decisões Locais(Indústria,Agricultura)

Micro Econômicas

Page 4: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A estrutura da dissertação é:

Capítulo 1: são mostradas algumas maneiras de se representar um problema de

Programação em Dois Níveis, algumas formulações de problemas equivalentes e

definições relevantes.

Capítulo 2: são abordados alguns exemplos que auxiliam na percepção de algumas

características dos problemas de PLDN.

Capítulo 3: é feito o estudo de um problema equivalente ao problema (PLDNP), que

fundamenta-se nas condições de KKT. Tais condições têm um enfoque especial no

APÊNDICE B.

Capítulo 4: é mostrada a definição de pontos de equilíbrio, conceito utilizado em

Campêlo (1999) com o objetivo de se chegar a soluções ótimas do problema

(PLDNP).

Capítulo 5: são mostrados dois algoritmos para a resolução do problema (PLDNP) e

os passos que são realizados por estes algoritmos para um determinado exemplo.

E, por fim, o último capítulo apresenta as conclusões finais.

12

Page 5: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

CAPÍTULO 1

Formulação do Problema Linear de Dois Níveis

.......... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de

Dois Níveis e algumas formulações alternativas. Nas seções 1.2 e 1.3 são

apontadas, respectivamente, as formulações de alguns problemas equivalentes e

algumas definições importantes relacionadas aos Problemas de Dois níveis e, na

seção 1.4 são analisados geometricamente os passos realizados para solucionar um

Problema de Dois Níveis.

1.1- O problema

A formulação de um problema de Dois Níveis é de uma forma geral a seguinte:

(PDN)…………………… min x,y f1(x, y)

s.a G(x, y) ≤ 0

x ∈ X

min y f2(x, y)

s.a g(x,y) ≤ 0

y ∈ Y

Onde X ⊂ ℜn1, Y ⊂ ℜn2, f1 e f2 são funções reais tais que f1, f2: ℜn1+n2 à ℜ, G e g são

funções vetoriais tais que G: ℜn1+n2 à ℜp1 e g: ℜn1+n2 à ℜp2, com n1,n2 ∈ IN e p1, p2 ∈

IN U {0}.

O modelo a seguir consiste em um problema de Programação de Dois Níveis em

que todas as funções envolvidas são lineares, por isso convenciona-se chamá-lo de

problema de Programação Linear em Dois Níveis:

13

Page 6: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

(PLDN)……………………min x,y f1(x, y) = c1Tx + c2

Ty

s.a B1x + B2y ≤ b

x ≥ 0, y solução de

min y f2(x, y) = d2Ty

s.a A1x + A2y ≤ a

y ≥ 0

Onde os vetores x, c1∈ℜn1 e c2, d2, y ∈ ℜn2, a ∈ ℜm2, b∈ ℜm1, as matrizes A1∈ℜm2×n1,

A2 ∈ ℜm2×n2, B1 ∈ ℜm1×n1 e B2 ∈ ℜm1×n2.

Na literatura é muito encontrada a denominação de líder ou primeiro nível para o

primeiro problema de minimização e de seguidor ou segundo nível para o segundo

problema.

Por associação com a função de decisão (ou função objetivo) do primeiro nível, diz-

se que x é a variável do líder e y é denominada a variável do seguidor.

Observação:Neste trabalho é estudado o modelo acima, mas o problema (PLDN) é considerado

somente com a restrição de não-negatividade da variável x no 1o nível. Tal problema

chamar-se-á PLDNP:

(PLDNP)……………… min x,y f1(x, y) = c1Tx + c2

Ty

s.a x ≥ 0, y solução de

min y f2(x, y) = d2Ty

s.a A1x + A2y ≤ a

y ≥ 0

A formulação do problema (PLDN) também pode ser expressa como:

…………………………… min x,y f1(x, y)

14

Page 7: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

s.a B1x + B2y ≤ b

x ≥ 0

y ∈ Υ(x) = argmin { f2(x, y): y ≥ 0, A1x + A2y ≤ a}

Desta formulação pode-se perceber que o problema do líder é definido em função do

conjunto de soluções do problema do seguidor, onde o problema do seguidor,

designado por S(x), pode ser representado da seguinte maneira:

S(x)……………………… min y f2(x, y) = d2Ty

s.a A2y ≤ a - A1x

y ≥ 0

Nota-se que S(x) consiste em um problema paramétrico controlado pela variável do

líder (o parâmetro é o vetor x). Então, para cada valor fixo de x, o seguidor encontra

uma solução y’ que minimiza a função objetivo f2(x’,y), ou seja, para cada valor viável

x’, o seguidor reage fornecendo um vetor y’ onde f2(x’,y) atinge seu mínimo, ressalta-

se porém, que esse vetor solução correspondente não é necessariamente único.

Observação:O conjunto solução do 2º nível é uma aplicação ponto-conjunto que se denota:

Υ( ): ℜn1 à P ( ℜn2 ),

Onde P ( ℜn2 ) representa o conjunto de todos os subconjuntos de ℜn2.

Considerando Υ(•) uma função, ou seja, uma aplicação ponto-a-ponto de ℜn1 em

ℜn2: Υ(x) é um conjunto unitário para cada x ∈ ℜn1, e denotando o elemento unitário

por y(x), o problema (PLDNP) pode ser reformulado como a seguir:

min f1 (x, y(x))

s.a G(x, y(x)) ≤ 0

x ∈ X1

Onde X1 = {x ∈ X: ∃y ∈ Y tal que G(x, y) ≤ 0} e y(x) é a solução do problema do

seguidor para cada vetor x viável para o líder.

15

Page 8: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A última formulação alternativa sob hipótese mais restritiva, de soluções únicas no

problema do seguidor, foi utilizada por Aiyoshi e Shimizu (1981) e Kolstad e Lasdon

(1990) com o objetivo de desenvolver métodos de descida para a resolução deste

tipo de Problema de Dois Níveis.

1.2- Formulações de Problemas Equivalentes

.......... As diferentes maneiras de se formular um problema de Programação de Dois

Níveis levam a diferentes maneiras de desenvolver algoritmos para sua solução.

Anteriormente foram vistas algumas formas de se escrever um Problema de Dois

Níveis, a seguir algumas formulações de problemas equivalentes ao problema

(PLDN), que são encontradas na literatura, são mostradas.

Com o objetivo de transformar um problema de Programação em Dois Níveis

em um problema de programação de um só nível, foi sugerida a seguinte

formulação:

min x,y f1(x, y)

s.a G(x, y) ≤ 0

f2(x, y) – v(x) ≤ 0

g(x, y) ≤ 0

x ∈ X

Onde v(x) é conhecida como a função marginal (função valor) do seguidor:

v(x): = inf f2(x, y)

y ∈ W(x)

Sendo v(x): = +∞, se W(x) = ∅.

Onde W(x), definido na próxima seção, corresponde ao conjunto viável do problema

primal do seguidor para um determinado valor de x.

Tal formulação foi usada por, Bard (1984), Florian e Chen (1991) e Arica (1995).

A formulação que se apresenta a seguir, válida quando o problema do

segundo nível possui funções diferenciáveis e convexas em geral, consiste

em substituir o 2o nível pelas condições de KKT (como visto no Apêndice B,

16

Page 9: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

tais condições são necessárias e suficientes para problemas convexos,

portanto válidas para problemas de Programação Linear):

min x,y,λ f1(x, y)

s.a G(x, y) ≤ 0

∇y f2(x, y) + ∇y g(x, y)Tλ = 0

λTg(x, y) = 0

g(x, y) ≤ 0

λ ≥ 0

x ∈ X

Tal formulação pode ser analisada sob o ponto de vista de penalizar o gap primal-

dual, pois o valor ótimo da função objetivo do problema primal do seguidor é atingido

quando coincide com o valor ótimo da função objetivo do problema dual do seguidor.

No que segue, retomar o problema (PLDNP) definido na página 14. O problema do

seguidor foi escrito como o problema paramétrico:

S(x) min y f2(x, y) = d2Ty

s.a A2y ≤ a - A1x

y ≥ 0

Colocando o problema acima na sua forma padrão:

S(x) min y f2(x, y) = d2Ty

s.a -A2y ≥ -a + A1x

y ≥ 0

O seu dual é:

maxu (- a + A1x)Tu

s.a -A2T u ≤ d2

u ≥ 0

Como poderá ser visto na seção 1.3, o conjunto de soluções viáveis do problema

(PLDNP), é definido em função das soluções ótimas do seguidor.

Por esse motivo, um problema penalizado equivalente ao problema (PLDNP)

sugerido é:

17

Page 10: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

min x,y f1(x, y) = c1Tx + c2

Ty +M (d2Ty - (-a + A1x)Tu)

s.a A1x + A2y ≤ a

A2Tu ≥ - d2

x, y, u ≥ 0

Observação: A solução ótima do problema penalizado acima é obtida quando o termo penalizado

assume o valor zero, ou seja, quando:

d2Ty - (-a + A1x)Tu = 0 ⇒ d2

Ty = (-a + A1x)Tu

Para fundamentar essa formulação considera-se o seguinte teorema:

Teorema 1.2.1 [ANANDALINGAM e WHITE,1990] Existe um valor finito M*∈ℜ+, para

o qual uma solução ótima para o problema da função penalidade produz uma

solução ótima para o problema (PLDNP), ∀M ≥ M*.

Observa-se com essas formulações encontradas na literatura que o primeiro passo

para a resolução de um Problema de Dois Níveis é reescrevê-lo como um problema

de um único nível e, a partir dessa nova formulação, buscar um melhor método para

a sua resolução.

1.3- Definições e Notações

No tratamento teórico do problema (PLDN) é conveniente, como se encontra na

literatura, utilizar as seguintes definições:

• O Problema Relaxado (PR) associado ao problema (PLDN):

Este problema consiste na omissão da função objetivo do seguidor e, portanto é

escrito da seguinte maneira:

(PR) min x,y f1(x, y) (1.3.1)

18

Page 11: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

s.a B1x + B2y ≤ b

A1x + A2y ≤ a

x ≥ 0, y ≥ 0

• O conjunto de soluções viáveis do problema (PR):

W = {(x, y) ∈ ℜ n1× ℜn2: A1x + A2y ≤ a, B1x + B2y ≤ b, x ≥ 0, y ≥ 0} (1.3.2)

• O conjunto de soluções viáveis ótimas do problema (PR):

W* = argmin {f1(x, y): (x, y) ∈ W} (1.3.3)

Constituído pelo(s) vetor (es) (x*, y*) que resolve (m) o Problema Relaxado.

• O conjunto de soluções viáveis do problema do seguidor para cada valor fixo

de x ∈ ℜn1:

W(x) = {y ∈ ℜn2, A2y ≤ a – A1x, y ≥ 0} (1.3.4)

• O conjunto de soluções ótimas para o problema do seguidor para cada valor

fixo de x ∈ℜn1:

Υ(x) = argmin {f2(x, y): y ∈ W(x)} (1.3.5)

• O conjunto de soluções viáveis do problema (PLDN) (ou como é chamado na

literatura: região induzida):

Ψ = {(x, y) ∈ W: y ∈ Y(x)} (1.3.6)

• O conjunto de soluções ótimas do problema (PLDN):

Ψ* = argmin {f1(x, y): (x, y) ∈ Ψ} (1.3.7)

Das definições acima, observa-se que:

19

Page 12: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

O conjunto viável do problema (PLDN) está contido no conjunto viável do

Problema Relaxado (Ψ ⊂ W).

O problema (PR) é um problema de Programação Linear.

Para se estabelecer uma relação entre uma solução do problema (PR) com uma

solução do PLDN, considere a seguinte definição:

Definição 1.3.8: Considere o seguinte problema:

(P) min f(x)

s.a. x ∈ X

Diz-se que x* é mínimo global de f em X, se f(x*) ≤ f(x), ∀x∈X.

Diz-se que x* é mínimo local de f em X, se ∃ε > 0 tal que f(x*) ≤ f(x), ∀x ∈ Βε(x*),

onde Βε(x*) = {x ; ||x-x*|| < ε}. Portanto aplicando-se ao caso de PLDN pode-se dizer

que:

Um vetor (x*,y*) ∈ Ψ é um mínimo local para o problema de PLDN se para algum ε >

0 verifica-se f1(x*,y*) ≤ f1(x,y), ∀(x,y) ∈ Βε(x*,y*) ∩ Ψ. Se (x*,y*) ∈ Ψ é um mínimo

global para o problema PLDN, então f1(x*,y*) ≤ f1(x,y), ∀ (x,y) ∈ Ψ.

Como Ψ ⊆ W, pode-se afirmar que:

min f1(x, y) ≤ min f1(x, y)

(x, y) ∈ w (x, y) ∈ Ψ

Logo, pode-se concluir que:

Se a solução ótima (x*,y*) do Problema Relaxado pertence ao conjunto viável Ψ ⇒

(x*, y*) é solução do problema (PLDN).

Mais adiante poderá ser notado que Campêlo (1999) utiliza esta última conclusão

para auxiliar no Algoritmo Local.

É importante salientar que um problema de PLDN pode ter uma solução ótima ainda

que o Problema Relaxado não a tenha. Ver o Exemplo 2 do capítulo a seguir.

1.4- Análise geométrica da resolução do problema (PLDNP)

20

Page 13: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Considere o seguinte problema:

(PLDNP) min x,y f1(x, y) = c1Tx + c2

Ty

s.a x ≥ 0, y solução de

min y f2(x, y) = d2Ty

s.a A1x + A2y ≤ a

y ≥ 0

Seja o conjunto W = {A1x + A2y ≤ a, x ≥ 0, y ≥ 0} que corresponde ao conjunto viável

do Problema Relaxado. O problema tem duas funções objetivo:

A 1ª função faz parte do 1º nível, que controla a variável x e y, a 2ª função faz parte

do 2º nível, que controla y, fixado x. O vetor gradiente de f1(x, y) é g1T = (c1

T c2T) e o

da função objetivo f2(x, y) é g2T= (0T d2

T).

Observação:Suponha g1 e g2 com as direções mostradas no gráfico da Figura 1.4.1, e W a região

viável do Problema Relaxado.

g1 g2

Figura 1.4.1

O 1º nível seleciona uma solução viável x’ e o 2º nível resolve o seguinte problema:

g1 g2

min y f2(x’,y) = d2Ty

21

W

y

x

Page 14: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

s.a A2y ≤ a - A1x’

y ≥ 0

Reagindo com y’.

y’

x’ Figura 1.4.2

O esquema do processo é:

x’

Esta é a resposta racional do seguidor,

ressaltando, porém, que essa resposta

não necessariamente é única.

Daí, então, o líder examina as reações do seguidor para cada seleção de x viável,

para então, definir o conjunto de soluções viáveis do problema (PLDNP). Este

conjunto de soluções viáveis é composto pelos pontos (x,w(x)), tal que

x é uma solução viável do problema (PR) e w(x) é o elemento do conjunto W(x) que

é solução do 2º nível, para x fixo.

g1 g2

W

Ψ

Figura 1.4.3

Agora, resolver o problema (PLDNP) equivale a solucionar o seguinte problema:

22

min c1

Tx + c2

Ty

y’ = w(x’)

y

xy

x

min d2Ty

Page 15: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

min x,y f1(x, y) = c1Tx + c2

Ty g1

s.a (x,y) ∈ Ψ

(x*,y*)∈Ψ

Figura 1.4.4

Percebe-se no gráfico da Figura 1.4.4 que o conjunto viável Ψ do problema (PLDNP)

não é convexo e a solução ótima é encontrada no ponto (x*,y*).

Algumas características, que marcam as dificuldades de um problema (PLDNP) são

mostradas em exemplos apresentados no capítulo a seguir.

CAPÍTULO 2

23

Page 16: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Algumas propriedades do problema (PLDN) através de exemplos

Neste capítulo, são apresentados alguns exemplos em ℜ2 e, através deles,

algumas propriedades do problema (PLDN) são claramente percebidas.

2.1- Exemplo 1(PLDN1) min f1(x, y) = -y

s.a x ≥ 0, y solução de

min f2(x, y) = y

s.a x + y ≥ 5

x - y ≤ 0

0 ≤ y ≤ 5

• Conjunto viável do Problema Relaxado:

W = {(x, y) ∈ ℜ × ℜ: x + y ≥ 5, x - y ≤ 0, x ≥ 0, 0 ≤ y ≤ 5}.

Correspondendo no gráfico da Figura 2.1.1 à região delimitada pelo triângulo ABC.

Figura 2.1.1

• Assim para cada x ≥0 segue que o conjunto viável do problema do seguidor é:

W(x) = {y∈ ℜ: y ≥ 5-x, y ≥ x, 0 ≤ y ≤ 5}.

Pode-se reescrever W(x) como:

}a [5 - x, 5], se 0 ≤ x ≤ 5/2

W(x) = }]]] [x, 5], se 5/2 ≤ x ≤ 5gjk

24

B

A C

Page 17: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

∅, se x ≥ 5

Para efeito de visualização em ℜ2 ilustra-se o conjunto W’(x) a seguir, mas

ressaltando que o conjunto W(x) corresponde a um intervalo no eixo y (intervalo este

que irá variar de acordo com o parâmetro x):

[5 - x, 5], se 0 ≤ x ≤ 5/2

W’(x) = {x} × W(x) = {x} × [x ,5], se 5/2 ≤ x ≤ 5gjk

∅, se x ≥ 5

Figura 2.1.2

• O conjunto solução do seguidor é:

Υ(x) = argmin {f2(x, y) = y: y ∈ W(x)},

Neste caso Υ(x) é unitário e pode ser escrito da seguinte maneira:

{5 –x}, se 0 ≤ x ≤ 5/2

Υ(x) = {x}, se 5/2 ≤ x ≤ 5

∅, se x ≥ 5

Agora, para efeito de visualização do conjunto Υ(x) em ℜ2, este será representado

da seguinte maneira:

{5 –x } , se 0 ≤ x ≤ 5/2

Υ’(x) = {x} × Υ(x) = {x} × {x}, se 5/2 ≤ x ≤ 5

∅, se x ≥ 5

25

x’

W’(x)W(x)

Page 18: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Neste caso Υ’(x) corresponde à extremidade inferior do segmento que descreve

W(x).

Como só existe a restrição de não-negatividade de x no primeiro nível, então:

Ψ = {(x, y): x ≥ 0; y ∈ Υ(x)}, isto é:

Ψ = {(x, 5 - x): 0 ≤ x ≤ 5/2} ∪ {(x, x): 5/2 ≤ x ≤ 5}

W(x)

W’(x)

x

Figura 2.1.3

O conjunto viável do problema (PLDN1) é definido pelas arestas do gráfico da Figura

2.1.4.

O conjunto solução do problema (PLDN1) é:

Ψ*= argmin {f1(x, y), (x, y) ∈ Ψ}

Então, pode-se concluir que:

Ψ*= {(0,5), (5,5)} Figura 2.1.4

Observando-se o gráfico da Figura 2.1.5

nota-se que Ψ* está constituído por alguns Ψ*

pontos extremos do conjunto Ψ.

26

Y’(x)Y(x)

A C

B

A C

Ψ=Υ’(x)

Page 19: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Figura 2.1.5

Neste exemplo observa-se que:

O conjunto viável do problema (PLDN1) é uma parte da fronteira da região

viável do Problema Relaxado.

O conjunto solução do problema (PLDN1) é constituído por vértices do seu

conjunto viável, que corresponde também a vértices do conjunto viável do

Problema Relaxado; esta é a motivação pela qual alguns algoritmos

encontrados na literatura buscam uma solução do problema (PLDN1) entre os

vértices do PR.

O conjunto viável Ψ do problema (PLDN1) não é convexo. (Ver no APÊNDICE

A, definição de conjunto convexo e conjunto conexo).

Neste exemplo o conjunto solução Ψ* do problema (PLDN1) não é conexo,

portanto não convexo. Em um problema de Programação Linear se dois

vértices são soluções para o problema, então os pontos pertencentes à

combinação convexa desses dois vértices também são soluções.

Quanto à solução do problema (PR), vê-se que todos os pontos do segmento

AC são mínimos de f1(x,y) sobre W. De fato, como foi mencionado, o

problema (PR) é um problema de PL. Então os pontos que pertencem à

combinação convexa dos pontos A e C são soluções para o problema (PR).

Sendo assim:

Ψ*⊂ W* = [(0,5), (5,5)] (ver Figura 2.1.5).

2.2- Exemplo 2(PLDN2) min f1(x, y) = - y

s.a 0 ≤ x ≤ 3

y solução de

min f2(x, y) = y

s.a x - y ≤ 0

27

Page 20: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

y ≥ 0

• O conjunto viável do Problema Relaxado é:

W = {(x, y) ∈ ℜ × ℜ: x - y ≤ 0, y ≥ 0, 0 ≤ x ≤ 3}.

Correspondendo ao conjunto convexo ilimitado, indicado no gráfico da Figura 2.2.1.

Como a função objetivo do PR é min f1(x, y) = -y e y é ilimitado superiormente em W,

conclui-se que W* = ∅.

Figura 2.2.1

Para cada 0 ≤ x ≤ 3, o conjunto viável do seguidor é:

W(x) = {y ∈ ℜ: y ≥ x, y ≥ 0}.

Tem-se então que para cada 0 ≤ x ≤ 3:

W(x) = [x, +∞ ).

Então, usando o mesmo artifício do exemplo anterior:

W’(x) = {x} × {[x, +∞ ), para todo 0 ≤ x ≤ 3}.

Correspondendo desta forma a um segmento vertical na região viável do Problema

Relaxado, como pode ser visto no gráfico da Figura 2.2.2, tal segmento irá variar de

acordo com o parâmetro x.

Figura 2.2.2

28

x0

W’(x0)W(x

0)

Page 21: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

O conjunto solução do segundo nível é dado por:

Υ(x) = argmin {y: y ∈ W(x)}.

Pode-se reescrever Υ(x) da seguinte maneira:

Υ(x) = {x, para todo 0 ≤ x ≤ 3}.

Υ’(x) = { x } × { x }, para todo 0 ≤ x ≤ 3.

• O conjunto viável do problema (PLDN2) é constituído pelos pontos (x, y)

satisfazendo as restrições do 1o nível e tal que y ∈ Υ(x), ou seja:

Ψ = {(x, y): 0 ≤ x ≤ 3, y ∈ Υ(x)} ou Ψ = {(x, x)} para todo x tal que 0 ≤ x ≤ 3}.

O conjunto Ψ está representado no gráfico da Figura 2.2.3:

• O conjunto solução do problema (PLDN2) é:

Ψ* = argmin {f1(x, y) = -y: (x, y) ∈ Ψ}.

3 Ψ*

Ou seja:

Ψ* = {(3,3)}.

3 Figura 2.2.3

Neste exemplo observa-se que:

O problema (PLDN2) tem solução, embora o Problema Relaxado não possua

solução.

2.3- Exemplo 3

(PLDN3) min f1(x, y) = - x - 3y

s.a x ≥ 0, y solução de

min f2(x, y) = y

s.a -x+ y ≤ 3

x + 2y ≤ 12

4x – y ≤ 12

29

Ψ

Page 22: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

y ≥ 0

• O conjunto viável do Problema Relaxado é:

W = {(x, y) ∈ ℜ × ℜ: -x+ y ≤ 3, x + 2y ≤ 12, 4x – y ≤ 12, x ≥ 0, y ≥ 0}

Correspondendo a região convexa do gráfico da Figura 3.2.1.

Figura 3.2.1

• O conjunto viável do seguidor para x ≥ 0 é:

W(x) = {y ∈ ℜ: y ≤ 3 + x, 2y ≤ 12 - x, - y ≤ 12 - 4x, y ≥ 0}

Que corresponde a:

[0, 3 + x], se 0 ≤ x ≤ 2

W(x)= [0, (12 - x) / 2], se 2 ≤ x ≤ 3

[4x - 12, (12 - x) / 2], se 3 ≤ x ≤ 4

Para efeito de visualização em ℜ2:

[0, 3 + x], se 0 ≤ x ≤ 2

W’(x) = {x} × [0, (12 - x) / 2], se 2 ≤ x ≤ 3

[4x - 12, (12 - x) / 2], se 3 ≤ x ≤ 4

• O conjunto solução do problema do seguidor é:

Υ(x) = argmin {f2(x, y) = y: y ∈ W(x)}

{0}, se 0 ≤ x ≤ 2

Υ(x) = {0}, se 2 ≤ x ≤ 3

{4x - 12}, se 3 ≤ x ≤ 4

• Como só existe a restrição de não-negatividade de x no primeiro nível, então:

30

Page 23: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Ψ = {(x, y): x ≥ 0, y ∈ Υ(x)}, isto é:

Ψ= (x, 0), se 0 ≤ x ≤ 3

(x, 4x - 12), se 3 ≤ x ≤ 4

5

4 Ψ*

2 4

Figura 3.2.2

• O conjunto solução do problema (PLDN3) é:

Ψ*= argmin {f1(x, y), (x, y)∈ Ψ}

Ψ*= {(4,4)}

Observação:Neste exemplo a solução do Problema Relaxado é o ponto (2,5) e portanto o valor

ótimo da função objetivo é V(PR) = -17, e a solução do Problema de Dois Níveis é o

ponto (4,4) onde o V(PLDN 3) = -16. Tem-se que:

min f1(x, y) ≤ min f1(x, y)

(x, y) ∈ w (x, y) ∈ Ψ

Como foi mostrado na seção 1.1.

Nota: A notação V(P) equivale ao valor ótimo da função objetivo de um problema de

otimização denotado por P.

2.4- Exemplo 4(PLDN4) min f1(x, y) = - x - 3y

s.a -x + 2y ≥ -2,

x ≥ 0

y solução de

min f2(x, y) = y

s.a -x+ y ≤ 3

x +2y ≤ 12

31

Ψ

Page 24: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

4x – y ≤ 12

y ≥ 0

• O conjunto viável do Problema Relaxado é:

W = {(x, y) ∈ ℜ × ℜ: -x + 2y ≥ -2, -x + y ≤ 3, x + 2y ≤ 12, 4x – y ≤ 12, x ≥ 0, y ≥ 0}

Correspondendo à região convexa do gráfico da Figura 4.2.1.

• O conjunto viável do problema do seguidor para x ≥ 0 é:

W(x) = {y ∈ ℜ: y ≤ 3 + x, 2y ≤ 12 - x, -y ≤ 12 - 4x, y ≥ 0}

Que corresponde aos intervalos:

[0, 3 + x], se 0≤ x ≤ 2

W(x) = [0, (12 - x) / 2], se 2 ≤ x ≤ 3 Figura 4.2.1

[4x - 12, (12 - x) / 2], se 3 ≤ x ≤ 4

Para efeito de visualização em ℜ2:

[0, 3 + x], se 0 ≤ x ≤ 2

W’(x) = {x} × [0, (12 - x) / 2], se 2 ≤ x ≤ 3

[4x - 12, (12 - x) / 2], se 3 ≤ x ≤ 4

• O conjunto solução do problema do seguidor é:

Υ(x) = argmin {f2(x,y) = y: y ∈ W(x)}

32

Page 25: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

{0}, se 0 ≤ x ≤ 2

Υ(x) = {0}, se 2 ≤ x ≤ 3

{4x - 12}, se 3 ≤ x ≤ 4

Figura 4.2.2

{0}, se 0 ≤ x ≤ 2

Υ’(x) = {x} × {0}, se 2 ≤ x ≤ 3

{4x - 12}, se 3 ≤ x ≤ 4

• O conjunto viável Ψ do problema (PLDN4):

Como existe a restrição de não-negatividade de x e a restrição linear -x + 2y ≥ -2 no

primeiro nível, então:

Ψ= {(x, y): x ≥ 0, -x + 2y ≥ -2, y ∈ Υ(x)}, isto é:

Ψ= (x, 0), se 0 ≤ x ≤ 2

(x, 4x - 12), se 22/7 ≤ x ≤ 4

Figura 4.2.3

Observa-se no gráfico da Figura 4.2.3 que a região viável do problema (PLDN4)

não é convexa nem conexa. Isto pode acontecer quando no primeiro nível

encontram-se restrições envolvendo a variável do segundo nível.

Nota: se a restrição linear -x + 2y ≥ -2 for transferida para o segundo nível, a

região viável do problema (PLDN4) será:

(x, 0), se 0 ≤ x ≤ 2

33

Υ’(x)

Ψ

Page 26: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Ψ = (x, (-2 + x ) / 2), se 2 ≤ x ≤ 22/7

(x, 4x - 12), se 22/7 ≤ x ≤ 4

Em conseqüência a não conexidade da região viável Ψ desaparecerá. E o conjunto

solução Ψ* do problema (PLDN4) será:

Ψ* = argmin {f1(x, y); (x, y) ∈ Ψ }.

Ψ* = {(4,4)}.

Notar que quando a restrição -x + 2y ≥ -2 aparece no 1º nível o problema possui

duas soluções locais: o ponto (4,4) e o ponto (2,0) [para o ponto (2,0) existe um ε >0

tal que f1(2,0) ≤ f1(x, y) ∀ (x,y) ∈ Βε(2,0) ∩ Ψ].

Através dos exemplos anteriores podem-se perceber muitas características do

problema (PLDN) que não são comuns em problemas de programação matemática

tradicionais: como a não-convexidade da sua região viável, a não conexidade e a

não-diferenciabilidade. Portanto é devido a essas características que a resolução

destes tipos de problemas torna-se muitas vezes complexa já que o problema pode

possuir ótimos locais.

As propriedades a seguir ajudam a caracterizar a região viável e a solução ótima no

caso do problema (PLDNP). A prova dessas propriedades pode ser encontrada em

Bialas e Karwan (1984).

Propriedade 2.1: Se (x, y) é um ponto extremo de Ψ ⇒ (x, y) é um ponto extremo de

W.

Em outras palavras, se (x, y) é um ponto extremo da região viável do problema

(PLDNP), então (x, y) é um ponto extremo do Problema Relaxado.

Propriedade 2.2: Uma solução ótima para o problema (PLDNP), se existe, ocorre

em um ponto extremo da sua região viável (pela propriedade 1.1, em um ponto

extremo de W).

34

Page 27: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

CAPÍTULO 3

Problema Equivalente

Neste capítulo é analisado um problema equivalente ao problema (PLDNP),

que consiste em substituir o segundo nível pelas condições de KKT. No Apêndice B

encontra-se uma análise dessas condições, mostrando sua fundamentação e sua

formulação no caso de um problema de Programação Linear.

3.1- Problema equivalente ao problema (PLDNP)

Com o objetivo de transformar o problema (PLDNP) em um problema de um

só nível, este é substituído por um problema globalmente equivalente (PE), que

consiste em substituir o 2o nível pelas condições de KKT. Como pode ser visto no

Apêndice B, tais condições são necessárias e suficientes para a otimalidade de uma

solução no caso de problemas de PL.

O problema (PE) possui a seguinte formulação:

(PE) min x,y f1(x, y) = c1Tx + c2

Ty

s.a A1x + A2y +w = a

x ≥0, y ≥ 0,w ≥ 0

A2Tu – v = -d

u ≥0, v ≥ 0

vTy = 0 , uTw =0

Quando se declara que o problema (PE) é globalmente equivalente ao problema

(PLDNP), está se afirmando que:

35

Page 28: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Um ponto (x*,y*) é solução global para o problema (PLDNP) (x*,y*,w,u,v) é

solução global para o problema (PE) para algum (w,u,v) (Audet et al (1998) apud

Campêlo (1999)).

Pode-se notar que o problema (PE) possui só um nível, mas seu conjunto viável é

não convexo, devido às restrições de complementaridade das folgas. Uma forma de

se contornar esse problema é transferir tais restrições para a função objetivo,

penalizando-as com um parâmetro M > 0. Este método de penalização é utilizado

por Campêlo (1999), Anandalingam e White (1990), Önal (1993).

A formulação do problema penalizado é apresentada a seguir:

P(M) min c1Tx + c2

Ty + M( uTw + vTy ) (3.1)

s.a A1x + A2y +w = a

x ≥0, y ≥ 0, w ≥ 0

A2Tu – v = -d

u ≥0, v ≥ 0

Pode-se notar que para cada valor do parâmetro de penalidade, o problema P(M) é

bilinear:

P(Mj) min c1Tx + c2

Ty + MjuTw + MjvTy

s.a A1x + A2y +w = a

x ≥0, y ≥ 0, w ≥ 0

A2Tu – v = -d

u ≥ 0, v ≥ 0

Portanto esse método de penalização consiste em solucionar uma seqüência de

problemas bilineares P(Mj), com j∈Ν, à medida que o parâmetro Mj é incrementado

iterativamente. Isto quer dizer que: para cada problema P(Mj), j∈Ν, pode-se

encontrar uma solução ótima (xj,yj,wj,uj,vj).

A solução ótima do problema P(Mj) é encontrada quando o termo penalizado se

anula e por isso essa solução é viável para o problema (PE), pois além de satisfazer

as restrições primais e duais, pois tais restrições também fazem parte das restrições

36

(3.2)

(3.3)

Page 29: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

do problema P(M), também satisfazem às restrições de complementaridade das

folgas. Ou seja:

Se vTy + uTw = 0, para M > 0 ⇒ como v,y,u,w ≥ 0, logo vTy =0 e uTw = 0.

Uma definição importante para esse método de penalização dada por Önal (1993) é

apresentada a seguir.

Definição 3.1.1: Uma solução local estável do problema penalizado P(M) é uma

solução viável se:

(i) Minimiza localmente (3.1) – (3.3);

(ii) Tanto o ponto solução quanto o valor da função objetivo não se alteram

para qualquer M > M* para algum valor suficientemente grande M*.

Önal (1993) mostra que o termo penalizado é igual a zero em uma solução local

estável; logo, uma solução local estável é um ponto viável para o problema (PE).

Como constata Campêlo e Scheimberg (2000), o conjunto viável do problema P(M)

tem sido considerado na literatura sob hipóteses de compacidade. Em Campêlo e

Scheimberg (2000) é desconsiderada qualquer suposição de compacidade sobre o

conjunto viável do problema P(M) e provado que a penalidade é útil também em

situações de inviabilidade e não limitação do conjunto viável.

O seguinte resultado em Campêlo e Scheimberg (2001) associa o problema (PE) e

P(M) da seguinte maneira:

Teorema 3.1.1: Exatamente um dos seguintes casos acontece:

(i) Os problemas (PE) e P(M) são inviáveis ∀ M ≥ 0;

(ii) Os problemas (PE) e P(M) são ilimitados ∀ M ≥ 0;

(iii) Os problemas (PE) e P(M) têm o mesmo conjunto (não vazio) de soluções

globais ∀ M ≥ M*, para algum M*≥ 0.

Sendo os problemas (PE) e (PLDNP) globalmente equivalentes, pode-se relacionar

o resultado do teorema acima com o problema original da seguinte maneira, ver

teorema 3.2.2 em Campêlo (1999):

37

Page 30: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

• Os problemas (PLDNP) e P(M) são ambos inviáveis ou ilimitados ∀ M ≥ 0;

• Os problemas (PLDNP) e P(M) têm solução para algum M’ ≥ 0.

Por facilidade se usará uma notação mais compacta onde as matrizes e o vetor

correspondente à função objetivo serão representados em blocos:

A= [A1 A2 Im2] ∈ℜm2×n, D= [0 -In2 A2T] ∈ℜn2×n, cT= (c1

T, c2T ,0) ∈ℜn

Onde n= n1 +n2 +m2, Ij é a matriz identidade de ordem j × j e 0 é a matriz nula com

dimensão apropriada para cada caso.

Desta forma podem-se definir dois conjuntos viáveis:

• Z= {z ∈ℜn: Az = a, zT= (xT,yT,wT) ≥ 0},

que corresponde ao conjunto viável da formulação primal do problema do seguidor,

mas, como está sendo considerado o problema (PLDNP), tal conjunto representa

também o conjunto viável do Problema Relaxado com a inclusão das variáveis de

folga.

• S= {s ∈ℜn: Ds = d, sT= (0,vT,uT) ≥ 0},

que corresponde ao conjunto viável do problema dual do seguidor.

Reescreve-se o problema equivalente como:

(PE) min F(z,s) = cTz

s.a z∈ Z

s ∈ S

sTz = 0

E o problema penalizado como:

P(M) min FM(z,s) = cTz + M sTz

s.a z∈ Z

s ∈ S

38

Page 31: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Esta formulação com notação compacta é utilizada no capítulo a seguir.

CAPÍTULO 4

Pontos de equilíbrio

Neste capítulo é dada a definição de pontos de equilíbrio e mostrado um

algoritmo para encontrar pontos de equilíbrio, proposto por Campêlo (1999). Tal

algoritmo foi implementado em Matlab, de duas maneiras: um algoritmo que parte de

uma solução dual viável, e um algoritmo que parte de uma solução primal viável.

4.1- Conceitos sobre Pontos de equilíbrio

Definição 4.1.1: Um ponto de equilíbrio do problema penalizado P(M) é uma solução

(z’,s’) do problema para o qual ∃M’≥0 tal que, para cada M≥M’ verifica-se:

mins∈S FM(z’,s) = FM(z’,s’) = minz∈Z FM(z,s’)

Onde FM(z,s) = cTz + M sTz.

A condição da definição anterior quer dizer que, a partir de um determinado valor de

M, o valor da função objetivo do problema P(M) não varia.

A seguir é apresentada a proposição que estabelece que um ponto de equilíbrio

satisfaz a condição de complementaridade das folgas do problema equivalente (PE).

Proposição 4.1.1: Se (z’,s’) é um ponto de equilíbrio de P(M) então s’Tz’= 0.

É importante salientar que a implicação recíproca da proposição não

necessariamente se verifica.

Prova: ver Proposição 3.3.1 de Campêlo (1999).

39

Page 32: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A Proposição 4.1.1 estabelece que pontos de equilíbrio são soluções locais do

problema (PE). A identificação de soluções locais é feita através do conceito de

solução local parcialmente estável do problema P(M) proposta por Campêlo (1999)

que, considerando o Problema Linear de Dois Níveis sem restrições no primeiro

nível, é equivalente ao conceito de solução localmente estável de Önal (1994).

Definição 4.1.2: Um ponto (z’,s’) é uma solução local parcialmente estável do

problema P(M) se ∃M’≥0 tal que (z’,s’) é uma solução local do problema P(M)

∀M≥M’.

É conveniente lembrar que a definição de solução local estável dada por Önal (1994)

exige que tanto o ponto solução quanto o valor da função objetivo não devem se

alterar a partir de um certo valor de M’>0.

O Teorema 3.3.2 em Campêlo (1999) demonstra que as seguintes afirmações são

equivalentes:

(i) (z’, s’) é uma solução local do problema (PE);

(ii) (z’, s’) é uma solução local parcialmente estável do problema P(M);

(iii) (z’, s’) é um ponto de equilíbrio do problema P(M).

A proposta de Campêlo (1999) para a resolução do problema (PLDNP) foi de buscar

soluções locais desse problema entre as soluções locais do problema equivalente, e

essas soluções locais do (PE) podem ser encontradas através do problema

penalizado, como pode-se concluir da proposição acima. É importante salientar que

nem sempre as soluções locais do problema equivalente estão associadas a

soluções locais do problema de dois níveis. Então em um primeiro momento o

objetivo é preocupar-se em encontrar soluções locais do problema (PE).

O teorema a seguir caracteriza as soluções locais do problema (PLDNP):

Teorema 4.1.1: Um ponto z’ é uma solução local do problema (PLDNP) ⇔ z’é viável

para o problema (PLDNP) e (z’, s) é um ponto de equilíbrio do problema penalizado

para todo vértice s ∈ Sv(z’).

40

Page 33: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Onde Sv representa o conjunto de vértices do conjunto S.

Então um ponto z’ é claramente uma solução local do problema (PLDNP) quando

(z’, s’) é ponto de equilíbrio e s’ é o único vértice em S tal que s’Tz’ = 0.

Então sendo (z’, s’) um ponto de equilíbrio do problema penalizado e se s’∈ Sv e

z’Ts>0 para todo s ∈ Sv adjacente a s’ ⇒ z’ é uma solução local do problema

(PLDNP).

Campêlo (1999) sugere dois algoritmos para a obtenção de pontos de equilíbrio.

Para introduzir tais algoritmos definem-se dois problemas lineares paramétricos:

P(M, s’) min cTz + M s’Tz

s.a z∈ Z

Onde s’ é uma solução viável fixa do conjunto S, ou seja, é uma solução dual viável.

P(M, z’) min cTz’ + M sTz’

s.a. s ∈ S

Onde z’ é uma solução viável fixa do conjunto Z, ou seja, é uma solução primal

viável.

O primeiro algoritmo descrito a seguir parte de um ponto viável s0 ∈ S.

Algoritmo 1

Passo 0 → Se Z×S ≠ ∅, tome s0 ∈ S.

Passo 1→ Resolva P(M, s0), pelo método Simplex big-M. Obtenha uma solução z0

ou verifique que o problema é ilimitado. No segundo caso, conclua que P(M) é

ilimitado para todo M≥0.

Passo 2 → Resolva P(M, z0) pelo método Simplex, obtendo uma solução s’.

Passo 3 à Resolva P(M, s’), pelo método Simplex big-M. Obtenha uma solução z’

ou verifique que o problema é ilimitado. No primeiro caso, (z’, s’) é um ponto de

equilíbrio; no segundo, conclua que P(M) é ilimitado para todo M≥0.

41

Page 34: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

E o segundo algoritmo parte de um ponto viável z0 ∈ Z.

Algoritmo 2

Passo 0 → Se Z×S ≠ ∅, tome z0 ∈ Z.

Passo 1 → Resolva P(M, z0) pelo método Simplex, obtendo uma solução s’.

Passo 2 → Resolva P(M, s’), pelo método Simplex big-M. Obtenha uma solução z’

ou verifique que o problema é ilimitado. No primeiro caso, (z’, s’) é um ponto de

equilíbrio, no segundo, conclua que P(M) é ilimitado para todo M ≥ 0.

A Tabela 4.1.1 mostra os pontos de equilíbrio obtidos por cada algoritmo para os

Exemplos 1 e 3 do Capítulo 2 e um exemplo extraído de Dantas (1998).

Tabela 4.1.1: Pontos de equilíbrio obtidos pelo Algoritmo 1 e o Algoritmo 2

Pontos de equilíbrio

Exemplo Algoritmo 1 Algoritmo 2

Exemplo 1 s’=(0,0,138.5515,0,137.5515) s’=(0,0,0,1,0)

z’=(0,5,0,5,0) z’=(5,5,5,0,0)

Exemplo 3 s’=(0,0,0,0,1) s’=(0,1,0,0,0)

z’=(4,4,3,0,0) z’=(3,0,6,9,0)

Exemplo * s’=(0,0,194.2672,97.6336,0,0,0) s’=(0,0,0,0,0.1410,0,0.2179)

z’=(2,6,0,0,18,35,18) z’=(8,6,6,18,0,23,0)

*Exemplo extraído de Dantas (1998):

min f1(x,y) = x+4y

s.a x ≥ 0 , y solução de

min f2(x,y) = -y

s.a -x- y ≤ -8

-3x +2y ≤ 6

42

Page 35: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

3x +4y ≤ 48

2x -5y ≤ 9

3x +2y ≤ 36

y ≥ 0

A região viável do problema (PLDNP) está representada pelas arestas em negrito no

gráfico da Figura 4.1.1.

(2,6) (8,6)

Figura 4.1.1

Pela Tabela 4.1.1 observa-se que o Algoritmo 1, que parte de uma solução viável do

problema dual do seguidor encontra um ponto de equilíbrio e o Algoritmo 2, que

parte de uma solução viável do problema primal do seguidor encontra um outro

ponto de equilíbrio, mais adiante será visto que o ponto de equilíbrio que o Algoritmo

1 encontra para os Exemplos 1 e 3 já são soluções ótimas para o PLDNP.

4.2- Análise do ponto de equilíbrio

Segundo Campêlo (1999) as soluções locais do problema (PLDNP) estão

associadas a pontos de equilíbrio do problema penalizado. Então são analisadas

nesta seção as tabelas ótimas dos problemas P(M, s’) e P(M, z’), considerando

(z’,s’) um ponto de equilíbrio, para através delas derivar condições de otimalidade

local ou global para tal ponto.

Sabe-se que as soluções dos problemas P(M, s’) e P(M, z’) são encontradas em

vértices de Z e S respectivamente.

43

Page 36: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A seguir são apresentados os quadros iniciais e ótimos do método Simplex

para os problemas P(M, s’) e P(M, z’).

Tabela 4.2.1: Tabela inicial do problema P(M, s’)

Onde:

A função objetivo FM(z, s’) = cTz + Ms’Tz é representada por duas linhas;

(∗) corresponde ao termo da complementaridade penalizado s’Tz;

A matriz AB corresponde à matriz associada às variáveis básicas, antes de

transformá-la em uma matriz IB, e ANB à matriz associada às variáveis não-básicas.

Considere I = {1,2, ....., n} o conjunto dos índices das variáveis e tome B o conjunto

correspondente aos índices das variáveis básicas associadas ao vetor incógnita z,

tal que B ⊂ I, e NB o conjunto dos índices das variáveis não-básicas tal que NB ⊂ I.

Tabela 4.2.2: Tabela ótima do problema P(M, s’)

cB

T cNB

T

44

zB

T zNB

T

AB

ANB a

M s’B

T s’NB

T 0 (*)

Page 37: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Observa-se que o termo penalizado trabalha a taxa M de forma implícita e o valor

ótimo é zero. Tabela 4.2.3: Tabela inicial do problema P(M, z’)

I A*NB

=AB

-1ANB

0 s*NB

T = s’NB

T – s’B

T A*NB

0 c*NB

T = cNB

T – cB

T A*NB

z’B=A

B-1a

0 = s’B

Tz’B

cB

Tz’B

zB

T zNB

T

M

sE

T sNE

T

DE

DNE d

M z’E

T z’NE

T 0

45

Page 38: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Onde:

O 1º termo de FM(z’, s) = cTz’ + MsTz’ é constante; então só se representa a linha da

parcela penalizada. O conjunto E corresponde ao conjunto dos índices associados

às variáveis básicas em z’ e NE corresponde ao conjunto dos índices associados às

variáveis não-básicas em z’.

DE corresponde à matriz associada às variáveis básicas e DNE à matriz associada às

variáveis não-básicas. Tabela 4.2.4: Tabela ótima do problema P(M,z’)

Com a análise destas tabelas ótimas pode-se verificar se o ponto de equilíbrio será

uma solução local ou global do problema (PLDNP).

Como (z’,s’) é um ponto de equilíbrio, pelo Lema 3.3.3 de Campêlo (1999), chega-se

à conclusão de que:

s*NB ≥ 0 e z*NE

≥ 0

E quando c*NB ≥ 0, tem-se que (z’,s’) é solução do Problema Relaxado (PR) e, logo,

solução global do problema (PLDNP). Por outro lado, (z’,s’) é solução local do

I D*NE

=DE

-1DNE

0 z*NE

T = z’NE

T – z’E

T D*NE

s’E=D

E-1d

0 = z’E

Ts’E

sE

T sNE

T

M

46

Page 39: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

problema (PLDNP) se z*NE > 0, ou seja, s’ é o único ponto em S complementar a z’

⇒ S(z’) = {s’}.

Observação:O critério de parada utilizado nesta aplicação do Simplex ocorre quando todos os

coeficientes de custos reduzidos da função objetivo forem maiores que zero.

Mas se não ocorrer nenhuma dessas duas situações, é fornecido a seguir como

encontrar direções para sair do ponto de equilíbrio, melhorando o valor da função

objetivo.

São analisadas as direções extremas, Bazaraa et al (1990), de Z e S, a partir de z’ e

s’ respectivamente. Nota-se que essas direções podem ser obtidas a partir das

tabelas ótimas, e são dadas pelas colunas das seguintes matrizes:

GNB = - A*NB ∈ ℜn×(n-m) e HNE = - D*NE ∈ℜn×(n-n2)

In-m In-n2

Onde Iq é a matriz identidade de ordem q×q.

Assume-se por simplicidade que as matrizes GNB e HNE conservam a mesma

indexação de ANB e DNE respectivamente.

Tomando i ∈ NB e j ∈ NE, a coluna Gi de G e a coluna Hj de H podem ser

representadas como:

Gi = - A*i ∈ℜn e Hj= -D*J ∈ℜn

ei ej

Onde ei ∈ ℜn-m e ej ∈ ℜn-n2 são colunas de In-m e In-n2 respectivamente.

As colunas Gi e Hj também podem ser definidas da seguinte forma:

- A*ki , se k ∈ B , - D*kj , se k ∈ E

47

Page 40: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Gki = 0, se k ∈ NB \ {i} e Hkj= 0, se k ∈ NE \ {j}

1, se k=i 1, se k=j

Voltando ao coeficiente da função objetivo na tabela ótima do problema P(M, s’), e

fazendo uma associação com a direção G definida anteriormente, tem-se que:

• c*NBT = cTG

Pois sendo cT = [ cBT cNB

T ] reescrever-se cTGNB como:

cTGNB = [ cBT cNB

T ] . - A*NB = – cB

T A*NB + cNBT In-m

In-m

Para algum i ∈ NB:

c*iT = cTGi

• s*NBT = s’TGNB ≥ 0

s’TGNB = [s’TB s’TNB] . - A*NB = – s’BT A*NB + s’NBT In-m

In-m

E s*iT = s’TGi, para algum i ∈ NB.

Agora voltando ao coeficiente da função objetivo na tabela ótima do problema

P(M,z’), e fazendo uma associação com a direção HNE:

z*NET = z’T HNE ≥ 0

z’T HNE = [z’ET z’NET] . - D*NE = – z’ET D*NE + z’NE

T In-n2

In-n2

E z*jT = z’T Hj ≥ 0, para algum j ∈ NE.

Considerando os conjuntos definidos abaixo:

NB- = {i ∈ NB / c*i < 0} = {i ∈ NB / cTGi < 0}

48

Page 41: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

NE0 = {j ∈ NE / zj* = 0}= {j ∈ NE / z’THj = 0}

Onde os conjuntos NB- e NE0 representam, respectivamente, as direções de melhora

de Z em z’, em relação à função objetivo cTz, e as direções de S em s’ no qual é

viável a restrição z’Ts = 0.

Através desses dois conjuntos podem-se extrair condições suficientes de

otimalidade para o problema (PLDNP):

• Se NB- =∅ ⇒ z’ é solução global do problema (PLDNP).

• Se NE0 =∅ ⇒ z’ é solução local do problema (PLDNP).

Considere os seguintes subconjuntos de NB- e NE0 representados respectivamente,

abaixo:

NB-0 = {i ∈ NB-: sTGi = 0 para algum s ∈ S(z’)}

NE00 = {j ∈ NE0: z’j = 0}

Consideram-se as funções ponto-conjunto definidas abaixo:

S(z)= {s ∈ S: zTs = 0}

Z(s)= {z ∈ Z: sTz = 0}

Nota-se que a região viável do problema equivalente é dada pelo gráfico das

aplicações S(•) e Z(•), já o conjunto viável do problema (PLDNP) é o domínio da

aplicação S(•), ou seja, dom S(•)= {z∈ Z / S(z) ≠ 0}.

Em Campêlo (1999) é provado que os pontos de Z e S podem ser expressos em

função de z’ e das direções Gi, e em função de s’ e das direções Hj respectivamente:

z ∈ Z ⇒ z= z’ + ∑i∈NBziGi

s ∈ S ⇒ s= s’ + ∑i∈NEsjHj

Assume-se daqui em diante a seguinte hipótese:

49

Page 42: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

[H] Se i ∈ NB- e A*ki > 0 ⇒ z’k > 0

A hipótese acima verifica-se trivialmente quando o vértice z’é não degenerado (ver

definição de vértice degenerado no Apêndice A). Tal hipótese garante que a direção

Gi (i∈NB-) é uma direção viável de Z.

Observação:Nos resultados a seguir z’e s’ são consideradas soluções básicas não-degeneradas.

Teorema 4.2.1: O ponto z’ é uma solução local do problema (PLDNP), se, e somente

se:

(i) NB- = ∅, ou

(ii) min {GiTs: s∈S(z’)}>0 ∀i∈ NB-.

Este teorema pode ser relacionado com o Teorema 4.1.1, que afirma que se z’ é

uma solução viável, mas não é ótimo local, implica que (z’,s) não é ponto de

equilíbrio para algum s ∈ S(z’).

No capítulo a seguir, são abordados dois algoritmos para a resolução do problema

(PLDNP), um destes algoritmos é proposto em Campêlo (1999), que se baseia em

resultados apontados neste presente capítulo.

CAPÍTULO 5

O Algoritmo Local e o Algoritmo do k-ésimo melhor vértice

Neste capítulo são abordados dois algoritmos que resolvem Problemas

Lineares de Dois Níveis: o primeiro é um algoritmo recente na literatura, que se

baseia em pontos de equilíbrio, e o segundo algoritmo é o do k-ésimo melhor vértice,

50

Page 43: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

que encontra um ótimo global para o problema. Ambos foram implementados em

Matlab e um exemplo é mostrado para se observar os passos que cada algoritmo

realiza. A última sessão deste capítulo apresenta alguns exemplos-teste.

5.1- Algoritmo Local

Este algoritmo proposto por Campêlo (1999), Campêlo e Scheimberg (2002),

baseia-se na análise das tabelas ótimas dos problemas P(M, z’) e P(M, s’) para

verificar se (z’, s’) é uma solução local ou global para o problema (PLDNP) (sendo

(z’, s’) um ponto de equilíbrio encontrado por um dos algoritmos apresentados no

Capítulo 4), se não for, o algoritmo fornece uma direção de descida para sair do

ponto de equilíbrio, melhorando o valor da função objetivo. Para a implementação

deste algoritmo são necessárias as tabelas ótimas da segunda fase, dos problemas

P(M, z’) e P(M, s’), pois o método usado para a resolução destes problemas é o

método Duas Fases, uma vez que tais problemas são constituídos de restrições de

igualdade, para implementar esta etapa do algoritmo é feito um estudo do tutorial de

Neuman (2004) que mostra como se obter tais tabelas.

Algoritmo Local

Passo 1à Se Z x S = ∅, pare o problema (PLDNP) é inviável. Caso contrário

encontre um z’∈ Z.

Passo 2à Aplique o Algoritmo 1. Se P(M) é ilimitado para todo M ≥ 0, pare: o

problema (PLDNP) é ilimitado. Caso contrário, tome (z’, s’) o ponto de equilíbrio

encontrado.

Passo 3à Considere as tabelas ótimas do Simplex relativos aos problemas P(M, s’)

e P(M,z’).

Sejam NB- e NE0 como definidos no Capítulo 4. Se NB- = ∅ ou NE0 = ∅, pare: z’ é

um ótimo global ou local do problema (PLDNP), respectivamente.

Passo 4à Calcule δi = min {GiTs : s ∈ S(z’)} > 0 ∀i∈ NB-. Caso existam i ∈ NB- e

s’∈ S(z’) tais que δi = GiTs’ = 0, volte para o passo 2. Caso contrário, PARE: z’ é um

ótimo local do problema (PLDNP).

51

Page 44: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Aplicando-se o Algoritmo Local para o seguinte problema:

min - x1 – 3x2

s.a. x1 ≥ 0

min x2

s.a x1 – x2 ≥ -3

- x1 - 2x2 ≥ -12

- 4x1 + x2 ≥ -12

x2 ≥ 0

O problema do seguidor é:

S(x1) min x2

s.a - x2 ≥ - 3 - x1

2x2 ≥ -12+ x1

x2 ≥ -12+ 4x1

x2 ≥ 0

E o seu dual:

max (-3 - x1) u1 + (-12+ x1) u2 + (-12+4x1) u3

s.a -u1 - 2u2 + u3 ≤ 1

u1, u2, u3 ≥ 0

As condições de KKT para o problema S(x1) são:

1) x1 – x2 – x3 = -3 -x1 + x2 + x3 = 3

- x1 - 2x2 – x4 = -12 ⇔ x1 + 2x2 + x4 = 12

-4x1 + x2 – x5 = -12 4x1 – x2 + x5 = 12

x1,x2,x3,x4,x5 ≥ 0

Onde x3,x4,x5 são variáveis de excesso.

2) -u1 -2u2 + u3 + v = 1

u1,u2,u3,v ≥ 0

Onde v é variável de folga.

3) vx2 = 0

52

Page 45: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

u1x3 + u2x4 + u3x5 = 0

x2,x3,x4,x5, u1,u2,u3,v ≥ 0

Logo o problema equivalente é escrito da seguinte maneira:

(PE) min - x1 – 3x2

s.a -x1 + x2 + x3 = 3

x1 + 2x2 + x4 = 12

4x1 – x2 + x5 = 12

x1,x2,x3,x4,x5 ≥ 0

-u1 -2u2 + u3 + v = 1

u1,u2,u3,v ≥ 0

vx2 = 0

u1x3+u2x4+u3x5 = 0

E o problema penalizado é:

P(M) min –x1 – 3x2 + M (u1x3 + u2x4 + u3x5 + vx2)

s.a -x1 +x2 + x3 = 3

x1 + 2x2+ x4 = 12

4x1 – x2 + x5 = 12

x1, x2, x3, x4, x5 ≥ 0

- u1 - 2u2 + u3 + v = 1

u1, u2, u3, v ≥ 0

Aplicando o Algoritmo 1, implementado em Matlab, tem-se que:

z’ = (4,4,3,0,0) e s’ = (0,0,0,0,1)

• O problema P(M, z’) é:

min - 4 – 12 + 3u1 + 4v

s.a -u1 - 2u2 + u3 + v = 1

ui ≥ 0 , i = 1,...,3

v ≥ 0

53

Page 46: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

O algoritmo obteve como solução:

s’=(0,0,0,0,1)

Tabela 5.1.1: Tabela ótima do problema P(M, z’)

u1 u2 u3 v

u3 -1 -2 1 1 1

3 0 0 4 0

• O problema P(M, s’) é:

min -x1 - 3x2 + 100x5

s.a. -x1 + x2 + x3 = 3

x1 + 2x2 + x4= 12

4x1 - x2 + x5 = 12

xi ≥ 0, i = 1,..,5

Tabela 5.1.2: Tabela ótima do problema P(M, s’)

x1 x2 x3 x4 x5

x3 0 0 1 -0.33 0.33 3

x2 0 1 0 0.44 -0.11 4

x1 1 0 0 0.11 0.22 4

54

0 0 0 1.44 -0.11

100 0 0 0 0 1

Page 47: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Nota-se pela análise da Tabela 5.1.1 do problema P(M, z’) que z’ é solução local do

problema (PLDNP), pois s’ é o único complementar a z’ no conjunto S, pois apesar

da tabela indicar uma outra alternativa: a variável u2, quando esta entrar na base

gerará uma solução inviável.

Agora optando por aplicar o Algoritmo 2, tem-se que o ponto de equilíbrio

encontrado é:

z’= (3,0,6,9,0) e s’= (0,1,0,0,0)

• O problema P(M, z’) é:

min -3 + 600u1 + 900u2

s.a -u1 - 2u2 + u3 + v = 1

ui ≥ 0, i = 1,...,3

v ≥ 0

O algoritmo obteve como solução:

s’=(0,1,0,0,0) Tabela 5.1.3: Tabela ótima do problema P(M, z’)

u1 u2 u3 v

v -1 -2 1 1 1

600 900 0 0 0

• O problema P(M, s’) é:

55

Page 48: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

min -x1 + 97x2

s.a. -x1 + x2 + x3 = 3

x1 + 2x2 + x4 = 12

4x1 - x2 + x5 = 12

xi ≥0, i = 1,..,5

Tabela 5.1.4: Tabela ótima do problema P(M, s’)

x1 x2 x3 x4 x5

x3 0 0.75 1 0 0.25 6

x4 0 2.25 0 1 -0.25 9

x1 1 -0.25 0 0 0.25 3

Separando a última linha da Tabela 5.1.4 em duas linhas de modo que uma

corresponde aos coeficientes do termo penalizado e a outra aos coeficientes da

função objetivo original, tem-se a Tabela 5.1.5 a seguir:

Tabela 5.1.5: Tabela ótima do problema P(M, s’) com os coeficientes do termo

penalizado e da função objetivo original desmembrados

x1 x2 x3 x4 x5

x1 1 -0.25 0 0 0.25 3

x4 0 2.25 0 1 -0.25 9

x3 0 0.75 1 0 0.25 6

56

100 0 1 0 0 0

0 -3.25 0 0 0.25

0 96.75 0 0 0.25

Page 49: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Nota-se pela análise das tabelas:

à Tabela 5.1.5

O ponto z’ não é solução global do problema (PLDNP), pois NB- ≠ ∅:

c*i = -3.25 < 0 para i ∈ NB (i = 2)

à Tabela 5.1.3

O ponto z’ não é solução local do problema (PLDNP), pois NE0 ≠ ∅, ou seja, s’ não é

o único complementar a z’ no conjunto S:

z*j = 0, para j ∈ NE (j = 3)

Agora calculando:

δi = min{GiTs: s ∈ S(z’)} ∀i ∈ NB-.

i= 2

G2 = 0.25

1

-0.75

-2.25

0

Resolvendo o seguinte problema de Programação Linear:

min v - 0.75u1 - 2.25u2

57

Page 50: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

s.a 6u1 + 9u2 = 0

ui ≥ 0, i = 1,...,3

v ≥ 0

A solução encontrada será δi = 0 e s = (0,0,0,0,100.5991).

Agora encontrando um ponto de equilíbrio para s’ = ( 0,0,0,0,100.5991):

z’= (4 4 3 0 0) e s’= (0,0,0,0,1)

àAnalisando as tabelas ótimas dos problemas P(M, z’) e P(M, s’).

Observa-se que tais tabelas já foram analisadas quando no passo 2 usou-se o

Algoritmo 1. Então da conclusão feita por essa abordagem, tem-se que z’=(4,4,3,0,0)

é solução local do problema (PLDNP).

5.2- Algoritmo do k-ésimo melhor vértice

Este algoritmo é baseado em métodos enumerativos dos pontos extremos,

pois, como pôde ser visto, em um Problema Linear de Dois Níveis a solução ótima,

se existir, encontra-se em um ponto extremo da sua região viável.

Este algoritmo foi proposto por Bialas e Karwan (1984) e sua aplicação está

condicionada aos casos em que o conjunto viável do Problema Relaxado é limitado

e o conjunto solução do seguidor (Υ(•)) é uma aplicação unívoca. O algoritmo

encontra um ótimo global para o problema em um número finito de iterações, uma

vez que é finito o número de bases a explorar. Esta afirmação é garantida pela

Propriedade 2.2.

O objetivo deste algoritmo é o de obter a solução ótima do problema (PLDNP) entre

os vértices do Problema Relaxado, da seguinte maneira:

Considerando (x1,y1),(x2,y2),...,(xj,yj) uma ordenação dos vértices de W onde:

f1(x1,y1) ≤ f1(x2,y2) ≤ ... ≤ f1(xj,yj) .

Solucionar o problema (PLDNP) equivale a determinar o menor índice k tal que

(xk,yk) seja viável para o (PLDNP). Ou seja:

k=min {i = {1,2,...,j} / (xi,yi) ∈ Ψ}.

58

Page 51: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Algoritmo k-ésimo melhor vértice

Passo 1: Solucione o Problema Relaxado através do Método Simplex encontrando

uma solução (x1,y1).

iß 1

U = {( xi,yi)} e U = ∅

Passo 2: Solucione o problema do seguidor S(xi) encontrando yi*.

Se yi* = yi ⇒ (xi,yi) ∈ Ψ e é solução ótima do problema (PLDNP), pare com k = i.

Caso contrário vá para o passo 3.

Passo 3: Seja Ui o subconjunto de vértices extremos de W que são adjacentes a

(xi,yi) e tais que: f1(x,y) ≤ f1(xi,yi).

U= U ∪ {( xi,yi)} e U= (U ∪ UI) \ U

Vá para o passo 4.

Passo 4:

ißi+1

Ecolha (xi,yi) tal que: f1(xi,yi) = min f1(x,y)

(x,y) ∈U

Volte para o passo 2.

Observação: U representa o conjunto de vértices a avaliar e U o conjunto de vértices já avaliados.

Este algoritmo é implementado em Matlab, mas no passo 3 é necessária uma

análise de como se obter vértices adjacentes a um determinado vértice V’ (ver

Apêndice C). Tal análise é feita através da tabela do Simplex quando a solução

viável é o vértice V’.

Utilizando o mesmo exemplo que foi utilizado para o Algoritmo Local:

min -x1 – 3x2

s.a. x1 ≥ 0

min x2

s.a x1 – x2 ≥ -3

59

Page 52: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

- x1 - 2x2 ≥ -12

-4x1 + x2 ≥ -12

x2 ≥ 0

Em linhas gerais os passos que o algoritmo faz são:

i = 1

à Resolve-se o Problema Relaxado pelo Método Simplex:

min -x1 – 3x2

s.a x1 – x2 ≥ -3

- x1- 2 x2 ≥ -12

-4 x1 + x2 ≥ -12

x1, x2 ≥ 0

Encontrando como solução o ponto (x1,x2,x3,x4,x5) = (2,5,0,0,9)

àResolve-se o problema do seguidor para x1 = 2 :

S(2) min x2

s.a - x2 ≥ -3 - 2

- 2 x2 ≥ -12 + 2

x2 ≥ -12 + 8

x2 ≥ 0

E obtém-se como solução x2* = 0

Então como x2* ≠ x2, encontra-se os vértices adjacentes a (x1,x2,x3,x4,x5):

à U1={(4,4,3,0,0),(0,3,0,6,15)}

ài=i+1

min -x1 – 3x2

(x1, x2) ∈ U1

Obtendo como solução o vértice (4,4,3,0,0)

Figura 5.1.1

à Resolvendo o problema do seguidor para x1 = 4:

60

Page 53: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

S(4) min x2

s.a - x2 ≥ -3 - 4

- 2 x2 ≥ -12 + 4

x2 ≥ -12 + 16

x2 ≥ 0

Obtém-se x2* = 4 = x2 ⇒ (4,4,3,0,0) é solução para o problema (PLDNP).

5.3- Exemplos-teste

A seguir são apresentados alguns exemplos em que foram aplicados o Algoritmo

Local e o Algoritmo do k-ésimo melhor vértice.

Exemplo-teste 1 [ Dantas, 1998 ]:

min x + 4y

s.a x ≥ 0

min - y

s.a x + y ≥ 8

3x – 2y ≥ -6

- 3x – 4y ≥ -48

- 2x + 5y ≥ -9

- 3x – 2y ≥ -36

y ≥ 0

Exemplo-teste 2 [ Bialas e Karwan, 1984 ]:

min - x - 3y

s.a x ≥ 0

min - x + 3y

s.a x + 2y ≥ 10

- x + 2y ≥ - 6

- 2x + y ≥ - 21

x - 2y ≥ - 18

61

Page 54: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

- x – 2y ≥ -38

y ≥ 0

Exemplo-teste 3 [ Candler e Townsley, 1982 ]:

min - 8x1 – 4x2 + 4y1 – 40y2 – 4y3

s.a xi ≥ 0, i = 1, 2, 3

min x1 + 2x2 + y1 + y2 + 2y3

s.a -y1 + y2 + y3 ≤ 1

2x1 – y1 +2y2 – 0.5y3 ≤ 1

2x2 + 2y1 – y2 – 0.5y3 ≤ 1

yi ≥ 0, i = 1, 2, 3

Exemplo-teste 4:

min - 8x1 – 4x2 + 4y1 – 40y2 – 4y3

s.a xi ≥ 0, i = 1, 2, 3

min 3x1 - y1 + 2y2 + 2y3

s.a -y1 + y2 + y3 + w1 = 1

2x1 – y1 +2y2 – 0.5y3 + w2 = 1

2x2 + 2y1 – y2 – 0.5y3 + w3 = 1

yi ≥ 0, i = 1, 2, 3

Exemplo-teste 5:

min - 4x1 + 4x2 + 4y1 – y2 – 4y3

s.a xi ≥ 0, i = 1, 2, 3

min x1 + 2x2 + y1 + y2 + 2y3

s.a -y1 + y2 + y3 ≤ 1

2x1 – y1 +2y2 – 0.5y3 ≤ 1

2x2 + 2y1 – y2 – 0.5y3 ≤ 1

yi ≥ 0, i = 1, 2, 3

62

Page 55: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Tabela 5.3.1: Soluções dos exemplos-teste do Algoritmo Local e do

Algoritmo do k-ésimo melhor vértice

___________________________________________________________________

Exemplos Algorimo Local Algoritmo do k-ésimo melhor

vértice

___________________________________________________________________

Exemplo-teste 1 z = (10.4211, 2.3684) z = (10.4211, 2.3684)

k = 2 k = 2

___________________________________________________________________

Exemplo-teste 2 z = (16, 11) z = (16, 11)

k = 2 k = 2

___________________________________________________________________

Exemplo-teste 3 z = (0, 0.9, 0, 0.6, 0.4) z = (0, 0.9, 0, 0.6, 0.4)

k = 1 k = 3

___________________________________________________________________

Exemplo-teste 4 z = (0, 0.9, 0, 0.6, 0.4, 0, 0, 0) z = (0, 0.9, 0, 0.6, 0.4, 0, 0, 0)

k=1 k=3

___________________________________________________________________________

Exemplo-teste 5 z = (1.5, 0, 1, 0, 2, 0, 0, 0) z = (1.5, 0, 1, 0, 2, 0, 0, 0)

k = 1 k = 1

___________________________________________________________________

CAPÍTULO 6

Conclusões

O objetivo maior deste trabalho foi fazer um estudo do problema de

Programação Linear em Dois Níveis que só apresenta restrições de sinal no primeiro

63

Page 56: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

nível, PLDNP, e a implementação, em Matlab de dois algoritmos para a resolução de

Problemas Lineares de Dois Níveis: o Algoritmo k-ésimo melhor vértice e o algoritmo

de Campêlo (1999) que identifica soluções locais ou globais. Como toda

implementação computacional, que funcione, passou pelo estudo e análise dos

conceitos sobre Programação Matemática de Dois Níveis.

O algoritmo proposto por Campêlo (1999) possui uma implementação mais

trabalhosa, devido à complexidade da fundamentação teórica. Aborda o problema

(PLDNP) de forma clássica, isto é, a partir de um problema equivalente (PE) de um

nível, utiliza recursos refinados da Programação Linear tanto como da Não-Linear

(quando faz uso de direções de descida, condições KKT), identificando uma solução

local ou global do problema (PLDNP) de forma exata, pois, como foi mostrado com

exemplos no Capítulo 2, o Problema Linear de Dois Níveis é um problema que

consiste em otimizar uma função objetivo sobre uma região não-convexa, devido a

essa característica o problema pode possuir ótimos locais.

A implementação do algoritmo chamado Algoritmo Local em Campêlo (1999)

foi feita em duas etapas: a primeira etapa foi implementar um algoritmo que calcula

um ponto de equilíbrio, o qual é uma solução inicial para o problema, e a segunda

etapa foi implementar um algoritmo para encontrar a solução ótima do problema

(PLDNP). O algoritmo que calcula um ponto de equilíbrio foi implementado de duas

maneiras, apresentadas no Capítulo 4 como Algoritmo 1 e Algoritmo 2. O Algoritmo

1 encontra o ponto de equilíbrio a partir de uma solução viável dual do problema do

2º nível e a o Algoritmo 2 a partir de uma solução viável do problema primal do 2º

nível. Para a implementação do Algoritmo Local foi necessário um estudo mais

aprofundado das tabelas do método Simplex com o objetivo de entender as

condições de otimalidade fornecidas pelas tabelas ótimas dos problemas P(M, z’) e

P(M, s’), definidos na seção 4.2. Quando precisou-se das tabelas ótimas destes

problemas, foi utilizada a implementação de tabelas do método Simplex para

problemas de Programação Linear de Neuman (2004), fazendo as adaptações

necessárias para o problema em questão.

A implementação do Algoritmo do k-ésimo melhor vértice é mais simples,

porém o algoritmo apresenta algumas restrições: a sua eficiência está relacionada

com a diferença entre o valor ótimo do problema (PLDNP) e o valor ótimo do

Problema Relaxado.

64

Page 57: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Deve-se assinalar que para as implementações do Algoritmo Local e do

Algoritmo k-ésimo do melhor vértice foi preciso um leitura mais aprofundada das

informações das tabelas ótimas do método Simplex. Foi também importante fazer

um estudo das condições de Karush-Kunh-Tucker e sua fundamentação, pois a

abordagem de solução para o problema (PLDNP) utilizou o problema equivalente

que aplica tais condições.

A experiência adquirida na implementação computacional usando o ambiente

Matlab facilitou o aprendizado teórico sobre problemas de Programação de Dois

Níveis, área ainda com grandes possibilidades de pesquisa, pelas características do

problema. Os algoritmos implementados podem ser fontes de futuros trabalhos

computacionais orientados na melhora da eficiência computacional que não foi o

objetivo da presente Dissertação.

Referências Bibliográficas

Aiyoshi,E.,Shimizu,K.(1981).Hierarquical descentralized systems and its new solution

by a barrier method. IEEE Transactions on Systems, Man, and Cybernetics 11: 444-

449.

65

Page 58: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Anandalingam, G.e White, D (1990) A solution method for the linear static

Stackelberg problem using penalty functions .IEEE Transactions on Automatic

Control, 35: 1170-1173.

Arica, CH. J. R (1995) O problema de Programação Matemática de Dois Níveis:

Condições de Otimalidade e Proposta Numérica. Tese de Doutorado

COPPE/Sistemas, Universidade Federal do Rio de Janeiro, 116 p.

Bard,J.(1984) Optimality conditions for the bilevel programming problem .Naval

Research Logistics Quarterly, 31:13-26.

Bazaraa,M.S., Jarvis,J.J., Sherali,H.D (1990) Linear Programming and Network

Flows. 2.ed. Jonh Wiley & Sons, 684p.

Berkovitz, L.D. (2002) Convexity and Optimization in Rn. Jonh Wiley & Sons, 280p.

Bialas, W, Karwan, M (1984) Two-Level Linear Programming .Management Science

30: 1004-1020.

Campêlo, M.B.N (1999) Programação Linear em Dois Níveis: Uma abordagem

teórica e computacional. Tese de Doutorado- COPPE- Universidade Federal do Rio

de Janeiro, 169p.

Campêlo,M. Scheimberg, S (2001) Theorical and Computational Results for a Linear

Bilevel Problem. IN: N. Hadjisavvas; P.Pardalos (Org.) Advances in Convex Analysis

and Global Optimization, v.54, p.269-281.

Campêlo, M., Scheimberg,S.A (2002) Study of Local Solutions in Linear Bilevel

Problem . Submitted to Journal of Optimization Theory and Applications , Kluwer.

Candler, W., Norton, R.(1997) Multilevel Programming. Technical Report 20, World

Bank Development Research Center, Washington D.C.

66

Page 59: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Candler, W., Townsley, R. (1982) A Linear Two-Level Programming Problem.

Computers & Operations Research, v. 9, p.59-76.

Dantas, S. (1998) Problemas de Programação em Dois Níveis: Um Estudo dos

Casos Linear, Linear Quadrático e Quadrático. Tese de Mestrado – COOPE -

Universidade Federal do Rio de Janeiro.

Dempe,S.,Bard,J.Bundle (2001) Trust-Region Algorithm for Bilinear Bilevel

Programming.Journal of Optimization Theory and Applications 110:265-288.

Florian, M., Chen, Y. (1991) A Bilevel Programming approach to estimating O-D

matrix by traffic counts .Technical Report CRT-807, Centre de Recherche sur les

Transports.

Kolstad, C., Lasdon, L.(1990) Derivate evaluation and computational experience with

large bilevel mathematical programs. Journal of Optimization Theory and

Applications 65:485-499.

Mahey P.(1987) Programação Não Linear: Introdução a Teoria e aos Métodos.

Editora Campus Ltda., Projeto Arquimedes, Rio de Janeiro.

Neuman,E. Linear Programming with Matlab .Disponível em <

http:www.universityatcarbondale>. Acesso em: 25/11/2004.

Önal, H.(1993) A modified simplex approach for solving bilevel linear programming

problems .European Journal of Operational Research, 67:126-135.

Shimizu, K., Ishizuka,Y., Bard, J.F.(1997) Nondifferentiable and Two-level

Mathematical Programming. Boston/London/Dordrecht: Kluwer Academic Publishers,

p.229-258.

Stern,J.M .Otimização e Processos Estocásticos Aplicados à Economia e Finanças

.Disponível em : < http://www.imeusp.br >. Acesso em: 22/08/2004.

67

Page 60: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Vicente L. (1992) Bilevel programming. Master’s thesis, University of Coimbra,

Departament of Mathematics, 88p.

APÊNDICE A

Conjuntos Convexos e Poliedros

68

Page 61: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

São apresentados neste apêndice: alguns conceitos e definições, de forma

geométrica, relativos a poliedros. Sobre poliedros se define o conjunto viável de um

problema de Programação Linear de Dois Níveis (PLDN).

Combinação Convexa : Um ponto y(λ) é combinação convexa de dois pontos, z e w

de um espaço vetorial V, se:

y(λ) = (1 −λ)z + λw, λ ∈ [0, 1].

Geometricamente, no plano, os pontos que pertencem ao segmento de reta que vai

do ponto z até o ponto w são pontos representados por y(λ) e variam de acordo com

o parâmetro λ, como se mostra na Figura AA1.

Figura AA1: Combinação convexa de dois pontos

Conjunto Convexo: Um conjunto C ∈ ℜn é convexo se contiver qualquer

combinação convexa de dois quaisquer de seus pontos.

69

z

w

y(λ)

Page 62: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

(a) (b)

Figura AA.2: Conjuntos: (a) Convexo e (b) Não-Convexo

Ponto Extremo de um conjunto convexo C (ou vértice): Todo ponto x que não

pode ser representado como combinação convexa de dois pontos do conjunto C

distintos de x.

ponto extremo

Figura AA.3: Ponto extremo

Restrição linear: Uma restrição linear, em ℜn, é uma desigualdade da forma g(x)≤0,

onde a função g: ℜn →ℜ é afim linear.

A região viável definida por m restrições, g(x) ≤ 0, g: ℜn →ℜm, é o conjunto {x | gi(x) ≤

0, i= 1, 2,...,m} dos pontos que satisfazem as m desigualdades lineares. Dizemos

que, num ponto viável x, a restrição gi(x) é ligada ou ativa, se verifica a restrição

como igualdade, isto é, gi(x) = 0; em caso contrário, quando gi(x) < 0, se diz que o

ponto satisfaz a restrições com folga.

Poliedros : Um poliedro em ℜn é uma região viável definida por restrições lineares,

estas podem ser representadas pelo sistema de desigualdades: Ax ≤ d, a relação ≤

se avalia componente a componente. Pode-se sempre decompor uma restrição de

igualdade, aTx = δ, em um par de restrições de desigualdades: aTx ≥ δ e aTx ≤ δ.

70

Page 63: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Figura AA4: Poliedros

Em Stern et al (2000) é apresentado o seguinte teorema:

Teorema: Poliedros são convexos, mas não necessariamente são limitados.

Lembrar que:

Um conjunto C ⊂ ℜn, é limitado se a distância entre quaisquer dois pontos no

conjunto é limitada. Quer dizer,

∃δ>0 | ∀x1, x2 ∈ C, ||x1 − x2|| ≤ δ.

A seguir se define subconjuntos convexos associados a poliedros.

Faces : Considere um poliedro em ℜn definido por m desigualdades lineares. Uma

face de dimensão k, de um poliedro P, é um subconjunto de pontos em P que

justamente verifica de forma ativa (n−k) desigualdades linearmente independentes

(l.i.) que definem o poliedro.

Em outras palavras: um ponto que obedece justamente r das restrições linearmente

independentes como igualdade, está sobre uma face de dimensão k = n − r. Um

vértice é uma face de dimensão 0, pois satisfaz n restrições (l.i.) de forma ativa.

Aresta: É uma face de dimensão 1.

E um ponto interior do poliedro P satisfaz todas as restrições de desigualdade com

folga.

Eventualmente pode-se ter num dado vértice, n+1 restrições ativas ou ligadas. Neste

caso, este vértice seria sobre-determinado, pois obedeceria a n + 1 equações com n

incógnitas. Vértices deste tipo são denominados pontos extremos degenerados.

Todavia esta é uma situação instável, pois levaria a mais de uma representação com

restrições (l.i.) deste vértice degenerado, vide Figura AA5.

71

Page 64: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Figura AA5: Vértice Degenerado

Vértices adjacentes : Dois vértices são adjacentes em um poliedro P se o segmento

que os une é uma face de dimensão 1 do poliedro. Quer dizer, os vértices

adjacentes satisfazem as mesmas (n-1) restrições como ativas.

72

Page 65: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

APÊNDICE B

Condições de Karush-Kunh-Tucker

Neste apêndice são apresentados alguns resultados algébricos sobre

sistemas de desigualdades, conhecidos como teorema de alternância. Este teorema

é usado para gerar uma demonstração das condições de Karush-Kunh-Tucker que,

por sua vez são essenciais para propor um problema equivalente ao problema de

Programação Linear de Dois Níveis, foco da dissertação.

Em problemas de Programação Linear, as funções que definem tais

condições são todas convexas, portanto as condições de KKT são necessárias e

suficientes para indicar a otimalidade de uma solução, como é mostrado neste

apêndice.

Um resultado essencial para se estabelecer as condições de KKT é o Lema de

Farkas.

Lema de Farkas (BAZARAA et al., 1990):

Um e somente um dos dois sistemas a seguir possui solução:

SISTEMA 1: Ax ≥ 0 e cTx < 0

SISTEMA 2: wTA = c e w ≥ 0

A ∈ ℜm×n, c ∈ ℜn×1

PROVA:

• Suponha que o sistema 1 e 2 possuem solução .

Então wTA = cT com w ≥ 0, logo:

wTAx = cTx ≥ 0, pois w≥ 0 pelo SISTEMA 2 e Ax ≥ 0, pelo SISTEMA 1, mas contradiz o

fato de cTx < 0 no SISTEMA 1.

Portanto os dois sistemas não podem possuir solução simultaneamente.

73

Page 66: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

• Suponha que o SISTEMA 1 não possui solução, portanto não existe x tal que

cTx < 0, logo cTx ≥ 0.

Considere o seguinte problema de Programação Linear:

(P1) min z = cTx

s.a Ax ≥ 0

Das hipóteses conclui-se que a solução ótima para o problema (P1) é o vetor nulo.

Fazendo x = x’ – x’’, onde x’, x” ≥ 0, e denotando o vetor das variáveis de excesso

nas restrições de desigualdade por f, reescreve-se o problema da seguinte forma:

(P2) min z = cT( x’- x” )

s.a. A( x’ – x”) –f = 0

x’, x”, f ≥ 0

Nota-se que x’ = x” = 0, f = 0 é uma solução ótima para o problema (P2). Pelo

Teorema 4.1 (BAZARAA et al.,1990), considerando zj – cj ≤ 0 para todas as

variáveis, existe uma base B associada a solução básica ótima tal que w = cBB-1 é o

vetor dos multiplicadores de Lagrange (ou seja as varáveis duais) associados a base

B.

Desde que zj – cj = waj – cj ≤ 0 para todas as variáveis, tem-se que wA – cT ≤ 0,

-wA + cT ≤ 0 e -w≤ 0 das colunas das variáveis x’, x” e f respectivamente.

Portanto wA = c, w ≥ 0.(o SISTEMA 2 tem solução)

A demonstração acima foi seguindo a linha de raciocínio em Bazaraa et al. (1990)

outra demonstração pode ser encontrada em Berkovitz (2002).

Interpretação Geométrica do Lema de Farkas

Considerando a seguinte notação:

ai : i-ésima linha de A, i=1,...,m.

E por conveniência de ilustração, reescreve-se o SISTEMA 1 como:

Ay ≤ 0 e cy > 0 (considera-se y= -x)

74

Page 67: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

a1 a2 a3

am

c

Semi-espaço aberto dos vetores y tal que cy > 0

Cone dos vetores y tal que Ay ≤ 0

Figura AB1

a2

a1 am

Semi-espaço aberto dos vetores y tal que cy > 0

Cone dos vetores y tal que Ay ≤ 0

Figura AB2

75

Page 68: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A Figura AB1 ilustra o caso onde o SISTEMA 1 tem solução, ou seja, quando a

interseção do cone {y: Ay ≤ 0} e do semi espaço aberto {y: cy > 0} é não vazio. Neste

sistema, o vetor y, geometricamente, precisa fazer um ângulo maior ou igual que 90º

com cada linha de A, dado que aiy ≤ 0, para i=1,..,m, e fazer um ângulo menor que

90º com o vetor c, dado que cy > 0. E a Figura AB2 ilustra o caso onde o SISTEMA 2

tem solução, ou seja, quando o gradiente c da função objetivo pode ser escrito como

combinação linear positiva do gradiente da linha i de A.

Um exemplo dessa interpretação geométrica é mostrada mais adiante.

Relação entre o Lema de Farkas e as condições de KKT

Considere o problema:

(P3) min z = cTx

s.a Ax ≥ b

x ≥ 0

Seja x’ uma solução viável para (P3) e Sx ≥ s o subconjunto de R que representa as

restrições que são ativas em x’, onde R={ Ax ≥ b, x ≥ 0}.

Se x’ é uma solução ótima, então não existe d ∈ℜn tal que cTd < 0 e Sd ≥ 0 (S(x’+λd)

= Sx’+ λSd = s + λSd ≥ s, λ ≥ 0) isto é, não existe uma direção viável de descida

para a função objetivo do problema (P3).

Pelo Lema de Farkas, ∃w ∈ℜn tal que w ≥ 0 e wTS = c.

Considerando os seguintes conjuntos de índices:

I = {i : aix’ = bi} = conjunto dos índices das restrições Ax ≥ b ativas em x’.

J= {j: xj = 0} = conjunto dos índices das restrições x ≥ 0 ativas em x’.

Tomando w = (ui: i ∈ I, vj: j ∈ J) ≥ 0, pode-se reescrever as condições wTS = c,

w ≥ 0 como:

w ≥ 0 ui ≥ 0, i∈ I (AB.1)

vj ≥ 0, j∈J

wTS = c Σi∈I uiai + Σj∈J vjej = c (AB.2)

76

Page 69: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

As equações (AB.1) e (AB.2) afirmam que o gradiente c da função objetivo pode ser

representado como a combinação linear não-negativa dos gradientes das restrições

ativas em uma solução ótima, onde ai é o gradiente da restrição aix ≥ bi e ej é o

gradiente da restrição xj ≥ 0.

Agora, suponha que x’ satisfaça as equações (AB.1) e (AB.2).

Considere uma solução viável x” qualquer, multiplicando cada termo de (AB.2) por

(x” – x’):

c(x” – x’) = Σi∈I uiai ( x” – x’) + Σj∈J vjej (x” – x’)

cx” – cx’ = Σi∈I uiai x” -Σi∈I ui ai x’ + Σj∈J vj(ejx” – ejx’), sendo ai x’ = bi, tal que i∈I e ejx’=0,

tal que j ∈ J, tem-se que:

cx” – cx’ = Σi∈I ui (ai x” - bi) + Σj∈J vjejx” ≥ 0, sendo ai x’’ ≥ bi, tal que i∈I e ejx’’ ≥ 0 tal que

j ∈ J e as restrições de não-negatividade (AB.1) verdadeiras, conclui-se que:

cx” ≥ cx’.

Como x” é uma solução básica viável qualquer, então x’ é uma solução ótima.

Conclui-se então que as condições de KKT são condições necessárias e suficientes

para a otimalidade de problemas de PL.

Em Bazaara et al (1990) é encontrada a seguinte afirmação: “uma solução viável x’

é ótima para um problema de PL o gradiente c da função objetivo pode ser

representado como a combinação linear não-negativa dos gradientes das restrições

ativas em uma solução ótima”. Pode-se reescrever tal sentença da seguinte

maneira:

Defina os seguintes vetores:

u = (u1,u2,...,um) ≥ 0, i = 1,...,m, v = (v1,v2,…,vn) ≥ 0, j = 1,...,n.

Nota-se que ui e vj devem ser zero correspondendo às restrições não-ativas. Então a

equação (AB.2) pode ser reescrita como uA + vI = c, ou simplesmente, uA + v = c.

Portanto as condições KKT podem ser equivalentemente estabelecidas pelo

problema de achar uma solução (x,u,v) para o seguinte sistema:

(i) Ax ≥ b, x ≥ 0

(ii) uA + v = c, u ≥ 0, v ≥ 0

(iii) u (Ax –b) = 0 e vx = 0

Onde (i) estabelece que o ponto candidato deve ser viável, ou seja, deve satisfazer

às restrições do problema. Essa condição é chamada de viabilidade primal.

77

Page 70: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A condição (ii) é chamada de viabilidade dual, onde u e v são chamados de

multiplicadores de Lagrange (ou variáveis duais) correspondentes às restrições Ax≥b

e x ≥ 0 respectivamente.

Finalmente a condição (iii) refere-se à complementaridade das folgas, desde que

u ≥ 0 e Ax ≥ b, então u( Ax –b) = 0 ui é zero ou então a i-ésima variável de

folga é zero que corresponde à i-ésima restrição em Ax ≥ b ativa. Similarmente vx =

0 xj = 0 ou vj = 0.

Observações:Se em um determinado problema de Programação Linear, um vértice da sua região

viável não é ótimo, é porque ainda existe direções de melhora. Isso equivale ao

SISTEMA 1 do Lema de Farkas possuir solução. Mas se ao contrário, este vértice for a

solução ótima para o problema, então o SISTEMA 2 possui solução .

Para fazer uma ilustração destes resultados, que envolvem conceitos de Álgebra

Linear entre outros, considere o seguinte problema, que consiste no Problema

Relaxado do Exemplo 2.1 do Capítulo 2:

min -y

s.a x+y ≥ 5

- x+y ≥ 0

- y ≥ -5

x, y ≥ 0

O gráfico da região viável pode ser observado na Figura AB1.

Considere o conjunto de restrições do problema definido como:

R = {r(i), i=1,2,3 }

Onde:

r(1): x+y ≥ 5

r(2): - x+y ≥ 0

r(3): -y ≥ -5

78

Page 71: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

O conjunto V de vértices da região viável é:

V = {(5/2,5/2), (0,5), (5,5) }

Figura AB11

Já foi visto no Capítulo 2 que a solução ótima é a combinação convexa dos vértices

A = (0,5) e C = (5,5)

Agora analisando sob o ponto de vista das condições de KKT

Analisando o ponto (5/2, 5/2)

Sendo o ponto (5/2, 5/2) viável, verifica-se se o gradiente c da função objetivo pode

ser representado como a combinação linear não-negativa dos gradientes das

restrições ativas em (5/2, 5/2).

As restrições ativas nesse ponto são r(1) e r(2)

(0 ,-1) = u1(1,1) + u2(-1,1)

0 = u1-u2 u1 = -1/2

-1 = u1+u2

Portanto o ponto (5/2, 5/2) não é solução ótima para o problema.

Analisando geometricamente:

Pode-se notar da Figura AB22 que o ponto

(5/2, 5/2) não é solução ótima para o problema,

Pois o vetor c não pode ser escrito como combina-

cão linear não-negativa dos gradientes das restri-

ções r(1) e r(2).

Figura AB22

Analisando o ponto (5,5)

79

B

A C

Page 72: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

As restrições ativas em (5,5) são r(2) e r(3):

(0,-1) = u2(-1,1) + u3(0,-1)

0 = -u2 u2 = 0

-1 = u2-u3 u3 = 1

Portanto, como o gradiente c da função objetivo pode ser representado como a

combinação linear não-negativa dos gradientes das restrições ativas em (5,5),

conclui-se que o ponto (5,5) é solução ótima para o problema.

Geometricamente, podemos observar esse fato no gráfico da Figura AB33.

c=a3

A viabilidade primal é:

Figura AB33

x + y – w1 = 5 w1= 5

- x + y – w2 = 0 w2 = 0 considerando (x,y) = (5,5)

- y – w3 = - 5 w3 = 0

x, y, w1, w2, w3 ≥ 0

A viabilidade dual é:

u1 – u2 + v1 = 0

u1 + u2 – u3 + v2 = - 1 considerando u2 = 0 e u3 = 1 u1 = v1 = v2 = 0

u1, u2, u3, v1, v2 ≥ 0

A complementaridade das folgas:

u1w1 = 0 0×5 = 0

u2w2 = 0 0×0 = 0

u3w3 = 0 1×0 = 0

xv1 = 0 5×0 = 0

yv2 = 0 5×0 = 0

80

Page 73: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

APÊNDICE C

Obtenção de vértices adjacentes

Sabe-se que para a solução de em um problema de Programação Linear,

geralmente é aplicado o método Simplex para a sua resolução que consiste em um

método que percorre vértice a vértice o conjunto viável até que a solução seja

encontrada; então se em uma determinada iteração o algoritmo encontra-se no

vértice x’ que ainda não é o ponto solução, irá buscar o próximo vértice adjacente

que melhora o valor da função objetivo. Em alguns algoritmos para a resolução de

Problemas de Dois Níveis, precisa-se também da obtenção de vértices adjacentes a

um determinado vértice. Um exemplo é o Algoritmo do k-ésimo melhor vértice que

no seu desenvolvimento necessita:

obter todos os vértices adjacentes a x’ em W (lembrando que W é o conjunto

viável do Problema Relaxado)

obter todos os vértices adjacentes a x’em W tais que f(x) ≥ f(x’).

Nota-se que se for preciso procurar os vértices adjacentes a x’, é porque tal ponto

não é viável para o problema (PLDNP). Então busca-se um vértice adjacente,

mesmo sabendo que este irá ‘piorar’ o valor da função objetivo, que seja, porém,

viável para o problema (PLDNP).

Para a obtenção dos vértices adjacentes a um vértice x’ é necessária a tabela do

Simplex quando se está em x’.

Assume-se x’ não-degenerado, pois segundo Shimizu et al. (1997) quando x’ é

degenerado torna-se, computacionalmente, muito trabalhosa a obtenção destes

vértices.

Seja xB = (x’j1,....,x’jm) sendo j1,....,jm elementos do conjunto J onde J é o conjunto

dos índices das variáveis que estão na base.

81

Page 74: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Tabela AC1

Seja x’ji = b’i, para i = 1, ...,m, pela não degeneração de x’ tem-se que b’i > 0 ∀i.

Para cada j ∉ J, faça:

θj = min {b’i / aij } se aij > 0

+∞ , se aij ≤ 0 ∀i.

Onde θj equivale à mínima razão quando xj entra na base. Para cada r ∉ J, defina:

xr(δ) = (x1r(δ),.....,xn

r(δ))T, onde:

xjir(δ) = b’i – airδ, para i = 1,..., m.

xRr(δ) = δ

xjr(δ) = 0, ∀j∉ J ∪ {r}

82

b’1

. .b’

i

. .b’

m

1 … 0 …. 0 …. a1j……

. . . . 0 … 1 …. 0 …. a

ij …….

xj1

. . . . . x

jm

0 ….. 0 ….. 0 …... c’j … f’

xj1 … x

jm ... xj

Page 75: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Então o conjunto { xr(θr); r∉ J tal que θr é finito } é o conjunto de vértices adjacentes

de x’ em W .

Para exemplificar tal esquema, considere o seguinte problema:

min f1(x1, x2) = - x1-3x2

s.a x1 ≥ 0 , x2 solução de

min f2(x1, x2) = y

s.a - x1+ x2 ≤ 3

x1 +2 x2 ≤ 12

4 x1 – x2 ≤ 12

x2 ≥0

Em linhas gerais os passos que o Algoritmo do k-ésimo melhor vértice faz são:

Resolve-se o Problema Relaxado pelo método Simplex encontrando como

solução o ponto (x1, x2, x3, x4, x5) = (2,5,0,0,9)

Resolve-se o Problema do seguidor para x1 = 2: S(2), e obtém-se uma solução x2*,

se x2= x2*, então (x1, x2, x3, x4, x5) = (2,5,0,0,9) é solução do problema (PLDNP).

Caso contrário, encontra-se os vértices adjacentes a (x1, x2, x3, x4, x5), avalia-se

tais vértices para ver qual deles ‘piora’ menos o valor da função objetivo 1 e volta-se

para o passo 2.

Ao resolver o problema do seguidor, nota-se que a solução do Problema Relaxado

não é solução do problema (PLDNP). Portanto tem-se que obter os vértices

adjacentes a este ponto solução. Este procedimento é feito da seguinte maneira:

83

Page 76: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Tabela AC2: Tabela ótima do Problema Relaxado

Observa-se na Tabela AC2 que o conjunto J = {1,2,5} e os índices das variáveis não-

básicas são, portanto, r = 3 e 4.

O gráfico da região viável do Problema Relaxado está representado pela parte

hachurada da Figura AC1, e o da região viável do problema (PLDNP) está

representada pela fronteira em negrito.

P1= (2,5)

9

5

2

0 0 3 -1 1

0 1 0.3333 0.3333 0

1 0 -0.6667 0.3333 0

X5

x2

x1

0 0 0.3333 1.3333 0 0 0 0

x1 x

2 x

3 x

4 x

5

-17

84

Page 77: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Figura AC1

Por este gráfico nota-se que o ponto P1= (2,5,0,0,9) não é uma solução viável para o

problema (PLDNP); logo tem-se que obter vértices adjacentes a P1.

Observação:

Considerando P1 não degenerado e sendo um problema bidimensional, P1 tem dois

vértices adjacentes.

Fazendo r = 3, o índice da variável não-básica a entrar na base:

Tabela AC3

9

5

2

0 0 3 -1 1

0 1 0.3333 0.3333 0

1 0 -0.6667 0.3333 0

X5

x2

x1

0 0 0.3333 1.3333 0 0 0 0

x1 x

2 x

3 x

4 x

5

85

Page 78: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

θ3= min {9/3,5/0.3333, +∞} = min {3,15.0015, +∞} = 3

Então:

x13 = 2 – (-0.6667) ×3 = 4

x23 = 5- 0.3333×3 = 4

x33 = θ3 = 3

x43 = 0

x53 = 9 - 3×3 = 0

Um vértice adjacente é:

Va1=(4,4,3,0,0)

r = 4

Agora considerando x4 a próxima variável não-básica a entrar na base:

Tabela AC3

9

5

2

0 0 3 -1 1

0 1 0.3333 0.3333 0

1 0 -0.6667 0.3333 0

X5

x2

x1

0 0 0.3333 1.3333 0 0 0 0

x1 x

2 x

3 x

4 x

5

86

Page 79: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

θ4= min {+∞,5/0.3333, 2/0.3333} = min {+∞,15.0015, 6.0006} = 6

Então:

x14 = 2 – (0.3333) ×6 = 0

x24 = 5- 0.3333×6 = 3

x34 = 0

x44 = θ4 = 6

x54 = 9 – (-1)×6 = 15

O outro vértice adjacente é:

Va1

Va2 = (0,3,0,6,15) Va2

Figura AC2

Pelo gráfico da Figura AC2, observa-se que o vértice Va1 é viável para o problema

(PLDNP), e o valor da função objetivo 1 neste vértice é -16, ao passo que o vértice

Va2 não é viável e o valor da função objetivo 1 neste vértice é -9. Portanto, resolve-

se o Problema do seguidor para x1 = 4 e obtém-se como solução de S(4): x2*=4.

Sendo x2=4=x2*, tem-se que (4,4,3,0,0) é solução do problema (PLDNP).

87

Page 80: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Anexo

Implementação Computacional

Este anexo apresenta a implementação computacional do Algoritmo Local e

do Algoritmo do k-ésimo melhor vértice, utilizando como entradas os dados do

problema do Exemplo-teste 2 (de dimensão 2) do Capítulo 5.

• Algoritmo Local

Para a implementação do Algoritmo Local é necessário:

- Implementar o algoritmo que calcula o ponto de equilíbrio (z’,s’). Tal implementação

está inserida na implementação do Algoritmo Local.

88

Page 81: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

- Obter as tabelas ótimas dos problemas P(M, z’) e P(M, s’). A implementação para

se obter tais tabelas é encontrada em Neuman (2004), fazendo as devidas

alterações para o problema em questão.

Observação: A função linprog do Matlab é utilizada para resolver os problemas de Programação

Linear ao longo da implementação.

%%%% ALGORITMOLOCAL31 %%%%

%%%% Calculando um ponto de equilíbrio %%%%

tol=0.0001;

M=100;

deltaM=10;

k=1;

[zv,s]=exemplo2z;

V=s(2);

U1=s(3);

U2=s(4);

U3=s(5);

U4=s(6);

U5=s(7);

X=zv(1);

Y=zv(2);

W1=zv(3);

W2=zv(4);

W3=zv(5);

W4=zv(6);

W5=zv(7);

solpldnp=0;

k=1;

while solpldnp<=tol

c1=[-1];

d1=[-3+M*V];

f1=[M*U1];

g1=[M*U2];

h1=[M*U3];

89

Page 82: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

i1=[M*U4];

j1=[M*U5];

A1=[1;1;2;-1;1];

A2=[2;-2;-1;2;2];

A3=[-1;0;0;0;0];

A4=[0;1;0;0;0];

A5=[0;0;1;0;0];

A6=[0;0;0;1;0];

A7=[0;0;0;0;1];

ld=[10;6;21;18;38];

d=[c1 d1 f1 g1 h1 i1 j1];

ADeq=[A1 A2 A3 A4 A5 A6 A7];

ldeq=ld;

LB=zeros(1:7);

UB=[];

XYW1W2W3W4W5=linprog(d,[],[],ADeq,ldeq,LB,UB);

disp('a solução de P(M,sf) é:');

XYW1W2W3W4W5;

X=XYW1W2W3W4W5(1);

Y=XYW1W2W3W4W5(2);

W1=XYW1W2W3W4W5(3);

W2=XYW1W2W3W4W5(4);

W3=XYW1W2W3W4W5(5);

W4=XYW1W2W3W4W5(6);

W5=XYW1W2W3W4W5(7);

s=[0 V U1 U2 U3 U4 U5]';

zv=[X Y W1 W2 W3 W4 W5]';

ss=[U1 U2 U3 U4 U5 V];

subs2=find(ss>tol);

disp(' o pto de equilíbrio é')

[s' zv'];

%%%% Analisando a tabela do problema P(M,s') %%%%

type = 'min';

M=100;

c = [-1 -3+M*V M*U1 M*U2 M*U3 M*U4 M*U5];

90

Page 83: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

A = [1 2 -1 0 0 0 0;-1 -2 1 0 0 0 0;1 -2 0 1 0 0 0;-1 2 0 -1 0 0 0;2 -1 0 0 1 0 0;-2 1 0 0 -1 0 0;-1

2 0 0 0 1 0;1 -2 0 0 0 -1 0;1 2 0 0 0 0 1;-1 -2 0 0 0 0 -1];

b = [10;-10;6;-6;21;-21;18;-18;38;-38];

if type == 'min'

mm = 0;

else

mm = 1;

c = -c;

end

str = 'Would you like to monitor the progress of computations?';

A = -A;

b = -b(:);

c = c(:)';

[m, n] = size(A);

A = [A eye(m) b];

A = [A;[c zeros(1,m+1)]];

question_ans = questdlg(str,'Make a choice Window','Yes','No','No');

if strcmp(question_ans,'Yes')

p1 = 'y';

else

p1 = 'n';

end

if p1 == 'y'

disp(sprintf('\n\n Initial tableau'))

A;

disp(sprintf(' Press any key to continue ...\n\n'))

pause

end

subs = n+1:n+m;

[bmin, row] = Br(b);

tbn = 0;

while ~isempty(bmin) & bmin < 0 & abs(bmin) > eps

if A(row,1:m+n) >= 0

disp(sprintf('\n\n Empty feasible region\n'))

varargout(1)={subs(:)};

varargout(2)={A};

91

Page 84: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

varargout(3) = {zeros(n,1)};

varargout(4) = {0};

return

end

col = MRTD(A(m+1,1:m+n),A(row,1:m+n));

if p1 == 'y'

disp(sprintf(' pivot row-> %g pivot column-> %g',...

row,col))

end

subs(row) = col;

A(row,:)= A(row,:)/A(row,col);

for i = 1:m+1

if i ~= row

A(i,:)= A(i,:)-A(i,col)*A(row,:);

end

end

tbn = tbn + 1;

if p1 == 'y'

disp(sprintf('\n\n Tableau %g',tbn))

A;

disp(sprintf(' Press any key to continue ...\n\n'))

else

disp('a tabela final é')

A;

end

[bmin, row] = Br(A(1:m,m+n+1));

end

x = zeros(m+n,1);

x(subs) = A(1:m,m+n+1);

x = x(1:n);

if mm == 0

z = -A(m+1,m+n+1);

else

z = A(m+1,m+n+1);

end

disp(sprintf('\n\n Problem has a finite optimal solution\n\n'))

disp(sprintf('\n Values of the legitimate variables:\n'))

92

Page 85: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

for i=1:n

disp(sprintf(' x(%d)= %f ',i,x(i)));

end

disp(sprintf('\n Objective value at the optimal point:\n'))

disp(sprintf(' z= %f',z))

disp(sprintf('\n Indices of basic variables in the final tableau:'))

varargout(1)={subs(:)};

varargout(2)={A};

varargout(3) = {x};

varargout(4) = {z};

g=A(m+1:m+1,1:7);

ctz= g - [0 M*V M*U1 M*U2 M*U3 M*U4 M*U5];

pause

cf=A(m+1:m+1,1:n);%%%%% coeficiente final %%%%

subsz=find(cf<=tol);%%%%%% ind. das var. básicas %%%%

%%%% Analisando a tabela de P(M, z') %%%%

type = 'min';

c=[M*W1 M*W2 M*W3 M*W4 M*W5 M*Y];

AZ = [2 2 1 -2 -2 1;-2 -2 -1 2 2 -1];

b = [3;-3];

if type == 'min'

mm = 0;

else

mm = 1;

c = -c;

end

str = 'Would you like to monitor the progress of computations?';

AZ = -AZ;

b = -b(:);

c = c(:)';

[m, n] = size(AZ);

AZ = [AZ eye(m) b];

AZ = [AZ;[c zeros(1,m+1)]];

question_ans = questdlg(str,'Make a choice Window','Yes','No','No');

if strcmp(question_ans,'Yes')

93

Page 86: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

p1 = 'y';

else

p1 = 'n';

end

if p1 == 'y'

disp(sprintf('\n\n Initial tableau'))

AZ;

disp(sprintf(' Press any key to continue ...\n\n'))

pause

end

subs = n+1:n+m;

[bmin, row] = Br(b);

tbn = 0;

while ~isempty(bmin) & bmin < 0 & abs(bmin) > eps

if AZ(row,1:m+n) >= 0

disp(sprintf('\n\n Empty feasible region\n'))

varargout(1)={subs(:)};

varargout(2)={AZ};

varargout(3) = {zeros(n,1)};

varargout(4) = {0};

return

end

col = MRTD(AZ(m+1,1:m+n),AZ(row,1:m+n));

if p1 == 'y'

disp(sprintf(' pivot row-> %g pivot column-> %g,...row,col'))

end

subs(row) = col;

AZ(row,:)= AZ(row,:)/AZ(row,col);

for i = 1:m+1

if i ~= row

AZ(i,:)= AZ(i,:)-AZ(i,col)*AZ(row,:);

end

end

tbn = tbn + 1;

if p1 == 'y'

disp(sprintf('\n\n Tableau %g',tbn))

AZ;

94

Page 87: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

disp(sprintf(' Press any key to continue ...\n\n'))

pause

else

disp('a tabela final é')

AZ;

end

[bmin, row] = Br(AZ(1:m,m+n+1));

end

x = zeros(m+n,1);

x(subs) = AZ(1:m,m+n+1);

x = x(1:n);

if mm == 0

z = -AZ(m+1,m+n+1);

else

z = AZ(m+1,m+n+1);

end

disp(sprintf('\n\n Problem has a finite optimal solution\n\n'))

disp(sprintf(' z= %f,z'))

cts=AZ(m+1:m+1,1:n);

%%%% Analisando as informacões das tabelas %%%%

disp('o coeficiente cts é ')

AZ(m+1:m+1,1:n);

disp('o coeficiente da matriz é ')

AZ(2:2,1:n);

cM=AZ(2:2,1:n);

ind1=find(ctz<(-0.5));

if ind1==[]

disp('a solução do PLDNP é ')

zv

break

else

disp(' a variável não-básica,com coeficiente neg é’)

ind1;

colz=ind1;

pause

end

95

Page 88: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

ind2=find(cts<=tol)

pause

for i=1:2

ind2(i)==subs2;

d=ind2(i)==subs2;

n1=norm(d);

ic=ind2(i);%% ind. corrente

cM1= cM(1:1,ic:ic);

if n1==1

disp(' nada a analisar ')

else if cM1<tol

disp('a sol. local do PLDNP é ')

zv

break

else

disp('analisar a variável de índice:')

cols=ind2;

end

end

end

pause

pause

Akii=A(1:10,colz:colz);

pause

Ab=A(1:10,18:18);

ind7=find(Ab>tol);%%%% encontrando o vetor solução

ind71=ind7(1);

ind72=ind7(2);

ind73=ind7(3);

ind74=ind7(4);

ind75=ind7(5);

Ak1=A(ind71:ind71,colz:colz);

Ak2=A(ind72:ind72,colz:colz);

Ak3=A(ind73:ind73,colz:colz);

Ak4=A(ind74:ind74,colz:colz);

Ak5=A(ind75:ind75,colz:colz);

Aki=[Ak1;Ak2;Ak3;Ak4;Ak5];

96

Page 89: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

for i=1:7,

df=i==subsz;

dff=norm(df);

if dff>0

ig=df;

ind8=find(ig==1);

G(i)=-Aki(ind8);

else if i==colz

G(i)=1;

else

G(i)=0;

end

end

end

G1=G(1);

G2=G(2);

G3=G(3);

G4=G(4);

G5=G(5);

G6=G(6);

G7=G(7);

G=[G1 G2 G3 G4 G5 G6 G7]';

pause

f=[G2 G3 G4 G5 G6 G7];

Aeq=[Y W1 W2 W3 W4 W5;-Y -W1 -W2 -W3 -W4 -W5];

beq=[0;0];

LB=zeros(1:6);

UB=[];

VU1U2U3U4U5=linprog(f,Aeq,beq,[],[],LB,UB);

disp ('o valor otimo e');

f*(VU1U2U3U4U5);

r=f*(VU1U2U3U4U5);

97

Page 90: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

pause

if r <= tol

disp ('analisar o problema a partir de s:')

VU1U2U3U4U5;

s=VU1U2U3U4U5;

V=s(1);

U1=s(2);

U2=s(3);

U3=s(4);

U4=s(5);

U5=s(5);

pause

solpldnp=tol;

kf=tol;

else

disp('a sol.do PLDNP é:')

zv

solpldnp=1;

kf=1

end

solpldnp=kf;

cf=1;

k=k+1;

end

end

disp ('a solução do PLDNP é:')

zv

end

end

end

end

end

• Algoritmo do k-ésimo melhor vértice

98

Page 91: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Para a implementação deste algoritmo é necessária a obtenção de vértices

adjacentes a um determinado vértice V, e para isso é necessária a tabela do método

Simplex quando o vetor da solução viável para o problema é o vértice V, para se

obter a tabela ótima do Problema Relaxado é utilizada a função simplex do Matlab. A

implementação para a obtenção de vértices adjacentes é dada após a descrição da

implementação do Algoritmo do k-ésimo melhor vértice.

%%%% Algoritmo do k-ésimo melhor vértice %%%%%

c1=[-1];

d1=[-3];

e1=[0];

e2=[0];

e3=[0];

e4=[0];

e5=[0];

A1=[1;1;2;-1;1];

A2=[2;-2;-1;2;2];

A3=[-1;0;0;0;0];

A4=[0;1;0;0;0];

A5=[0;0;1;0;0];

A6=[0;0;0;1;0];

A7=[0;0;0;0;1];

b=[10 6 21 18 38]';

i=1;

tol=0.001;

f=[c1 d1 e1 e2 e3 e4 e5]; AA=[A1 A2 A3 A4 A5 A6 A7];b

LB=zeros(1:7);

UB=[];

XiYiWi1Wi2Wi3Wi4Wi5=linprog(f,[],[],AA,b,LB,UB);

disp('a solução do PR é:');

XiYiWi1Wi2Wi3Wi4Wi5

V1=XiYiWi1Wi2Wi3Wi4Wi5;

pause

Xi=XiYiWi1Wi2Wi3Wi4Wi5(1);

Yi=XiYiWi1Wi2Wi3Wi4Wi5(2);

99

Page 92: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Wi1=XiYiWi1Wi2Wi3Wi4Wi5(3);

Wi2=XiYiWi1Wi2Wi3Wi4Wi5(4);

Wi3=XiYiWi1Wi2Wi3Wi4Wi5(5);

Wi4=XiYiWi1Wi2Wi3Wi4Wi5(6);

Wi5=XiYiWi1Wi2Wi3Wi4Wi5(7);

%% resolvendo o prob.do seguidor para Xi fixo %%

d2=[3];

A=[-1;1;2;-1;1]

h=A*Xi;

bb=[-10;6;21;18;38];

d=[d2];AD=[A2];ld=[bb-h];

LB=zeros(1:1);

UB=[];

YS=linprog(d,AD,ld,[],[],LB,UB);

disp('a solução do seguidor para XI fixo é :')

YS

pause

Z=YS-Yi;

type = 'min';

M=100;

A=[1 2 -1 0 0 0 0;1 -2 0 1 0 0 0;2 -1 0 0 1 0 0;-1 2 0 0 0 1 0;1 2 0 0 0 0 1];

b=[10;6;21;18;38]

c=[-1 -3 0 0 0 0 0]

rel= '= = = = ='

m=5;

n=7;

[A, subs, x, z] = simplexe2(type, c, A,rel, b);

while abs(Z)>tol

f=[c1 d1 e1 e2 e3]

%%%% achar os vértices adjacentes a V1 através da tabela ótima %%%%

disp('os vértices adjacentes a V=i são (considerando a hipótese de V ser não

degenerado)' )

[VA1novo2];

[VA1novo22];

100

Page 93: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

g1=[VA1novo2]';

g2=[VA1novo22]';

v1=f*g1

pause

v2=f*g2

i=i+1;

if v1 < v2

%if (-49)<(-27)

disp('vértice a ser avaliado é ')

VA1novo2

vc=VA1novo2;

XiYiWi1Wi2Wi3Wi4Wi5=vc;

else

disp ('vértice a ser avaliado é ')

VA1novo22;

vc=VA1novo22;

XiYiWi1Wi2Wi3Wi4Wi5=vc;

end

XiYiWi1Wi2Wi3Wi4Wi5=vc;

break

pause

Xi=XiYiWi1Wi2Wi3Wi4Wi5(1);

Yi=XiYiWi1Wi2Wi3Wi4Wi5(2);

d2=[1];

h=A1*Xi;

d=[d2];AD=[A2];ld=[b-h];

LB=zeros(1:1);

UB=[];

YS=linprog(d,AD,ld,[],[],LB,UB);

disp('a solução do seguidor para Xi fixo é :')

YS

pause

Z=YS-Yi;

end

disp('a solução do PLDN é ')

vc

disp(' o número de iterações é ')

101

Page 94: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

i

end

end

Implementação de como se obter vértices adjacentes a um determinado

vértice

function [VA1novo2]=VerticeAdjacente12(XiYiWi1Wi2Wi3)

%%%% Vértice adjacente 1 %%%%

tol=0.001;

type = 'min';

M=100;

A=[1 2 -1 0 0 0 0;1 -2 0 1 0 0 0;2 -1 0 0 1 0 0;-1 2 0 0 0 1 0;1 2 0 0 0 0 1];

b=[10;6;21;18;38]

c=[-1 -3 0 0 0 0 0]

rel= '= = = = ='

m=5;

n=7;

[A, subs, x, z] = simplexe2(type, c, A, b);

disp('o ind. das var. básicas na ordem')

subs

pause

subs=[2 1 3 5 4];

cf=A(m+1:m+1,1:n);%%% coef.da f.o.

ind1=find(cf>tol)

pause

disp('os ind. das var.não básicas são')

ind1

ind2=find(cf<tol)

pause

Ib=ind2;

Inb=ind1;

Inb=[Inb(1) Inb(2)];

102

Page 95: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

Inb1=Inb(1);

col=Inb(1);

t=A(1:m,Inb1:Inb1);

b=A(1:m,m+n+1:m+n+1);%% b é a coluna da solução das var. básicas

pause

%%%% achando o teta,ou seja, a mínima razão %%%%

[row, mi] = MRTVA(t, b);

disp('a min razão é ')

mi;

%%%% são 5 as var. básicas %%%%

X1=sym('X1');

X2=sym('X2');

X3=sym('X3');

X4=sym('X4');

X5=sym('X5');

X6=sym('X6');

X7=sym('X7')

X=[X1 X2 X3 X4 X5 X6 X7];

for j=1:7,

j==subs;

d=j==subs;

n=norm(d);

ind=find(d==1);

if n==1

x= b(ind)-(mi*t(ind));

disp('para j=j X é')

x;

j;

X(1,j)=x;

else if j==Inb1

103

Page 96: INTRODUÇÃO · Micro Econômicas. A estrutura da ... Na seção 1.1 deste capítulo é mostrada a formulação geral do Problema de ... uma função, ou seja, uma aplicação ponto

x=mi;

disp('para j=j X é')

x;

j;

X(1,j)=x;

else

x=0;

disp('para j=j X é')

x;

j;

X(1,j)=x;

end

end

end

disp(' o vértice adjacente 1 é')

X

VA1novo=X

104