Você está na página 1de 13

MEN - Mercados de Energia

Mestrado em Engenharia Electrotcnica

Introduo ao GAMS
General Algebraic Modeling System
Jorge Alberto Mendes de Sousa
Professor Coordenador

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

ISEL Instituto Superior de Engenharia de Lisboa

-1-

Agenda
1. Enquadramento

2. Exemplo de aplicao
3. Estrutura da programao GAMS

4. Exerccio

ISEL Instituto Superior de Engenharia de Lisboa

-2-

Enquadramento

O GAMS - General Algebraic Modeling System uma linguagem


dedicada modelizao de problemas de optimizao lineares, no
lineares e de programao inteira mista, particularmente til para
problemas de elevada dimenso e complexidade.

O GAMS permite ao utilizador concentrar-se na modelao do


problema tornando fcil a sua implementao. O utilizador pode alterar
a formulao de forma rpida e simples, podendo seleccionar e trocar o
mtodo numrico de resoluo e at mudar um problema linear para
no linear sem qualquer problema.

A linguagem GAMS formalmente idntica a outras linguagens de


programao comuns pelo que qualquer utilizador com um mnimo de
experincia em programao se sentir familiar com o GAMS.

ISEL Instituto Superior de Engenharia de Lisboa

-3-

Exemplo de aplicao

O problema de transporte: Formulao

O problema de transporte um problema clssico de optimizao que


consiste em determinar a forma mais eficiente de enviar um bem
disponvel em quantidades limitadas em determinados locais (oferta) para
outros locais onde necessrio (procura).

A formulao do problema passa por programar a distribuio ptima de


um produto homogneo que:
a) est disponvel em m origens nas quantidades fixas ai > 0 (oferta), com i
= 1, 2, , m;
b) necessrio em n destinos nas quantidades fixas bj > 0 (procura), com j
= 1, 2, , n;
c) deve ser enviado directamente para os destinos, no excedendo o limite
disponvel em cada origem e satisfazendo as necessidades em cada
destino.

ISEL Instituto Superior de Engenharia de Lisboa

-4-

Exemplo de aplicao

O problema de transporte: Formulao


O problema de transporte tem por objectivo a minimizao do custo total
de distribuio do produto, em que os custos unitrios de transporte da
cada origem i para cada destino j, cij, so proporcionais s quantidades
transportadas, xij.

ISEL Instituto Superior de Engenharia de Lisboa

-5-

Exemplo de aplicao

O problema do transporte: Formulao


O problema de transporte tem assim a seguinte formulao matemtica:

ISEL Instituto Superior de Engenharia de Lisboa

-6-

Exemplo de aplicao

O problema do transporte: Dados de entrada

Como concretizao do exemplo de transporte vamos admitir que existem


duas fbricas e trs centros de consumo, em que os valores de oferta,
procura e distncias entre as fbricas e os centros esto indicados na
tabela abaixo.

Considera-se ainda que o custo unitrio de transporte de 90 unidades


monetrias por cada unidade de produto e de distncia percorrida.

Distncias
(dij)

Oferta
(ai)

Centro 1

Centro 2

Centro 3

Fbrica 1

2.5

1.7

1.8

350

Fbrica 2

2.5

1.8

1.4

600

Procura (bj)

325

300

275

ISEL Instituto Superior de Engenharia de Lisboa

-7-

Exemplo de aplicao

O problema do transporte: Programao GAMS

(1/3)

Sets
i fabricas
j centros

/ Fabrica1, Fabrica2 /
/ Centro1, Centro2, Centro3 / ;

Parameters
a(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.8
Fabrica2
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);
ISEL Instituto Superior de Engenharia de Lisboa

-8-

Exemplo de aplicao

O problema do transporte: Programao GAMS

(2/3)

Variables
x(i,j) quantidade transportada de i para j
z custo total de transporte;
Positive variable x ;
Equations
custo
funcao objectivo custo total
oferta(i) limite de producao da fabrica i
procura(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 ;

ISEL Instituto Superior de Engenharia de Lisboa

-9-

Exemplo de aplicao

O problema do transporte: Programao GAMS

(3/3)

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

ISEL Instituto Superior de Engenharia de Lisboa

- 10 -

Estrutura da programao GAMS


Entradas e sadas

Inputs (file.gms)
Sets
Declarao
Assignao dos elementos

Data (Parameters, Tables, Scalar)


Declarao
Assignao de valores

Outputs (file.lst)
Echo Print
Equation Listing
Model Statistics
Solution Report

Variables
Declarao
Assignao do tipo
Assignao de limites e/ou valores iniciais (opcional)

Results

Equations
Declarao
Definio

Model / Solve: definio e soluo do modelo


Display (opcional)

ISEL Instituto Superior de Engenharia de Lisboa

- 11 -

Exerccio

O problema de transporte alterado

Como exerccio considere o exemplo do problema de transporte


apresentado onde agora existem quatro fbricas e cinco centros de
consumo, com os valores de oferta, procura e distncias entre as fbricas e
os centros indicados na tabela abaixo.

Considere ainda que o custo unitrio de transporte de 5 unidades


monetrias.
Distncias
(dij)

Oferta
(ai)

Centro 1

Centro 2

Centro 3

Centro 4

Centro 5

Fbrica 1

2.5

1.7

1.5

1.3

1.8

300

Fbrica 2

2.1

1.5

3.8

1.5

5.0

550

Fbrica 3

2.0

2.8

2.0

2.5

1.0

200

Fbrica 4

2.7

2.3

1.0

3.8

4.3

500

Procura (bj)

250

300

275

100

125

ISEL Instituto Superior de Engenharia de Lisboa

- 12 -

MEN - Mercados de Energia


Mestrado em Engenharia Electrotcnica

Introduo ao GAMS
General Algebraic Modeling System
Jorge Alberto Mendes de Sousa
Professor Coordenador

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

ISEL Instituto Superior de Engenharia de Lisboa

- 13 -

Você também pode gostar