- 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic...

17
- 1 - Sessão #2 | 28 Abril 2010 : : : : Sessão #2 : : : : Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL - Instituto Superior de Engenharia de Lisboa Webpage: pwp.net.ipl.pt/deea.isel/jsousa Formação Galp Energia Modelação e Simulação de Mercados de Energia Eléctrica

Transcript of - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic...

Page 1: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 1 -Sessão #2 | 28 Abril 2010

:::: Sessão #2 ::::

Introdução ao GAMSGeneral Algebraic Modeling System

Jorge de SousaProfessor Coordenador

ISEL - Instituto Superior de Engenharia de Lisboa

Webpage: pwp.net.ipl.pt/deea.isel/jsousa

Formação Galp EnergiaModelação e Simulação de Mercados de Energia Eléctrica

Page 2: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 2 -Sessão #2 | 28 Abril 2010

• Enquadramento

• Exemplo de aplicação

• Programação em GAMS

• Exercício

Agenda

Page 3: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 3 -Sessão #2 | 28 Abril 2010

Enquadramento

O GAMS - General Algebraic Modeling System é uma linguagem dedicada à modelização de problemas de optimização lineares, não lineares e de programação inteira mista, particularmente útil para problemas de elevada dimensão e complexidade.

O GAMS permite ao utilizador concentrar-se na modelação do problema tornando fácil a sua implementação. O utilizador pode alterar a formulação de forma rápida e simples, podendo seleccionar e trocar o método numérico de resolução e até mudar um problema linear para não linear sem qualquer problema.

A linguagem GAMS é formalmente idêntica a outras linguagens de programação comuns pelo que qualquer utilizador com um mínimo de experiência em programação se sentirá familiar com o GAMS.

Page 4: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 4 -Sessão #2 | 28 Abril 2010

• Enquadramento

• Exemplo de aplicação

• Programação em GAMS

• Exercício

Agenda

Page 5: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 5 -Sessão #2 | 28 Abril 2010

Exemplo de aplicaçãoO problema de transporte: Formulação

O problema de transporte é um problema clássico de optimização que consiste em determinar a forma mais eficiente de enviar um bem disponível em quantidades limitadas em determinados locais (oferta) para outros locais onde é consumido (procura).

A formulação do problema passa por determinar a distribuição óptima de um produto homogéneo que:

a) está disponível em m origens nas quantidades fixas ai > 0 (oferta), com i = 1, 2, …, m;

b) é necessário em n destinos nas quantidades fixas bj > 0 (procura), com j = 1, 2, …, n;

c) deve ser enviado directamente para os destinos, esgotando as disponibilidades em cada origem e satisfazendo as necessidades em cada destino.

Page 6: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 6 -Sessão #2 | 28 Abril 2010

Exemplo de aplicaçãoO problema de transporte: Formulação

O problema de transporte tem por objectivo a minimização do custo total de distribuição do produto, em que os custos unitários de transporte da cada origem i para cada destino j, cij, são proporcionais às quantidades transportadas, xij.

Page 7: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 7 -Sessão #2 | 28 Abril 2010

Exemplo de aplicaçãoO problema do transporte: Formulação

O problema de transporte tem assim a seguinte formulação matemática:

Page 8: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 8 -Sessão #2 | 28 Abril 2010

Exemplo de aplicaçãoO problema do transporte: Dados de entrada

Como concretização do exemplo de transporte vamos admitir que existem duas fábricas e três centros de consumo, em que os valores de oferta, procura e distâncias entre as fábricas e os centros estão indicados na tabela abaixo.

Considera-se ainda que o custo unitário de transporte é de 90 unidades monetárias por cada unidade de produto e de distância percorrida.

Distâncias (xij)

Oferta(ai)

Centro 1 Centro 2 Centro 3

Fábrica 1 2.5 1.7 1.8 350

Fábrica 2 2.5 1.8 1.4 600

Procura (bj) 325 300 275

Page 9: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 9 -Sessão #2 | 28 Abril 2010

• Enquadramento

• Exemplo de aplicação

• Programação em GAMS

• Exercício

Agenda

Page 10: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 10 -Sessão #2 | 28 Abril 2010

Programação em GAMSAmbiente de desenvolvimento

Page 11: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 11 -Sessão #2 | 28 Abril 2010

Programação em GAMSO problema do transporte (1/3)

Setsi fabricas / Fabrica1, Fabrica2 /j centros / Centro1, Centro2, Centro3 / ;

Parametersa(i) capacidade de producao da fabrica i / Fabrica1 350 Fabrica2 600 /b(j) consumo no centro j / Centro1 325 Centro2 300 Centro3 275 / ;

Table d(i,j) distancia das fabricas aos centros Centro1 Centro2 Centro3

Fabrica1 2.5 1.7 1.8Fabrica2 2.5 1.8 1.4 ;

Scalar f custo por unidade de produto e de distancia /90/ ;

Parameter c(i,j) custo de transporte por unidade de produto;c(i,j) = f*d(i,j);

Page 12: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 12 -Sessão #2 | 28 Abril 2010

Variablesx(i,j) quantidade transportada de i para jz custo total de transporte;

Positive variable x ;

Equationscusto funcao objectivo custo totaloferta(i) limite de producao da fabrica iprocura(j) procura no centro j ;

custo .. z =e= sum((i,j), c(i,j)*x(i,j)) ;oferta(i) .. sum(j, x(i,j)) =l= a(i) ;procura(j) .. sum(i, x(i,j)) =g= b(j) ;

Model transporte /custo, oferta, procura/ ;

Solve transporte using lp minimizing z ;

Programação em GAMSO problema do transporte (2/3)

Page 13: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 13 -Sessão #2 | 28 Abril 2010

Display x.l, x.m, z.l ;

* Escreve resultados no ficheiro externo "C:\transporte.txt"File output /C:\transporte.txt/ ;put output ;put "Custo total = ", put z.l, put /, put / ;put "xij: ", put / , put " ";loop(j, put j.tl) ;put /;loop(i, put i.tl, loop (j, put x.l(i,j)) ; put / ;) ;putclose output

Programação em GAMSO problema do transporte (3/3)

Page 14: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 14 -Sessão #2 | 28 Abril 2010

Inputs (file.gms) Outputs (file.lst)· Sets Declaração Assignação dos elementos

· Data (Parameters, Tables, Scalar) Declaração Assignação de valores

· Variables Declaração Assignação do tipo Assignação de limites e/ou valores iniciais (opcional)

· Equations Declaração Definição

· Model / Solve: definição e solução do modelo

· Display (opcional)

· Echo Print

· Equation Listing

· Model Statistics

· Solution Report

· Results

Programação em GAMSEstrutura: Entradas e saídas

Page 15: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 15 -Sessão #2 | 28 Abril 2010

• Enquadramento

• Exemplo de aplicação

• Programação em GAMS

• Exercício

Agenda

Page 16: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 16 -Sessão #2 | 28 Abril 2010

ExercícioO problema de transporte alterado

Considere o exemplo do problema de transporte apresentado anteriormente adaptado agora a uma situação de quatro fábricas e cinco centros de consumo. Os valores de oferta, procura e distâncias entre as fábricas e os centros encontram-se indicados na tabela abaixo e o custo unitário de transporte é de 5 unidades monetárias.

Distâncias (xij)

Oferta(ai)

Centro 1 Centro 2 Centro 3 Centro 4 Centro 5

Fábrica 1 2.5 1.7 1.5 1.3 1.8 300

Fábrica 2 2.1 1.5 3.8 1.5 5.0 550

Fábrica 3 2.0 2.8 2.0 2.5 1.0 200

Fábrica 4 2.7 2.3 1.0 3.8 4.3 500

Procura (bj) 250 300 275 100 125

Page 17: - 1 - Sessão #2 | 28 Abril 2010 :: :: :: Sessão #2 :: Introdução ao GAMS General Algebraic Modeling System Jorge de Sousa Professor Coordenador ISEL -

- 17 -Sessão #2 | 28 Abril 2010

:::: Sessão #2 ::::

Introdução ao GAMSGeneral Algebraic Modeling System

Jorge de SousaProfessor Coordenador

ISEL - Instituto Superior de Engenharia de Lisboa

Webpage: pwp.net.ipl.pt/deea.isel/jsousa

Formação Galp EnergiaModelação e Simulação de Mercados de Energia Eléctrica