Otimização de processos em Python utilizando GEKKO/APMonitor

Aprenda na prática a resolver problemas de otimização em Python com a suíte de optimização gratuita GEKKO/APMonitor

Ratings: 4.17 / 5.00




Description

Neste curso são apresentados os principais tipos de otimização comumente utilizada na engenharia de processos / engenharia de produção / engenharia química e é ensinado na prática como solucionar esses problemas em Python, utilizando a suíte de otimização gratuita GEKKO/APMonitor.

Na Seção 1, Introdução, é apresentado primeiramente o conteúdo do curso, que começa na teoria básica e inclui a resolução prática dos principais tipos de problemas de otimização: Programação Linear (LP), Programação Não Linear (NLP), Programação Linear e Não Linear Inteira Mista (MILP/MINLP) e Otimização Multiobjetivo (MO). As duas aulas seguintes estão dedicadas à introdução dos conceitos fundamentais sobre otimização e ao básico de Python, para que aqueles alunos que começam do cero mesmo consigam se nivelar e acompanhar o restante do curso. A terceira aula já realiza a introdução à suíte de otimização APMonitor/GEKKO, que de conjunto com Python é a ferramenta computacional utilizada para a resolução dos problemas de otimização apresentados nos diferentes estudos de casos. Como o curso tem um viés prático (bem mão na massa mesmo) finalizamos essa seção introdutória já resolvendo nosso primeiro problema de otimização.

As seguintes seções são todas de caráter prático, sendo apresentado um estudo de caso (problema de otimização a ser resolvido) em cada aula. Para cada caso de estudo é realizada a interpretação do problema, transformando da linguagem verbal para a linguagem matemática, com a correspondente formulação matemática do problema. Finalmente, a formulação matemática do problema é implementada no Python, utilizando a linguagem de modelagem algébrica do GEKKO, e determinada a solução do problema de otimização, assim como também se realiza a interpretação os resultados obtidos.

A Seção 2 é dedicada ao estudo da programação linear (LP) e na Seção 3 são tratados problemas de otimização não lineares (NLP). Em cada uma dessas seções são apresentados 3 casos de estudo diferentes. Já na Seção 4 são resolvidos 2 estudos de caso de programação linear inteira mista e 2 estudos de casos de programação não linear inteira mista, totalizando 4 estudos de casos a serem resolvidos. Finalmente, na Seção 5 apresentam-se 2 estudos de caso para abordar a otimização multiobjetivo.

Ao final de cada seção prática é deixado um exercício individual (tarefa) para que o aluno coloque mão na massa e possa testar as habilidades e conhecimentos adquiridos durante ela.

What You Will Learn!

  • Formular matematicamente diferentes problemas de otimização de processos apresentados nos estudos de casos.
  • Identificar a função objetivo, as variáveis de decisão, as restrições de igualdade e desigualdade e os graus de liberdade do problema de otimização.
  • Escolher o tipo de algoritmo de otimização mais adequado para o tipo de problema de otimização que se pretende resolver.
  • Instalar Python e as principais bibliotecas científicas utilizando a distribuição “Anaconda”.
  • Instalar GEKKO, interfase para Python da suíte de otimização “APMonitor”.
  • Implementar a formulação matemática do problema de otimização em Python, utilizando a linguagem de modelagem algébrica de GEKKO.
  • Resolver o problema de otimização utilizando os algoritmos de otimização gratuitos disponíveis em GEKKO/APMonitor e interpretar os resultados obtidos.
  • Conferir os resultados das otimizações mediante gráficos no caso que a dimensão do problema assim o permita.
  • Serão apresentados estudos de casos que envolvem otimização linear (LP), não linear (NLP), inteira mista (MILP/MINLP) e multiobjetivo (MO).

Who Should Attend!

  • Estudantes de graduação e pós-graduação em engenharias e ciências exatas que precisam encontrar a solução ótima para um problema.
  • Engenheiros, analistas ou tecnólogos encarregados da melhora dos processos.
  • Pessoas em geral interessadas na otimização de processos.