Seguidores

Pesquisa Operacional e Otimização

 Ementa: Programação linear. Programação inteira. Teoria dos jogos. Análise de decisão. Simulação de Monte Carlo.

=========================================================================

Introdução 

=========================================================================

* A PO é uma disciplina que utiliza métodos científicos para analisar e resolver problemas complexos de tomada de decisão.
* Seu objetivo principal é encontrar a melhor solução possível (ótima) para um determinado problema, considerando as restrições e objetivos envolvidos.
* A PO abrange uma variedade de técnicas, incluindo programação linear, teoria das filas, simulação e otimização.

* Segundo a QuestionPro: "A pesquisa operacional surge para solucionar esse tipo de problema de tomada de decisão, apontando qual a melhor maneira de fazer isso ou aquilo."

Otimização:

* A otimização é um processo que busca encontrar a melhor solução possível para um problema, dentro de um conjunto de alternativas viáveis.
* Na PO, a otimização é frequentemente usada para encontrar a solução que maximiza ou minimiza um determinado objetivo, como lucro, custo ou tempo.
* A otimização pode ser aplicada a uma ampla gama de problemas, desde a otimização de rotas de entrega até a otimização de portfólios financeiros.

* Ainda segundo a QuestionPro: "Otimização: ela é responsável por restringir as escolhas às melhores opções quando existem inúmeras alternativas possíveis, tornando difícil a comparação entre elas."

Relação entre PO e Otimização:

* A otimização é uma ferramenta fundamental na PO.
* As técnicas de otimização são usadas para encontrar a solução ótima para os problemas analisados pela PO.
* Em resumo, a PO fornece o arcabouço metodológico para analisar problemas complexos, enquanto a otimização fornece as ferramentas para encontrar as melhores soluções dentro desse contexto.

Em termos práticos:

* Imagine uma empresa que precisa otimizar a rota de entrega de seus produtos. A PO pode ser usada para modelar o problema, considerando fatores como distância, tempo e custo.
* As técnicas de otimização seriam então usadas para encontrar a rota que minimiza o tempo ou o custo total de entrega. 

 Pesquisa Operacional - Definição e Exemplo Prático (Healthcare) 

 Pesquisa Operacional: O que é? Pra que serve? 

 APRENDA PESQUISA OPERACIONAL ANTES DE DATA SCIENCE  

GDB-Online compiler and debugger

=========================================================================

Programação Linear

=========================================================================

 A programação linear é uma técnica matemática utilizada para otimizar processos lineares, buscando encontrar a melhor solução (máximo ou mínimo) para um problema, dentro de um conjunto de restrições lineares.

Definição:

"A programação linear é uma técnica matemática de otimização amplamente utilizada em diversas áreas da engenharia para resolver problemas de decisão e otimização de recursos. O seu objetivo consiste em encontrar o conjunto solução que maximiza ou minimiza uma função objetivo em um." (Fonte: uma revisão sobre o programação linear: conceitos e aplicações - Univap | INIC)

Em termos mais simples:

Imagine que você tem recursos limitados (tempo, dinheiro, materiais) e precisa tomar decisões para alcançar o melhor resultado possível (lucro máximo, custo mínimo). A programação linear ajuda a encontrar a combinação ideal de ações para otimizar seus resultados, considerando as restrições existentes.

Aplicações:

A programação linear é amplamente utilizada em diversas áreas, como:

* Engenharia: otimização de projetos, alocação de recursos.
* Economia: planejamento de produção, análise de investimentos.
* Logística: roteirização de veículos, gestão de estoques.
* Finanças: otimização de portfólios, análise de risco.

História:

O termo "programação linear" foi sugerido por Tjalling C. Koopmans a George B. Dantzig. Dantzig, trabalhando no Pentágono em 1947, desenvolveu, formalizou e testou o método simplex para resolver problemas de programação linear.

 RESUMO: Pesquisa Operacional com Otimização/Programação Linear 

 Modelo Matemático – Aprenda a Resolver Problemas de Forma Eficiente 

 Programação Linear: Python Colab  

Exercício 1

Imagine uma fábrica que produz dois tipos de produtos, A e B. Cada produto A requer 2 horas de trabalho e 4 unidades de matéria-prima, enquanto cada produto B requer 3 horas de trabalho e 2 unidades de matéria-prima. A fábrica tem 12 horas de trabalho e 16 unidades de matéria-prima disponíveis. O lucro por produto A é de R$ 5 e o lucro por produto B é de R$ 4. Quantos produtos de cada tipo a fábrica deve produzir para maximizar o lucro? 

Exercício 2

Problema do Caixeiro Viajante (PCV) Simplificado: Imagine um entregador que precisa visitar 4 locais diferentes em uma cidade para entregar encomendas. Ele quer encontrar a rota mais curta possível que comece e termine em seu ponto de partida, visitando cada local exatamente uma vez. As distâncias entre os locais são conhecidas.

Dados:

    Locais: A, B, C, D
    Distâncias:
        A-B: 10 km
        A-C: 15 km
        A-D: 20 km
        B-C: 35 km
        B-D: 25 km
        C-D: 30 km

Objetivo:

Encontrar a rota mais curta que comece e termine em A, visitando B, C e D uma vez cada.

=========================================================================

Programação Inteira

=========================================================================

 A Programação Inteira (PI) é um ramo da otimização matemática que lida com problemas nos quais algumas ou todas as variáveis devem assumir valores inteiros. Essa restrição de integralidade torna os problemas de PI significativamente mais desafiadores do que os problemas de programação linear (PL) tradicionais, nos quais as variáveis podem assumir valores contínuos.

Definição:

De acordo com Laurence A. Wolsey, em seu livro "Integer Programming" (1998):

"Um problema de programação inteira é um problema de otimização no qual algumas ou todas as variáveis são restritas a valores inteiros."

Essa definição concisa captura a essência da PI, destacando a restrição fundamental de integralidade nas variáveis.

Tipos de Programação Inteira:


* Programação Inteira Pura (PIP): Todas as variáveis devem ser inteiras.

* Programação Inteira Mista (PIM): Algumas variáveis são inteiras, enquanto outras podem ser contínuas.
* Programação Inteira Binária (PIB): Todas as variáveis devem ser 0 ou 1.

Aplicações:

A PI tem uma ampla gama de aplicações em diversos campos, incluindo:

* Planejamento de produção: Otimização da quantidade de produtos a serem fabricados.
* Roteamento e logística: Determinação das rotas mais eficientes para veículos.
* Alocação de recursos: Distribuição ideal de recursos limitados.
* Programação de horários: Criação de horários otimizados para funcionários ou eventos.

Complexidade:

Os problemas de PI são geralmente NP-difíceis, o que significa que não existe um algoritmo conhecido que possa resolvê-los eficientemente em todos os casos. Isso torna a PI um campo de pesquisa desafiador e ativo.

=========================================================================

 Teoria dos Jogos

=========================================================================

A teoria dos jogos é um campo de estudo interdisciplinar que utiliza modelos matemáticos para analisar decisões em situações onde o resultado das escolhas de um indivíduo depende das escolhas de outros. Ela busca entender como os indivíduos interagem e tomam decisões em cenários de conflito e cooperação.

Definições:

* Definição geral: A teoria dos jogos estuda as interações estratégicas entre agentes racionais, onde o resultado para cada agente depende das ações de todos os envolvidos.
* Definição do Dicionário Oxford English Dictionary: "O ramo da matemática preocupado com a análise de estratégias para lidar com situações competitivas onde o resultado da escolha de um participante depende das escolhas de outros."

Principais conceitos:

* Jogadores: Os agentes que tomam decisões no jogo.
* Estratégias: As opções disponíveis para cada jogador.
* Payoffs: Os resultados obtidos por cada jogador, dependendo das estratégias escolhidas por todos.
* Equilíbrio de Nash: Um estado no qual nenhum jogador pode melhorar seu resultado mudando sua estratégia, assumindo que os outros jogadores mantêm suas estratégias.

Aplicações:

A teoria dos jogos tem aplicações em diversas áreas, incluindo:

* Economia
* Ciência política
* Biologia
* Ciência da computação
* Relações internacionais

Citação de autor:

John von Neumann, um dos fundadores da teoria dos jogos, em conjunto com Oskar Morgenstern, escreveu o livro "Theory of Games and Economic Behavior" (1944), que é considerado um marco na área. Nesse livro, eles definem a teoria dos jogos como:

>   "O estudo de modelos matemáticos de conflito e cooperação entre tomadores de decisão racionais."

Essa citação destaca a essência da teoria dos jogos, que busca entender como os indivíduos tomam decisões em situações de interação estratégica.

 Equilíbrio de Nash | Khan Academy 

 Teoria dos Jogos 

=========================================================================

 Análise de decisão

=========================================================================

A análise de decisão é um processo sistemático e quantitativo para avaliar e escolher entre diferentes alternativas. Ela envolve a identificação de objetivos, a coleta de informações relevantes, a modelagem de cenários e a avaliação de riscos e incertezas.

Definição geral:

A análise de decisão pode ser definida como um conjunto de técnicas e ferramentas que auxiliam na tomada de decisões complexas, especialmente em situações de incerteza. Ela busca fornecer uma estrutura lógica e racional para a escolha da melhor alternativa, considerando os objetivos e preferências do decisor.

Segundo a FGV:

Intuitivamente, define-se análise de decisão como "[...] uma formalização do bom senso para problemas de decisão que são muito complexos para o uso informal do."

Principais etapas:

1.  Definição do problema: Identificar claramente a decisão a ser tomada e os objetivos a serem alcançados.
2.  Identificação das alternativas: Listar todas as opções disponíveis para resolver o problema.
3.  Coleta de informações: Reunir dados relevantes sobre cada alternativa, incluindo custos, benefícios, riscos e incertezas.

4.  Modelagem do problema: Criar um modelo que represente a estrutura da decisão, incluindo as alternativas, os cenários possíveis e os resultados esperados.
5.  Avaliação das alternativas: Utilizar técnicas quantitativas, como árvores de decisão e análise de sensibilidade, para avaliar o valor de cada alternativa.
6.  Escolha da melhor alternativa: Selecionar a opção que maximiza os objetivos do decisor, levando em conta os riscos e incertezas.

7.  Implementação e monitoramento: Colocar a decisão em prática e acompanhar os resultados para verificar se os objetivos foram alcançados.

Áreas de aplicação:

A análise de decisão é amplamente utilizada em diversas áreas, como:

* Finanças
* Negócios
* Engenharia
* Saúde
* Meio ambiente

Ferramentas:

Existem diversas ferramentas e técnicas que podem ser utilizadas na análise de decisão, como:

* Árvores de decisão
* Análise de sensibilidade
* Simulação de Monte Carlo
* Análise de custo-benefício
* Matriz de decisão

Importância:

A análise de decisão é uma ferramenta poderosa para a tomada de decisões mais informadas e eficazes. Ela ajuda a reduzir a subjetividade e o viés, e a aumentar a probabilidade de alcançar os resultados desejados.

=========================================================================

 Simulação de Monte Carlo

=========================================================================

A simulação de Monte Carlo é um método estatístico que utiliza amostras aleatórias repetidas para estimar a probabilidade de um determinado resultado. Em outras palavras, é uma técnica que simula um grande número de cenários possíveis para analisar o impacto da incerteza em um modelo.

Definição:

De acordo com o Instituto de Matemática e Estatística da Universidade de São Paulo (IME-USP), a simulação de Monte Carlo é definida como:

"Uma técnica estatística que utiliza amostras aleatórias repetidas para estimar a probabilidade de um determinado resultado. É frequentemente utilizada para modelar sistemas complexos que envolvem incerteza."

Aplicações:

A simulação de Monte Carlo é amplamente utilizada em diversas áreas, incluindo:

* Finanças: para avaliação de riscos, precificação de ativos e planejamento de investimentos.
* Engenharia: para análise de confiabilidade de sistemas, simulação de processos e otimização de projetos.
* Ciências: para modelagem de fenômenos naturais, simulação de experimentos e análise de dados.
* Jogos: para calcular probabilidades e otimizar estratégias.

Vantagens:

* Permite modelar sistemas complexos com incerteza.
* Fornece uma gama de resultados possíveis e suas probabilidades.
* Auxilia na tomada de decisões em ambientes incertos.

Desvantagens:

* Pode ser computacionalmente intensiva.
* A precisão dos resultados depende do número de simulações.
* Requer conhecimento estatístico para interpretação dos resultados.

História:

O método de Monte Carlo foi desenvolvido durante a Segunda Guerra Mundial por John von Neumann e Stanislaw Ulam, que o utilizaram para simular problemas de difusão de nêutrons em materiais de fissão nuclear. O nome "Monte Carlo" é uma homenagem à famosa cidade de Mônaco, conhecida por seus cassinos e jogos de azar.

Nenhum comentário:

Postar um comentário

GitHub do Professor George  https://github.com/GeorgeMendesMarra/GeorgeMendesMarra