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 2014), UFSJ (1 ano ), FUMEC (3 anos ), UNIPAC (1 ano ), FAMINAS (3 anos )
Profissional : DBA Eng. (1 ano ), Synos (2 anos ), Stefanini (1 ano )
Ricardo Terra (rterrabh [at] gmail.com) 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)n
i,j=1
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)n
i,j=1
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 n = 25 → 400.000 anos
Ricardo Terra (rterrabh [at] gmail.com) 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 {
3 public static void main (String args[]){
System.out.println( Math.sqrt(2) );
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 {
3 public static void main (String args[]){
System.out.println( Math.sqrt(2) );
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 {
3 public static void main (String args[]){
System.out.println( Math.sqrt(2) );
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 =⇒ x2 = a =⇒ f(x) = x2 − 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) = x2 − a = 0?
Possível solução: método de Newton
xk+1 = xk − f(xk )
f (xk )
Substituindo f(x) e f (x), tem-se que:
xk+1 = xk −
x2
k − a
2xk
= xk −
xk
2
+
a
2xk
= (xk +
a
xk
) ∗ 0.5
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 xi xi − 3
0 1.0000
1 5.0000 2.0000
2 3.4000 0.4000
3 3.0235 0.0235
4 3.0001 0.0001
5 3.0000 0.0000
Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 14 / 46
Métodos Numéricos
1 Algoritmo Newton
parâmetros de entrada: x0, Toler, IterMax
3 parâmetros de saída: Raiz, Iter, CondErro
{CondErro = 0 se a raiz for encontrada, 1 caso contrário}
5
Fx <- f(x0); DFx <- f’(x0); x <- x0; Iter <- 0;
7 escreva Iter, x, DFx, Fx
repita
9 DeltaX <- -Fx/DFx; x <- x + DeltaX
Fx <- f(x); DFx <- f’(x);
11 Iter <- Iter + 1
escreva Iter, x, DFx, Fx, DeltaX
13 se ( abs(DeltaX) <= Toler e abs(Fx) <= Toler ) ou DFx = 0
ou Iter >= IterMax
15 então interrompa
fimse
17 Raiz <- x
{teste de convergência}
19 se abs(DeltaX) <= Toler e abs(Fx) <= Toler então
CondErro <- 0
21 senão
CondErro <- 1
23 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 xi xi − 3
0 −1.0000
1 −5.0000 −2.0000
2 −3.4000 −0.4000
3 −3.0235 −0.0235
4 −3.0001 −0.0001
5 −3.0000 0.0000
Ricardo Terra (rterrabh [at] gmail.com) 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 1 un. Vc
Farinha de ossos (A2) → 3 un. Va 2 un. Vb
Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional 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
Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 28 / 46
Para lembrar:
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
Modelo Matemático
Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 33 / 46
Para lembrar:
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

Matemática Computacional

  • 1.
    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
  • 2.
    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 2014), UFSJ (1 ano ), FUMEC (3 anos ), UNIPAC (1 ano ), FAMINAS (3 anos ) Profissional : DBA Eng. (1 ano ), Synos (2 anos ), Stefanini (1 ano ) Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 2 / 46
  • 3.
    Introdução à MatemáticaComputacional Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 3 / 46
  • 4.
    Introdução à MatemáticaComputacional 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
  • 5.
    Introdução à MatemáticaComputacional 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
  • 6.
    Introdução à MatemáticaComputacional 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
  • 7.
    Introdução à MatemáticaComputacional 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
  • 8.
    Introdução à MatemáticaComputacional 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
  • 9.
    Introdução à MatemáticaComputacional Nada como exemplos! Determinante Seja uma matriz quadrada A = (aij)n i,j=1 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
  • 10.
    Introdução à MatemáticaComputacional Nada como exemplos! Determinante Seja uma matriz quadrada A = (aij)n i,j=1 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 n = 25 → 400.000 anos Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 6 / 46
  • 11.
    Introdução à MatemáticaComputacional 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
  • 12.
    Métodos Numéricos Ricardo Terra(rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 8 / 46
  • 13.
    Métodos Numéricos O quesã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
  • 14.
    Métodos Numéricos Achando umnúmero aleatório! Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 10 / 46
  • 15.
    Métodos Numéricos Achando umnúmero aleatório! Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 10 / 46
  • 16.
    Métodos Numéricos Por exemplo: 1public class Terra { 3 public static void main (String args[]){ System.out.println( Math.sqrt(2) ); 5 } 7 } Qual o resultado? Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 11 / 46
  • 17.
    Métodos Numéricos Por exemplo: 1public class Terra { 3 public static void main (String args[]){ System.out.println( Math.sqrt(2) ); 5 } 7 } Qual o resultado? Essa pergunta está errada nesta aula Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 11 / 46
  • 18.
    Métodos Numéricos Por exemplo: 1public class Terra { 3 public static void main (String args[]){ System.out.println( Math.sqrt(2) ); 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
  • 19.
    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
  • 20.
    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 =⇒ x2 = a =⇒ f(x) = x2 − 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
  • 21.
    Métodos Numéricos Passo #3:Solução Numérica Qual o método mais apropriado para f(x) = x2 − a = 0? Possível solução: método de Newton xk+1 = xk − f(xk ) f (xk ) Substituindo f(x) e f (x), tem-se que: xk+1 = xk − x2 k − a 2xk = xk − xk 2 + a 2xk = (xk + a xk ) ∗ 0.5 Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 13 / 46
  • 22.
    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 xi xi − 3 0 1.0000 1 5.0000 2.0000 2 3.4000 0.4000 3 3.0235 0.0235 4 3.0001 0.0001 5 3.0000 0.0000 Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 14 / 46
  • 23.
    Métodos Numéricos 1 AlgoritmoNewton parâmetros de entrada: x0, Toler, IterMax 3 parâmetros de saída: Raiz, Iter, CondErro {CondErro = 0 se a raiz for encontrada, 1 caso contrário} 5 Fx <- f(x0); DFx <- f’(x0); x <- x0; Iter <- 0; 7 escreva Iter, x, DFx, Fx repita 9 DeltaX <- -Fx/DFx; x <- x + DeltaX Fx <- f(x); DFx <- f’(x); 11 Iter <- Iter + 1 escreva Iter, x, DFx, Fx, DeltaX 13 se ( abs(DeltaX) <= Toler e abs(Fx) <= Toler ) ou DFx = 0 ou Iter >= IterMax 15 então interrompa fimse 17 Raiz <- x {teste de convergência} 19 se abs(DeltaX) <= Toler e abs(Fx) <= Toler então CondErro <- 0 21 senão CondErro <- 1 23 fimse fimalgoritmo Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 15 / 46
  • 24.
    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 xi xi − 3 0 −1.0000 1 −5.0000 −2.0000 2 −3.4000 −0.4000 3 −3.0235 −0.0235 4 −3.0001 −0.0001 5 −3.0000 0.0000 Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 16 / 46
  • 25.
    Métodos Numéricos Aplicações Reaisde 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
  • 26.
    Programação Linear /Otimização Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 18 / 46
  • 27.
    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
  • 28.
    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
  • 29.
    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
  • 30.
    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
  • 31.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 23 / 46
  • 32.
    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
  • 33.
    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 1 un. Vc Farinha de ossos (A2) → 3 un. Va 2 un. Vb Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 25 / 46
  • 34.
    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
  • 35.
    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
  • 36.
    Problema da mistura– Ração Modelo Matemático Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 28 / 46 Para lembrar:
  • 37.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 38.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 39.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 40.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 41.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 42.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 43.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 44.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 45.
    Problema da mistura– Ração Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 29 / 46
  • 46.
    Problema da mistura– Barragem de concreto Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 30 / 46
  • 47.
    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
  • 48.
    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
  • 49.
    Problema da mistura– Barragem de concreto Modelo Matemático Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 33 / 46 Para lembrar:
  • 50.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 34 / 46
  • 51.
    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
  • 52.
    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
  • 53.
    Problema da produção– Geladeira Modelo Matemático Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 37 / 46
  • 54.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 38 / 46
  • 55.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 38 / 46
  • 56.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 38 / 46
  • 57.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 38 / 46
  • 58.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 38 / 46
  • 59.
    Problema da produção– Geladeira Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 38 / 46
  • 60.
    Problema da produção– Pão e Pizza Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 39 / 46
  • 61.
    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
  • 62.
    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
  • 63.
    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
  • 64.
    Programação Linear /Otimização Então, consegue complicar? Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 42 / 46
  • 65.
    Programação Linear /Otimização Então, consegue complicar? Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 42 / 46
  • 66.
    Programação Linear /Otimização Então, consegue complicar? Ricardo Terra (rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 42 / 46
  • 67.
    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
  • 68.
    Considerações Finais Ricardo Terra(rterrabh [at] gmail.com) Matemática computacional Fevereiro, 2013 43 / 46
  • 69.
    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
  • 70.
    Referências Frederico Campos etal. 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
  • 71.
    Obrigado!!! Ricardo Terra (rterrabh[at] gmail.com) Matemática computacional Fevereiro, 2013 46 / 46