Skip to content

Latest commit

 

History

History
40 lines (25 loc) · 3.49 KB

README.md

File metadata and controls

40 lines (25 loc) · 3.49 KB

Sobre Pontos Interiores

Pontos Interiores, também conhecido como Método da Barreira, é uma técnica de otimização linear utilizada para encontrar soluções de problemas de programação linear. Diferente do Método Simplex, que navega pelas bordas do espaço viável, o Método dos Pontos Interiores percorre o interior do espaço viável para encontrar a solução ótima.
É particularmente útil em problemas de larga escala devido sua eficiência computacional, bem como suas aplicações em Otimização Não-Linear.
A abordagem se baseia em uma função de barreira que impede que as iterações se aproximem das bordas do espaço viável, permitindo que o algoritmo se concentre nas regiões interiores. Como resultado, o Método dos Pontos Interiores pode convergir rapidamente para a solução ótima, tornando-se uma escolha preferida em muitas aplicações de otimização.

Exemplo

Os créditos da imagem são do autor Jeremy Bleyer em seu trabalho Advances in the simulation of viscoplastic fluid flows using interior-point methods

Sobre o Projeto

As implementações presentes neste repositório foram feitas com proposta educacional para aprendizado em Otimização Linear, e baseiam-se na metodologia do professor Marcos Arenales em seu livro Pesquisa Operacional.

Como usar?

Rodando pelo Colab (ambiente virtual)

  1. Acesso o Google Colab
  2. Abra o menu de contexto Arquivo e selecione a opção Abrir Notebook Passo 2
  3. Selecione o contexto Github e insira o link: https://github.com/rafflezs/MetodoBarreira-OtmLinear-ICMC/blob/main/notebook/pontos-interiores.ipynb
Passo 3

Basta selecionar o arquivo e o mesmo será carregado à página.

Rodando Localmente

Caso opte pela execução local, certifique-se de ter instalado Python 3 em seu computador, juntamente dos pacotes matplotlib e numpy. Apos isso, basta executar o arquivo src/main.py

Propostas de Melhoria

Obviamente o projeto não está completo (sinceramente nem foi despendido um tempo tão grandioso assim), então existem pontos à serem melhorados, principalmente na computação do sistema KKT, onde é implementado um sistema grande com alto custo.
Caso tenha alguma proposta de melhoria, correção ou documentação, sinta-se a vontade para enviar uma pull request que irei avaliar.

Aviso

Este código foi feito para própositos educativos, como método avaliativo na disciplina de Otimização Linear 2 - SME5902.
Por essa razão o mesmo não está completamente otimizado e pode apresentar erros ainda não testados, portanto não use-o em ambientes de produção.

Quaisquer problemas causados pelo uso desse projeto em ambientes não-educacionais ou de estudo são de responsabilidade do usuário.