• Nenhum resultado encontrado

GLPK – GNU Linear Programming Kit

N/A
N/A
Protected

Academic year: 2019

Share "GLPK – GNU Linear Programming Kit"

Copied!
34
0
0

Texto

(1)

AULA 8

GLPK – GNU Linear Programming Kit

Autor: Anibal Tavares de Azevedo

PESQUISA OPERACIONAL

GLPK – GNU Linear Programming Kit

É um pacote de rotinas escritas em linguagem

ANSI C

e organizadas na forma de uma

biblioteca com funções que podem resolver

problemas de:

● Programação Linear de grande porte

e

● Problemas de Programação Inteira mista

.

O pacote GLPK incluiu os seguintes métodos

principais:

● Métodos primal e dual Simplex

,

● Método de Pontos Interiores Primal-Dual

,

(2)

Além

disso,

o

GLPK

suporta a

GNU MathProg

Modeling Language

que

é um subconjunto da

linguagem

AMPL

.

AMPL –

A Mathematical Programming Language

A

AMPL

é um acrônimo para

“A Mathematical

Programming Language”

é um

linguagem algébrica

de

modelagem

para

descrever

e

resolver

problemas de modelagem matemática. O AMPL

suporta dezenas de solvers: CPLEX, MINOS, Gurobi,

IPOPT, SNPOT e KNITRO. É utilizado por agências do

governo e instituições acadêmicas. Sua principal

vantagem é que sua sintaxe é

similar à notação

usada em problemas de otimização

.

NEOS –

Network-Enable Optimization System Server

O NEOS (Network-Enable Optimization System)

Server é um

serviço gratuito

baseado em

internet para a

resolução de problemas de

otimização

. Os solvers disponíveis representam

o que há de estado da arte em softwares de

otimização. O NEOS fornece um tratamento

simples

para uma

grande variedade de

problemas de otimização e várias interfaces para

os solvers

.

(3)

GLPK Lab for Windows

1

(4)

GLPK Lab for Windows

1

2

3

4

GLPK Lab for Windows

5

(5)

???

7

EXERCÍCIO

1:

Em

uma

fábrica

deve

ser

decidido

a

quantidade de produção x

1

e x

2

de dois produtos P1 e P2. O

lucro com o produto P1 é de R$ 5,00 por unidade e do

produto P2 é de R$ 2,00 por unidade. Existe uma máquina

para processar apenas o produto P1 cuja capacidade máxima

é de 3 unidades de tempo e para o produto P2, 4 unidades.

Nestas duas máquinas gasta-se 1 unidade de tempo para

processar 1 produto. Existe uma máquina capaz de processar

tanto o produto P1 como o produto P2 cuja capacidade

máxima de tempo é de 9 unidades de tempo. Assumindo que

nesta máquina o tempo para processar o produto P2 é o

dobro do gasto para processar o produto P1 e P1 gasta-se 1

unidade de tempo, pede-se:

(A) Formular o problema de otimização.

p

1

p

2

(6)

x

1

x

2

Máquina 1

3 unidades

de tempo

Máquina 2

4 unidades

de tempo

x

1

x

2

Máquina 3

9 unidades

de tempo

x

2

x

1

Tempo

1x

Tempo

2x

Tempo

1x

Tempo

1x

Formulação Matemática

Max Z=5x

1

+ 2x

2

S.a.: x

1

≤ 3

x

2

≤ 4

x

1

+ 2x

2

≤ 9

x

1

, x

2

≥ 0

Função Objetivo

Restrições

Variáveis

de

Decisão

(7)

Max Z=5x

1

+ 2x

2

S.a.: x

1

≤ 3

x

2

≤ 4

x

1

+ 2x

2

≤ 9

x

1

, x

2

≥ 0

Lucro por unidade

de cada produto

Restrições:

••••Tempo maq.1

••••

Tempo maq.2

••••Tempo maq.3

••••

não neg.

Quantidades

dos produtos

p

1

e p

2

4

x

2

3

(1,4)

(3,3)

Solução ótima

z =5x

1

+ 2x

2

=5*3+2*3

=21

(8)

GLPK Lab for Windows

/* Problema da Manufatura */ /* Variáveis de Decisão */ var x1 >=0; /* Quant. Prod. 1 */ var x2 >=0; /* Quant. Prod. 2 */

/* Função Objetivo */ maximize z: 5*x1 + 2*x2;

/* Restrições */ s.t. Maq1 : x1 <= 3; s.t. Maq2 : x2 <= 4; s.t. Maq3 : x1 + 2*x2 <= 9;

solve; printf '\n';

printf '---\n'; printf 'Prod1(x1) Prod2(x2) \n'; printf ' %5d %5d \n', x1, x2; printf '---\n'; printf ' Total(z): %10g\n', z; printf '\n‘;

end;

7

GLPK Lab for Windows

/* Problema da Manufatura */ /* Variáveis de Decisão */ var x1 >=0; /* Quant. Prod. 1 */ var x2 >=0; /* Quant. Prod. 2 */

/* Função Objetivo */ maximize z: 5*x1 + 2*x2;

/* Restrições */ s.t. Maq1 : x1 <= 3; s.t. Maq2 : x2 <= 4; s.t. Maq3 : x1 + 2*x2 <= 9;

solve; printf '\n';

printf '---\n'; printf 'Prod1(x1) Prod2(x2) \n'; printf ' %5d %5d \n', x1, x2; printf '---\n'; printf ' Total(z): %10g\n', z; printf '\n‘;

end;

7

Max z = 5x

1

+ 2x

2

S.a.: x

1

≤ 3

x

2

≤ 4

x

1

+ 2x

2

≤ 3

x

1

, x

2

≥ 0

1

2

3

4

(9)

/* Problema da Manufatura */ /* Variáveis de Decisão */ var x1 >=0; /* Quant. Prod. 1 */ var x2 >=0; /* Quant. Prod. 2 */

/* Função Objetivo */ maximize z: 5*x1 + 2*x2;

/* Restrições */ s.t. Maq1 : x1 <= 3; s.t. Maq2 : x2 <= 4; s.t. Maq3 : x1 + 2*x2 <= 9;

solve; printf '\n';

printf '---\n'; printf 'Prod1(x1) Prod2(x2) \n'; printf ' %5d %5d \n', x1, x2; printf '---\n'; printf ' Total(z): %10g\n', z; printf '\n‘;

end;

7

Imprime e Pula linha

Imprime contéudo de x1

%d – variável inteira.

%10g – variável real (dez dígitos).

GLPK Lab for Windows

EXERCÍCIO 1: OBTER A FORMULAÇÃO DOS MODELOS

MATEMÁTICOS,

DADOS

A

SEGUIR,

POR

MEIO

DO

GLPK.

(10)

Carteira de Investimentos

Max

+

+

+

+

+

100

20

,

0

100

13

,

0

100

09

,

0

100

12

,

0

100

095

,

0

100

087

,

0

P

1

P

2

P

3

P

4

P

5

P

6

S.a.:

P

1

+ P

2

+ P

3

+ P

4

+ P

5

+ P

6

= 100

P

1

25;P

2

25;P

3

25;P

4

25;P

5

25;P

6

25

P

3

+ P

5

+ P

6

50

P

1

+ P

2

+ P

5

50

P

1

, P

2

, P

3

, P

4

, P

5

, P

6

0

MODELO COMPLETO

Min

N

1

+ N

2

+ N

3

+ N

4

+ N

5

+ N

6

+ N

7

S.a.:

N

1

+ N

4

+ N

5

+ N

6

+ N

7

11

N

1

+ N

2

+ N

5

+ N

6

+ N

7

18

N

1

+ N

2

+ N

3

+ N

6

+ N

7

12

N

1

+ N

2

+ N

3

+ N

4

+ N

7

15

N

1

+ N

2

+ N

3

+ N

4

+ N

5

19

N

2

+ N

3

+ N

4

+ N

5

+ N

6

14

N

3

+ N

4

+ N

5

+ N

6

+ N

7

16

N

1

, N

2

, N

3

, N

4

, N

5

, N

6

, N

7

0

MODELO COMPLETO

(11)

1

2

3

Achando a solução

ótima do problema

GLPK Lab for Windows

1

2

3

4

(12)

GLPK Lab for Windows

1

2

3

Gerando o relatório

do modelo

GLPK Lab for Windows

/* Problema da Manufatura */

set I; /* indice do conjunto de maquinas */

set J; /* indice do conjunto de produtos */

param b{i in I}, >= 0; /* disp. maq. */

param f; /* conversão R$-US$ */

param d{j in J}; /* coef. f.o. */

param A{i in I, j in J}, >= 0; /* Matriz maq i prod j */

param c{j in J} := f * d[j] * 1000; /* custos em R$-1 prod=US$1000 */

var x{j in J} >= 0; /* Variáveis de Decisão */

maximize z: sum{j in J} c[j] * x[j]; /* Função Objetivo */ s.t. Maq{i in I}: sum{j in J} A[i,j]*x[j] <= b[i]; /* Restrições */

solve;

7

(13)

/* RELATORIO */

printf '\n';

printf '---\n';

printf 'Prod1(x1) Prod2(x2) \n';

printf{j in J} " %5s = %5g \n ", j, x[j];

printf '---\n';

printf 'Total (z): %10g\n', sum{j in J} c[j] * x[j];

printf '\n'; /* SEÇÃO DE DADOS */ data;

set I:= Maq1 Maq2 Maq3;

set J:= Prod1 Prod2;

/*: Prod1 Prod2 :=*/

param A : Prod1 Prod2 := Maq1 1 0 Maq2 0 1 Maq3 1 2;

7

PARTE 2 - FORMULAÇÃO

GLPK Lab for Windows

/*Matriz de utilização das maquinas por produto */

param b := Maq1 3 Maq2 4 Maq3 9;

/*Vetor de lucro dos produtos */

param d := Prod1 5 Prod2 2;

/* Fator de conversão R$ - US$ */

param f := 2.04;

end;

(14)

GLPK Lab for Windows

/* Problema da Manufatura */

set I; /* indice do conjunto de maquinas */

set J; /* indice do conjunto de produtos */

param b{i in I}, >= 0; /* disp. maq. */

param f; /* conversão R$-US$ */

param d{j in J}; /* coef. f.o. */

param A{i in I, j in J}, >= 0; /* Matriz maq i prod j */

param c{j in J} := f * d[j] * 1000; /* custos em R$-1 prod=US$1000 */

var x{j in J} >= 0; /* Variáveis de Decisão */

maximize z: sum{j in J} c[j] * x[j]; /* Função Objetivo */ s.t. Maq{i in I}: sum{j in J} A[i,j]*x[j] <= b[i]; /* Restrições */

solve;

7

PARTE 1 - FORMULAÇÃO

FORMULAÇÃO + GERAL

Índices das variáveis

GLPK Lab for Windows

/* Problema da Manufatura */

set I; /* indice do conjunto de maquinas */

set J; /* indice do conjunto de produtos */

param b{i in I}, >= 0; /* disp. maq. */

param f; /* conversão R$-US$ */

param d{j in J}; /* coef. f.o. */

param A{i in I, j in J}, >= 0; /* Matriz maq i prod j */

param c{j in J} := f * d[j] * 1000; /* custos em R$-1 prod=US$1000 */

var x{j in J} >= 0; /* Variáveis de Decisão */

maximize z: sum{j in J} c[j] * x[j]; /* Função Objetivo */ s.t. Maq{i in I}: sum{j in J} A[i,j]*x[j] <= b[i]; /* Restrições */

solve;

7

PARTE 1 - FORMULAÇÃO

FORMULAÇÃO + GERAL

(15)

/* Problema da Manufatura */

set I; /* indice do conjunto de maquinas */

set J; /* indice do conjunto de produtos */

param b{i in I}, >= 0; /* disp. maq. */

param f; /* conversão R$-US$ */

param d{j in J}; /* coef. f.o. */

param A{i in I, j in J}, >= 0; /* Matriz maq i prod j */

param c{j in J} := f * d[j] * 1000; /* custos em R$-1 prod=US$1000 */

var x{j in J} >= 0; /* Variáveis de Decisão */

maximize z: sum{j in J} c[j] * x[j]; /* Função Objetivo */ s.t. Maq{i in I}: sum{j in J} A[i,j]*x[j] <= b[i]; /* Restrições */

solve;

7

PARTE 1 - FORMULAÇÃO

FORMULAÇÃO + GERAL

Variável de decisão

GLPK Lab for Windows

/* Problema da Manufatura */

set I; /* indice do conjunto de maquinas */

set J; /* indice do conjunto de produtos */

param b{i in I}, >= 0; /* disp. maq. */

param f; /* conversão R$-US$ */

param d{j in J}; /* coef. f.o. */

param A{i in I, j in J}, >= 0; /* Matriz maq i prod j */

param c{j in J} := f * d[j] * 1000; /* custos em R$-1 prod=US$1000 */

var x{j in J} >= 0; /* Variáveis de Decisão */

maximize z: sum{j in J} c[j] * x[j]; /* Função Objetivo */ s.t. Maq{i in I}: sum{j in J} A[i,j]*x[j] <= b[i]; /* Restrições */

7

FORMULAÇÃO + GERAL

(16)

GLPK Lab for Windows

/* Problema da Manufatura */

set I; /* indice do conjunto de maquinas */

set J; /* indice do conjunto de produtos */

param b{i in I}, >= 0; /* disp. maq. */

param f; /* conversão R$-US$ */

param d{j in J}; /* coef. f.o. */

param A{i in I, j in J}, >= 0; /* Matriz maq i prod j */

param c{j in J} := f * d[j] * 1000; /* custos em R$-1 prod=US$1000 */

var x{j in J} >= 0; /* Variáveis de Decisão */

maximize z: sum{j in J} c[j] * x[j]; /* Função Objetivo */ s.t. Maq{i in I}: sum{j in J} A[i,j]*x[j] <= b[i]; /* Restrições */

solve;

7

PARTE 1 - FORMULAÇÃO

FORMULAÇÃO + GERAL

Comando para

resolver o problema

GLPK Lab for Windows

/* RELATORIO */

printf '\n';

printf '---\n';

printf 'Prod1(x1) Prod2(x2) \n';

printf{j in J} " %5s = %5g \n ", j, x[j];

printf '---\n';

printf 'Total (z): %10g\n', sum{j in J} c[j] * x[j];

printf '\n'; /* SEÇÃO DE DADOS */ data;

set I:= Maq1 Maq2 Maq3;

set J:= Prod1 Prod2;

/*: Prod1 Prod2 :=*/

param A : Prod1 Prod2 := Maq1 1 0 Maq2 0 1 Maq3 1 2;

7

PARTE 2 - FORMULAÇÃO

Contéudo

vetor x[j]

(17)

/* RELATORIO */

printf '\n';

printf '---\n';

printf 'Prod1(x1) Prod2(x2) \n';

printf{j in J} " %5s = %5g \n ", j, x[j];

printf '---\n';

printf 'Total (z): %10g\n', sum{j in J} c[j] * x[j];

printf '\n'; /* SEÇÃO DE DADOS */ data;

set I:= Maq1 Maq2 Maq3;

set J:= Prod1 Prod2;

/*: Prod1 Prod2 :=*/

param A : Prod1 Prod2 := Maq1 1 0 Maq2 0 1 Maq3 1 2;

7

PARTE 2 - FORMULAÇÃO

Valores para a matriz A

de disponibilidade de

recursos

Definição dos valores dos

índices I (3) e J (2).

GLPK Lab for Windows

/*Matriz de utilização das maquinas por produto */

param b := Maq1 3 Maq2 4 Maq3 9;

/*Vetor de lucro dos produtos */

param d := Prod1 5 Prod2 2;

/* Fator de conversão R$ - US$ */

param f := 2.04;

end;

7

Demais valores:

(18)

Uma firma produz dois tipos de tintas: seca rápido

(SR) e superseca (SS).Ambas são produzidas a partir

de uma base de silicato de e de óleo de linhaça

vindas de duas soluções ou isoladamente:

Cada litro de SR requer,

no mínimo

, 25% de

silicato e 50% de óleo de linhaça e cada litro de SS

requer,

no mínimo

, 20% de silicato e,

no máximo

,

50% de óleo de linhaça. Formular o PPL e achar

quantos litros comprar de cada solução para

produzir 100 litros de SR e 250 litros de SS.

Problema de Mistura

Solução

Preço/litro

Silicato

Linhaça

A

R$ 0,50

60%

40%

B

R$ 0,75

30%

70%

Silicato

R$ 1,00

100%

0%

Linhaça

R$ 1,50

0%

100%

Solução A

Solução B

Linhaça

Silicato

Linhaça

Silicato

60%

40%

30%

70%

(19)

Solução A

Solução B

Linhaça

Silicato

Tinta SR

x

ar

x

br

x

lr

x

sr

Quantidade de

Solução A

para

produção da

Tinta SR

Quantidade de

Silicato

para

produção da

Tinta SR

Variáveis de Decisão:

Solução A

Solução B

Linhaça

Silicato

Tinta SR

Problema de Mistura

(20)

Tinta SS

Problema de Mistura

Solução A

Solução B

Linhaça

Silicato

x

as

x

bs

x

ls

x

ss

x

as

+ x

bs

+ x

ls

+ x

ss

= 250

Problema de Mistura

Solução

Preço/litro

Silicato

Linhaça

A

R$ 0,50

60%

40%

B

R$ 0,75

30%

70%

Silicato

R$ 1,00

100%

0%

Linhaça

R$ 1,50

0%

100%

Tinta SR

0,25(x

ar

+x

br

+x

lr

+x

sr

)

Solução A

Solução B

Silicato

Linhaça

0,6x

ar

0,3x

br

1,0x

sr

0,0x

lr

(21)

Solução

Preço/litro

Silicato

Linhaça

A

R$ 0,50

60%

40%

B

R$ 0,75

30%

70%

Silicato

R$ 1,00

100%

0%

Linhaça

R$ 1,50

0%

100%

Tinta SR

0,50(x

ar

+x

br

+x

lr

+x

sr

)

Solução A

Solução B

Silicato

Linhaça

0,4x

ar

0,7x

br

0,0x

sr

1,0x

lr

0,4x

ar

+ 0,7x

br

+ 1,0x

lr

0,5(x

ar

+x

br

+x

lr

+x

sr

)

Problema de Mistura

Solução

Preço/litro

Silicato

Linhaça

A

R$ 0,50

60%

40%

B

R$ 0,75

30%

70%

Silicato

R$ 1,00

100%

0%

Linhaça

R$ 1,50

0%

100%

0,2(x

as

+x

bs

+x

ls

+x

ss

)

Solução A

Solução B

Silicato

Linhaça

0,6x

as

0,3x

bs

1,0x

ss

0,0x

ls

(22)

Problema de Mistura

Solução

Preço/litro

Silicato

Linhaça

A

R$ 0,50

60%

40%

B

R$ 0,75

30%

70%

Silicato

R$ 1,00

100%

0%

Linhaça

R$ 1,50

0%

100%

0,50(x

as

+x

bs

+x

ls

+x

ss

)

Solução A

Solução B

Silicato

Linhaça

0,4x

as

0,7x

bs

0,0x

ss

1,0x

ls

Tinta SS

0,4x

as

+ 0,7x

bs

+ 1,0x

ls

0,5(x

as

+x

bs

+x

ls

+x

ss

)

Uma firma produz dois tipos de tintas: seca rápido

(SR) e superseca (SS).Ambas são produzidas a partir

de uma base de silicato de e de óleo de linhaça

vindas de duas soluções ou isoladamente:

Problema de Mistura

Solução

Preço/litro

Silicato

Linhaça

A

R$ 0,50

60%

40%

B

R$ 0,75

30%

70%

Silicato

R$ 1,00

100%

0%

Linhaça

R$ 1,50

0%

100%

Min

0,5(x

ar

+ x

as

) + 0,75(x

br

+ x

bs

) +

(23)

Min

0,5(x

ar

+ x

as

) + 0,75(x

br

+ x

bs

) +

1,0(x

sr

+ x

ss

) + 1,5(x

lr

+ x

ls

)

S.a.:

x

ar

+ x

br

+ x

lr

+ x

sr

= 100

x

as

+ x

bs

+ x

ls

+ x

ss

= 250

0,6x

ar

+ 0,3x

br

+ 1,0x

sr

0,25(x

ar

+x

br

+x

lr

+x

sr

)

0,4x

ar

+ 0,7x

br

+ 1,0x

lr

0,5 (x

ar

+x

br

+x

lr

+x

sr

)

0,6x

as

+ 0,3x

bs

+ 1,0x

ss

0,2 (x

as

+x

bs

+x

ls

+x

ss

)

0,4x

as

+ 0,7x

bs

+ 1,0x

ls

0,5 (x

as

+x

bs

+x

ls

+x

ss

)

x

ar

, x

br

, x

lr

, x

sr

, x

as

, x

bs

, x

ls

, x

ss

0

MODELO COMPLETO

Min

0,5(x

ar

+ x

as

) + 0,75(x

br

+ x

bs

) +

1,0(x

sr

+ x

ss

) + 1,5(x

lr

+ x

ls

)

S.a.:

x

ar

+ x

br

+ x

lr

+ x

sr

= 100

x

as

+ x

bs

+ x

ls

+ x

ss

= 250

0,35x

ar

+ 0,05x

br

+ 0,75x

sr

- 0,25x

lr

0

-0,1x

ar

+ 0,2x

br

-

0,5x

sr

+ 0,5x

lr

0

0,4x

as

+ 0,1x

bs

+ 0,8x

ss

-

0,2x

ls

0

-0,1x

as

+ 0,2x

bs

-

0,5x

ss

+ 0,5x

ls

0

MODELO COMPLETO SIMPLIFICADO

(24)

Min

0,5(x

ar

+ x

as

) + 0,75(x

br

+ x

bs

) +

1,0(x

sr

+ x

ss

) + 1,5(x

lr

+ x

ls

)

S.a.:

x

ar

+ x

br

+ x

lr

+ x

sr

= 100

x

as

+ x

bs

+ x

ls

+ x

ss

= 250

0,35x

ar

+ 0,05x

br

+ 0,75x

sr

- 0,25x

lr

0

-0,1x

ar

+ 0,2x

br

-

0,5x

sr

+ 0,5x

lr

0

0,4x

as

+ 0,1x

bs

+ 0,8x

ss

-

0,2x

ls

0

0,1x

as

-

0,2x

bs

+

0,5x

ss

-

0,5x

ls

0

x

ar

, x

br

, x

lr

, x

sr

, x

as

, x

bs

, x

ls

, x

ss

0

MODELO COMPLETO SIMPLIFICADO

Problema de Mistura

GLPK Lab for Windows

#MODELO DO PROBLEMA DAS TINTAS

set N1; /* volume das tintas */

set N2; /* composição das fontes */

set F; /* fontes */

param b1{N1}; /* req. vol. tintas*/

param b2{N2}; /* req. composição */

param c{F}; /* custos fontes */

param a1{F,N1};

param a2{F,N2}; /* rend. fontes por tinta */

var x{f in F} >= 0; /* custo fontes */ /* Balanço do volume de tintas (litros) */

s.t. nb1{n1 in N1}: sum{f in F} a1[f,n1] * x[f] = b1[n1]; nb2{n2 in N2}: sum{f in F} a2[f,n2] * x[f] >= b2[n2]; /* custo total fontes (reais) */

minimize cost: sum{f inF} c[f]*x[f];

solve;

PARTE 1 - FORMULAÇÃO

(25)

/* RELATORIO */

printf '\n';

printf '---\n';

printf 'Prod(x) \n';

printf{f in F} " %5s = %5g \n ", f, x[f];

printf '---\n';

printf 'Total (z): %10g\n', sum{f in F} c[f] * x[f];

printf '\n';

/* SECAO DE DADOS */

data;

set F := AR BR LR SR AS BS LS SS;

param : N1 : b1 :=

TintaSR 100 /* litros de SR */ TintaSS 250 /* litros de SS */ ;

param : N2 : b2 :=

SilicatoSR 0 /* silicato de SR */ LinhacaSR 0 /* linhanca de SR */ SilicatoSS 0 /* silicato de SS */

LinhacaSS 0 /* linhanca de SS */ ;

PARTE 2 - FORMULAÇÃO

GLPK Lab for Windows

param c := AR 0.5 BR 0.75 LR 1.5 SR 1.0 AS 0.5 BS 0.75 LS 1.5 SS 1.0;

param a1 default 0

(26)

GLPK Lab for Windows

param a2 default 0

: SilicatoSR LinhacaSR SilicatoSS LinhacaSS := # (litros) (litros) (litros) (litros) AR 0.35 -0.1 . . BR 0.05 0.2 . . LR -0.25 -0.5 . . SR 0.75 0.5 . . AS . . 0.4 0.1 BS . . 0.1 -0.2 LS . . 0.8 0.5 SS . . -0.2 -0.5;

end;

PARTE 4 - FORMULAÇÃO

Min

0,5(x

ar

+ x

as

) + 0,75(x

br

+ x

bs

) +

1,0(x

sr

+ x

ss

) + 1,5(x

lr

+ x

ls

) =

183.33

S.a.:

x

ar

+ x

br

+ x

lr

+ x

sr

= 100

x

as

+ x

bs

+ x

ls

+ x

ss

= 250

0,35x

ar

+ 0,05x

br

+ 0,75x

sr

- 0,25x

lr

0

-0,1x

ar

+ 0,2x

br

-

0,5x

sr

+ 0,5x

lr

0

0,4x

as

+ 0,1x

bs

+ 0,8x

ss

-

0,2x

ls

0

0,1x

as

-

0,2x

bs

+

0,5x

ss

-

0,5x

ls

0

x

ar

, x

br

, x

lr

, x

sr

, x

as

, x

bs

, x

ls

, x

ss

0

SOLUÇÃO DO MODELO

Problema de Mistura

(27)

EXERCÍCIO 2: OBTER A SOLUÇÃO DOS MODELOS

MATEMÁTICOS E DE SUAS EXTENSÕES, DADOS A

SEGUIR, POR MEIO DO GLPK.

???

7

Carteira de Investimentos

Max

+

+

+

+

+

100

20

,

0

100

13

,

0

100

09

,

0

100

12

,

0

100

095

,

0

100

087

,

0

P

1

P

2

P

3

P

4

P

5

P

6

S.a.:

P

1

+ P

2

+ P

3

+ P

4

+ P

5

+ P

6

= 100

P

1

25;P

2

25;P

3

25;P

4

25;P

5

25;P

6

25

P

3

+ P

5

+ P

6

50

P

1

+ P

2

+ P

5

50

(28)

Carteira de Investimentos

EXERCÍCIO 2.1

MODIFICAR O MODELO DE MODO QUE:

(A) Todo dinheiro pode ser alocado no máximo em até 100%

do total.

(B) As aplicações 2 e 6 devem ter um mínimo de 5% do total .

(C) O total aplicado em títulos de risco baixo ou regular deve

ser no mínimo de 15%.

(D) Associar ao retorno de cada aplicação uma probabilidade

de ocorrência e achar o retorno médio esperado.

Min

N

1

+ N

2

+ N

3

+ N

4

+ N

5

+ N

6

+ N

7

S.a.:

N

1

+ N

4

+ N

5

+ N

6

+ N

7

11

N

1

+ N

2

+ N

5

+ N

6

+ N

7

18

N

1

+ N

2

+ N

3

+ N

6

+ N

7

12

N

1

+ N

2

+ N

3

+ N

4

+ N

7

15

N

1

+ N

2

+ N

3

+ N

4

+ N

5

19

N

2

+ N

3

+ N

4

+ N

5

+ N

6

14

N

3

+ N

4

+ N

5

+ N

6

+ N

7

16

N

1

, N

2

, N

3

, N

4

, N

5

, N

6

, N

7

0

MODELO COMPLETO

(29)

EXERCÍCIO 2.2

MODIFICAR O MODELO DE MODO QUE:

(A) Todo funcionário que começar a trabalhar no sábado ou

domingo deverá folgar 3 e não 2 dias.

(B) A partir do modelo original impor que todo funcionário

que trabalhar no sábado ou domingo deverá folgar 3 dias.

(C) Alterar os custos do modelo original de modo que quem

trabalha no sábado ou no domingo tem uma remuneração

50% maior.

GLPK Lab for Windows

EXERCÍCIO 3: Formar grupos de até 3 pessoas

para

formular

e

resolver

no

GLPK

um

dos

seguintes problemas matemáticos. Entrega do

relatório: 28/05/2013

(30)

TEMA 1:

A Voe Bem precisa decidir a quantidade de querosene

para combustível de seus jatos que adquire de 3 companhias

vendedoras. Seus jatos são regularmente abastecidos nos

aeroportos de Congonhas, Viracopos, Galeão e Pampulha. As

companhias vendedoras poderão fornecer no próximo mês as

seguintes quantidades de combustível:

Companhia

Galões [litros]

1

250.000

2

500.000

3

600.000

Compra de Combustível

As

necessidade

em

cada

aeroporto é dada por:

Aeroporto

Galões [litros]

Congonhas

100.000

Viracopos

200.000

Galeão

300.000

Pampulha

400.000

O custo por galão, incluindo o preço do transporte (em R$/Litro),

de cada companhia para cada aeroporto é dado por:

Compra de Combustível

Aeroporto

Companhia 1 Companhia 2 Companhia 3

Congonhas

12

9

10

Viracopos

10

11

14

Galeão

8

11

13

Pampulha

11

13

9

(31)

TEMA 2:

Uma refinaria capaz de processar 100.000 barris por

dia de petróleo em gás, gasolina, óleo diesel e resíduo, precisa

determinar seu programa de produção. Todos os produtos

podem ser vendidos diretamente, exceto o resíduo que precisa

ser combinado com querosene para produzir óleo pesado

(10% querosene e 90% resíduo) ou óleo leve (20% querosene e

80% resíduo).

A refinaria precisa satisfazer um mínimo de contratos de venda

e um máximo de produção estabelecido pelo governo (tab.1).

A refinaria pode comprar petróleo de 3 diferentes países, cujas

disponibilidades diárias estão na tabela 2. Sabe-se ainda que

ela se comprometeu a comprar pelo menos 10.000 barris por

dia da Arábia Saudita. Formule o modelo de PL.

Compra de Combustível

Produto

Preço de

Venda [R$]

Produção

Máxima

Barris/dia

Produção

mínima

Barris/dia

Gás

2.10

10.000

5.000

Gasolina

3.50

20.000

13.000

Querosene

3.30

20.000

15.000

Óleo diesel

3.10

25.000

10.000

Óleo pesado

2.50

20.000

10.000

Óleo leve

2.80

20.000

12.000

(32)

Compra de Combustível

Formule o problema de programação linear e obtenha sua solução

por meio do GLPK.

Origem

Custo

/barril

[R$]

Porcentagem dos Componentes

Máx.

barris/

dia

Gás

Gasolina

Diesel

Querosene Resíduo

Kwait

2.00

10

10

10

10

60

70.000

Arábia S.

2.50

10

15

15

15

45

100.000

Líbia

3.00

10

20

20

20

30

50.000

TABELA 2

TEMA 3:

Duas ligas metálicas A e B são feitas de quatro metais

distintos I, II, III e IV, de acordo com a seguinte especificação dada

na Tabela 1.

Compra de Combustível

Liga

Especificação

Preço de Venda

[R$/ton]

A

no máximo 80% de I

200,00

no máximo 30% de II

no mínimo 50% de IV

B

entre 40% e 60% de II

300,00

no mínimo 30% de III

no máximo 70% de IV

(33)

Os quatro metais são extraídos de três minérios diferentes, cujas

percentagens em peso, quantidades máximas dos minérios e

custos por tonelada são dados na Tabela 2.

Liga

Quant.

Max.

[ton]

Componentes (%)

Preço

Compra

[R$/ton]

I

II

III

IV

Outros

1

1.000

20

10

30

30

10

30,00

2

2.000

10

20

30

30

10

40,00

3

3.000

5

5

70

20

0

50,00

TABELA 2

Formule o problema de programação linear e obtenha sua solução

por meio do GLPK.

TEMA 4:

Um fabricante de rações quer determinar a fórmula mais

econômica de uma certa ração. A composição nutritiva dos

ingredientes disponíveis no mercado e os seus custos são dados

na Tabela 1.

Compra de Combustível

Ingredientes [%]

Nutrientes

Soja

Milho

Cana

Cálcio

0,2

1

3

Proteína

50

9

0

Carbo-Hidratos

0,8

2

2

(34)

Um fabricante deve entregar 1000 quilos de ração por dia e

garantir que esta contenha os requisitos contidos na Tabela 2.

Compra de Combustível

Nutriente

Máximo [%]

Mínimo [%]

Cálcio

1,2

0,8

Proteína

-

22,0

Carbo-Hidratos

20,0

-TABELA 2

Formule o problema de programação linear e obtenha sua solução

por meio do GLPK.

Referências

Documentos relacionados

Unidade Local Telefones Email Americana/ Dom Bosco e M.ª Auxiliadora Campinas/ São José Campinas/ Liceu Salesiano Lorena/ São Joaquim São Paulo/ Pio XI São

Este Relatório de Atividades procura sintetizar as ações desenvolvidas pela Escola Superior de Tecnologia da Saúde de Lisboa ao longo do 4.º Trimestre de 2013, estando

Com base na análise da proposta e do contrato com o órgão/instituição contratante e estabelecimento das regras, normas e da forma como será conduzida a execução do

Assim, os resultados iluminam os contributos da investigação, enquanto ferramenta de formação de professores, para a promoção do seu desenvolvimento pessoal e

Os componentes são integrados e o conjunto maior é testado – módulo e sub-sistemas... Teste de software é a etapa de controle de qualidade, serve para assegurar que o software

O planejamento, compreendido como sendo o momento no qual ocorre a escolha do tema a ser abordado pelo PE; a construção, como o momento de debate e

Depois das atividades no espelho, a professora pode propor atividades de registro, como: completar faces, brincar com quebra cabeça do corpo humano, desenhar o corpo

Diversas variáveis operacionais para a produção desses compactos foram estudadas, tais como granulometria do carvão vegetal, tratamento térmico, teor de ligantes e espessura