Este repositório apresenta a resolução de duas questões selecionadas de Programação Linear propostas na disciplina Matemática Computacional.
As questões faziam parte de uma lista com 5 problemas, ordenados pela docente do mais simples ao mais complexo, sendo informado que:
- Questões 4 e 5 possuem nível de dificuldade equivalente ao mestrado
- Os alunos deveriam resolver no mínimo duas questões, à sua escolha
Diante disso, optei propositalmente por resolver:
- Questão 2 (nível intermediário)
- Questão 4 (nível avançado / mestrado)
com o objetivo de exercitar modelagem matemática, generalização de restrições e formulação completa de modelos lineares.
/
├── README.md
├── refinaria/
│ ├── questao2_refinaria.py
│ └── model_q2.lp
└── ligas_metalicas/
├── questao4_ligasMetalicas.py
└── model_q4.lp
- Python 3
- Biblioteca Python-MIP
- Programação Linear
- Modelos exportados em formato
.lp
Uma refinaria produz três tipos de gasolina:
- Verde
- Azul
- Comum
Cada tipo de gasolina é produzido a partir de três componentes:
- Gasolina pura
- Octana
- Aditivo
Esses componentes possuem quantidades semanais limitadas, e cada tipo de gasolina exige proporções específicas de cada insumo.
Além disso, o planejamento de produção impõe regras baseadas na demanda de mercado:
- A quantidade de gasolina comum deve ser no mínimo 16 vezes a quantidade de gasolina verde
- A produção de gasolina azul é limitada a um valor máximo semanal
Cada tipo de gasolina gera uma margem de contribuição distinta para o lucro.
Formular um modelo de programação linear que maximize a margem total de contribuição para o lucro, respeitando:
- As restrições de disponibilidade dos componentes
- As proporções de mistura
- As regras de produção impostas pela demanda
📄 Arquivo:
➡ refinaria/questao2_refinaria.py
Duas ligas metálicas, A e B, são produzidas a partir de quatro metais distintos (I, II, III e IV).
Esses metais são obtidos a partir da extração de três minérios diferentes, cada um com:
- Quantidade máxima disponível
- Percentuais específicos de cada metal
- Custo por tonelada extraída
Cada liga possui restrições rigorosas de composição, envolvendo:
- Percentuais máximos
- Percentuais mínimos
- Faixas de concentração permitidas
Os preços de venda das ligas A e B são conhecidos.
Formular um modelo de programação linear que determine:
- Quanto extrair de cada minério
- Quanto de cada metal utilizar em cada liga
de forma a maximizar o lucro líquido, dado por:
Receita da venda das ligas − custo de extração dos minérios
Este problema exige:
- Modelagem matricial
- Uso de restrições condicionais (mínimo/máximo)
- Generalização das restrições via estruturas de dados
📄 Arquivo:
➡ ligas_metalicas/questao4_ligasMetalicas.py
- Instale a biblioteca necessária:
pip install mip- Execute os modelos:
python refinaria/questao2_refinaria.py
python ligas_metalicas/questao4_ligasMetalicas.pyOs modelos em formato .lp serão gerados automaticamente.
Este repositório tem como objetivo:
- Consolidar conceitos de Programação Linear
- Exercitar modelagem matemática aplicada
- Desenvolver soluções escaláveis e generalizadas
- Trabalhar problemas de nível avançado, compatíveis com disciplinas de pós-graduação
Os enunciados foram reinterpretados e descritos textualmente, evitando a reprodução direta do material original da disciplina, com foco na compreensão e formulação matemática dos problemas.
Fique à vontade para abrir uma issue ou discutir melhorias e extensões dos modelos. É só falar.