Localização de Raizes (Zeros de Função)jamhour/Pessoal/Graduacao/MatComputacional/... · Um...

Post on 23-Nov-2018

215 views 0 download

Transcript of Localização de Raizes (Zeros de Função)jamhour/Pessoal/Graduacao/MatComputacional/... · Um...

Edgard Jamhour

Disciplina que estuda métodos analíticos para auxiliar na tomada de decisões.

Procura encontrar soluções ótimas ou próximo de ótimas para problemas de engenharia industrial, economia e finanças, comunicações, planejamento e escalonamento de serviços e recursos, etc.

P.O. é originária da Segunda Guerra Mundial, quando os

cientistas de várias disciplinas se reuniram para resolver problemas militares de natureza tática e estratégica.

Existe grande superposição entre essas áreas

Pesquisa Operacional busca obter soluções ótimas modelando o problema de forma matemática.

Inteligência artificial busca resolver problemas de forma similar a humana, muitas vezes evitando a modelagem matemática do problema.

Solucionar problemas reais;

Tomar decisões embasadas em fatos, dados e correlações quantitativas;

Conceber, planejar, analisar, implementar, operar e controlar sistemas por meio da tecnologia bem como de métodos de outras áreas do conhecimento;

Minimizar custos e maximizar o lucro;

Encontrar a melhor solução para um problema, ou seja, a solução ótima.

1. otimização de recursos; 2. roteirização; 3. localização; 4. carteiras de investimento; 5. alocação de pessoas; 6. previsão de planejamento; 7. alocação de verbas de mídia; 8. determinação de mix de produtos; 9. escalonamento e planejamento da produção; 10. planejamento financeiro; 11. análise de projetos e etc.

Modelos obrigam os tomadores de decisão a tornarem explícitos seus objetivos.

Modelos foçam a identificação e armazenamento de diversas decisões que influenciam no atingimento dos objetivos.

Modelos forçam a identificação e armazenamento das relações entre diferentes decisões.

Modelos forçam a identificação de limitações. Modelos forçam a determinação de variáveis a serem

consideradas e sua quantificação. Modelos permitem a comunicação e o trabalho em grupo.

Variáveis do problema. São fatores controláveis e quantificáveis. Representam as variáveis de decisão.

Parâmetros do problema. São os valores fixos do problema.

Os valores financeiros dos dados os ou custos fixos da produção são alguns exemplos.

Restrições. São aspectos que limitam a combinação de valores e variáveis de soluções possíveis.

Função objetivo. É uma função que busca maximizar ou minimizar , dependendo do objetivo do

problema.

Ela é essencial na definição da qualidade da solução em função das incógnitas encontradas.

Um jovem estava saindo com duas namoradas: Sandra e Regina. Sabe, por experiência, que:

Sandra, elegante, gosta de frequentar lugares sofisticados, mais caros, de modo que uma saída de três horas custará R$240,00;

Regina, mais simples, prefere um divertimento mais popular, de modo que, uma saída de três horas custará R$160,00;

Seu orçamento permite dispor de R$960,00 mensais para diversão;

Seus afazeres escolares lhe darão liberdade de dispor de, no máximo, 18 horas e 40.000 calorias de sua energia para atividades sociais;

Cada saída com Sandra consome 5.000 calorias, mas com Regina, mais alegre e extrovertida, gasta o dobro;

Ele gosta das duas com a mesma intensidade.

Como deve planejar sua vida social para obter o número máximo de saídas ?

Variáveis de decisão:

X1 = número de saídas com Sandra;

X2 = número de saídas com Regina.

Função objetivo:

Maximizar z = x1 + x2

Restrições:

240x1 + 160x2 ≤ 960

3x1 + 3x2 ≤ 18

5000x1 + 10000x2 ≤40000

NMaximize[ {x1+x2,

240x1 + 160 x2 <= 960,

3 x1 + 3x2 <= 18,

5000x1 +10000x2 <= 40000},

{x1,x2}]

{5.,{x1->2.,x2->3.}}

1) Formulação do problema

Determinar o objetivo ▪ O que se deseja maximizar (objetivo) ou minimizar (custo)

Identificar as restrições

Definir as variáveis controláveis ▪ Variáveis que não podem ser ajustadas

▪ Exemplo: quantidade a ser produza

Definir as variáveis não controláveis (ou fixas) ▪ Variável que não se tem controle

▪ Exemplo: preço da matéria prima

2) Construção do modelo

Modelagem matemática da função objetivo ou função custo

Modelagem matemática das restrições como um conjunto de equações ou inequações

A função objetivo e as restrições precisam ser formuladas em termos das variáveis controláveis

3) Resolução do Modelo

Selecionar a técnica mais adequada para resolução do problema

Técnicas possíveis:

▪ Programação Linear

▪ Programação Não-linear

▪ Programação Inteira

▪ Programação Inteira-Mista

4) Teste do modelo e da solução

Verifica-se se a solução proposta atende aos requisitos do problema

Técnicas de simulação podem ser utilizadas para testar a solução antes de implantação em campo

5) Implantação e acompanhamento

Monitorar se as variáveis não controláveis ainda estão de acordo com o problema formulado.

Medir resultados parciais e efetuar ajustes

Seja f(x) a função objetivo e x = {x1, x2, ...,xn} as variáveis controláveis:

Problema de minimização: ▪ encontrar x tal que f(x) é mínimo

▪ f(x) nesse caso é chamada função custo

▪ minx f(x)

Problema de maximização: ▪ encontrar x tal que f(x) é máximo

▪ f(x) nesse caso é chamada função objetivo

▪ maxx f(x)

Problemas sem restrições:

Qualquer valor do vetor x corresponde a uma solução admissível ou realizável

O valor de x encontrado é o mínimo ou máximo global da função f(x)

Problemas com restrições:

Existe restrições sobre quais valores o vetor x pode assumir

Uma solução com valores de x que violam as restrições é dia não admissível ou não realizável

Exemplo: ▪ minimize f(x)

▪ subject to 10 < x < 100

Programação Linear (PL)

A função objetivo f(x) e as restrições são lineares em relação a x:

Exemplo:

▪ f(x) = c1 x1 + c2 x2 + ... + cn xn

▪ Região admissível: { x ϵ Rn | A x = b, x > 0 }

▪ A não é quadrada, mas tem mais colunas que linhas

Programação Não-Linear (PNL)

A função objetivo f(x) e/ou as restrições são não-lineares em relação a x:

Exemplo:

▪ f(x) = c1 x12 + c2 x1x2

3 + ... + cn 2xn

▪ Região admissível: { x ϵ Rn | 5< x1*x2 <10; x22 <10; 2xn<x3}

Otimização contínua

As variáveis do modelo são números reais, e podem assumir qualquer valor em um intervalo:

▪ Exemplo: 5 < x1 < 10

Otimização discreta

Algumas ou todas as variáveis do modelo estão restritas a um conjunto discreto:

▪ Exemplo: x2 ϵ {1,2,5,7,9,15}

Otimização Combinatórica

O problema consiste em encontrar uma ordem específica para elementos de um conjunto discreto ▪ Exemplo: Problema do caixeiro viajante, Minimum Spanning Tree, etc.

Programação Inteira

Todas as variáveis do modelo são número inteiros

Se apenas algumas variáveis do modelo tiverem a restrição de ser inteiros, o problema é dito de Programação inteira mista

Programação inteira pode ser linear ou não linear

Line Search Methods Trust-Region Methods Truncated Newton Methods Difference Approximations Quasi-Newton Methods Nonlinear Conjugate Gradient Method Nonlinear Simplex Method

Ver https://neos-guide.org/content/algorithms-by-type

Bound Constrained Optimization Newton Methods Gradient Projection Methods

Linear Programming Simplex Method Interior Point Methods

Quadratic Programming Algorithms for Quadratic Programming

Nonlinear Programming Augmented Lagrangian Methods Reduced Gradient Methods Sequential Quadratic Programming Feasible Sequential Quadratic Programming

Semi-infinite Programming Central Cutting Plane Methods Discretization Methods KKT Reduction Methods SQP Reduction Methods

Um problema recorrente para os métodos de otimização para problemas não lineares é a convergência para uma solução ótima local:

máximo global

mínimo local

máximo local

mínimo global

Método iterativo utilizado para resolver problemas de otimização sem restrição.

Procura encontrar a direção (s0), para o qual o vetor inicial x0 deve ser movido para reduzir o valor da função objetivo f(x).

x = x0 + a s0

f(x0 + a s0) < f(x0)

Seja f(x) a função objetivo, com múltiplas variáveis controláveis, representadas pelo vetor x={x1, x2, ..., xn}.

Define-se o gradiente de f(x) como:

f(x) = ( f/ x1, f/ x2, ..., f/ xn)

Passo da iteração do gradiente descendente:

xk+1= xk - k f(x)

O objetivo é obter: f(x0) > f(x1) > f(x2) > .... f(xn)

Como a convergência para o mínimo pode ser muito lenta, pode-se impor a seguintes condições de convergência:

1) Número máximo de passos

2) A função custo para de diminuir ou diminui muito pouco entre iterações sucessivas:

▪ f(xk+1)= f(xk)=f(xk-1)

f(x) = x2 + 10 x ponto inicial: x0 = 2 máximo de iterações: 20

Passo 0.1 Passo 0.01

Se o passo k for muito pequeno, o método vai convergir muito lentamente.

Se o passo k for muito grande, o método pode não convergir.

Veja o efeito do passo no endereço:

http://www.onmyphd.com/?p=gradient.descent

Existe vários métodos apara ajustar k de forma adaptativa, a cada iteração (line search).

Exemplos:

Cauchy: gradiente mais descendente

▪ k é o valor de que minimiza a função: f(xk- f(xk) )

Aproximação Barzilai and Borwein (1988)

▪ xk+1= xk - k f(xk)

▪ k = (xk-xk-1)T(f(xk) - f(xk-1) )/||f(xk) - f(xk-1) ||2

f(x) = x2 + 10 x

máximo de iterações: 20

x0 = 2, x1 = 1.8 x0 = 1, x1 = 2

Sistemas lineares podem ser resolvidos usando o método gradiente descendente:

Ax – b =0

Função custo: (mínimos quadrados)

f(x)= || Ax – b ||2

Gradiente:

f(x) = 2 AT (Ax-b)

Seja um sistema de equações não lineares: G(x) = 0 Define-se a função custo: f(x) = 0.5 G(x)T G(x)

Exemplo:

G(x) =

f(x) =

f(x) =

Para h= 0.001 e x0 = {0,0,0} Custo de x0: f(x0) = 58.4561 x1= x0 - h f(x0) x1 = {0.0075,0.002,-0.20944} Custo de x1: f(x1) = 23.3064 x2= x1 - h f(x1) x2 = {0.015005,0.0015482,-0.335103} Custo de x2: f(x2) = 10.617

x3= x2 - h f(x2) x1 = {0.0224955,0.00166978,-0.410501} Custo de x3: f(x3) = 6.01309 x4= x3 - h f(x3) x4 = {0.0299761,0.00163444,-0.455739} Custo de x4: f(x4) = 4.31996