TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Pesquisa Operacional

Casos: Pesquisa Operacional. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  20/1/2014  •  2.134 Palavras (9 Páginas)  •  677 Visualizações

Página 1 de 9

TEMA: Modelagem de Problemas de Otimização em linguagem Mosel.

1. INTRODUÇÃO

A linguagem Mosel é um ambiente para modelagem e solução de problemas que faz parte do pacote do software de otimização Xpress-MP. Atualmente, ela tem sido bastante útil na solução de diversos tipos de problemas, figurando entre as melhores ferramentas disponíveis no mercado para esse fim. Essa ferramenta foi desenvolvida pela empresa DASH/FICO OPTIMIZATION. Ela disponibiliza uma versão de estudante desse software, que pode ser encontrada no seguinte hiperlink: http://optimization.fico.com/demos/

2. ESTRUTURA GERAL DE UM MODELO EM MOSEL

Todo modelo em MOSEL:

• Inicia com a palavra model seguida por um nome;

• Termina com a palavra reservada end-model;

• Todos os objetos devem ser declarados em uma seção que começa com a palavra reservada a declarations e termina com a palavra reservada end-declarations.

• Pode haver várias seções do tipo “declarations” em diferentes partes de um modelo;

• Todo comentário deve ser feito utilizando-se o símbolo de exclamação (!).

3. O PROBLEMA DA EMPRESA MINERADORA

Suponha que uma empresa produza dois tipos de minérios de ferro: tipo I e tipo II. A venda de uma tonelada de minério do tipo I resulta em um lucro de $7, enquanto o minério do tipo II quando vendido dá um lucro de $10. Suponha que a produção de minério do tipo I necessite de vinte homens por dia, enquanto produção do segundo tipo requeira 25 homens por dia. Diariamente a empresa dispõe de 500 homens. Formule o problema na linguagem MOSEL.

Primeiramente devemos modelar adequadamente o problema:

Seja quantidade (em toneladas) de minério do tipo I a ser produzida.

Seja quantidade (em toneladas) de minério do tipo II a ser produzida.

Nesse modelo devemos maximizar o lucro total da empresa sujeito as restrições de disponibilidade de mão-de-obra:

4. MODELANDO O PROBLEMA NA LINGUAGEM MOSEL

model miner ! nome do modelo

uses “mmxprs” ! indica otimizador a ser utilizado

declarations ! aqui são declarados parâmetros e variáveis do problema

x1: mpvar ! quantidade de minerio do tipo I

x2: mpvar ! quantidade de minerio do tipo II

end-declarations ! toda declaração deve ser finalizada com end-declarations

rechumanos := 20*x1 + 25*x2 <= 500 ! restrições de recursos humanos

! As restrições de maior ou igual a zero são colocadas automaticamente

lucro := 7*x1 + 10*x2 ! definição da função objetivo.

maximize(lucro) !orientação da função objetivo

! caso o problema seja de minimização use a palavra minimize

writeln(“O lucro eh: ”, getobjval) ! escreve o valor da função objetivo na tela

writeln(“O valor de x1 eh: “, getsol(x1)) ! escreve o valor da variável x1

writeln(“O valor de x2 eh: “, getsol(x2)) ! escreve o valor da variável x2

end-model ! finaliza o modelo

5. PRIMEIRA EXTENSÃO DO MODELO DA EMPRESA MINERADORA

Suponha que um novo tipo de minério (tipo III) possa ser produzido e que demande 30 homens por dia e renda um lucro de 13. Nesse caso o modelo anterior pode ser reescrito da seguinte forma:

6. PRIMEIRA EXTENSÃO DO MODELO NA LINGUAGEM MOSEL

model minerext ! nome do modelo

uses “mmxprs” ! indica otimizador a ser utilizado

declarations ! aqui são declarados parâmetros e variáveis do problema

x1: mpvar ! quantidade de minério do tipo I

x2: mpvar ! quantidade de minério do tipo II

x3: mpvar ! quantidade de minério do tipo III

end-declarations ! toda declaração deve ser finalizada com end-declarations

rechumanos := 20*x1 + 25*x2 + 30*x3 <= 500 ! restrições de recursos humanos

lucro := 7*x1 + 10*x2 + 13*x3 ! definição da função objetivo.

maximize(lucro) !orientação da função objetivo

! caso o problema seja de minimização use a palavra minimize

writeln(“O lucro eh: ”, getobjval) ! escreve o valor da função objetivo na tela

writeln(“O valor de x1 eh: “, getsol(x1)) ! escreve o valor da variável x1

writeln(“O valor de x2 eh: “, getsol(x2)) ! escreve o valor da variável x2

writeln(“O valor de x3 eh: “, getsol(x3)) ! escreve o valor da variável x3

end-model ! finaliza o modelo

7. SEGUNDA EXTENSÃO DO MODELO DA EMPRESA MINERADORA

Suponha

...

Baixar como (para membros premium)  txt (11 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com