Download presentation
Presentation is loading. Please wait.
1
Optimização Numérica Modelação de problemas 1ª aula teórico-prática 11/Setembro/2006
2
Introdução Problema de Programação Matemática É um problema de optimização escrito da seguinte forma Função objectivo Restrições sujeito a:g 1 (x 1,…,x n ) == b1b1 …… g m (x 1,…,x n )bmbm Optimizar:z = f(x1, …,xn) Problema sem restrições
3
Tipos de problemas Problemas de Programação Linear Função objectivo linear; restrições lineares; variáveis reais Problemas de Programação Quadrática Função objectivo quadrática; restrições lineares; variáveis reais Problemas de Programação Não Linear Função objectivo não linear; restrições lineares ou não lineares; variáveis reais Problemas de Programação Inteira Variáveis inteiras
4
Problema Programação Linear Variáveis v: Kg de carne de vaca utilizados p: Kg de carne de porco utilizados Pedido confeccionar 10 Kg de carne picada, com no máximo 25% de gordura, ao menor preço. Função objectivo Min z = 8v + 6p Restrições 0.2v + 0.3p 2.49 v + p = 10 % gordura Preço Kg Vaca208 Porco306 min z s.a. 0.2v + 0.3p 2.49 v + p = 10 v, p 0
5
Problema Programação Linear v p v+p = 10 0.2v+0.3p 2.49 v 0 p 0
6
Problema Programação Linear v p Região admissível (segmento de recta) z Solução óptima v = 5.1; p = 4.9
7
Problema Programação Linear Algoritmo Simplex (utilizando o MatLab) >> options = optimset('LargeScale', 'off', 'Simplex', 'on'); >> f = [8; 6]; lb = zeros(2,1); >> A = [0.2 0.3]; b = [2.49]; >> Aeq = [1 1]; beq = [10]; >> [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb,[],[],options) Optimization terminated. x = 5.1000 4.9000 fval = 70.2000 exitflag = 1 output = iterations: 1 algorithm: 'medium scale: simplex' cgiterations: [] message: 'Optimization terminated.' lambda = ineqlin: 20.0000 eqlin: -12.0000 upper: [2x1 double] lower: [2x1 double] Solução: v = 5.1; p = 4.9; z = 70.2
8
Problema Programação Inteira Admita-se agora que a carne é vendida em embrulhos de 1Kg (não divisíveis) Solução óptima do problema anterior x = [5.1 4.9] T [5 5] T x = [5 5] T não é solução óptima do problema de programação inteira pois não é admissível A solução óptima deste problema é x = [6 4] T min z s.a. 0.2v + 0.3p 2.49 v + p = 10 v, p 0 v, p inteiros
9
Problema Programação Inteira De uma forma geral z Solução óptimo do problema contínuo Solução óptimo do problema inteiro
10
Problema Programação Quadrática Variáveis d: Kg de queijo DeLux s: Kg de queijo Standard P d : preço por Kg DeLux P s : preço por Kg Standard Relação procura (D) / preço (P) D d = 190-25P d ; D s = 250 – 50P s Pedido Determinar a quantidade de queijo a produzir de cada tipo e o respectivo preço, de forma a que todo o queijo seja vendido maxime a receita Quejo FrutasEspecialNormal DeLux20%80%0% Standard20%30%50% quatidade20Kg60KgMuito
11
Problema Programação Quadrática Função objectivo Max Z = d*P d + s *P s Restrições 0.2d + 0.2s 20 0.8d + 0.3s 60 d 190 - 25P d s 250 - 50P s d, s 0 ==== Pode ser reescrito com 2 variáveis max z = d*(7.6 - 0.004*d)+ s*(5 - 0.02*s) sujeito a: 0.2 d + 0.2 s 20 0.8 d + 0.3 s 60 d, s 0 z d=55; s=45
12
Problema Programação Quadrática Resolução com o MatLab (max z - min -z) >> H = [0 0 -1 0; 0 0 0 -1; -1 0 0 0; 0 -1 0 0]; f = [0; 0; 0; 0]; >> A = [1 0 25 0; 0 1 0 50; 0.2 0.2 0 0; 0.8 0.3 0 0]; b = [190; 250; 20; 60]; >> lb = zeros(3,1); x0 = [1; 1; 1; 1]; >> [x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],lb,[],x0) output = iterations: 4 algorithm: 'medium-scale: active-set' firstorderopt: [] cgiterations: [] message: 'Optimization terminated.' lambda = lower: [4x1 double] upper: [4x1 double] eqlin: [0x1 double] ineqlin: [4x1 double] Warning: Large-scale method does not currently solve this problem formulation, switching to medium-scale method. > In quadprog at 242 Optimization terminated. x = 55.0000 45.0000 5.4000 4.1000 fval = -481.5000 exitflag = 1
13
Problema Programação Não Linear Problema dos mínimos quadrados Dados os pontos (x i, y i ), 1 i n, e uma família de funções y = f (x), |R p, pretende-se minimizar { n i=1 (y i – f (x i )) 2, |R p } Exemplo (recta dos mínimos quadrados): f (x) = 1 + 2 x
14
Problema Programação Não Linear Minimizar a soma as distâncias dos pontos à recta aproximadora A equação normal de uma recta é c + a x + b y = 0, onde (a, b) 0 é um vector perpendicular à recta Podemos supor, sem perda de generalidade que ||(a, b)|| 2 = a 2 + b 2 = 1 A distância de (x i, y i ) a recta é r i = c + a x i + b y i Pretende-se então min z = n i=1 (r i ) 2, sujeito a: r i = c + a x i + b y i, 1 i n a 2 + b 2 = 1
15
Problema Programação Não Linear
16
Problema do trajecto mais curto
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.