Presentation is loading. Please wait.

Presentation is loading. Please wait.

Optimização Numérica Modelação de problemas 1ª aula teórico-prática 11/Setembro/2006.

Similar presentations


Presentation on theme: "Optimização Numérica Modelação de problemas 1ª aula teórico-prática 11/Setembro/2006."— Presentation transcript:

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


Download ppt "Optimização Numérica Modelação de problemas 1ª aula teórico-prática 11/Setembro/2006."

Similar presentations


Ads by Google