Matemática computacional - DCC

Transcrição

Matemática computacional - DCC
Matemática computacional: métodos
numéricos, programação linear, otimização
Ricardo Terra
rterrabh [at] gmail.com
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
1 / 46
CV
Nome: Ricardo Terra
Email: rterrabh [at] gmail.com
www: ricardoterra.com.br
Twitter: rterrabh
Lattes: lattes.cnpq.br/ 0162081093970868
Ph.D. (UFMG/UWaterloo),
Post-Ph.D. (INRIA/Université Lille 1)
Background
Acadêmico : UFLA (desde
Profissional : DBA Eng.
2014),
(1 ano ),
Ricardo Terra (rterrabh [at] gmail.com)
UFSJ (1 ano ), FUMEC (3 anos ), UNIPAC (1 ano ), FAMINAS (3 anos )
Synos (2 anos ), Stefanini (1 ano )
Matemática computacional
Fevereiro, 2013
2 / 46
Introdução à Matemática Computacional
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
3 / 46
Introdução à Matemática Computacional
Matemática Computacional
Matemática ∩ Computação
Trata problemas complexos
qualquer área (qual não tem?)
Por meio da busca matemática de soluções
Isto é, explora o que o computador faz de melhor
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
4 / 46
Introdução à Matemática Computacional
Matemática Computacional
Matemática ∩ Computação
Trata problemas complexos
qualquer área (qual não tem?)
Por meio da busca matemática de soluções
Isto é, explora o que o computador faz de melhor
É então programar algoritmos O(n!), O(nn )?
não necessariamente
vai um pouco além... vamos ver!
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
4 / 46
Introdução à Matemática Computacional
Solução em 4 etapas
1
Definição do Problema
2
Modelagem Matemática
3
Solução Numérica
4
Análise dos Resultados
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
5 / 46
Introdução à Matemática Computacional
Solução em 4 etapas
1
Definição do Problema
2
Modelagem Matemática
3
Solução Numérica (algoritmos!!!)
4
Análise dos Resultados
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
5 / 46
Introdução à Matemática Computacional
Solução em 4 etapas
1
Definição do Problema
2
Modelagem Matemática
3
Solução Numérica (algoritmos!!!)
4
Análise dos Resultados
Se eu lhe dizer que...
o algoritmo talvez seja a parte mais fácil
não acredita?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
5 / 46
Introdução à Matemática Computacional
Nada como exemplos!
Determinante
Seja uma matriz quadrada A = (aij )ni,j=1
P
Solução: det(A) = ±a1i1 · · · anin
Fácil de programar para qualquer n
Super eficiente para:


−2 2 3
−1 1 3
2 0 1
Por que?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
6 / 46
Introdução à Matemática Computacional
Nada como exemplos!
Determinante
Seja uma matriz quadrada A = (aij )ni,j=1
P
Solução: det(A) = ±a1i1 · · · anin
Fácil de programar para qualquer n
Super eficiente para:


−2 2 3
−1 1 3
2 0 1
Por que? A soma em todas as n! permutações
n = 3 → segundos
Ricardo Terra (rterrabh [at] gmail.com)
n = 25 → 400.000 anos
Matemática computacional
Fevereiro, 2013
6 / 46
Introdução à Matemática Computacional
Nada como (mais?) exemplos!
Postponed
A partir de agora: on-the-fly
Nesta aula, visão geral das principais áreas:
1
Métodos Numéricos
2
Programação Linear
3
Otimização
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
7 / 46
Métodos Numéricos
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
8 / 46
Métodos Numéricos
O que são métodos numéricos?
Algoritmos que usam aproximação numérica
heurísticas?
resultados exatos?
Convergem, convergem, convergem até um ops
ideia de ponto fixo (contudo, raramente o alcançam)
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
9 / 46
Métodos Numéricos
Achando um número aleatório!
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
10 / 46
Métodos Numéricos
Achando um número aleatório!
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
10 / 46
Métodos Numéricos
Por exemplo:
1
public class Terra {
public static void main (String args[]){
System.out.println( Math.sqrt(2) );
}
3
5
7
}
Qual o resultado?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
11 / 46
Métodos Numéricos
Por exemplo:
1
public class Terra {
public static void main (String args[]){
System.out.println( Math.sqrt(2) );
}
3
5
7
}
Qual o resultado? Essa pergunta está errada nesta aula
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
11 / 46
Métodos Numéricos
Por exemplo:
1
public class Terra {
public static void main (String args[]){
System.out.println( Math.sqrt(2) );
}
3
5
7
}
Qual o resultado? Essa pergunta está errada nesta aula
Assim, por que 1.4142135623730951?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
11 / 46
Métodos Numéricos
Passo #1: Definição do Problema
√
Calcular a, a > 0 usando operações básicas (+ − /∗)
Fácil!
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
12 / 46
Métodos Numéricos
Passo #1: Definição do Problema
√
Calcular a, a > 0 usando operações básicas (+ − /∗)
Fácil!
Passo #2: Modelagem Matemática
Problema real → Problema original (lembra redução NP-Completo)
√
x = a =⇒ x 2 = a =⇒ f (x) = x 2 − a = 0
De fato: determinar a raiz de uma equação algébrica
Atenção: problema original pode ter mais soluções que real
√
+ a
e
√
− a
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
12 / 46
Métodos Numéricos
Passo #3: Solução Numérica
Qual o método mais apropriado para f (x) = x 2 − a = 0?
Possível solução: método de Newton
xk+1 = xk −
f (xk )
f 0 (xk )
Substituindo f (x) e f 0 (x), tem-se que:
xk2 − a
2xk
xk
a
= xk −
+
2
2xk
a
= (xk + ) ∗ 0.5
xk
xk+1 = xk −
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
13 / 46
Métodos Numéricos
Passo #3: Solução Numérica
Resultado: um processo iterativo
que calcula
√
a
a partir de x0
usando apenas operações aritméticas
i
0
1
2
3
4
5
Ricardo Terra (rterrabh [at] gmail.com)
xi
1.0000
5.0000
3.4000
3.0235
3.0001
3.0000
xi − 3
2.0000
0.4000
0.0235
0.0001
0.0000
Matemática computacional
Fevereiro, 2013
14 / 46
Métodos Numéricos
1
3
Algoritmo Newton
parãmetros de entrada: x0, Toler, IterMax
parãmetros de saída: Raiz, Iter, CondErro
{CondErro = 0 se a raiz for encontrada, 1 caso contrário}
5
7
9
11
13
15
17
19
21
23
Fx <- f(x0); DFx <- f’(x0); x
escreva Iter, x, DFx, Fx
repita
DeltaX <- -Fx/DFx; x <- x
Fx <- f(x); DFx <- f’(x);
Iter <- Iter + 1
escreva Iter, x, DFx, Fx,
se ( abs(DeltaX) <= Toler
<- x0; Iter <- 0;
+ DeltaX
DeltaX
e abs(Fx) <= Toler ) ou DFx = 0
ou Iter >= IterMa
então interrompa
fimse
Raiz <- x
{teste de convergência}
se abs(DeltaX) <= Toler e abs(Fx) <= Toler então
CondErro <- 0
senão
CondErro <- 1
fimse
fimalgoritmo
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
15 / 46
Métodos Numéricos
Passo #4: Análise dos Resultados
A solução é adequada ao problema?
sim, ótimo!
não, nova formulação matemática
Por exemplo, se x0 < 0:
i
0
1
2
3
4
5
Ricardo Terra (rterrabh [at] gmail.com)
xi
−1.0000
−5.0000
−3.4000
−3.0235
−3.0001
−3.0000
xi − 3
−2.0000
−0.4000
−0.0235
−0.0001
0.0000
Matemática computacional
Fevereiro, 2013
16 / 46
Métodos Numéricos
Aplicações Reais de Métodos Numéricos
√
a → apenas um exemplo
e só mostramos a solução com o método de Newton
Ao longo da disciplina:
seno, coseno...
interpolação polinomial
equações lineares
EDO
etc.
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
17 / 46
Programação Linear / Otimização
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
18 / 46
Programação Linear / Otimização
Programação Linear
Envolve problemas de otimização em que:
função objetivo é linear
restrições são lineares
Mas...
o que é função objetivo e restrições?
isso tem aplicação prática?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
19 / 46
Programação Linear / Otimização
Otimização
Busca da melhor solução dentre um conjunto de soluções
Função objetivo
um critério de avaliação das soluções alternativas
permite dizer que uma é melhor que a outra
É a função objetivo que buscamos otimizar
alguns casos maximizar
outros casos minimizar
E quanto às restrições?
o que deve ser respeitado pela função objetivo
À procura de uma definição mais formal?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
20 / 46
Programação Linear / Otimização
Otimização (do ponto de vista matemático)
Uma função f
ora denominada função objetivo
Um conjunto Ω
contendo todas as possíveis soluções
Um problema de otimização matemático é definido por:
min{ f (x) }, x ∈ Ω
ou
max{ f (x) }, x ∈ Ω
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
21 / 46
Programação Linear / Otimização
Que tal exemplos práticos?
O problema da mistura (minimizar custos)
Ração
Barragem de concreto (só modelagem do problema)
O problema da produção (maximizar faturamento)
Geladeira
Pão e Pizza (só citar)
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
22 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
23 / 46
Problema da mistura – Ração
Queremos saber quais as quantidades ideais de cada
ingrediente para fazer uma quantidade de ração, com as
necessidades nutricionais atendidas e o custo total dos
ingredientes seja o menor possível
Temos os ingredientes e seus custos:
Milho (A1 ) – R$ 65,00 /Kg
Farinha de ossos (A2 ) – R$ 30,00 /Kg
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
24 / 46
Problema da mistura – Ração
Para fazer uma certa quantidade de ração para aves por
exemplo, é necessário uma certa quantidade nutrientes,
digamos, vitamina A (Va ), vitamina B (Vb ) e proteína (Vc )
Mais importante, segue sua quantidade nos ingredientes:
Milho (A1 )
→ 2 un. Va
3 un. Vb
Farinha de ossos (A2 ) → 3 un. Va
2 un. Vb
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
1 un. Vc
Fevereiro, 2013
25 / 46
Problema da mistura – Ração
Ademais, a ração deve ter no mínimo:
7 un. Va 9 un. Vb 1 un. Vc
Objetivo: determinar a quantidade dos alimentos para
satisfazer as restrições da ração e ter o menor custo
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
26 / 46
Problema da mistura – Ração
Modelagem
Variáveis de decisão
x1 = quantidade de ingrediente do tipo 1 presente na mistura
x2 = quantidade de ingrediente do tipo 2 presente na mistura
Função custo (restrições evitam ser nulo)
f (x1 , x2 ) = 65x1 + 30x2
Nosso objetivo: determinar x1 e x2 tal que
f (x1 , x2 ) = min{ f (x) }, x ∈ Ω
e logicamente considerando as restrições
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
27 / 46
Problema da mistura – Ração
Modelo Matemático
Para lembrar:
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
28 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Ração
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
29 / 46
Problema da mistura – Barragem de concreto
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
30 / 46
Problema da mistura – Barragem de concreto
Na implantação de uma barragem com grande consumo
de concreto, usar-se-á como fontes de agregados graúdos:
Britas graníticas, seixos rolados e pedra britada comercial
A tabela no próximo slide apresenta os custos e as
composições granulométricas de cada agregado e a
composição granulométrica ideal
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
31 / 46
Problema da mistura – Barragem de concreto
Dados do problema da barragem de concreto
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
32 / 46
Problema da mistura – Barragem de concreto
Para lembrar:
Modelo Matemático
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
33 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
34 / 46
Problema da produção – Geladeira
Empresa precisa decidir quais modelos de geladeira instalar
em sua nova planta
luxo ou básico
No máximo, 1500 un. luxo e 6000 un. básico por mês
Empresa contratou 25.000 homens-hora por mês
Luxo requer 10 homens-hora, básico requer 8 homens-hora
A capacidade da linha de montagem é de 4.500
geladeiras por mês (os modelos dividem a mesma linha)
O lucro unitário do modelo luxo é R$100 por mês, básico
lucra R$50 por mês
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
35 / 46
Problema da produção – Geladeira
Objetivo: determinar quanto produzir de cada modelo, de
modo a satisfazer todas as restrições e maximizar o lucro da
empresa
Variáveis de decisão
x1 = quantidade de geladeiras do modelo luxo a ser
produzida por mês
x2 = quantidade de geladeiras do modelo básico a ser
produzida por mês
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
36 / 46
Problema da produção – Geladeira
Modelo Matemático
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
37 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
38 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
38 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
38 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
38 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
38 / 46
Problema da produção – Geladeira
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
38 / 46
Problema da produção – Pão e Pizza
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
39 / 46
Problema da produção – Pão e Pizza
Uma padaria produz: pão (P1) e massa de pizza (P2)
Usa-se: farinha (M1), fermento (M2), ovos (M3) e manteiga
(M4), em que tem-se em estoque, respectivamente, 60, 38,
18 e 55 unidades
1 kg de pão requer 1 un. de farinha, 2 un. de fermento e 3
un. de manteiga
1 kg de massa de pizza requer 3 un. de farinha, 1 un. de ovo
e 1 un. de manteiga
O pão e massa de pizza são vendidos a R$ 22/Kg e R$20/Kg
Objetivo: determinar a quantidade de cada produto a ser
fabricada que maximize as vendas e respeite o estoque
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
40 / 46
Programação Linear / Otimização
Algoritmo
Entendi os exemplos. Mas existe algoritmo para isso?
A resposta é simplex
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
41 / 46
Programação Linear / Otimização
Algoritmo
Entendi os exemplos. Mas existe algoritmo para isso?
A resposta é simplex
Simplex
Algoritmo mais utilizado em Programação Linear
Não é tão simples como o nome (mas também não é assim complicado)
por isso só uma visão geral nesta aula
Em suma, a partir do modelo matemático do problema
passa para formal normal matricial
executa o algoritmo
são sete passos muito bem definidos
resultado: solução ótima (se existir)
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
41 / 46
Programação Linear / Otimização
Então, consegue complicar?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
42 / 46
Programação Linear / Otimização
Então, consegue complicar?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
42 / 46
Programação Linear / Otimização
Então, consegue complicar?
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
42 / 46
Programação Linear / Otimização
Então, consegue complicar?
O melhor é que consegue fácil e ainda conseguimos solucionar!
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
42 / 46
Considerações Finais
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
43 / 46
Considerações Finais
Para concluir, viu-se nesta aula:
Matemática Computacional
Processo (as quatro etapas)
Motivação (det(A))
Métodos numéricos
√
Alguns problemas ( a) e métodos numéricos (Newton)
Programação Linear/Otimização:
Função objetivo e restrições
Exemplos práticos de otimização
Simplex
Ao longo da disciplinas
Aprofundar...
(não é afundar)
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
44 / 46
Referências
Frederico Campos et al. Algoritmos Numéricos. 2 ed., 2007.
Maristela Santos. Otimização Linear. Notas de aula, 2012.
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
45 / 46
Obrigado!!!
Ricardo Terra (rterrabh [at] gmail.com)
Matemática computacional
Fevereiro, 2013
46 / 46

Documentos relacionados