Bioinformática Avançada e Biologia de Sistemas Optimização

Documentos relacionados
Bioinformática Avançada e Biologia de Sistemas Optimização

Bioinformática Avançada e Biologia de Sistemas Optimização

Métodos Numéricos. MEI - Logística e distribuição Programação quadrática sequencial 2004/2005. A. Ismael F. Vaz - Departamento de Produção e Sistemas

Métodos Numéricos. MEI - Logística e distribuição Optimização não linear com restrições de igualdade 2004/2005

Métodos Numéricos C. A. Ismael F. Vaz 1. Escola de Engenharia Universidade do Minho Ano lectivo 2007/2008

Departamento de Matemática da Universidade de Coimbra. Licenciatura em Matemática. e B =

Métodos Numéricos I. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho

Optimização. Carlos Balsa. Departamento de Matemática Escola Superior de Tecnologia e Gestão de Bragança

Bioinformática Avançada e Biologia de Sistemas Optimização

Capítulo 5 - Optimização Não-Linear

Métodos Numéricos C. A. Ismael F. Vaz 1. Escola de Engenharia Universidade do Minho Ano lectivo 2007/2008

MÉTODOS NEWTON E QUASE-NEWTON PARA OTIMIZAÇÃO IRRESTRITA

Aplicações e métodos para programação semi-infinita e optimização multi-local

Métodos Numéricos I. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho

BCC465 - TÉCNICAS DE MULTI-OBJETIVO. Gladston Juliano Prates Moreira 22 de novembro de 2017

Optimização semi-infinita. Opção V. Licenciatura em Matemática Aplicada

Controle Ótimo - Aula 8 Equação de Hamilton-Jacobi

UNIVERSIDADE FEDERAL DO ABC. 1 Existência e unicidade de zeros; Métodos da bissecção e falsa posição

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Métodos Numéricos. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho

OPTIMIZAÇÃO NÃO LINEAR

Optimização e Algoritmos (2004/2005)

Métodos Numéricos C Apresentação da Disciplina

Iury Steiner de Oliveira Bezerra

Capítulo 22 Otimização. Introdução ao MATLAB p.1/18

Parte 1: Exercícios Teóricos

Matemática Computacional - Exercícios

Exercícios de MATEMÁTICA COMPUTACIONAL. 1 0 Semestre de 2009/2010 Resolução Numérica de Equações Não-Lineares

Exercícios TP/P. 1 Condições de optimalidade - Restrições de igualdade

Modelagem Computacional. Parte 8 2

MÉTODOS NUMÉRICOS. ENGENHARIA e GESTÃO INDUSTRIAL

Encontre um valor aproximado para 3 25 com precisão de 10 5 utilizando o método da bissecção.

Capítulo 6 - Equações Não-Lineares

Resolução do Exame Tipo

INSTITUTO SUPERIOR TÉCNICO Mestrado Integrado em Engenharia Física Tecnológica Ano Lectivo: 2007/2008 Semestre: 1 o

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. IV Modelo Dual

Capítulo 4 - Equações Não-Lineares

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Sabendo que f(x) é um polinômio de grau 2, utilize a formula do trapézio e calcule exatamente

FOLHAS DE PROBLEMAS DE MATEMÁTICA II CURSO DE ERGONOMIA PEDRO FREITAS

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Cálculo Diferencial e Integral 2 Formas Quadráticas

EXERCICIOS RESOLVIDOS - INT-POLIN - MMQ - INT-NUMERICA - EDO

Capítulo 1 - Erros e Aritmética Computacional

Lista de Exercícios de Métodos Numéricos

Processamento de Imagens CPS755

Funções para Análise Numérica

Vetores, Matrizes e Gráficos

Otimização aplicada à Engenharia. Profa. Maíra Martins da Silva

Cálculo Diferencial e Integral II

Controlo óptimo de processos semi-contínuos com optimização por colónias de partículas

Métodos Numéricos. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho aivaz@dps.uminho.

Iury Steiner de Oliveira Bezerra

. Os menores -2,0-1,5-1,0-0,5-5 0,0 0,5 1,0 1,5 2, = x 2y.. Os menores

Matemática Computacional - Exercícios

OPTIMIZAÇÃO DE ESTRUTURAS

MÉTODOS NUMÉRICOS II ENGENHARIA POLÍMEROS EXERCÍCIOS TEÓRICO-PRÁTICOS

Método dos gradientes (ou método de máxima descida)

Exercícios de ANÁLISE E SIMULAÇÃO NUMÉRICA

exercícios de análise numérica II

Método de Newton truncado

Bioinformática Avançada e Biologia de Sistemas Optimização

Análise Matemática II - 1 o Semestre 2001/ o Exame - 25 de Janeiro de h

Introdução à Otimização de Processos. Prof. Marcos L Corazza Departamento de Engenharia Química Universidade Federal do Paraná

ISCTE/FCUL - Mestrado Matemática Financeira. Aula de Janeiro de 2009 Ano lectivo: 2008/2009. Diana Aldea Mendes

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Matemática Computacional. Exercícios. Teoria dos erros

Determinação de Trajectória Óptima em Processos de Fermentação Semi-contínua

Pretende-se calcular uma aproximação para a menor raiz positiva da equação

Lista de Exercícios 1

Exercícios de ANÁLISE E SIMULAÇÃO NUMÉRICA

Métodos Numéricos - Notas de Aula

Exame de Matemática II - Curso de Arquitectura

Aula 7. Noções Básicas de Octave

6.Elaboração de algoritmos...13

Lista 1 - Cálculo Numérico - Zeros de funções

SME0300 Cálculo Numérico Aula 4

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

)XQGDPHQWRVGHSURJUDPDomRPDWHPiWLFD

Notas de Aula de Cálculo Numérico

Forecasting e ti O i Otim Oti ização de ã d Carteiras com Matlab AULA 3

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 06. Prof. Dr. Marco Antonio Leonel Caetano

Capítulo 04. Erros de arredondamento e Truncamento (Parcial)

Matemática Computacional Ficha 1: Capítulo /19

MÉTODOS NUMÉRICOS. ENGENHARIA ELECTRÓNICA INDUSTRIAL e de COMPUTADORES

Frequência / Exame de 1. a Época

x n+1 = 1 2 x n (2 valores) Considere a equação recursiva no modelo de Fisher, Wright e Haldane

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Capítulo 1 - Erros e Aritmética Computacional

Cálculo Numérico. Resumo e Exercícios P1

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

2.12 Sistemas de equações não-lineares

EXAMES DE ANÁLISE MATEMÁTICA III

Resoluções do pteste(matlab).pdf

Aproximação de uma função pelo polinómio de Taylor.

Equações não lineares

Equações não lineares Universidade de Coimbra Professor João Soares 2008/2009

Transcrição:

Bioinformática Avançada e Biologia de Sistemas Optimização A. Ismael F. Vaz Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho aivaz@dps.uminho.pt Mestrado em Bioinformática Ano lectivo 2007/2008 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 1 / 190

Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 2 / 190

Introdução Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 3 / 190

Introdução Apresentação - Docente Aulas teóricas e teórico-práticas A. Ismael F. Vaz - aivaz@dps.uminho.pt www.norg.uminho.pt/aivaz Horário de atendimento Marcação por email. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 4 / 190

Introdução Apresentação - Disciplina Página da disciplina; www.norg.uminho.pt/aivaz Três fichas TPs para resolver ao longo desta parte do módulo (Nota mínima de 8); A classificação final do módulo é: Ficha TP1+Ficha TP2+Ficha TP3 3. A classificação na Unidade Curricular (UC) tem uma fórmula de cálculo própria. É obrigatória a presença em 2/3 das aulas efectivas (1/3 de faltas atenção às justificações/estatutos). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 5 / 190

Introdução Material necessário e de apoio Calculadora científica; Folhas das fichas TPs; Papel e caneta; Livro de Computação Numérica; www.norg.uminho.pt/emgpf Sebenta de Optimização Não Linear; www.norg.uminho.pt/emgpf Software MATLAB + toolbox de Optimização (+ AMPL + Solver); Fichas TPs e acetatos disponíveis na página; www.norg.uminho.pt/aivaz A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 6 / 190

Introdução Motivação da disciplina Optimização A optimização é uma área da matemática aplicada com inúmeras aplicações no nosso dia a dia. Exemplo de aplicações Poluição do ar (determinação de políticas óptimas), Robótica (determinação de trajectórias óptimas), Processos de fermentação semi-contínua (etanol, cerveja!!), etc... e astrofísica. Engenharia Está presente em todas as áreas da engenharia (sem excepção)... A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 7 / 190

Introdução Controlo óptimo - Um exemplo Problema de optimização do processo semi-contínuo de produção de Etanol. O problema de optimização é: (t 0 = 0 e t f = 61.2 dias) max u(t) J(t f ) x 3 (t f )x 4 (t f ) s.a dx 1 = g 1 x 1 u x 1 dt x 4 dx 2 = 10g 1 x 1 + u 150 x 2 dt x 4 dx 3 = g 2 x 1 u x 3 dt x 4 dx 4 = u dt 0 x 4 (t f ) 200 0 u(t) 12 t [t 0, t f ] com ( ) ( ) 0.408 x 2 g 1 = 1 + x 3 /16 0.22 + x 2 ( ) ( ) 1 x 2 g 2 = 1 + x 3 /71.5 0.44 + x 2 onde x 1, x 2 e x 3 são as concentrações da massa celular, substrato e produto (g/l), e x 4 é o volume (L). As condições iniciais são: x(t 0 ) = (1, 150, 0, 10) T. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 8 / 190

Introdução Abordagem para a resolução Grande exigência em termos numéricos; Grande exigência em termos de programação; Solução da equação diferencial com o CVODE (software em C); Problemas codificados em AMPL (linguagem de modelação); Algoritmo para optimização sem derivadas; A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 9 / 190

Introdução Programa detalhado Aula Matéria 1 Grafos (Cláudio Alves) 2 Optimização Combinatória (Cláudio Alves) 3 Ficha de avaliação. Introdução ao MATLAB. Definição de vectores e matrizes. Codificação de funções matemáticas e operadores. Uso de ficheiros M (M-Files). 4 Introdução à optimização não linear (sem restrições). Definições e condições de optimalidade. 5 Método de Newton e quasi-newton. Modelação de casos em MA- TLAB (função fminsearch e fminunc). 6 Ficha de Avaliação. Introdução à optimização não linear com restrições. Tipos de problemas e suas características. Condições de optimalidade. Tratamento de restrições lineares e não lineares. 7 Modelação de casos e uso de MATLAB (função fmincon). 8 Modelação de casos e uso de MATLAB (função fmincon). 9 Revisões. 10 Revisões e Ficha de avaliação. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 10 / 190

MATLAB Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 11 / 190

MATLAB O que é o MATLAB? MATLAB Começou como sendo um programa iterativo para cálculos com matrizes e transformou-se numa linguagem matemática de alto nível. O seu desenvolvimento permite agora, por exemplo, a resolução de equações diferenciais e o desenho de gráficos a duas e três dimensões. Possuindo o MATLAB uma linguagem de programação poder-se-ia dizer que qualquer algoritmo pode ser implementado em MATLAB. O que aprender? Neste caso apenas iremos introduzir os comandos básicos e a criação de scripts necessários aos capítulos seguintes. O MATLAB possui uma toolbox (entre outras) que fornece um conjunto de algoritmos para optimização. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 12 / 190

MATLAB Só existe o MATLAB? Ferramentas similares Outros programas similares são o Mathematica e o Maple Mathematica Mais vocacionado para manipulação simbólica, embora o MATLAB também já incorpore algumas destas funcionalidades. Maple Exemplo Resolver a equação diferencial com condições iniciais d 2 y dx 2 (x) 3y(x) = x, y(0) = 1 dy dx (0) = 2 dsolve( diff(y(x),x,x) - 3*y(x) = x, y(0)=1, D(y)(0)=2, y(x) ); A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 13 / 190

MATLAB Ambiente MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 14 / 190

MATLAB Operações básicas Aritméticas >> 2+3*2-1.5*2^2 ans = 2 ans é uma variável built-in que é criada sempre que um resultado não é atribuído. Variáveis built-in constantes >> pi ans = 3.1416 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 15 / 190

MATLAB Operações básicas Funções >> a=2*sin(pi)^2+3*exp(1)+sqrt(2)+cosh(2) a = 13.3313 Ajuda >> help acos ACOS Inverse cosine. ACOS(X) is the arccosine of the elements of X. Complex results are obtained if ABS(x) > 1.0 for some element.... See also cos, acosd. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 16 / 190

MATLAB Operações básicas Formatos Precisão O MATLAB usa sempre aritmética com precisão de 15 algarismos significativos, no entanto, por defeito apenas mostra 4. >> format long >> a a = 13.33125473883387 >> format short >> a a = 13.3313 >> format short e >> a a = 1.3331e+001 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 17 / 190

MATLAB Operações básicas com escalares O ; Os comandos que terminam com o ; não são impressos no ecrã. >> a=log(2)+log10(2)+log2(2); >> a a = 1.9942 >> a=log(2)+log10(2)+log2(2) a = 1.9942 Útil quando se pretende efectuar vários comandos seguidos (scripts) e não se pretende ver determinados resultados. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 18 / 190

MATLAB Operações básicas com vectores e matrizes Vectores linha >> a=[1 2 3] a = 1 2 3 >> a=[1,2,3] a = 1 2 3 O(A) transposto(a) >> a=[1;2;3] a = 1 2 3 Vectores coluna >> a=[1;2;3] a = 1 2 3 O(A) transposto(a) >> a=[1,2,3] a = 1 2 3 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 19 / 190

MATLAB Operações básicas com vectores e matrizes Operações com vectores Funções >> a a = 1 2 3 >> b=sin(a) b = 0.8415 0.9093 0.1411 Operações com vectores >> a+b ans = 1.8415 2.9093 3.1411 >> a^2??? Error using ==> mpower Matrix must be square. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 20 / 190

MATLAB Operações básicas com vectores e matrizes Operações elemento a elemento >> a.^2 ans = 1 4 9 >> (a+b).^2 ans = 3.3910 8.4640 9.8666 >> a.*b ans = 0.8415 1.8186 0.4234 Operações com vectores >> 2*a+b.^2 ans = 2.7081 4.8268 6.0199 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 21 / 190

MATLAB Operações básicas com vectores e matrizes Operações elemento a elemento >> a*b??? Error using ==> mtimes Inner matrix dimensions must agree. >> a*b ans = 3.0834 Operações com vectores >> a *b ans = 0.8415 0.9093 0.1411 1.6829 1.8186 0.2822 2.5244 2.7279 0.4234 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 22 / 190

MATLAB Operações básicas com vectores e matrizes Matriz >> A=[ 1 2 3; 4 5 6] A = 1 2 3 4 5 6 Matriz 2 3. O MATLAB é case sensitive, i.e., A é diferente de a. Matriz transposta >> A=[ 1 2 3; 4 5 6] A = 1 4 2 5 3 6 Matriz 3 2. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 23 / 190

MATLAB Operações básicas com vectores e matrizes Definição >> A+B ans = 3 5 5 7 7 9 >> A +B ans = 3 5 7 5 7 9 >> (A+B) ans = 3 5 7 5 7 9 Soma >> A=[2 3; 3 4; 4 5] A = 2 3 3 4 4 5 >> B=[1 2; 2 3; 3 4] B = 1 2 2 3 3 4 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 24 / 190

MATLAB Operações básicas com vectores e matrizes Produto >> A*B??? Error using ==> mtimes Inner matrix dimensions... >> A*B ans = 8 13 18 11 18 25 14 23 32 O número de colunas da primeira matriz tem de ser igual ao número de linhas da segunda matriz. Produto elemento a elemento >> A.*B ans = 2 6 6 12 12 20 >> A^2??? Error using ==> mpower Matrix must be square. >> A.^2 ans = 4 9 9 16 16 25 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 25 / 190

MATLAB Sistemas lineares Um sistema linear pode ser representado na forma de matricial como Ax = b, em que A é uma matriz (dos coeficientes), x é a solução do sistemas e b é um vector (dos termos independentes). Sistema x 1 +2x 2 +3x 3 = 1 4x 1 +5x 2 +6x 3 = 2 7x 1 +8x 2 +9x 3 = 3 i.e. A = 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 x = x 1 x 2 x 3 x 1 x 2 x 3 = e b = 1 2 3 1 2 3 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 26 / 190

MATLAB Resolução de Sistemas lineares O exemplo anterior >> A=[1 2 3; 4 5 6; 7 8 9]; b=[1 2 3] ; >> x=a\b Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.203039e-018. x = -0.3333 0.6667 0 >> A*x-b ans = 1.0e-015 * 0-0.2220 0 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 27 / 190

MATLAB Resolução de Sistemas lineares Curiosidades >> det(a) ans = 0 >> [L,U]=lu(A) L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0-0.0000 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 28 / 190

MATLAB Resolução de Sistemas lineares Não fazer Porquê? >> x=inv(a)*b Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.203039e-018. x = 0 0 0 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 29 / 190

MATLAB Acesso a elementos de vectores e matrizes Acesso a vectores >> b=sin(b); >> b(1) ans = 0.8415 >> b(2:3) ans = 0.9093 0.1411 >> b(:) ans = 0.8415 0.9093 0.1411 Acesso a matrizes >> A(2,2) ans = 5 >> A(2,:) ans = 4 5 6 >> A(:,1) ans = 1 4 7 >> A(1:2,2:3) ans = 2 3 5 6 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 30 / 190

MATLAB Matrizes e vectores especiais Zeros e uns >> zeros(2,3) ans = 0 0 0 0 0 0 >> ones(2,1) ans = 1 1 >> t=1:1:3 t = 1 2 3 >> t=1.1:0.1:1.2 t = 1.1000 1.2000 Identidade >> eye(3) ans = 1 0 0 0 1 0 0 0 1 >> rand(3,2) ans = 0.6068 0.7621 0.4860 0.4565 0.8913 0.0185 >> randn(2,2) ans = 1.1892 0.3273-0.0376 0.1746 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 31 / 190

MATLAB Modificação de elementos em vectores e matrizes Atribuições >> A=ones(3,3); >> A(1:2,1)=3 A = 3 1 1 3 1 1 1 1 1 >> A(3,1:2:3)=4 A = 3 1 1 3 1 1 4 1 4 Troca de valores >> A([1 2],1)=2*A([1 2],1) A = 6 1 1 6 1 1 4 1 4 >> A([1 3],1)=A([3 1],1) A = 4 1 1 6 1 1 6 1 4 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 32 / 190

MATLAB find >> v=[0.1 0.4 0.12 0.13] v = 0.1000 0.4000 0.1200 0.1300 >> i=find(v>0.12) i = 2 4 >> a=v(i) a = 0.4000 0.1300 >> i=find(v==0.1) i = 1 >> i=find(v~=0.1) i = 2 3 4 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 33 / 190 Operadores lógicos e o find

MATLAB Operadores lógicos e o find Operadores lógicos Símbolo Representa Símbolo Representa > Maior que >= Maior ou igual que < Menor que <= Menor ou igual que = Diferente de == Igual a Negação & E Ou A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 34 / 190

MATLAB Funções básicas Funções Função max min sum mean stdev Descrição Elemento máximo de um vector Elemento mínimo de um vector Soma de todos os elementos Média aritmética Desvio padrão A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 35 / 190

MATLAB Mensagens e display de variáveis Ficheiros >> x = 0:.1:1; y = [x; exp(x)]; >> fid = fopen( exp.txt, w ) fid = 3 >> fprintf(fid, %6.2f %12.8f\n,y); >> fclose(fid); Conteúdo de exp.txt 0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881... 0.90 2.45960311 1.00 2.71828183 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 36 / 190

MATLAB Mensagens e display de variáveis Terminal >> x=1;y=2; >> fprintf( Duas variáveis: %5.1f %6.2f\n,x,y); Duas variáveis: 1.0 2.00 >> x=[1 2];y=[3 4]; >> fprintf( Dois vectores: %5.1f %6.2f\n,x,y); Dois vectores: 1.0 2.00 Dois vectores: 3.0 4.00 Terminal >> x x = 1 2 >> disp(x) 1 2 Terminal >> x=1.23; >> s=sprintf( Uma string %4.2f,x) s = Uma string 1.23 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 37 / 190

MATLAB Scripts Definição Um script trata-se da execução de uma série de comandos. Os scripts são guardados em ficheiros de extensão.m e por isso designámos por M-Files (ficheiros M). Ficheiro bioinf.m x = 0:.1:1; y = exp(x); fprintf( %4.2f %8.4f\n,x,y); Execução >> bioinf 0.00 0.1000 0.20 0.3000... 2.01 2.2255 2.46 2.7183 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 38 / 190

MATLAB Desenho de gráficos 2D Plot >> x=0:0.05:4*pi; >> plot(x,sin(x).^2+2*exp(x/(4*pi))); >> xlabel( x ); >> ylabel( sin^2(x)+2e^{x/(4\pi)} ); >> title( O meu primeiro plot ); >> axis([0 4*pi 1 7]); A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 39 / 190

MATLAB Desenho de gráficos 2D 7 O meu primeiro plot 6 5 sin 2 (x)+2e x/(4π) 4 3 2 1 0 2 4 6 8 10 12 x A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 40 / 190

MATLAB Desenho de gráficos 2D Sobreposição >> x=0:0.05:4*pi; >> plot(x,sin(x).^2+2*exp(x/(4*pi))); >> hold on; >> plot(x,-sin(x).^2+2*exp(x/(4*pi))); >> hold off; >> x=0:0.05:4*pi; >> y1=sin(x).^2+2*exp(x/(4*pi)); >> y2=-sin(x).^2+2*exp(x/(4*pi)); >> plot(x,y1,x,y2); Dois gráficos quase idênticos (atenção às cores). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 41 / 190

MATLAB Desenho de gráficos 2D 6 5.5 5 4.5 4 3.5 3 2.5 2 1.5 1 0 2 4 6 8 10 12 14 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 42 / 190

MATLAB Desenho de gráficos 2D Usando marcas e tipos de linhas >> x=0:0.05:4*pi; >> y=0:1:4*pi; >> plot(x,sin(x).^2+2*exp(x/(4*pi)), --r,1,3, ok,... 3,4, *g,y,-sin(y).^2+2*exp(y/(4*pi)), +k ); A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 43 / 190

MATLAB Desenho de gráficos 2D 6 5.5 5 4.5 4 3.5 3 2.5 2 1.5 1 0 2 4 6 8 10 12 14 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 44 / 190

MATLAB Desenho de gráficos 3D Plot3 >> t = 0:pi/50:10*pi; >> plot3(sin(t),cos(t),t); >> [x,y]=meshgrid(0:0.1:4*pi,0:0.1:pi); >> plot3(x,y,sin(x).*cos(y)); >> surf(x,y,sin(x).*cos(y)); A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 45 / 190

MATLAB Desenho de gráficos 3D 40 30 20 10 0 1 0.5 0 0.5 1 1 0.5 0 0.5 1 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 46 / 190

MATLAB Desenho de gráficos 3D 1 0.5 0 0.5 1 4 3 2 1 0 0 2 4 6 8 10 12 14 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 47 / 190

MATLAB Desenho de gráficos 3D 1 0.5 0 0.5 1 4 3 2 1 0 0 2 4 6 8 10 12 14 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 48 / 190

MATLAB Desenho de curvas de nível Contour >> [x,y]=meshgrid(0:0.1:4*pi,0:0.1:pi); >> contour(x,y,sin(x).*cos(y)); >> contour(x,y,sin(x).*cos(y),50); A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 49 / 190

MATLAB Desenho de curvas de nível 3 3 2.5 2.5 2 2 1.5 1.5 1 1 0.5 0.5 0 0 2 4 6 8 10 12 0 0 2 4 6 8 10 12 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 50 / 190

MATLAB Funções MATLAB As funções em MATLAB são escritas em ficheiros M. O nome do ficheiro deve corresponder ao nome da função Execução >> simples(2) ans = 4 >> a=simples([1 2]) a = 1 4 >> b=simples([1 2; 2 3]) b = 1 4 4 9 simples.m function f = simples(x) % O quadrado de x %.^ para... f=x.^2; Help >> help simples O quadrado de x A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 51 / 190

MATLAB Funções MATLAB O if myfun.m function [a, b] = myfun(x,y) % % Argumentos de entrada: % x - O meu primeiro argumento % y - O meu segundo argumento % % Argumentos de saída: % a - O meu primeiro argumento de saída % b - O meu segundo argumento de saída % Isto já não aparece no Help A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 52 / 190

MATLAB Funções MATLAB O if myfun.m Cont. % Verificar os argumentos de entrada [d1,d2]=size(x); if d2 ~= 1 error( Só aceito vectores coluna ); else if nargin < 2 y=ones(d1,1); % Valor por defeito para o y else [d3,d4]=size(y); if d4 ~= 1 error( Só aceito vectores coluna ); end if d3 ~= d1 error( Dimensões de x e y não são iguais ); end end end A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 53 / 190

MATLAB Funções MATLAB O if myfun.m Cont. if nargout < 1 error( Pelo menos um argumento de saída ); end a=2*x+y; if nargout > 1 b=3*x+2*y; end A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 54 / 190

MATLAB Funções MATLAB O if Execução >> myfun([1 2])??? Error using ==> myfun Só aceito vectores coluna >> myfun([1 2] )??? Error using ==> myfun Pelo menos um argumento de saída >> f=myfun([1 2] ) f = 3 5 >> f=myfun([1 2],[1 2 3])??? Error using ==> myfun Só aceito vectores coluna A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 55 / 190

MATLAB Funções MATLAB O if Execução >> f=myfun([1 2],[1 2 3] )??? Error using ==> myfun Dimensões de x e y não são iguais >> [f1,f2]=myfun([1 2],[1 2] ) f1 = 3 6 f2 = 5 10 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 56 / 190

MATLAB Funções MATLAB O for Execução >> for i=1:2 fprintf( %d --> %d\n,i,2*i); end 1 --> 2 2 --> 4 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 57 / 190

MATLAB Funções MATLAB O inline Execução >> g=inline( sin(x) ); >> g(1) ans = 0.8415 >> g=inline( sin(x)*a, x, a ); >> g(1,2) ans = 1.6829 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 58 / 190

MATLAB Zeros de funções A função fzero >> g=inline( cos(x) ); >> fzero(g,1.1) ans = 1.5708 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 59 / 190

Optimização Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 60 / 190

Optimização Classificação Os problemas de optimização podem ser classificados de acordo com: as funções envolvidas (na função objectivo e nas restrições) o tipo de variáveis usadas (inteiras, binárias, discretas, contínuas, etc...) o tipo de restrições consideradas (igualdade, desigualdade, infinitas, complementaridade, etc...) o tipo de solução que se pretende obter (local ou global) diferenciabilidade das funções envolvidas (optimização com ou sem derivadas) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 61 / 190

Optimização Importância da classificação Não existe software que resolva todos os tipos de problemas. O tipo de problema que se pretende resolver condiciona o software (solver) a usar. Um solver para optimização contínua não pode ser usado para resolver problemas com variáveis discretas. Um solver que use derivadas (ou as estime), aplicado a um problema que envolva funções não diferenciáveis, pode convergir (se convergir!!!) para um ponto de descontinuidade da derivada, apresentando-a como solução. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 62 / 190

Optimização Tipo de problemas Programação linear min(max) c T x(+d) s.a Ax = b Ex ( )f Programação quadrática min x T Qx + c T x s.a Ax = b Ex f A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 63 / 190

Optimização Tipo de problemas Optimização não linear min f(x) s.a c(x) = 0 h(x) 0 Desde que na definição do problema seja usada uma função não linear. f(x), c(x) e h(x) podem ser funções lineares. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 64 / 190

Optimização Classificação das variáveis Booleanas ou binárias (0 ou 1) Inteiras (Por exemplo 1,2,3,4,5,6,... ) Discretas (Por exemplo preto, azul, verde, vermelho, etc...) Contínuas (Por exemplo x [0, 2]) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 65 / 190

Optimização Classificação quanto à solução pretendida Óptimo local (determinação de um minimizante local ou relativo) Óptimo global (determinação de uma minimizante global ou absoluto) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 66 / 190

Optimização Classificação quanto à estrutura Programação semi-definida (envolve matrizes semi-definidas) Programação semi-infinita (uma função objectivo sujeita a uma infinidade de restrições) Programação estocástica ou robusta (envolve parâmetros incertos, conhecendo-se um intervalo de variação) Problemas de complementaridade (restrições em que se uma for diferente de zero então a outra é necessariamente zero) Problemas de controlo óptimo (determinar a melhor forma de controlar um determinado sistema - frequentemente modelado com equações diferenciais) etc... A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 67 / 190

Optimização Classificação de algoritmos Estocásticos (Procura da solução de forma aleatória, mas controlada) Algoritmos genéticos Colónias de formigas Colónias de partículas etc... Grande parte das vezes sem convergência garantida. Usados para a procura global (quando funcionam!!!). Determinísticos Dados os parâmetros iniciais (aproximação inicial e parâmetros do algoritmo) executa sempre da mesma forma. Grande parte das vezes com convergência garantida para um óptimo local. Híbridos Uma mistura das duas abordagens A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 68 / 190

Optimização não linear sem restrições Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 69 / 190

Optimização não linear sem restrições Forma geral do problema A formulação matemática de um problema de optimização, na sua forma mais geral, é s.a min f(x) x R n c i (x) = 0, i = 1,..., m c j (x) 0, j = m + 1,..., t onde f(x) é a função objectivo, c i (x) = 0 são as restrições de igualdade e c j (x) são as restrições de desigualdade. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 70 / 190

Optimização não linear sem restrições Equivalência entre problemas O problema de optimização (maximização) s.a max g(x) x R n c i (x) = 0, i = 1,..., m c j (x) 0, j = m + 1,..., t é equivalente ao problema de optimização (minimização) s.a min f(x) g(x) x Rn c i (x) = 0, i = 1,..., m c j (x) c j (x) 0, j = m + 1,..., t A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 71 / 190

Optimização não linear sem restrições Interpretação geométrica 6 4 2 f(x*) f(x), f(x) 0 x* 2 f(x*) 4 6 1.5 1 0.5 0 0.5 1 1.5 2 2.5 x f(x) = (x 0.5) 2 + 2 g(x) = f(x) = (x 0.5) 2 2 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 72 / 190

Optimização não linear sem restrições Exemplo Pretende-se determinar o volume máximo de uma lata (cilindro), fechada nas duas extremidades, sabendo que a quantidade de chapa a usar é de 1000 cm 2. Sendo r o raio da tampa e h a altura da lata, uma possível formulação do problema de optimização é max (r,h) R πr2 h 2 s.a 2πr 2 + 2πrh = 1000 que pode ser transformado no problema de minimização min x R 2 πx2 1x 2 s.a 2πx 2 1 + 2πx 1 x 2 = 1000 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 73 / 190

Optimização não linear sem restrições Optimização sem restrições Apenas iremos considerar problemas de minimização e sem restrições. A sua formulação é pois min x R n f(x). Classificação dos problemas (mais usuais) Problemas unidimensionais (n = 1, ou seja, x R); Problemas multidimensionais (n > 1, ou seja, x = (x 1,..., x n ) T R n ); Problemas de programação linear (f(x) e c(x) são funções lineares, i.e., f(x) = Ax, c(x) = Ax b); Problemas de programação quadrática (f(x) é uma função quadrática, i.e., f(x) = 1 2 xt Gx + d T x, e c(x) são funções lineares); Problemas com limites simples (restrições nas variáveis do tipo a l x l b l, l = 1,..., n); Problemas de programação não linear (pelo menos uma das funções envolvidas, f(x), c(x) é não linear). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 74 / 190

Optimização não linear sem restrições Classificação de mínimos x é minimizante local forte se δ tal que f(x ) < f( x), x V δ (x ); minimizante local fraco se δ tal que f(x ) f( x), x V δ (x ); minimizante global forte se f(x ) < f( x), x R n ; minimizante global fraco se f(x ) f( x), x R n ; Onde V δ (x ) é uma vizinhança de x de raio δ ( x x < δ). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 75 / 190

Optimização não linear sem restrições Mínimo global Mínimo global forte Função ilimitada Mínimo global fraco f(x ) < f( x) x R f(x ) f( x) x R A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 76 / 190

Optimização não linear sem restrições Mínimo local δ : f(x ) < f( x), x V δ (x ). δ : f(x ) f( x), x V δ (x ). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 77 / 190

Optimização não linear sem restrições Conceitos Máximo e maximizante; Mínimo e minimizante; Óptimo local ou global; Convergência local e global de algoritmos. Um algoritmo diz-se global se determina um minimizante (maximizante) dada uma qualquer aproximação inicial. Um algoritmo diz-se local se determina um minimizante partindo apenas de uma aproximação inicial suficientemente perto do minimizante. (Não confundir com a determinação de mínimos locais ou globais). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 78 / 190

Optimização não linear sem restrições Condições de optimalidade Condições necessárias para a existência de um mínimo f (x ) = 0; f (x ) 0. Condições suficientes para a existência de um mínimo f (x ) = 0; f (x ) > 0. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 79 / 190

Optimização não linear sem restrições Exemplos f(x) = (x 1.5) 2 f(x) = sin(x) f (1.5) = 2 (1.5 1.5) = 0 f (1.5) = 2 > 0 f ( π 2 ) = cos( π 2 ) = 0 f ( π 2 ) = sin( π 2 ) = 1 < 0 0.25 1.02 1 0.2 0.98 0.96 0.15 0.94 0.1 0.92 0.9 0.05 0.88 0.86 0 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 0.84 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 Pelas condições necessária e suficiente A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 80 / 190

Optimização não linear sem restrições Exemplos f(x) = x 4 f(x) = x 3 f (0) = 3 (0) 3 = 0 f (0) = 3 (0) 2 = 0 f (0) = 12 (0) 2 = 0 f (0) = 6 (0) = 0 1 1 0.9 0.8 0.8 0.6 0.7 0.4 0.6 0.2 0.5 0 0.4 0.2 0.3 0.4 0.2 0.6 0.1 0.8 0 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 1 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 Verifica-se a condição necessária, mas não a condição suficiente A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 81 / 190

Optimização não linear sem restrições Alguma notação Gradiente de f(x) : R n R, x = (x 1,..., x n ) T, vector de dimensão n f x 1 f ( f(x) = g(x) = x 2 f... =, f,..., f ) T x 1 x 2 x n f x n Matriz Hessiana, matriz de dimensão n n 2 f(x) = G(x) = 2 f x 2 1... 2 f x n x 1...... 2 f x 1 x n... 2 f x 2 n A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 82 / 190

Optimização não linear sem restrições Condições de optimalidade Condições necessárias para a existência de um mínimo g(x ) = 0 (sistema não linear); G(x ) 0 (semi-definida positiva). Condições suficientes para a existência de um mínimo g(x ) = 0 (sistema não linear); G(x ) 0 (definida positiva). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 83 / 190

Optimização não linear sem restrições Exemplo Pretende-se determinar todos os pontos óptimos do seguinte problema de optimização min x R 2x2 1 + x 3 2 + 2x 1 x 2 f(x) Da condição de necessária e suficiente de primeira ordem temos que g(x) = (2x 1 + 2x 2, 3x 2 2 + 2x 1 ) T = (0, 0) T, ou seja, { { 2x1 + 2x 2 = 0 3x 2 2 + 2x 1 = 0 x 1 = x 2 3x 2 2 2x 2 = 0 x 1 = x 2 x 2 = 0 x 2 = 2 3 Os pontos x = (0, 0) T e ˆx = ( 2 3, 2 3 )T são pontos estacionários de f(x). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 84 / 190

Optimização não linear sem restrições Cont. Para verificar as condições de segunda ordem temos que estudar G( x) e G(ˆx). ( 2 2 G(x) = 2 6x 2 ( 2 2 det( 2 ) = 2, det 2 0 ) ( 2 2, G( x) = 2 0 ) ) ( 2 2, G(ˆx) = 2 4 ( 2 2 = 4, det 2 4 ) = 4 e temos que G( x) é indefinida ( x é ponto sela - descanso) e G(ˆx) é definida positiva (ˆx é mínimo local forte). ) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 85 / 190

Optimização não linear sem restrições Representação gráfica/curvas de nível 1.5 15 10 1 f(x) 5 0 5 0.5 0 10 2 0.5 1 0 x2 1 2 1.5 1 0.5 x1 0 0.5 1 1.5 1 1.5 1.5 1 0.5 0 0.5 1 1.5 f(x) = x 2 1 + x3 2 + 2x 1x 2 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 86 / 190

Optimização não linear sem restrições Motivação para os métodos numéricos Na determinação analítica dos pontos estacionários é necessário resolver um sistema não linear, que é quase sempre de difícil resolução. Exemplo Considere-se a função f(x) = x 1 e x 2 2x 1 x 2. Os pontos estacionários de f(x) obtêm-se através da resolução do sistema não linear { e x 2 2x 2 = 0 x 1 e x 2 2x 1 = 0 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 87 / 190

Método de Segurança de Newton Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 88 / 190

Método de Segurança de Newton Forma geral do problema A formulação matemática de um problema de optimização multidimensional, sem restrições é min f(x), x R n com f(x) : R n R (n > 1) duas vezes diferenciável. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 89 / 190

Método de Segurança de Newton Notação Gradiente de f(x) : R n R, x = (x 1,..., x n ) T, vector de dimensão n f x 1 f ( f(x) = g(x) = x 2 f... =, f,..., f ) T x 1 x 2 x n f x n Matriz Hessiana, matriz de dimensão n n 2 f(x) = G(x) = 2 f x 2 1... 2 f x n x 1...... 2 f x 1 x n... 2 f x 2 n A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 90 / 190

Método de Segurança de Newton Alguns conceitos O vector gradiente aponta no sentido de subida da função. 100 g(x) g(x) 0 10 100 200 10 5 0 5 10 10 5 0 5 f(x) = x 2 1 x 2 2 2x 1 x 2 + 10 g(x) = ( 2x 1 2x 2, 2x 2 2x 1 ) T g(1, 1) = ( 4, 4) T A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 91 / 190

Método de Segurança de Newton Alguns conceitos - Cont. A matrix Hessiana indica a concavidade (convexa ou côncava). 50 0 50 100 150 200 10 5 0 5 10 10 5 0 5 10 f(x) = x 2 1 x 2 2 2x 1 x 2 + 10 ( ) 2 2 G(x) = 2 2 Semi-definida negativa. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 92 / 190

Método de Segurança de Newton Método de Newton A função f(x), em x = x + d pode ser aproximada por f(x ) f(x) + g(x) T d + 1 2 dt G(x)d (1) que resulta da expansão em série de Taylor de f(x), com x suficientemente perto de x. A aproximação quadrática (1) pode ser usada para determinar o vector d em que x é um vector fixo. Derivando em ordem a d e igualando a zero obtemos g(x) + G(x)d = 0 G(x)d = g(x) (2) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 93 / 190

Método de Segurança de Newton Cont. Quando a função f(x) é quadrática obtém-se a solução resolvendo o sistema linear (2). No caso em que f(x) não é quadrática, o novo ponto x + d não é mínimo e o processo deve ser repetido iterativamente. As equações iterativas do processo são x (k+1) = x (k) + d (k) G(x (k) )d (k) = g(x (k) ), para k = 1, 2,... Nota: O método de Newton possui terminação quadrática, i.e., se f(x) for uma função quadrática convexa o método de Newton necessita no máximo de n iterações para encontrar a solução exacta. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 94 / 190

Método de Segurança de Newton Método de Newton - Falhas de convergência O método de Newton pode falhar nas seguintes condições: A matriz G(x (k) ) é singular e d (k) não é sequer definido. O vector direcção d (k) é quase ortogonal a g(x (k) ) e não é possível progredir ao longo de d (k). O vector direcção d (k) não aponta no sentido descendente de f e não é possível garantir a descida do valor da função. A matriz G(x (k) ) 1 existe e é definida positiva, o vector direcção d (k) é de descida, no entanto o comprimento é tal que f(x (k+1) ) > f(x (k) ), e o novo ponto não é melhor que o anterior. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 95 / 190

Método de Segurança de Newton Método de segurança de Newton O método de segurança de Newton resolve as possíveis falhas do método de Newton. A matriz G(x (k) ) é singular e d (k) não é sequer definido. Neste caso toma-se como direcção de procura a direcção de descida máxima (d (k) = g(x (k) )). Como a direcção de descida máxima resolve os restantes problemas (excepto o problema do comprimento da direcção) não e necessário verificar a quase-ortogonalidade e a descida da função objectivo. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 96 / 190

Método de Segurança de Newton Cont. O vector direcção d (k) é quase ortogonal a g(x (k) ) e não é possível progredir ao longo de d (k). 6 4 g(1,1) 2 0 g(1,1) 2 4 6 6 4 2 0 2 4 6 Quase ortogonal se g(x (k) ) T d (k) η g(x (k) ) d (k) Se for quase ortogonal então d (k) = g(x (k) ) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 97 / 190

Método de Segurança de Newton Cont. O vector direcção d (k) não aponta no sentido descendente de f e não é possível garantir a descida do valor da função. d (k) é direcção de descida se g(x (k) ) T d (k) η g(x (k) ) d (k). Caso d (k) não seja direcção de descida faz-se d (k) = d (k). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 98 / 190

Método de Segurança de Newton Cont. A matriz G(x (k) ) 1 existe e é definida positiva, o vector direcção d (k) é de descida, no entanto o comprimento é tal que f(x (k+1) ) > f(x (k) ), e o novo ponto não é melhor que o anterior. O método de Newton tem convergência local, i.e., x (k) tem de ser suficientemente próximo de x para que o método funcione. A convergência global obtém-se através da introdução da procura unidimensional (regiões de confiança!!). x (k+1) = x (k) + αd (k) em que o α deve ser calculado para garantir que f(x (k+1) ) < f(x (k) ) Decréscimo simples A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 99 / 190

Método de Segurança de Newton Procura unidimensional exacta Na procura unidimensional exacta pretende-se determinar (exactamente) qual o valor de α que minimiza a função φ(α) = f(x (k+1) ) com x (k+1) = x (k) + αd (k), usando as condições de optimalidade φ (α) = 0 e φ (α) > 0. No entanto a solução para o problema min α R φ(α) não é de fácil resolução (difícil implementação e cálculos computacionais pesados). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 100 / 190

Método de Segurança de Newton Procura unidimensional Critério de Armijo e divisões sucessivas de α por dois. Pressupondo que a direcção de procura é de descida, gera-se uma sequência de valores, {ω j α}, j = 0, 1, 2,... com α = 1 e ω = 1 2 até se encontrar um elemento que origine uma redução (significativa) no valor de f f(x (k) ) f(x (k) + ω j αd (k) ) µ 1 ω j αg(x (k) ) T d (k). O primeiro elemento encontrado é usado como o comprimento do passo na iteração k (α (k) = ω j α). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 101 / 190

Método de Segurança de Newton Critério de paragem Considera-se as três condições para o critério de paragem x (k+1) x (k) x (k+1) ɛ 1 f (k+1) f (k) f (k+1) ɛ 2 g (k+1) ɛ 3 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 102 / 190

Método de Segurança de Newton Exemplo Considere-se o seguinte problema de optimização min x R 2 x4 1 + x 2 2 3x 1 partindo de x (1) = (0, 1) T e com ɛ = 0.5. Temos que g(x) = (4x 3 1 3, 2x 2 ) T e G(x) = ( 12x 2 1 0 0 2 ) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 103 / 190

Método de Segurança de Newton 1 a iteração g (1) = g(x (1) ) = ( 3, 2) T G (1) = G(x (1) ) = ( 0 0 3 0 2 2 ) Impossível ( 0 0 0 2 ) Como a matriz G(x (1) ) é singular temos que d (1) = g (1) = (3, 2) T. Não é necessário verificar a quase ortogonalidade e passa-se para a procura unidimensional. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 104 / 190

Método de Segurança de Newton Procura unidimensional x (1) = (0, 1) T f (1) = 1 g (1)T d (1) = 13 α = 1 x = x (1) + d (1) = (0, 1) T + 1(3, 2) T = (3, 1) T f( x) = 73 1 73 = f(x (1) ) f( x) 10 3 1 13 α = 0.5 x = (0, 1) T + 0.5(3, 2) T = (1.5, 0) T f( x) = 0.5625 1 0.5625 = f(x (1) ) f( x) 10 3 0.5 13 Aceita-se α (1) = 0.5 e tem-se x (2) = (1.5, 0) T. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 105 / 190

Método de Segurança de Newton Critério de paragem x (2) x (1) x (2) = 1.5 2 + 1 2 1.5 = 1.201 0.5 Logo passa-se à próxima iteração. As restantes condições seriam (neste caso não é necessário verificar) e f (2) f (1) f (2) = 1 0.5625 0.5625 = 0.7778 0.5 g (2) = (10.5, 0) T = 10.5 0.5 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 106 / 190

Método de Segurança de Newton 2 a iteração x (2) = (1.5, 0) T ( ) g (2) = (10.5, 0) T G (2) 27 0 = ( ) 0 2 27 0 10.5 d (2) = ( 0.3889, 0) T 0 2 0 d (2) é quase ortogonal com o gradiente? d (2) = 0.3889 g (2) = 10.5 (g (2) ) T d (2) = (10.5, 0)( 0.3889, 0) T = 4.0835 4.0835 = (g (2) ) T d (2) 10 4 0.3889 10.5 = 4.0835 10 4, logo d (2) não é quase ortogonal com o gradiente (se fosse d (2) = g (2) ). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 107 / 190

Método de Segurança de Newton 2 a iteração - Cont. d (2) é direcção de descida? d (2) = 0.3889 g (2) = 10.5 (g (2) ) T d (2) = (10.5, 0)( 0.3889, 0) T = 4.0835 4.0835 = (g (2) ) T d (2) 10 4 0.3889 10.5 = 4.0835 10 4, logo d (2) é direcção de descida (se não fosse d (2) = d (2) ). Inicia-se a procura unidimensional. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 108 / 190

Método quasi-newton Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 109 / 190

Método quasi-newton Método Quasi-Newton O método Quasi-Newton usa uma matriz aproximação à matriz Hessiana (ou à sua inversa) da função objectivo. O uso de uma matriz aproximação evita o cálculo da matriz Hessiana (segundas derivadas) que pode ser difícil de obter. A aproximação à inversa da Hessiana, em vez da própria Hessiana, substituí a resolução de um sistema linear em cada iteração, por um produto matriz vector. (G(x)d = g(d) d = G(x) 1 g(x)). A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 110 / 190

Método quasi-newton Cont. A matriz aproximação é actualizada em cada iteração usando a informação das derivadas (gradiente) da iteração anterior. A fórmula mais conhecida é devida a Broyden, Fletcher, Goldfarb e Shanno (B.F.G.S.) ( ) ( ) H (k+1) = I s(k) y (k)t s (k)t y (k) H (k) I y(k) s (k)t y (k)t s (k) + s(k) s (k)t s (k)t y (k) em que s (k) = α (k) d (k) = x (k+1) x (k) e y (k) = g (k+1) g (k). Quando s (k)t y (k) > 0 e H (k) é simétrica e definida positiva, a formula de actualização garante que a matriz H (k+1) é simétrica e definida positiva. A fórmula B.F.G.S. satisfaz a propriedade de terminação quadrática. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 111 / 190

Método quasi-newton Cont. Na primeira iteração temos que H (1) = I (simétrica e definida positiva). Quando se usa a técnica de recomeço a matriz H (k) = I sempre que (k 1) mod n = 0. Como H (k) é simétrica e definida positiva não é necessário verificar a quase ortogonalidade e se a direcção calculada é de descida para a função objectivo. Os problemas numéricos com a matriz H (k), tais como overflow na actualização de H (k), um deslocamento ao longo da direcção de procura muito longo devido à quase ortogonalidade da direcção com o gradiente, podem ser ultrapassados usando a técnica do recomeço. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 112 / 190

Método quasi-newton Exemplo Considere-se o seguinte problema de optimização (x (1) = (0, 1) T e ɛ = 0.5) Temos que g(x) = (4x 3 1 3, 2x 2) T. 1 a iteração min x R 2 x4 1 + x 2 2 3x 1 g (1) = g(x (1) ) = ( 3, 2) T H (1) = I d (1) = Hg (1) = (3, 2) T. Procura unidimensional... (ver exemplo do segurança de Newton) Aceita-se α (1) = 0.5 e vem que x (2) = (1.5, 0) T. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 113 / 190

Método quasi-newton Critério de paragem x (2) x (1) x (2) = 1.5 2 + 1 2 1.5 Logo passa-se à próxima iteração. 2 a iteração x (2) = (1.5, 0) T e g (2) = (10.5, 0) T H (2) = ( I s(1) y (1)T s (1)T y (1) ) H (1) ( = 1.201 0.5 I y(1) s (1)T y (1)T s (1) ) + s(1) s (1)T s (1)T y (1) s (1) = x (2) x (1) = (1.5, 0) T (0, 1) T = (1.5, 1) T y (1) = g (2) g (1) = (10.5, 0) T ( 3, 2) T = (13.5, 2) T A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 114 / 190

Método quasi-newton Cont. s (1) y (1)T = I s(1) y (1)T ( 1 0 s (1)T y = (1) 0 1 H (2) = ( 0.0899 0.1348 0.6067 0.9101 ( 1.5 1 ) ( 20.25 3 (13.5, 2) = 13.5 2 s (1)T y (1) = (1.5, 1)(13.5, 2) T = 22.25 ) ( ) ( ) 0.9101 0.1348 0.0899 0.1348 = 0.6067 0.0899 0.6067 0.9101 ( ) ( ) s (1) s (1)T 1.5 2.25 1.5 = (1.5, 1) = 1 1.5 2 ) ( ) ( ) H (1) 0.0899 0.6067 0.1011 0.0674 + 0.1348 0.9101 0.0674 0.0899 ( ) H (2) 0.1274 0.1098 = 0.1098 0.8202 ) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 115 / 190

Método quasi-newton Cont. ( d (2) = H (2) g (2) 0.1274 0.1098 = 0.1098 0.8202 ( ) d (2) 1.3377 = 1.1529 Procura unidimensional... ) ( 10.5 0 ) A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 116 / 190

Optimização sem restrições com o MATLAB Conteúdo 1 Introdução 2 MATLAB 3 Optimização 4 Optimização não linear sem restrições 5 Método de Segurança de Newton 6 Método quasi-newton 7 Optimização sem restrições com o MATLAB 8 Optimização não linear com restrições de igualdade 9 Optimização não linear com restrições de desigualdade 10 Optimização com restrições com o MATLAB A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 117 / 190

Optimização sem restrições com o MATLAB Funções MATLAB O MATLAB fornece um conjunto de funções para optimização linear e não linear das quais se destacam: fzero - Zero de funções unidimensionais (Scalar functions); fminbound - Optimização não linear com limites simples de funções unidimensionais (escalares). fminsearch - Optimização não linear sem restrições e derivadas; fminunc - Optimização não linear sem restrições A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 118 / 190

Optimização sem restrições com o MATLAB As opções para os algoritmos Um dos argumentos aceite por determinados algoritmos é o OPTIONS. Esse argumento é uma estrutura com diversos parâmetros que podem ser modificados pelo utilizador para controlar o algoritmo. A estrutura OPTIONS pode ser criada/actualizada através da função OPTIMSET. >> optimset......... Display: [ off on iter notify final ] MaxFunEvals: [ positive scalar ] MaxIter: [ positive scalar ] TolFun: [ positive scalar ] TolX: [ positive scalar ] GradObj: [ on {off} ] Hessian: [ on {off} ] Jacobian: [ on {off} ] A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 119 / 190

Optimização sem restrições com o MATLAB As opções para os algoritmos >> opt=optimset( display, iter ); >> fzero(g,1.1,opt) Search for an interval around 1.1 containing a sign change: Func-count a f(a) b f(b) Procedure 1 1.1 0.453596 1.1 0.453596 initial i 3 1.06889 0.4811 1.13111 0.425653 search... 17 0.748 0.733051 1.452 0.118517 search 19 0.602197 0.824093 1.5978-0.0270036 search Search for a zero in the interval [0.6022, 1.5978]: Func-count x f(x) Procedure 19 1.5978-0.0270036 initial... 24 1.5708 6.12323e-017 interpolation Zero found in the interval [0.602197, 1.5978] ans = 1.5708 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 120 / 190

Optimização sem restrições com o MATLAB Exemplo não linear Considere que um montante x i é afectado ao projecto i, para i = 1,..., n, sendo o retorno esperado desta carteira de projectos dado por f(x 1,..., x n ) = n (α i x i 1 2 β ix 2 i ) + 1 n 1 (x i x i+1 ) (n > 1). 2 i=1 i=1 Para n = 2, α 1 = 1, α 2 = 2, β 1 = β 2 = 1, pretende-se calcular x 1 e x 2 de modo a maximizar o retorno esperado. O problema é modelado como um problema de optimização sem restrições max f(x 1, x 2 ) ( x 1 x2 1 2 ) + ( 2x 2 x2 2 2 ) + x 1x 2 2 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 121 / 190

Optimização sem restrições com o MATLAB A resolução Simples fminsearch >> g=inline( -(x(1)-x(1)^2/2+2*x(2)-x(2)^2/2+x(1)*x(2)/2) ); >> fminsearch(g,[1 1]) ans = 2.6666 3.3333 4 3.8 3.6 3.4 3.2 3 2.8 2.6 2.4 2.2 2 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 122 / 190

Optimização sem restrições com o MATLAB Sintaxe A função fminsearch usa o algoritmo de Nelder-Mead. A sintaxe completa da função é: [X,FVAL,EXITFLAG,OUTPUT] = FMINSEARCH(FUN,X0,OPTIONS) X - A solução encontrada. FVAL - O valor da função em X. EXITFLAG - 1 se o algoritmo convergiu, 0 se atingiu o número máximo de iterações e -1 em caso de erro. OUTPUT - retorna uma estrutura com o número de iterações em OUTPUT.iterations, o número de cálculos da função objectivo em OUTPUT.funcCount, o nome do algoritmo em OUTPUT.algorithm e a mensagem de saída em OUTPUT.message. FUN - Nome da função a minimizar. X0 - Aproximação inicial. OPTIONS - Estrutura com opções para o algoritmo. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 123 / 190

Optimização sem restrições com o MATLAB A resolução Mais elaborada >> g=inline( -(x(1)-x(1)^2/2+2*x(2)-x(2)^2/2+x(1)*x(2)/2) ); >> opt=optimset( display, iter ); >> [x,fval,e,o]=fminsearch(g,[1 1],opt) Iteration Func-count min f(x) Procedure 0 1-2.5 1 3-2.57375 initial simplex 2 5-2.64719 expand... 25 49-4.66665 contract outside 26 51-4.66665 contract inside 27 52-4.66665 reflect... 45 86-4.66667 contract inside Optimization terminated: the current x satisfies the termination criteria using OPTIONS.TolX and F(X) satisfies the convergence criteria using OPTIONS.TolFun of A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 124 / 190

Optimização sem restrições com o MATLAB A resolução Mais elaborada x = 2.6666 3.3333 fval = -4.6667 e = 1 o = iterations: 45 funccount: 86 algorithm: Nelder-Mead simplex direct search message: [1x196 char] A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 125 / 190

Optimização sem restrições com o MATLAB A resolução com fminunc >> [x,fval,e,o,g,h]=fminunc(g,[1 1],opt) Warning: Gradient must be provided for trust-region method; using line-search method instead. > In fminunc at 241 Gradient s Iteration Func-count f(x) Step-size infinity-nor 0 3-2.5 1.5 1 6-3.77778 0.666667 0.667 2 9-4.65765 1 0.132 3 12-4.66664 1 0.00658 4 15-4.66667 1 0.000165 5 18-4.66667 1 1.34e-006 Optimization terminated: relative infinity-norm of gradient less than options.tolfun. Computing finite-difference Hessian using user-supplied objective function. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 126 / 190

Optimização sem restrições com o MATLAB A solução com fminunc x = 2.6667 3.3333 o = iterations: 5 funccount: 18 stepsize: 1 firstorderopt: 1.3411e-006 algorithm: medium-scale: Quasi-Newton line search message: [1x85 char] g = 1.0e-005 * 0.1341 0.0966 H = 1.0000-0.5000-0.5000 1.0000 A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 127 / 190

Optimização sem restrições com o MATLAB A resolução com fminunc usando o gradiente retorno.m function [f,g] = retorno(x) f=-x(1)+x(1)^2/2-2*x(2)+x(2)^2/2-x(1)*x(2)/2; if nargout > 1 % gradiente g(1)=-1+x(1)-x(2)/2; g(2)=-2+x(2)-x(1)/2; end A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 128 / 190

Optimização sem restrições com o MATLAB A resolução com fminunc usando o gradiente >> opt=optimset( display, iter, GradObj, on ); >> [x,fval,e,o,g,h]=fminunc( retorno,[1 1],opt) Norm of First-order Iteration f(x) step optimality CG-iterat 0-2.5 1.5 1-4.28571 2.25877 0.857 1 2-4.59969 0.695006 0.264 1 3-4.65489 0.397146 0.151 1 4-4.6646 0.122199 0.0464 1 5-4.6663 0.0698279 0.0265 1 6-4.6666 0.0214855 0.00815 1 7-4.66666 0.0122774 0.00466 1 8-4.66666 0.00377767 0.00143 1 9-4.66667 0.00215867 0.000819 1 Optimization terminated: Relative function value changing by less than OPTIONS.TolFun. A. Ismael F. Vaz (UMinho) Optimização Bioinformática 07/08 129 / 190