resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função...

24
Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade do Minho [email protected] Edite M. G. P. Fernandes, Universidade do Minho [email protected] João Luís C. Soares, Universidade de Coimbra [email protected] Guimarães, 24-27 Março 2002

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

Resolução de problemas de programação linear combinando o algoritmo

volumétrico e uma função de penalidade exponencial

Ana Maria A. C. Rocha, Universidade do Minho

[email protected]

Edite M. G. P. Fernandes, Universidade do Minho

[email protected]

João Luís C. Soares, Universidade de Coimbra

[email protected]

Guimarães, 24-27 Março 2002

Page 2: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

2

Conteúdo

Introdução

O Algoritmo Volumétrico

Combinação com uma Função de Penalidade Exponencial

Experiências Computacionais

Trabalho Futuro

Page 3: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

3

IntroduçãoConsideremos um problema de fractional set partitioning

onde A é uma matriz 0-1 e é um vector de uns. O problema (1) resulta da relaxação linear de problemas de set partitioning

(political districting, airline crew scheduling, protection of microdata, information retrieval, ...).

Os métodos tradicionais podem demorar mais de 10 horas, mesmo em máquinas rápidas (dimensão típica é n = 50000, m = 2500 e superior).

Os algoritmos de ponto interior têm funcionado melhor que o simplex, mas requerem mais memória.

O algoritmo volumétrico, considerado como uma extensão do método do subgradiente, para além de produzir soluções duais produz também boas aproximações à solução primal.

Page 4: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

4

Algoritmo do subgradientePara um dado vector de multiplicadores (também designado por solução dual), uma natural relaxação Lagrangeana do problema linear (1) é:

é uma função linear por partes, côncava e não diferenciável

se e só se .

Desde os anos setenta que o algoritmo do subgradiente tem sido usado para produzir limites inferiores em programas lineares de grande dimensão ([3]).

Page 5: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

5

Aspecto genérico de um algoritmo do subgradiente

Passo 1: Dado ,resolver (2) com , para obter a sua solução .

Calcular , que é um subgradiente da função em .

Passo 2: Determinar , onde é o comprimento do passo.

Passo 3: Se o critério de paragem se verificar então terminar;

senão fazer e ir para Passo 1.

Page 6: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

6

Inconvenientes

A verificação do critério de paragem obriga à resolução do seguinte problema de optimização , que não aparenta ser de fácil resolução.

A escolha adequada do tamanho do passo não deve basear-se apenas na análise teórica da convergência, senão torna-o muito pequeno.

A direcção dual pode não ser uma direcção de subida para em . Para isso, seria necessário calcular a derivada direccional que requer algum esforço adicional. Além disso, os procedimentos da pesquisa unidimensional obrigam a sucessivas avaliações da função , o que é normalmente custoso.

O algoritmo do subgradiente tem convergência linear (provavelmente porque a direcção calculada apenas depende do último ponto encontrado e toda a informação dada pelas iterações anteriores é ignorada).

O algoritmo do subgradiente não garante variáveis primais admissíveis.

Page 7: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

7

O algoritmo VolumétricoO algoritmo volumétrico é uma extensão do algoritmo do subgradiente que, com o mesmo esforço computacional, produz não só as variáveis duais como também aproximações às variáveis primais.

Este algoritmo foi desenvolvido por F. Barahona (ver [1] e [2]) e mostrou que era funcional nas seguintes classes de problemas:

Problemas Lineares Combinatórios;

quando a matriz A tem coeficientes 0, 1, -1;

quando as variáveis são limitadas entre 0 e 1.

Page 8: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

8

Passos do algoritmo volumétrico

Passo 0: Dado ,resolver (2) com , para obter a sua solução e

. Definir .

Passo 1: Calcular e para um comprimento de passo .

Resolver (2) com , para obter a sua solução e .

Actualizar com

onde é um comprimento de passo entre 0 e 1.

Passo 2: Se então actualizar e com .

Passo 3: Testar o critério de paragem.

Se falhar então definir e ir para Passo 1.

Page 9: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

9

Critério de paragem

1. limite máximo do número de iterações

ou

2.

máxima violação das restrições

e

diferença relativa entre solução dual e o valor da aproximação à solução primal

Page 10: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

10

Experiência computacional com o algoritmo volumétrico

Page 11: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

11

Consideremos um problema de fractional set partitioning da seguinte forma

onde , e .

podem ser:

restrições adicionais relacionadas com planos de corte quando se resolve o problema original de set partitioning

ou

o conjunto das restrições de A consideradas mais difíceis, após aplicação do algoritmo volumétrico original.

O algoritmo volumétrico com uma função de penalidade exponencial

Page 12: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

12

Aplicando uma função de penalidade exponencial ao 1º conjunto de restrições, (3) transforma-se numa sucessão de subproblemas parametrizados por

onde > 0 é o parâmetro de penalidade.

Para esta técnica de penalidade quando então .

Page 13: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

13

Para um vector de multiplicadores , a relaxação Lagrangeana do problema é:

Para aplicar o algoritmo volumétrico a este problema, podemos

Linearizar o termo de penalidade de e resolver problemas lineares.

Resolver problemas não lineares para obter .

Page 14: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

14

A matriz A, do problema (1), é decomposta em duas matrizes A1 e A2.

Após uma aplicação do algoritmo volumétrico ao problema original de fractional set partitioning,

A1 contém o conjunto das restrições m1 com maior violação (mais difíceis) e

A2 contém todas as outras restrições (mais fáceis).

As restrições mais difíceis são penalizadas e o problema original transforma-se na sucessão de subproblemas

onde é o parâmetro de penalidade.

Experiências com o caso linear

Page 15: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

15

Após a linearização do termo de penalidade, a relaxação Lagrangeana do problema é

para qualquer .

Page 16: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

16

O algoritmo volumétrico aplicado ao caso linear

Passo 0: Dado , um vector e um vector , resolver (7) com para obter a sua solução e . Definir .

Passo 1: Calcular e para um comprimento de passo .

Resolver (7) com , para obter a sua solução e .

Actualizar com

onde é um comprimento de passo entre 0 e 1.

Passo 2: Se então actualizar e com .

Passo 3: Actualizar , se necessário.

Testar critério de paragem. Se falhar então definir e ir para Passo 1.

Page 17: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

17

Escolha do parâmetro de penalidade 1. Dado um valor inicial

2. Actualizar com , cada k iterações.

Critério de paragem1. máximo número de iterações

ou

2. máxima violação das restrições

e

diferença relativa entre solução dual e o valor da aproximação à solução primal

Page 18: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

18

Experiências computacionais com a estrutura de penalidade exponencial

Page 19: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

19

Experiências preliminares com o caso não linear

Relembremos o problema original

Aplicando uma função de penalidade exponencial, ao conjunto das m restrições de igualdade

é o parâmetro de penalidade.

Page 20: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

20

Resolução de (9) através do algoritmo L-BFGS-B (ver [4]) desenvolvido por Nocedal, para a resolução de problemas não lineares, de grandes dimensões e com limites nas restrições.

método Quasi-Newton;

usa uma matriz BFGS de memória reduzida para aproximar a Hessiana da função objectivo;

a direcção de procura é determinada pelo método dos gradientes projectados.

Page 21: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

21

Algoritmo

Passo 0: Dado e um vector . Definir .

Passo 1: Resolver (9) usando L-BFGS-B (processo iterativo interno), para obter a solução .

Passo 2: Actualizar .

Passo 3: Testar o critério de paragem.

Se falhar então definir e ir para Passo 1.

Page 22: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

22

Critério de paragen

1. (a)

ou

(b)

ou

2.

Page 23: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

23

Experiências computacionais com o L-BFGS-B

Page 24: Resolução de problemas de programação linear combinando o algoritmo volumétrico e uma função de penalidade exponencial Ana Maria A. C. Rocha, Universidade

24

Trabalho Futuro Integrar o package L-BFGS-B no algoritmo volumétrico (penalizando apenas as

restrições mais difíceis).

Testar outros packages para a resolução de problemas não lineares de grandes dimensões, com limites nas restrições. Por fim, integrá-los no algoritmo volumétrico.

Estender a estrutura de penalidade exponencial a planos de corte (para resolver problemas originais de set partitioning).

Referências[1] F. Barahona e R. Anbil. On some difficult Linear Programs coming from set partitioning.

IBM T.J. Watson Research Center, NY.[2] F. Barahona e R. Anbil. The Volume Algorithm: producing primal solutions with a

subgradient method. Mathematical Programming, 87:385-399, 2000.[3] M. Held, P. Wolfe e H.P. Crowder. Validation os subgradient optimization. Mathematical

Programming, 6:62-68, 1974.[4] C. Zhu, R. Byrd, P. Lu e J. Nocedal. L-BFGS-B – fortran routines for large-scale bound

constrained optimization. Northwestern Univ. EECS Technical Report, 1996.