Ferramentas de modelação em optimização não linear

Documentos relacionados
Métodos Numéricos. MEI - Logística e distribuição Linguagem de modelação AMPL 2004/2005. A. Ismael F. Vaz - Departamento de Produção e Sistemas

UFFLP: Integrando Programação Inteira Mista e Planilhas de Cálculo

UFFLP: Integrando Programação Inteira Mista e Planilhas de Cálculo

Controlo óptimo de processos semi-contínuos com optimização por colónias de partículas

Bioinformática Avançada e Biologia de Sistemas Optimização

Optimização semi-infinita. Opção V. Licenciatura em Matemática Aplicada

Aplicações e métodos para programação semi-infinita e optimização multi-local

Determinação de Trajectória Óptima em Processos de Fermentação Semi-contínua

Conteúdo GLPK. Notas. Introdução à Otimização, Utilizando o GLPK. Notas. Notas

GAMS Guia de utilização

OPTIMIZAÇÃO NÃO LINEAR

Introdução Problema da Mistura Problema da Marcenaria Problema do Transporte. Tutorial AMPL. Daniela Cristina Lubke

Softwares de Programação Matemática

Desenho Óptimo de Estações de Águas Residuais Através da Modelação de Funções Custo

Iury Steiner de Oliveira Bezerra

MATLAB. Aula 05. Cláudio R. Lucinda FEA-RP/USP. Aula 05

Investigação Operacional

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Exercícios TP/P. 1 Condições de optimalidade - Restrições de igualdade

Frequência / Exame de 1. a Época

Investigação Operacional I. Guia de Utilização do Software. José Manuel Vasconcelos Valério de Carvalho. Universidade do Minho

Ferramentas de Suporte

Métodos Numéricos. MEI - Logística e distribuição Optimização não linear com restrições de igualdade 2004/2005

INTRODUÇÃO AO AMBIENTE GAMS. Ambiente para modelagem e otimização

UTILIZAÇÃO DE SOFTWARES NA PESQUISA OPERACIONAL USING SOFTWARE IN OPERATIONAL RESEARCH

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática

OPTIMIZAÇÃO DE ESTRUTURAS

OPTIMIZAÇÃO NÃO LINEAR

Métodos Numéricos. MEI - Logística e distribuição Programação quadrática sequencial 2004/2005. A. Ismael F. Vaz - Departamento de Produção e Sistemas

Computação e Programação

Introdução ao. Susana Barbosa. Mestrado em Ciências Geofísicas

Bioinformática Avançada e Biologia de Sistemas Optimização

Disciplina que estuda métodos analíticos para auxiliar na tomada de decisões.

Introdução a PNL Mario Thadeu Leme de Barros Renato Carlos Zambon

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Sistemas de Computação Algébrica (SCA)

Optimização e Algoritmos (2004/2005) Série de Problemas 1 Programação Linear, Método Simplex

Projecto e Desenvolvimento de Programas

Programação Linear. (3ª parte) Informática de Gestão Maria do Rosário Matos Bernardo 2016

DEPARTAMENTO DE ENGENHARIA MECÂNICA

O USO DE SOFTWARE DE MODELAGEM AIMMS NA SOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO MATEMÁTICA

Capítulo 11. GRÁFICOS COM WGNUPLOT

Um Modelo Matemático de Gestão de Recursos Humanos

Microsoft Excel na resolução de problemas de optimização

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001

Licenciatura em Informática

Análise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema

Ciclo de vida: fases x atividades

Iury Steiner de Oliveira Bezerra

GRUPO: Rafael Igor Vanderlei Vieira

Introdução à Automação Industrial

Construção de Modelos de Otimização e Ferramentas Computacionais

Optimização da Distribuição de Operários numa Fábrica

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

MÓDULO II INTERFACE GRÁFICA DELPHI

Utilizando Solvers para resolver problemas de Programação Linear. Cristopher Moreira da Silva moreira [a] dcc.ufmg.br

Métodos Numéricos C. A. Ismael F. Vaz 1. Escola de Engenharia Universidade do Minho Ano lectivo 2007/2008

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

Desenvolvimento de programas

Introdução à Programação Aula prática Nº 1

Investigação Operacional

II Seminário da Pós-graduação em Engenharia Elétrica

C. Requejo (UA) Métodos de Investigação Operacional MIO / 37

Um algoritmo sem derivadas para otimização restrita

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Capítulo 19. DERIVADAS E INTEGRAIS NUMÉRICAS

Modelos em Programação Matemática

1.1 Linguagens de Programação

Computação e Programação 2009 / 2010

Breve introdução ao uso de solvers para resolver problemas de programação linear

1 - Uma implementação estável do método de Lemke para o problema linear

Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Objectivos e tarefas

Modelagem em Engenharia C & A Aula 1- Introdução e informações

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. IV Modelo Dual

Bioinformática Avançada e Biologia de Sistemas Optimização

Instituto Politécnico de Setúbal. Escola Superior de Tecnologia. Departamento de Sistemas e Informática. Guia para codificação em JAVA

COMPUTAÇÃO E PROGRAMAÇÃO

OPTIMIZAÇÃO NÃO LINEAR EM REDES

2 Programação de Simulink S-functions

Programação Funcional

Optimização Combinatória. Guia de Utilização do Software

Lindo e Solver (Tutorial)

1.2.7 Exemplo de aplicação: aproximação de derivadas

Guião 4: Draw a Grid

22098 Programação Matemática

SSC5955 Slides adaptados de Masahiro Ono - MIT

Models and Algorithms for Combinatorial Optimization Problems. LP Solve. Albert Einstein Fernandes Muritiba.

Texto de apoio solvers de programação linear. Índice. Programação Linear o solver do Excel

Apresentação. Informação geral + Conceitos iniciais

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

O ambiente de trabalho R

Computação e Programação

LISP - Introdução. Existem vários dialectos de LISP: COMMON LISP (o mais sofisticado e mais utilizado) Outros: MAC LISP, INTERLISP, XLISP

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata

Departamento de Matemática da Universidade de Coimbra. Licenciatura em Matemática. e B =

Planejamento de Rotas Parte I. SSC5955 Slides adaptados de Masahiro Ono - MIT

Introdução ao Simulador EMSO

Objetivo da Programação Inteira

Transcrição:

Ferramentas de modelação em optimização não linear A. Ismael F. Vaz Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho aivaz@dps.uminho.pt Seminário CEOC (Centro de Estudos em Optimização e Controlo) 23 Março 2007 A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 1 / 40

Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 2 / 40

Introdução Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 3 / 40

Introdução Introdução A apresentação destina-se a apresentar um conjunto de ferramentas usadas na modelação e resolução de problema de optimização. São apresentadas três linguagens de modelação mais populares e que possuem características diferentes. Será certamente uma visão muito redutora das linguagens abordadas. É apresentado um pequeno exemplo de controlo óptimo em AMPL. É também apresentada uma técnica de comparação de desempenho entre diferentes softwares de resolução de problemas de optimização (Perfis de desempenho). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 4 / 40

Introdução Introdução A apresentação destina-se a apresentar um conjunto de ferramentas usadas na modelação e resolução de problema de optimização. São apresentadas três linguagens de modelação mais populares e que possuem características diferentes. Será certamente uma visão muito redutora das linguagens abordadas. É apresentado um pequeno exemplo de controlo óptimo em AMPL. É também apresentada uma técnica de comparação de desempenho entre diferentes softwares de resolução de problemas de optimização (Perfis de desempenho). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 4 / 40

Introdução Introdução A apresentação destina-se a apresentar um conjunto de ferramentas usadas na modelação e resolução de problema de optimização. São apresentadas três linguagens de modelação mais populares e que possuem características diferentes. Será certamente uma visão muito redutora das linguagens abordadas. É apresentado um pequeno exemplo de controlo óptimo em AMPL. É também apresentada uma técnica de comparação de desempenho entre diferentes softwares de resolução de problemas de optimização (Perfis de desempenho). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 4 / 40

Introdução Introdução A apresentação destina-se a apresentar um conjunto de ferramentas usadas na modelação e resolução de problema de optimização. São apresentadas três linguagens de modelação mais populares e que possuem características diferentes. Será certamente uma visão muito redutora das linguagens abordadas. É apresentado um pequeno exemplo de controlo óptimo em AMPL. É também apresentada uma técnica de comparação de desempenho entre diferentes softwares de resolução de problemas de optimização (Perfis de desempenho). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 4 / 40

Introdução Introdução A apresentação destina-se a apresentar um conjunto de ferramentas usadas na modelação e resolução de problema de optimização. São apresentadas três linguagens de modelação mais populares e que possuem características diferentes. Será certamente uma visão muito redutora das linguagens abordadas. É apresentado um pequeno exemplo de controlo óptimo em AMPL. É também apresentada uma técnica de comparação de desempenho entre diferentes softwares de resolução de problemas de optimização (Perfis de desempenho). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 4 / 40

Classificação de problemas Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 5 / 40

Classificação de problemas Classificação de problemas Os problemas de optimização podem ser classificados de acordo com: as funções envolvidas na função objectivo e nas restrições (lineares, quadráticas, não lineares, etc...) o tipo de variáveis usadas (inteiras, binárias, discretas, contínuas, etc...) o tipo de restrições consideradas (igualdade, desigualdade, infinitas, complementaridade, etc...) o tipo de solução que se pretende obter (local ou global) diferenciabilidade das funções envolvidas (optimização com ou sem derivadas) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 6 / 40

Classificação de problemas Classificação de problemas Os problemas de optimização podem ser classificados de acordo com: as funções envolvidas na função objectivo e nas restrições (lineares, quadráticas, não lineares, etc...) o tipo de variáveis usadas (inteiras, binárias, discretas, contínuas, etc...) o tipo de restrições consideradas (igualdade, desigualdade, infinitas, complementaridade, etc...) o tipo de solução que se pretende obter (local ou global) diferenciabilidade das funções envolvidas (optimização com ou sem derivadas) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 6 / 40

Classificação de problemas Classificação de problemas Os problemas de optimização podem ser classificados de acordo com: as funções envolvidas na função objectivo e nas restrições (lineares, quadráticas, não lineares, etc...) o tipo de variáveis usadas (inteiras, binárias, discretas, contínuas, etc...) o tipo de restrições consideradas (igualdade, desigualdade, infinitas, complementaridade, etc...) o tipo de solução que se pretende obter (local ou global) diferenciabilidade das funções envolvidas (optimização com ou sem derivadas) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 6 / 40

Classificação de problemas Classificação de problemas Os problemas de optimização podem ser classificados de acordo com: as funções envolvidas na função objectivo e nas restrições (lineares, quadráticas, não lineares, etc...) o tipo de variáveis usadas (inteiras, binárias, discretas, contínuas, etc...) o tipo de restrições consideradas (igualdade, desigualdade, infinitas, complementaridade, etc...) o tipo de solução que se pretende obter (local ou global) diferenciabilidade das funções envolvidas (optimização com ou sem derivadas) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 6 / 40

Classificação de problemas Classificação de problemas Os problemas de optimização podem ser classificados de acordo com: as funções envolvidas na função objectivo e nas restrições (lineares, quadráticas, não lineares, etc...) o tipo de variáveis usadas (inteiras, binárias, discretas, contínuas, etc...) o tipo de restrições consideradas (igualdade, desigualdade, infinitas, complementaridade, etc...) o tipo de solução que se pretende obter (local ou global) diferenciabilidade das funções envolvidas (optimização com ou sem derivadas) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 6 / 40

Classificação de problemas Optimization tree http://www-fp.mcs.anl.gov/otc/guide/optweb/ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 7 / 40

Classificação de problemas Importância da classificação Não existe software que resolva todos os tipos de problemas. O tipo de problema que se pretende resolver condiciona o software (solver e linguagem de modelação) a usar. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 8 / 40

Classificação de problemas Importância da classificação Não existe software que resolva todos os tipos de problemas. O tipo de problema que se pretende resolver condiciona o software (solver e linguagem de modelação) a usar. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 8 / 40

Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 9 / 40

AMPL AMPL AMPL significa A Mathematical Programming Language. O AMPL é um software comercial, mas existe uma versão Student Edition que é limitada (300 variáveis, 300 restrições). O ambiente que compila a linguagem AMPL é constituído por um único executável (ampl(.exe), dependendo do sistema operativo). www.ampl.com A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 10 / 40

AMPL AMPL AMPL significa A Mathematical Programming Language. O AMPL é um software comercial, mas existe uma versão Student Edition que é limitada (300 variáveis, 300 restrições). O ambiente que compila a linguagem AMPL é constituído por um único executável (ampl(.exe), dependendo do sistema operativo). www.ampl.com A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 10 / 40

AMPL AMPL AMPL significa A Mathematical Programming Language. O AMPL é um software comercial, mas existe uma versão Student Edition que é limitada (300 variáveis, 300 restrições). O ambiente que compila a linguagem AMPL é constituído por um único executável (ampl(.exe), dependendo do sistema operativo). www.ampl.com A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 10 / 40

AMPL AMPL AMPL significa A Mathematical Programming Language. O AMPL é um software comercial, mas existe uma versão Student Edition que é limitada (300 variáveis, 300 restrições). O ambiente que compila a linguagem AMPL é constituído por um único executável (ampl(.exe), dependendo do sistema operativo). www.ampl.com A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 10 / 40

AMPL Esquema de ligações ficheiro.nl AMPL Solver (LOQO, MINOS, etc) ficheiro.sol Transparente o utilizador para A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 11 / 40

AMPL Alguns detalhes O binário ampl é independente do solver. É responsabilidade do solver obter o problema e apresentar a solução (existe um pacote de rotinas de domínio público que facilitam esta interface com o ampl). A codificação do problema em AMPL é feita em texto simples (ascii). Por essa razão pode ser usado qualquer editor de texto (desde que o ficheiro seja gravado como texto simples). Os ficheiros com o modelo do problema têm, usualmente, a extensão.mod. Os dados do problema devem estar codificados em ficheiros separados para uma melhor organização. Estes ficheiros têm, usualmente a extensão.dat. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 12 / 40

AMPL Alguns detalhes O binário ampl é independente do solver. É responsabilidade do solver obter o problema e apresentar a solução (existe um pacote de rotinas de domínio público que facilitam esta interface com o ampl). A codificação do problema em AMPL é feita em texto simples (ascii). Por essa razão pode ser usado qualquer editor de texto (desde que o ficheiro seja gravado como texto simples). Os ficheiros com o modelo do problema têm, usualmente, a extensão.mod. Os dados do problema devem estar codificados em ficheiros separados para uma melhor organização. Estes ficheiros têm, usualmente a extensão.dat. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 12 / 40

AMPL Alguns detalhes O binário ampl é independente do solver. É responsabilidade do solver obter o problema e apresentar a solução (existe um pacote de rotinas de domínio público que facilitam esta interface com o ampl). A codificação do problema em AMPL é feita em texto simples (ascii). Por essa razão pode ser usado qualquer editor de texto (desde que o ficheiro seja gravado como texto simples). Os ficheiros com o modelo do problema têm, usualmente, a extensão.mod. Os dados do problema devem estar codificados em ficheiros separados para uma melhor organização. Estes ficheiros têm, usualmente a extensão.dat. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 12 / 40

AMPL Alguns detalhes O binário ampl é independente do solver. É responsabilidade do solver obter o problema e apresentar a solução (existe um pacote de rotinas de domínio público que facilitam esta interface com o ampl). A codificação do problema em AMPL é feita em texto simples (ascii). Por essa razão pode ser usado qualquer editor de texto (desde que o ficheiro seja gravado como texto simples). Os ficheiros com o modelo do problema têm, usualmente, a extensão.mod. Os dados do problema devem estar codificados em ficheiros separados para uma melhor organização. Estes ficheiros têm, usualmente a extensão.dat. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 12 / 40

AMPL Alguns detalhes O binário ampl é independente do solver. É responsabilidade do solver obter o problema e apresentar a solução (existe um pacote de rotinas de domínio público que facilitam esta interface com o ampl). A codificação do problema em AMPL é feita em texto simples (ascii). Por essa razão pode ser usado qualquer editor de texto (desde que o ficheiro seja gravado como texto simples). Os ficheiros com o modelo do problema têm, usualmente, a extensão.mod. Os dados do problema devem estar codificados em ficheiros separados para uma melhor organização. Estes ficheiros têm, usualmente a extensão.dat. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 12 / 40

AMPL Exemplo em AMPL - hs014.mod var x {1..2}; minimize obj: (x[1] - 2)^2 + (x[2]-1)^2; subject to constr1: x[1]^2/4 + x[2]^2 <= 1; subject to constr2: x[1] - 2*x[2] = -1; let x[1] := 2; let x[2] := 2; option solver loqo; option loqo_options verbose 2 ; solve; display x; display obj; display obj - 9 + 2.875*sqrt(7); A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 13 / 40

AMPL Comentários Problema com duas variáveis, uma restrição de desigualdade e uma de igualdade. Aproximação inicial x = (2, 2) T. O comando solve indica ao AMPL que se pretende resolver o problema. O ampl escreve um ficheiro temporário de extensão.nl e executa o solver com os argumentos stub -AMPL. Se não se usar a opção solver o ampl executa o solver por defeito (minos). O ampl suspende a sua execução até que o solver termine e produza um ficheiro de extensão.sol. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 14 / 40

AMPL Comentários Problema com duas variáveis, uma restrição de desigualdade e uma de igualdade. Aproximação inicial x = (2, 2) T. O comando solve indica ao AMPL que se pretende resolver o problema. O ampl escreve um ficheiro temporário de extensão.nl e executa o solver com os argumentos stub -AMPL. Se não se usar a opção solver o ampl executa o solver por defeito (minos). O ampl suspende a sua execução até que o solver termine e produza um ficheiro de extensão.sol. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 14 / 40

AMPL Comentários Problema com duas variáveis, uma restrição de desigualdade e uma de igualdade. Aproximação inicial x = (2, 2) T. O comando solve indica ao AMPL que se pretende resolver o problema. O ampl escreve um ficheiro temporário de extensão.nl e executa o solver com os argumentos stub -AMPL. Se não se usar a opção solver o ampl executa o solver por defeito (minos). O ampl suspende a sua execução até que o solver termine e produza um ficheiro de extensão.sol. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 14 / 40

AMPL Comentários Problema com duas variáveis, uma restrição de desigualdade e uma de igualdade. Aproximação inicial x = (2, 2) T. O comando solve indica ao AMPL que se pretende resolver o problema. O ampl escreve um ficheiro temporário de extensão.nl e executa o solver com os argumentos stub -AMPL. Se não se usar a opção solver o ampl executa o solver por defeito (minos). O ampl suspende a sua execução até que o solver termine e produza um ficheiro de extensão.sol. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 14 / 40

AMPL Comentários Problema com duas variáveis, uma restrição de desigualdade e uma de igualdade. Aproximação inicial x = (2, 2) T. O comando solve indica ao AMPL que se pretende resolver o problema. O ampl escreve um ficheiro temporário de extensão.nl e executa o solver com os argumentos stub -AMPL. Se não se usar a opção solver o ampl executa o solver por defeito (minos). O ampl suspende a sua execução até que o solver termine e produza um ficheiro de extensão.sol. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 14 / 40

AMPL Exemplo em AMPL - diet1.mod set NUTR ordered; set FOOD ordered; param cost {FOOD} >= 0; param f_min {FOOD} >= 0, default 0; param f_max {j in FOOD} >= f_min[j], default Infinity; param n_min {NUTR} >= 0, default 0; param n_max {i in NUTR} >= n_min[i], default Infinity; param amt {NUTR,FOOD} >= 0; var Buy {j in FOOD} integer >= f_min[j], <= f_max[j]; minimize Total_Cost: sum {j in FOOD} cost[j] * Buy[j]; minimize Nutr_Amt {i in NUTR}: sum {j in FOOD} amt[i,j] * Buy[j]; subject to Diet {i in NUTR}: n_min[i] <= sum {j in FOOD} amt[i,j] * Buy[j] <= n_max[i]; A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 15 / 40

AMPL Exemplo em AMPL - diet1.dat param: FOOD: cost f_min f_max := "Quarter Pounder w/ Cheese" 1.84.. "McLean Deluxe w/ Cheese" 2.19.. "Big Mac" 1.84.. "Filet-O-Fish" 1.44.. "McGrilled Chicken" 2.29.. "Fries, small".77.. "Sausage McMuffin" 1.29.. "1% Lowfat Milk".60.. "Orange Juice".72.. ; A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 16 / 40

AMPL Exemplo em AMPL - diet1.dat param: NUTR: n_min n_max := Cal 2000. Carbo 350 375 Protein 55. VitA 100. VitC 100. Calc 100. Iron 100. ; A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 17 / 40

AMPL Exemplo em AMPL - diet1.dat param amt (tr): Cal Carbo Protein VitA VitC Calc Iron := "Quarter Pounder w/ Cheese" 510 34 28 15 6 30 20 "McLean Deluxe w/ Cheese" 370 35 24 15 10 20 20 "Big Mac" 500 42 25 6 2 25 20 "Filet-O-Fish" 370 38 14 2 0 15 10 "McGrilled Chicken" 400 42 31 8 15 15 8 "Fries, small" 220 26 3 0 15 0 2 "Sausage McMuffin" 345 27 15 4 0 20 15 "1% Lowfat Milk" 110 12 9 10 4 30 0 "Orange Juice" 80 20 1 2 120 2 2 ; A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 18 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

AMPL Algumas características Diferenciação automática (até segundas derivadas). Facilidade de codificação dos problemas. É uma linguagem de modelação e não de programação. Possibilidade de funções externas através de uma DLL. Possibilidade de ligações a bases de dados através da interface ODBC da Microsoft (Excel). Interface gráfica AMPL plus (ILOG OPL Studio). Fase presolve. Interface Kestrel (Ligação ao NEOS server). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 19 / 40

GAMS GAMS GAMS significa General Algebraic Modeling System. É um software comercial, mas existe uma versão de demonstração para download limitada no número de variáveis (300), número de restrições (300), etc.... www.gams.com (e http://www.gamsworld.org) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 20 / 40

GAMS GAMS GAMS significa General Algebraic Modeling System. É um software comercial, mas existe uma versão de demonstração para download limitada no número de variáveis (300), número de restrições (300), etc.... www.gams.com (e http://www.gamsworld.org) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 20 / 40

GAMS GAMS GAMS significa General Algebraic Modeling System. É um software comercial, mas existe uma versão de demonstração para download limitada no número de variáveis (300), número de restrições (300), etc.... www.gams.com (e http://www.gamsworld.org) A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 20 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Modelos suportados LP Linear Programming MIP Mixed-Integer Programming NLP Non-Linear Programming MCP Mixed Complementarity Problems MPEC Mathematical Programs with Equilibrium Constraints CNS Constrained Nonlinear Systems DNLP Non-Linear Programming with Discontinuous Derivatives MINLP Mixed-Integer Non-Linear Programming QCP Quadratically Constrained Programs MIQCP Mixed Integer Quadratically Constrained Programs A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 21 / 40

GAMS Um exemplo - HS62 variables obj; positive variables x1,x2,x3; equations objdef,eq1, eq1x; objdef.. obj =e= -32.174*( 255.*log((x1+x2+x3+0.03)/(0.09*x1+x2+x3+0.03)) + 280.*log((x2+x3+0.03)/(0.07*x2+x3+0.03)) + 290.*log((x3+0.03)/(0.13*x3+0.03))); eq1.. 20*sqr(x1+x2+x3-1) =e= 0; eq1x.. x1+x2+x3-1 =e= 0; model m / objdef, eq1 / model mx / objdef, eq1x /; * x1.l=1/3; x2.l=1/3; x3.l=1/3; solve m us nlp min obj; * solve mx us nlp min obj; scalar global global solution / -0.262725145e5 / diff optcr - relative distance from global; diff = (global - obj.l)/global; display global, obj.l, diff; A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 22 / 40

GAMS Algumas propriedades Quase todas as características do AMPL também são válidas para o GAMS (diferenciação automática, NEOS, Kestrel, etc). Linguagem um pouco mais complexa (não necessariamente mais poderosa). Menor facilidade em ligar um solver. Aparentemente existe mais informação sobre o AMPL que sobre o GAMS (pelo menos na página da Internet). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 23 / 40

GAMS Algumas propriedades Quase todas as características do AMPL também são válidas para o GAMS (diferenciação automática, NEOS, Kestrel, etc). Linguagem um pouco mais complexa (não necessariamente mais poderosa). Menor facilidade em ligar um solver. Aparentemente existe mais informação sobre o AMPL que sobre o GAMS (pelo menos na página da Internet). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 23 / 40

GAMS Algumas propriedades Quase todas as características do AMPL também são válidas para o GAMS (diferenciação automática, NEOS, Kestrel, etc). Linguagem um pouco mais complexa (não necessariamente mais poderosa). Menor facilidade em ligar um solver. Aparentemente existe mais informação sobre o AMPL que sobre o GAMS (pelo menos na página da Internet). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 23 / 40

GAMS Algumas propriedades Quase todas as características do AMPL também são válidas para o GAMS (diferenciação automática, NEOS, Kestrel, etc). Linguagem um pouco mais complexa (não necessariamente mais poderosa). Menor facilidade em ligar um solver. Aparentemente existe mais informação sobre o AMPL que sobre o GAMS (pelo menos na página da Internet). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 23 / 40

CUTEr CUTEr Constrained and Unconstrained Testing Environment (revisited). O CUTEr é uma actualização do CUTE. "CUTEr is a versatile testing environment for optimization and linear algebra solvers. The package contains a collection of test problems, along with Fortran 77, Fortran 90/95 and Matlab tools intended to help developers design, compare and improve new and existing solvers." Usa a linguagem SIF (Standard Input Format) para descrever os problemas teste. hsl.rl.ac.uk/cuter-www/ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 24 / 40

CUTEr CUTEr Constrained and Unconstrained Testing Environment (revisited). O CUTEr é uma actualização do CUTE. "CUTEr is a versatile testing environment for optimization and linear algebra solvers. The package contains a collection of test problems, along with Fortran 77, Fortran 90/95 and Matlab tools intended to help developers design, compare and improve new and existing solvers." Usa a linguagem SIF (Standard Input Format) para descrever os problemas teste. hsl.rl.ac.uk/cuter-www/ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 24 / 40

CUTEr CUTEr Constrained and Unconstrained Testing Environment (revisited). O CUTEr é uma actualização do CUTE. "CUTEr is a versatile testing environment for optimization and linear algebra solvers. The package contains a collection of test problems, along with Fortran 77, Fortran 90/95 and Matlab tools intended to help developers design, compare and improve new and existing solvers." Usa a linguagem SIF (Standard Input Format) para descrever os problemas teste. hsl.rl.ac.uk/cuter-www/ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 24 / 40

CUTEr CUTEr Constrained and Unconstrained Testing Environment (revisited). O CUTEr é uma actualização do CUTE. "CUTEr is a versatile testing environment for optimization and linear algebra solvers. The package contains a collection of test problems, along with Fortran 77, Fortran 90/95 and Matlab tools intended to help developers design, compare and improve new and existing solvers." Usa a linguagem SIF (Standard Input Format) para descrever os problemas teste. hsl.rl.ac.uk/cuter-www/ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 24 / 40

CUTEr CUTEr Constrained and Unconstrained Testing Environment (revisited). O CUTEr é uma actualização do CUTE. "CUTEr is a versatile testing environment for optimization and linear algebra solvers. The package contains a collection of test problems, along with Fortran 77, Fortran 90/95 and Matlab tools intended to help developers design, compare and improve new and existing solvers." Usa a linguagem SIF (Standard Input Format) para descrever os problemas teste. hsl.rl.ac.uk/cuter-www/ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 24 / 40

CUTEr Funcionamento Usa a ferramenta SIFdec para converter os problemas em SIF para Fortran. o Solver é compilado junto com o problema. Funcionamento distinto do AMPL e GAMS. Compilação para a resolução de cada problema. "Ready-to-use interfaces to existing packages, such as MINOS, SNOPT, filtersqp, Knitro, and more, are provided." A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 25 / 40

CUTEr Funcionamento Usa a ferramenta SIFdec para converter os problemas em SIF para Fortran. o Solver é compilado junto com o problema. Funcionamento distinto do AMPL e GAMS. Compilação para a resolução de cada problema. "Ready-to-use interfaces to existing packages, such as MINOS, SNOPT, filtersqp, Knitro, and more, are provided." A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 25 / 40

CUTEr Funcionamento Usa a ferramenta SIFdec para converter os problemas em SIF para Fortran. o Solver é compilado junto com o problema. Funcionamento distinto do AMPL e GAMS. Compilação para a resolução de cada problema. "Ready-to-use interfaces to existing packages, such as MINOS, SNOPT, filtersqp, Knitro, and more, are provided." A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 25 / 40

CUTEr Funcionamento Usa a ferramenta SIFdec para converter os problemas em SIF para Fortran. o Solver é compilado junto com o problema. Funcionamento distinto do AMPL e GAMS. Compilação para a resolução de cada problema. "Ready-to-use interfaces to existing packages, such as MINOS, SNOPT, filtersqp, Knitro, and more, are provided." A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 25 / 40

CUTEr Um exemplo - HS14 NAME HS14 VARIABLES X1 X2 GROUPS N OBJ G CON1 E CON2 X1 1.0 X2-2.0 CONSTANTS HS14 CON1-1.0 HS14 CON2-1.0 BOUNDS FR HS14 DEFAULT START POINT HS14 X1 2.0 HS14 X2 2.0 ELEMENT TYPE EV SQ V1 EV SQ-2 V1 EV SQ-1 V1 ELEMENT USES T E1 SQ-2 V E1 V1 T E2 SQ-1 V E2 V1 T E3 SQ V E3 V1 T E4 SQ V E4 V1 GROUP USES E OBJ E1 E CON1 E3-0.25 OBJECT BOUND LO HS14 0.0 * Solution *LO SOLTN 1.42322464 ENDATA A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 26 / 40

CUTEr Um exemplo - HS14 *********************** * SET UP THE FUNCTION * * AND RANGE ROUTINES * *********************** ELEMENTS TEMPORARIES R R V1M2 V1M1 INDIVIDUALS HS14 T SQ-2 A V1M2 V1-2.0 F (V1M2)**2 G V1 2.0*(V1M2) H V1 V1 2.0 T SQ-1 A V1M1 V1-1.0 F (V1M1)**2 G V1 2.0*(V1M1) H V1 V1 2.0 T SQ F V1 * V1 G V1 2.0 * V1 H V1 V1 2.0 ENDATA A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 27 / 40

CUTEr Características Linguagem pouco natural. Não aconselhável para descrição de modelos complexos, mas é frequentemente usado para testes numéricos de software. A ferramenta SIFDec possui diferenciação automática. Muitos dos problemas disponíveis para o AMPL e GAMS são oriundos da colecção de problemas do CUTE. O CUTEr é software de domínio público (não limitado). Problemas teste de grandes dimensões sem o recurso a software comercial. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 28 / 40

CUTEr Características Linguagem pouco natural. Não aconselhável para descrição de modelos complexos, mas é frequentemente usado para testes numéricos de software. A ferramenta SIFDec possui diferenciação automática. Muitos dos problemas disponíveis para o AMPL e GAMS são oriundos da colecção de problemas do CUTE. O CUTEr é software de domínio público (não limitado). Problemas teste de grandes dimensões sem o recurso a software comercial. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 28 / 40

CUTEr Características Linguagem pouco natural. Não aconselhável para descrição de modelos complexos, mas é frequentemente usado para testes numéricos de software. A ferramenta SIFDec possui diferenciação automática. Muitos dos problemas disponíveis para o AMPL e GAMS são oriundos da colecção de problemas do CUTE. O CUTEr é software de domínio público (não limitado). Problemas teste de grandes dimensões sem o recurso a software comercial. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 28 / 40

CUTEr Características Linguagem pouco natural. Não aconselhável para descrição de modelos complexos, mas é frequentemente usado para testes numéricos de software. A ferramenta SIFDec possui diferenciação automática. Muitos dos problemas disponíveis para o AMPL e GAMS são oriundos da colecção de problemas do CUTE. O CUTEr é software de domínio público (não limitado). Problemas teste de grandes dimensões sem o recurso a software comercial. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 28 / 40

CUTEr Características Linguagem pouco natural. Não aconselhável para descrição de modelos complexos, mas é frequentemente usado para testes numéricos de software. A ferramenta SIFDec possui diferenciação automática. Muitos dos problemas disponíveis para o AMPL e GAMS são oriundos da colecção de problemas do CUTE. O CUTEr é software de domínio público (não limitado). Problemas teste de grandes dimensões sem o recurso a software comercial. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 28 / 40

Colecções de problemas teste Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 29 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Colecções de problemas teste Colecções de problemas teste http://www-unix.mcs.anl.gov/ more/cops/ COPS (Large scale hard problems) http://www-unix.mcs.anl.gov/ leyffer/macmpec/ (MPEC) Equilibrium constraints - Alguns obtidos de bi-nível e semi-infinita. http://www.norg.uminho.pt/aivaz SIPAMPL SIP e Optimização global. http://www.netlib.org/ampl/models/ NETLIB Modelos diversos incluindo os do CUTE. http://www.sor.princeton.edu/ rvdb/ampl/nlmodels/ Optimização não linear - CUTE e não CUTE - programação semidefinida. http://plato.asu.edu/sub/testcases.html para uma lista enorme de colecções de problemas. http://plato.asu.edu/bench.html ainda mais colecções e Benchmarks for Optimization Software. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 30 / 40

Um exemplo de controlo óptimo Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 31 / 40

Um exemplo de controlo óptimo O problema de controlo O problema de controlo óptimo é descrito por um conjunto de equações diferenciais χ = h(χ, u, t), χ(t 0 ) = χ 0, t 0 t t f, onde χ representa as variáveis de estado e u as variáveis de controlo. O índice de desempenho J pode ser descrito da seguinte forma geral t f J(t f ) = ϕ(χ(t f ), t f ) + φ(χ, u, t)dt, t 0 onde ϕ é o índice de desempenho das variáveis de estado no instante de tempo final t f e φ é o desempenho integrado durante a operação. Podem ser impostas restrições adicionais que reflectem algumas limitações físicas do sistema. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 32 / 40

Um exemplo de controlo óptimo O problema de controlo O problema de controlo óptimo é descrito por um conjunto de equações diferenciais χ = h(χ, u, t), χ(t 0 ) = χ 0, t 0 t t f, onde χ representa as variáveis de estado e u as variáveis de controlo. O índice de desempenho J pode ser descrito da seguinte forma geral t f J(t f ) = ϕ(χ(t f ), t f ) + φ(χ, u, t)dt, t 0 onde ϕ é o índice de desempenho das variáveis de estado no instante de tempo final t f e φ é o desempenho integrado durante a operação. Podem ser impostas restrições adicionais que reflectem algumas limitações físicas do sistema. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 32 / 40

Um exemplo de controlo óptimo O problema de controlo O problema de controlo óptimo é descrito por um conjunto de equações diferenciais χ = h(χ, u, t), χ(t 0 ) = χ 0, t 0 t t f, onde χ representa as variáveis de estado e u as variáveis de controlo. O índice de desempenho J pode ser descrito da seguinte forma geral t f J(t f ) = ϕ(χ(t f ), t f ) + φ(χ, u, t)dt, t 0 onde ϕ é o índice de desempenho das variáveis de estado no instante de tempo final t f e φ é o desempenho integrado durante a operação. Podem ser impostas restrições adicionais que reflectem algumas limitações físicas do sistema. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 32 / 40

Um exemplo de controlo óptimo O problema de controlo óptimo O problema de maximização (P ) pode ser descrito na seguinte forma geral Problema (P ) max J(t f ) (1) s.t. χ = h(χ, u, t) (2) χ χ(t) χ, (3) u u(t) u, (4) t [t 0, t f ] (5) Onde as restrições de estado (3) e de controlo (4) são entendidas como desigualdades componente a componente. A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 33 / 40

Um exemplo de controlo óptimo subject to hbounds {i in 1..n}: 0.01<= h[i] <= 20; subject to fbounds {i in 1..n+1}: 0<= f[i] <= 12; A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 34 / 40 Um exemplo de controlo óptimo em AMPL function ethanol; param Cell_mass := 1; param Substrate := 150; param Product := 0; param Volume := 10; param n := 5; param h{1..n} := 12.24; var f{1..n+1}; maximize fx: ethanol(1, n, {i in 1..n} h[i], {i in 1..n+1} f[i], Cell_mass, Substrate, Product, Volume);

Perfis de desempenho Conteúdo 1 Introdução 2 Classificação de problemas 3 Linguagens de modelação AMPL GAMS CUTEr 4 Colecções de problemas teste 5 Um exemplo de controlo óptimo 6 Perfis de desempenho 7 Conclusões A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 35 / 40

Perfis de desempenho Problemas teste Perfis usados para comparação do PSwarm com os diversos solver de optimização global sem uso de derivadas. 122 problemas retirados da literatura sobre optimização global. 12 problemas de grande dimensão (entre 100 e 300 variáveis). Os restantes são de pequena (< 10) e média dimensão (< 30). Problemas teste disponíveis em http://www.norg.uminho.pt/aivaz (em software). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 36 / 40

Perfis de desempenho Problemas teste Perfis usados para comparação do PSwarm com os diversos solver de optimização global sem uso de derivadas. 122 problemas retirados da literatura sobre optimização global. 12 problemas de grande dimensão (entre 100 e 300 variáveis). Os restantes são de pequena (< 10) e média dimensão (< 30). Problemas teste disponíveis em http://www.norg.uminho.pt/aivaz (em software). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 36 / 40

Perfis de desempenho Problemas teste Perfis usados para comparação do PSwarm com os diversos solver de optimização global sem uso de derivadas. 122 problemas retirados da literatura sobre optimização global. 12 problemas de grande dimensão (entre 100 e 300 variáveis). Os restantes são de pequena (< 10) e média dimensão (< 30). Problemas teste disponíveis em http://www.norg.uminho.pt/aivaz (em software). A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 36 / 40

Perfis de desempenho Valor médio da função objectivo 1 Average objective value of 30 runs with maxf=1000 (7500) 1 0.9 0.8 0.7 0.6 0.95 0.9 0.85 ρ 0.5 0.8 ρ 0.4 0.3 0.2 0.1 0 ASA PSwarm PGAPack Direct MCS 1 2 3 4 5 6 7 8 9 10 τ 0.75 0.7 0.65 200 400 600 0.6 τ A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 37 / 40

Perfis de desempenho Um exemplo em MATLAB % Average objective function value of 30 runs %ASA T(:,1)=[1002 1002.066667 1002 1002.033333 1002 1002.066667 %PSwarm mu=nu=0.5, deltaf=5, popsize=20 T(:,2)=[1009.233333 239.9 249.2666667 251.5 254.5666667 512.8 %PGA T(:,3)=[1009.7 1008.533333 1008.866667 1008.3 1008.166667 1009.3 %Direct T(:,4)=[1245 1035 1079 1195 1021 1129 1003 1037 %Mcs T(:,5)=[643 235 84 85 121 103 614 85 255 107 216 156 1000 1034 Titulo = Average objective evaluation of 30 runs with maxf=1000 ; perf(t); % http://www-unix.mcs.anl.gov/~more/cops/ title(titulo); xlabel( \tau ); ylabel( \rho ); legend( ASA, PSwarm, PGAPack, Direct, MCS,4); A. Ismael F. Vaz (UMinho) Ferramentas de optimização 23 Março 2007 38 / 40