Вы находитесь на странице: 1из 12

1.1 O que LINGO?

O LINGO uma ferramenta simples para utilizar o poder da otimizao linear ou nolinear para formular problemas grandes concisamente, resolv-los e analisar a soluo.
1.2 Exemplo de modelo LINGO
1.2.3 Problemas da Otimizao de Padres de Produo
Uma determinada fbrica produz panelas de metal mdias e grandes a partir de
elementos circulares de dimetro circulares de dimetros de 0,25 e 0,40 metros,
respectivamente. A primeira operao para obter as panelas um corte desses elementos
circulares sobre chapas de dimenso 1,40 x 0,50 metros. Os elementos planos circulares
so transformados em panelas em uma segunda operao de estamparia. Para o corte
existem quatros tipos de matrizes conforme mostra a figura abaixo. A fbrica deseja
uma produo diria mnima de 500 panelas mdias (obtidas do elemento circular de
0,25) e 350 grandes (obtidas do elemento circular de dimetro 0,40). Os custos em reais
por chapa pelo uso de cada matriz de corte so respectivamente: 1,2,3,2. Elaborar o
modelo de Programao Linear que planeje a produo de modo a minimizar o custo
com o uso de chapas. Seja xi a quantidade de chapas cortadas de acordo com a matriz, i
= 1,...,4 a serem utilizadas na produo.

O modelo de deciso do problema dado a seguir:

Outra forma de representar o modelo de deciso deste problema :

Onde

Para este exemplo, usaremos uma modelagem simples, parecida muito com a
modelagem utilizada pelo LINDO. Primeiramente devemos abrir o LINGO, depois de
aberto o LINGO mostrar uma tela em branco, parecida com o da figura (a) onde ser
digitado o modelo. Um modelo LINGO muito parecido com o LINDO, conforme
podemos observar atravs da figura (b). Aqui neste modelo estamos declarando a
Funo-Objetivo (FO) a qual deve ser minimizada, da o comando MIN. Caso este PPL
fosse de cada comando devemos colocar ;. No h necessidade de digitar END ao
final do modelo. As quatro ltimas linhas esto informando ao LINGO que as variveis
so do tipo inteiro, o que feito atravs do comando @GIN (nome da varivel). Os
tipos de variveis que podem ser usadas com o LINGO so apresentadas na tabela a
seguir. Vale lembrar que os nomes das variveis tm que ser iniciados por letras e
podem ser seguidos por qualquer caractere alfanumrico.

Observaes:
1. Caso queira fazer algum comentrio basta digitar ! seguido do comentrio.
2. Voc pode dar nome s linhas das restries, para isso, basta digitar o nome da
restrio entre colchonetes. Ex.: [Rest1]

Figura (a)

Figura (b)
Comando
@GIN (VAR)
@BIN (VAR)
@FREE (VAR)
@BND (LI,VAR,LS)

Explicao
Usado para designar variveis inteiras
Usado para designar variveis binrias
Usado para designar que a varivel
livre
Usado para designar os valores pelos
quais a varivel VAR limitada
inferiormente e superiormente. Aqui
temos que LI valor mnimo da
varivel e LS o valor mximo, ou
seja,LI<=VAR<=LS.

No nosso exemplo todas as variveis so inteiras, da a necessidade da incluso


das ltimas quatro linhas ao modelo. Agora s falta resolv-lo, para isto basta
clicar no menu LINGO e logo em seguida em seguida em SOLVE, ou
simplesmente clique no boto SOLVE na barra de ferramentas. Se tudo estiver
digitado corretamente aparecer uma janela como a mostrada na figura abaixo.

LINGO
O LINGO um software para otimizao de problemas lineares e nolineares. Este software permite utilizar uma sintaxe especifica de tal
modo que grandes problemas podem ser descritos de concisa.
--Clique no boto CLOSE para fechar esta janela, aparecera na tela
uma janela com os resultados do problema obtidos pelo LINGO,
conforme pode ser observado na figura abaixo:

Em um relatrio de soluo do LINGO voc encontrar uma parte


denominada REDUCED COST (custo reduzido) para cada varivel do
problema. Ela pode ser interpretada da seguinte maneira:
O custo reduzido de uma varivel do tipo real pode ser interpretado
como a quantia de penalidade (positiva ou negativa, dependendo do
problema) que voc teria que pagar para introduzir uma unidade
daquela varivel na soluo. No nosso exemplo, a varivel x2 (caso
ela fosse do tipo real) teria como custo reduzido 1, significando que
se diminuirmos uma unidade do coeficiente da varivel na FO, seu
uso se tornaria interessante.
J a coluna SLACK or SURPLUS, indica o excesso em restries do
tipo >= ou a folga em restries do tipo <=. No nosso exemplo
podemos observar que temos uma folga de 4 unidades na primeira
restrio e 1 unidade na segunda restrio.
A coluna DUAL PRICE pode ser interpretada como a quantia pela
qual a funo objetivo FO melhoraria (pioraria) quando o lado direito
das restries (constantes) aumentado(diminudo) em uma unidade.
Ele tambm pode ser entendido como o que estamos dispostos a
pagar por unidades adicionais de um recurso. Por isto ele tambm
chamado de SHADOW PRICE. Essas informaes, no entanto, s tem
sentido se as variveis envolvidas no modelo forem tipo real e essa

anlise tem validade apenas em um certo intervalo de variao das


restries.

Problema da Agencia de Propaganda


Uma agencia de propaganda planeja uma campanha de publicidade em trs meios de
comunicao: televiso, rdio e revistas. O propsito da propaganda de alcanar tantos
fregueses em potencial quanto possvel. Os resultados de um estudo de mercado esto
no quadro seguir:

A empresa que encomendou a campanha no quer gastar mais que R$800.000 com
propaganda. Alm disso, requer:
a) Que pelo menos 2 milhes de pessoas seja do sexo feminino;
b) Que a propaganda vinculada pela TV seja limitada a um custo de R$500.000;
c) Que pelo menos 3 unidades de propaganda sejam vinculadas no horrio comum
e pelo menos 2 durante horrio nobre;
d) Que o nmero de unidades de propaganda no rdio e na revista fique
individualmente entre 5 e 10.
A modelagem para este problema e representada a seguir:

Onde xj= nmero de unidades de propaganda a serem veiculadas no meio de


comunicao
J= (1: horrio comum na TV; 2: horrio nobre na TV; 3: rdio; 4: revista)

Outra forma de representar o modelo de deciso deste problema :

Usaremos neste problema o conceito de SETS (grupos de objetos relacionados) que


normalmente so utilizados em problemas de grande porte. Em um modelo LINGO,
uma seo SETS definida da seguinte forma:
SETS:
setname [/ member_list /][:variable_list];
ENDSETS
Onde:
setname => o nome que voc escolhe para designer o grupo de objetos.
[/member_list/] => lista de membros que constituem o grupo de objetos.
Tabela de exemplos de lista de membros de um grupo de objetos

[variable_list] => lista de variveis (ou constantes) que tem as mesmas caractersticas
do grupo de objetos. Quando h mais de uma varivel (ou constante), elas devem ser
separadas por virgulas.

Observao: Os colchetes indicam que essas informaes so opcionais.


Exemplo:
v1 / 1..4 /: x, C, D ;
Neste exemplo estamos definindo um grupo de objetos com nome v1, cujos membros
so 1, 2, 3 e 4. X, C e D so variveis (ou constantes) que tem esses membros em seu
domnio de definio (x(1),..., x(4), C(1), ..., C(4), D(1),..., D(4)).
Um grupo de objetos tambm pode ser derivado de outros grupos, como o caso do
exemplo abaixo, onde temos o grupo Matriz que depende dos grupos v1 e v2, e A uma
constante (no caso, uma matriz) que tem como domnio o conjunto dos membros dos
grupos anteriores (A(1,1), A(1,2), ...). Matriz(v2, v1): A;
Observao: Um SET pode ser entendido, fazendo uma analogia com a linguagem
PASCAL como uma estrutura de dados do tipo vetor (SETS simples) ou matriz (SETS
derivado), onde cada posio um membro do grupo de objetos.
Tambm usaremos os comandos @SUM e @FOR, que so utilizados em conjunto com
os grupos de objetos definidos na seo SETS. @SUM utilizado para calcular um
somatrio e @FOR um comando de repetio.
Usaremos tambm a seo DATA para ler os valores das constantes definidas na seo
SETS.
Exemplos de comandos @FOR e @SUM e da seo DATA so mostrados na figura
abaixo, onde apresentada a modelagem LINGO para este problema.
Vale notar que as variveis x1 e x2 so limitadas apenas inferiormente. Neste caso, o
limite superior representado por um nmero arbitrariamente grande, por exemplo,
1E19 (1 1019).

Para resolver este problema procede-se da mesma forma do exemplo anterior.

Problemas de Fbrica De Brinquedos


A companhia Coelho S.A. fabrica motores para brinquedos e pequenos aparelhos. O
departamento de marketing esta prevendo vendas de 6100 unidades de motor roncam no
prximo semestre. Esta e uma nova demanda e a companhia ter que testar sua
capacidade produtiva. O motor Roncam e montado a partir d trs componentes o corpo,
a base e a blindagem. Alguns destes componentes podem ser comprados de outros
fornecedores, se houver limitaes da Coelho S.A. Os custos de produo e os custos de
aquisio em R$;unidade esto resumidos na tabela a seguir:

A fbrica da Companhia S.A. tem trs departamentos. O requisito de tempo em minutos


que cada componente consome em cada departamento esta resumido na tabela a seguir.
O tempo disponvel na companhia para cada componente est listado na ltima linha.

O modelo de deciso do problema dado e dado abaixo, onde xij representa a quantidade
de componentes i=(1 se o componente for o corpo, 2 se o componente for a base e 3 se
o componente for a blindagem), a serem utilizados no modo j=(A se o componente for
adquirido e F se o componente for fabricado).

Outra forma de representar este modelo e apresentado abaixo:

Para efeito de clculo, estamos adotando x!F=x1, x2F=x, x3F=x3, x1A=x4, x2A=x5 e
x3A=x6.
O modelo LINGO para este problema e apresentado na figura (a).
A diferena deste modelo para os outros esta no fato de estarmos lendo as constantes da
seo de SETS atravs de uma planilha do Excel e depois exportando o resultado para a
mesma, utilizando a seo DATA. Tanto a leitura quanto a exportao dos dados para a
planilha e feita atravs do comando @OLE (nomearq.xls, nome do conjunto de
clulas). Para a utilizao de uma planilha de Excel, devemos definir um nome para
cada conjunto de clulas referenciadas no modelo.
Considerando a planilha apresentada na figura (b), temos os seguintes conjuntos de
clulas com seus respectivos nomes

Вам также может понравиться