Pesquisa Operacional
Casos: Pesquisa Operacional. Pesquise 862.000+ trabalhos acadêmicosPor: rafael.costa • 20/1/2014 • 2.134 Palavras (9 Páginas) • 677 Visualizações
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
...