Acessibilidade / Reportar erro

Um novo algoritmo para soluções ótimas locais do problema linear de dois níveis

Resumos

Neste artigo, apresentamos um algoritmo para encontrar soluções ótimas locais dos problemas lineares de dois níveis. A cada ponto viável corrente, o método busca por melhores soluções no conjunto dos pontos que se encontram em suas faces adjacentes. Em cada passo tenta-se encontrar as faces adjacentes de maior dimensão, na esperança de acelerar o processo. Uma prova de corretude do método é fornecida, e testes computacionais foram realizados.

Programação em dois níveis; problema linear de dois níveis; solução ótima local


In this paper, we present a algorithm to find locally optimal solutions of bilevel linear problems. At each current feasible point, the method search for better solutions that lie in their adjacent faces. Each iteration tries to find adjacent faces having large dimension, to accelerate the process. A proof of correctness is given, and computacional tests were realized.

Bilevel programming; bilevel linear programming; local optimum


Departamento de Ciências Matemáticas e Naturais, CEUNES, UFES - Univ Federal do Espírito Santo, 29932-540 São Mateus, ES, Brasil. ldsecchin@ceunes.ufes.br

RESUMO

Neste artigo, apresentamos um algoritmo para encontrar soluções ótimas locais dos problemas lineares de dois níveis. A cada ponto viável corrente, o método busca por melhores soluções no conjunto dos pontos que se encontram em suas faces adjacentes. Em cada passo tenta-se encontrar as faces adjacentes de maior dimensão, na esperança de acelerar o processo. Uma prova de corretude do método é fornecida, e testes computacionais foram realizados.

Palavras-chave: Programação em dois níveis, problema linear de dois níveis, solução ótima local.

ABSTRACT

In this paper, we present a algorithm to find locally optimal solutions of bilevel linear problems. At each current feasible point, the method search for better solutions that lie in their adjacent faces. Each iteration tries to find adjacent faces having large dimension, to accelerate the process. A proof of correctness is given, and computacional tests were realized.

Keywords: Bilevel programming, bilevel linear programming, local optimum.

1. Introdução

Problemas de dois níveis foram considerados primeiramente por Bracken and McGill ([4]). São compostos por dois agentes que tomam decisões em níveis de hierarquia distintos. Enquanto o agente no topo da hierarquia (líder) toma sua decisão, o agente subordinado (escravo ou seguidor) procura, dentre as opções que lhe são oferecidas pelo líder, aquelas que melhor lhe convém. Neste caso, o escravo pode tomar decisões que cooperam com os interesses do líder (problema otimista) ou decisões que vão de encontro aos interesses do líder (problema pessimista). Assim, problemas envolvendo relações de hierarquia entre dois níveis de decisão podem ser modelados como problemas de dois níveis. Há casos, por exemplo, em economia, projeto de redes, engenharia e teoria dos jogos [4].

Mais especificamente, formulamos o problema de dois níveis como

O objetivo do líder é portanto minimizar F (x, y), enquanto que, fixado x, o escravo procura minimizar f (x, y). Neste artigo, consideramos o caso particular onde as funções F, f, G e g são lineares: o problema linear de dois níveis, dado por

onde , . Hansen et al. em 1992 mostraram que PLDN é NP-difícil (veja [6, 7]).

Algoritmos para PLDN foram propostos. Dentre eles, o método do k-ésimo melhor vértice de Bialas e Karwan, os algoritmos branch and bound de Bard e Moore, e posteriormente de Hansen et al., o método sequencial de Júdice e Faustino baseado em problemas de complementariedade linear, métodos de penalização de Önal, de White e Anandalingam, e de Campêlo, o algoritmo de Tuy et al., métodos de pontos interiores, e métodos baseados em programação multi-objetivo. Para uma revisão desses métodos, recomendamos [1, 3, 5, 6, 9]. Também, metaheurísticas foram utilizadas [2, 10, 11, 13]. Para uma revisão bibliográfica das aplicações e métodos de solução, recomendamos [4, 8].

Neste artigo, propomos um novo método para encontrar soluções ótimas locais de PLDN. A cada ponto viável corrente, o método busca por melhores soluções no conjunto dos pontos que se encontram em suas faces adjacentes. Em cada passo tenta-se encontrar as faces adjacentes de maior dimensão, na esperança de acelerar o processo. Para isso, escrevemos o problema do nível inferior em suas condições de Karush-Kuhn-Tucker (KKT). Nesse sentido, o algoritmo assemelha-se com o método de conjuntos ativos em programação não linear, com a diferença que aqui as condições KKT são restrições de um outro problema (do nível superior).

Este trabalho é organizado como segue. Na seção 2, apresentamos brevemente os conceitos e resultados que embasam nosso método. Na seção 3, o algoritmo e a prova de sua corretude, e na seção 4, testes computacionais. Finalmente, nossas conclusões são expostas na seção 5.

2. Definições e Propriedades

Consideremos o PLDN. Chamamos (1.1), (1.2) de problema do nível superior e (1.3), (1.4) de problema do nível inferior. Nesse sentido, (1.1) e (1.3) são as funções objetivo dos níveis superior e inferior, respectivamente, e (1.2) e (1.4) são as restrições dos níveis superior e inferior, respectivamente. Consideramos também os seguintes conjuntos:

• os conjuntos viáveis dos problemas do nível superior,

, e do nível inferior, ;

• graf S = {(x, y); yS(x)}, onde .

Dizemos que (x, y) é racional se (x, y) ∈ graf S e admissível se (x, y) ∈ ϒ - graf S ∩ Ωu (conjunto admissível). Nesse estágio, PLDN pode ser reescrito como

Um importante conceito para o desenvolvimento de nosso algoritmo é o de face de um conjunto poliedral:

Definição 2.1 ([12]). Dado um conjunto poliedral um subconjunto Q . D é dito ser uma face de D se existir um conjunto J . {1, . . . ,m} tal que

Dados J e sua face associada Q(J), dizemos que Q é face d-dimensional de D (ou face de dimensão d), 0 ≤ dn, se existir z0Q(J) tal que , e a matriz [A]i∈j, cujas linhas de A que correspondem aos índices em J, tem posto n - d. Mais ainda, dizemos que Q(J) é face não degenerada se |J| = n - d.

Comumente diz-se que uma face 0-dimensional é um vértice, e uma face 1-dimensional é uma aresta. Diremos também que uma face Q é adjacente à z se z ∈ Q. Notemos ainda que cada face é um conjunto poliedral.

A fim de resolver PLDN localmente, reescrevemos o problema do nível inferior em suas condições de otimalidade de Karush-Kuhn-Tucker. Isto é, y ∈ S(x) se, e somente se

Para conjuntos , consideremos o conjunto M (I, J) das soluções do sistema

Agora, o conjunto das soluções de (2.2) é a união dos finitos M (I, J) [6]. Com isso, estabelecemos o conhecido resultado:

Teorema 2.1 (|6|). graf S é igual à uma união finita de faces del.

Assim, diremos que uma face é racional se for face de graf S, isto é, se só contiver pontos racionais. Considerando (2.1), nosso métodos buscará, dentre as faces racionais, soluções ótimas locais que pertençam à Ωu.

3. O Algoritmo

Aqui, estamos supondo que todas as faces de Ω são não degeneradas. Procurar então faces de Ωl adjacentes a um ponto e que estão em graf S pode ser feito obrigando para certo no sistema (2.3)-(2.7). Ao fazer isso, liberamos uma restrição para que seja não ativa. No algoritmo seguinte, utilizamos três conjuntos para controle dos índices das restrições do nível inferior: L para índices de restrições que foram liberadas em todas as faces adjacentes estudadas num ponto corrente; Q para índices de restrições que foram liberadas no estudo de uma face adjacente a um ponto corrente; e R para índices de restrições que foram testadas (quanto à racionalidade da face que induzem) no estudo de uma face adjacente a um ponto corrente.

A seguir, apresentamos o algoritmo, e logo após a prova de sua corretude. Em seguida, aplicamo-lo a um problema exemplo.

Algoritmo 1

Entrada: PLDN viável. Supõe-se todas as faces de Ω não degeneradas.

Saída: Uma solução ótima local de PLDN ou a constatação de sua ilimitabilidade.

1. (Inicialização) Calcule usando uma heurística. Faça L, k ← 0e defina

Se (x0, y0) for vértice de Ωl, vá para o passo 2. Caso contrário, execute o passo 5 com Q = .

2. Faça Q e R. Vá para o passo 3.

3. (Detecção de faces racionais adjacentes) Se Q, escolha .

Se Q = , escolha se possível . Se tal escolha não for possível, vá para o passo 4.

Verifique se o sistema

admite solução, onde . Se admite solução, digamos λk, faça

onde Se o sistema anterior não admite solução, faça . Se vá para o passo 4. Se repita o passo 3.

4. (Teste de parada) Se Q, vá para o passo 5. Se Q = pare e retorne (xk, yk)como solução ótima local de PLDN.

5. (Passo de minimização) Resolva

onde . Observe que o problema é viável pois (xk, yk)é um ponto viável seu. Se o problema é ilimitado, pare e reporte que PLDN é ilimitado. Caso contrário, tome uma solução ótima (xk+1, yk+1) sua. Se e vá para o passo 2. Senão, vá para o passo 2.

Teorema 3.1.Suponha que PLDN seja viável, comsem faces degeneradas. Então o Algoritmo 1 converge em um número finito de passos a uma solução ótima local, ou conclui que PLDN é ilimitado.

Demonstração. Tomemos (x0, y0) Є ϒ. O algoritmo gera um número finito (x0, y0), . . . , (xr, yr) de pontos em ϒ visto que gerado , o algoritmo não volta a analisar (x0, y0), . . . , (xk, yk); para todo (xk, yk), o laço 3 termina pois a cada iteração, R é acrescido até que para todo (xk, yk) no passo 5, ou paramos com a constatação da ilimitabilidade de PLDN, ou passamos a um novo (xk+1, yk+1) ≠ (xk, yk) ou repetimos esse processo com sucessivos fracassos de diminuição da função , e neste caso L é acrescido até que . No último caso, de acordo com o passo 3, Q = Ø e o algoritmo termina com o passo 4. Esta situação sempre ocorre pois existem finitas faces em Ω.

Se no passo 5 o problema é ilimitado, PLDN também o é, e a conclusão é correta. Por outro lado, suponha que não se conclue a ilimitabilidade de PLDN, e seja (xr, yr) um ponto obtido no fim do algoritmo. Seja Ur o conjunto dos índices das restrições do nível superior ativas em (xr, yr). Tomemos tal que para cada tenhamos

Para cada , consideremos a face uj de Ωu, adjacente à (xr, yr), definida por

Seja ur a face de Ωu cujas restrições/variáveis de igualdade têm índices em Ur. Analogamente, para cada , consideremos a face qj de Ωl, adjacente a (xr, yr),

e a face qr de Ωl cujas restrições/variáveis de igualdade têm índices em Λr.

Agora, suponhamos por contradição que (xr, yr) não seja solução ótima local de PLDN. Existe então um com. Afirmamos que existem vetores linearmente independentes (LI), que denotaremos por aj, jR, tais que . De fato, consideremos a matriz

e a aplicação linear T associada a C. Pela não degeneração das faces de Ω, C tem posto igual ao seu número de linhas, a saber, . Assim, dim Im(T) = e o Teorema do Núcleo e da Imagem nos diz que . Logo, existem vetores dj LI satisfazendo Cz = 0. Como

e levando em consideração (3.1), existem µj > 0, jR, suficientemente pequenos tais que . Tomemos então aj = µjdj.

Utilizando, se necessário, o processo de ortogonalização de Gram-Schmidt, podemos supor sem perda de generalidade que os vetores aj são ortogonais entre si. Observamos ainda que todos aj são ortogonais às linhas de C, visto que são soluções do sistema homogêneo Cz = 0. Então os vetores , são LI. De fato, se fosse aj teríamos

Da mesma forma, se pelo menos um nk é não nulo pois as linhas de C são LI. Daí

Com isto, para cada jR, constderuímos uma restrição de desigualda σj ativa em (xr, yr) e que é satisfeita por , como segue. Se tomamos e caso contrário, tomamos Consideremos então, para cada jR, os conjuntos

satisfaz é ativa em

Tomemos . Assim, (xr, yr) é vértice não degenerado de . Definindo arestas de Ω+ emanando de (xr, yr) são . Também,

Para simplificar a escrita, vamos supor que os conjuntos de índices sejam disjuntos, e que . As arestas de Ω+ emanando de (xr, yr) definem direções . Sendo , existem tais que

Como , segue de (3.1) que todas as restrições não ativas em (xr, yr) também são não ativas em . Por outro lado, pode ocorrer de restrições ativas em (xr, yr) serem não ativas em . Sejam portanto os conjuntos dos índices das restrições dos níveis superior e inferior, respectivamente, que são ativas em (xr, yr) mas não em Para cada j, escrevendo , de (3.1) e do fato de (xr, yr) ser vértice não degenerado de Ω+, podemos supor que (xj , yj) realiza como desigualdade estrita todas as restrições de desigualdade em sua respectiva aresta. Temos então, para ,

Ou seja, αj = 0 sempre que . Logo, de (3.3) obtemos

Agora, como e (xr, yr) são admissíveis para PLDN, as faces , são racionais. Segue portanto de (3.2) que as arestas de Ω+ emanando de (xr, yr) são formadas de pontos admissíveis de PLDN, exceto possivelmente as relativas aos índices em . Logo as direções , são viáveis para PLDN. Ao fim do algoritmo, o passo 5 garante que (xr, yr) é solução ótima do problema

É importante observarmos que se r = 0, a execução do passo 5 logo após o cálculo de (x0, y0) garantiria tal afirmação. Não é necessário executar o passo 5 se (x0, y0) for vértice de l pois teríamos q0 = {(x0, y0)}.Com isto, as duas últimas inclusões em (3.2) dizem que as direções, não são de descida. Também, ao fim do algoritmo temos . Isto significa que cada índice em Λr foi analisado pelo algoritmo, mesmo que vários índices foram escolhidos de uma só vez no passo 3 (neste caso todas as faces qj com esses índices são analisadas de uma só vez). Neste caso o passo 5 garante que (xr, yr)é solução ótima dos problemas

para todos é escolhido com sucesso no passo 3 pois qj é racional). Daí segue da primeira inclusão em (3.2) que as direções , não são de descida.

Finalmente mostremos que (xr, yr) é solução ótima local de PLDN. Pela nossa suposição inicial, a direção é de descida para a função .Segue de (3.4) que

Concluímos portanto que (xr, yr) é solução ótima local de PLDN.

Observação 1: No passo 1, é necessário um ponto admissível inicial. É sabido que encontrar um tal ponto é um problema NP-difícil no caso das restrições do nível superior dependerem das variáveis do nível inferior [12]. No caso contrário, isso pode ser feito resolvendo no máximo dois problemas de programação linear: o primeiro, a relaxação obtida quando desconsideramos a função objetivo do nível inferior; e, caso tenhamos obtido (x*, y*) não admissível, um segundo problema, constituído pelo problema do nível inferior quando se fixa x = x* [12].

Observação 2: Podemos adaptar o Algoritmo 1 a problemas que não possuem restrições de não negatividade y ≥ 0. Neste caso, as condições de otimalidade para o problema do nível inferior exigem que as restrições sejam de igualdade.Podemos então desconsiderar a parcela na definição de Λk e reescrever os passos 3 e 5 de modo conveniente.

4. Testes Computacionais

Nessa seção apresentamos alguns testes computacionais. Os problemas foram gerados do seguinte modo: as entradas de c1, d1, d2, B2 e A2 foram geradas aleatoriamente em [-10, 10]. Cada entrada i de b2 é calculada por , onde ci é a soma dos termos da linha i da matriz [A2, B2] e q é um número aleatório em [1, 10]. Os problemas não possuem restrições do nível superior, isto é, A1, B1 e b1 são nulas. São consideradas ainda restrições de não negatividade . Vale ressaltar que Still [12] gera seus problemas de forma semelhante.

A Tabela 1 resume as características dos problemas testados. As colunas nx, ny, ml são como anteriormente. Também,

• |Λ0|é a quantidade de restrições ativas no primeiro ponto admissível (x0, y0);

• F0 é o valor da função objetivo do nível superior no término do passo 1;

• F é o valor da função objetivo do nível superior no fim do algoritmo;

• LB é o limitante inferior obtido da relaxação em que se desconsidera a função objetivo (1.3) do nível inferior;

• t é o tempo de processamento em segundos;

• P3 é a quantidade das iterações globais em que foram escolhidos mais de um índice no passo 3;

• Gl é o número de iterações globais.

Os testes foram realizados em um computador AMD X2 5600+ (2,8 Ghz por núcleo), com 2Gb de memória, no sistema GNU/Linux. Para a resolução de problemas de programação linear e do sistema do passo 3, foi utilizado o CPLEX 12.3.

Em 5 dos 14 problemas, o ponto admissível inicial, calculado seguindo a Observação 1, atingiu LB (e portanto é ótimo). Em todos os outros 9 problemas, o algoritmo melhorou significativamente a solução. Os resultados indicam que o algoritmo se comporta melhor em problemas com ny grande em relação à nx, e com muitas restrições do nível inferior, onde observamos gaps entre F e LB menores. Cabe observar que na maioria dos problemas, em quase a totalidade das iterações globais, foram escolhidos mais de um índice no passo 3. Isso significa que no passo 5, a busca por melhores soluções é feita sobre faces racionais de grande dimensão. É esperado portanto que o algoritmo explore uma grande quantidade de soluções por iteração. Por isso acreditamos que o métodos é promissor.

5. Conclusões

Nesse artigo foi proposto um novo método para encontrar soluções ótimas locais do problema linear de dois níveis. O método baseia-se na reformulação do problema do nível inferior em suas condições KKT. Assim, faces adjacentes ao ponto corrente são analisadas de modo a obter uma que seja racional e que tenha maior dimensão possível. Com isso, espera-se que o método analise mais soluções por iteração, e consiga soluções ótimas locais melhores. Testes indicam que faces com grandes dimensões são encontradas pelo algoritmo em praticamente todas as iterações. Acreditamos portanto que o método é promissor, quando comparado a outros como o de George Still [12], que analisa apenas faces com 1 dimensão a mais que a corrente.

Estudos podem ser feitos no sentido de escolher os índices no passo 3 de uma melhor maneira. Acreditamos que se conseguirmos antever quais faces são mais promissoras, poderíamos obter melhores soluções ótimas locais. Trabalhos futuros poderão seguir esta linha.

Recebido em 04 Março 2011

Aceito em 24 Janeiro 2012

  • [1] J.F. Bard, "Practical Bilevel Optimization: Algorithms and Applications", Non-convex Optimization and Its Applications, Vol. 30, Kluwer Academic Publishers, 1998.
  • [2] H.I. Calvete, C. Galé, P.M. Mateo. A new approach for solving linear bilevel problems using genetic algorithms, European Journal of Operational Research, 188, No. 1 (2008), 14-28.
  • [3] M.B.C. Campêlo, "Programação Linear em Dois Níveis: Uma Abordagem Teórica e Computacional", Tese de Doutorado, COPPE, UFRJ, Rio de Janeiro, 1999.
  • [4] B. Colson, P. Marcotte, G. Savard, An overview of bilevel optimization, Annals of Operations Research, 153, No. 1 (2007), 235-256.
  • [5] C.H.M. de Sabóia, M.B.C. Campêlo, S. Scheimberg, A computational study of global algorithms for bilevel linear programming, Numerical Algorithms, 35, No. 2-4 (2004), 155-173.
  • [6] S. Dempe, "Foundations of Bilevel Programming", Nonconvex Optimization and Its Applications, Vol. 61, Kluwer Academic Publishers, 2002.
  • [7] X. Deng, Complexity issues in bilevel linear programming, em "Multilevel Optimization: Algorithms and Applications" (A. Migdalas, P.M. Pardalos, P. Värbrand, eds.), Nonconvex Optimization and Its Applications, pp. 149-164, Kluwer Academic Publishers, 1998.
  • [8] C.A. Floudas, C.E. Gounaris, A review of recent advances in global optimization. Journal of Global Optimization, 45, No. 1 (2009), 3-38.
  • [9] J. Glackin, J.G. Ecker, M. Kupferschmid, Solving bilevel linear programs using multiple objective linear programming, Journal of Optimization Theory And Application, 140, No. 2 (2009), 197-212.
  • [10] R.J. Kuoa, C.C. Huang, Application of particle swarm optimization algorithm for solving bi-level linear programming problem, Computers and Mathematics with Applications, 58, No. 4 (2009), 678-685.
  • [11] K.H. Sabin, A.R. Ciric, A dual temperature simulated annealing approach for solving bilevel programming problems, Computers and Chemical Engineering, 23, No. 1 (1998), 11-25.
  • [12] G. Still. Linear bilevel problems: genericity results and an efficient method for computing local minima, Mathematical Methods of Operations Research, 55, No. 3 (2002), 383-400.
  • [13] U.P. Wen, A.D. Huang, A simple tabu search method to solve the mixed-integer linear bilevel programming problem, European Journal of Operational Research, 88, No. 3 (1996), 563-571.
  • Um novo algoritmo para soluções ótimas locais do problema linear de dois níveis

    L.D. Secchin
  • Datas de Publicação

    • Publicação nesta coleção
      05 Out 2012
    • Data do Fascículo
      Abr 2012

    Histórico

    • Recebido
      04 Mar 2011
    • Aceito
      24 Jan 2012
    Sociedade Brasileira de Matemática Aplicada e Computacional Rua Maestro João Seppe, nº. 900, 16º. andar - Sala 163 , 13561-120 São Carlos - SP, Tel. / Fax: (55 16) 3412-9752 - São Carlos - SP - Brazil
    E-mail: sbmac@sbmac.org.br