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 C. A. Ismael F. Vaz 1. Escola de Engenharia Universidade do Minho Ano lectivo 2007/2008

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

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. 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 C Apresentação da Disciplina

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

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

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

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

Introdução ao MATLAB 6.1

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

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

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

Parte 1: Exercícios Teóricos

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

Vetores, Matrizes e Gráficos

Introdução ao MatLab Gráficos e manipulação de dados

Frequência / Exame de 1. a Época

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

Introdução ao MATLAB. 2 - Apresentação de resultados em gráfico. 3 - Controlo de fluxo 3.1. Tipos de controlo 3.2. Expressões Lógicas

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

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

INTRODUÇÃO AO MATLAB. Hélder P. Oliveira

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

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

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

Murilo F. Tomé ICMC-USP

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

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

Frequência / Exame de 1. a Época

MATLAB EM VIBRAÇÕES MECÂNICAS

Notas de Aula de Cálculo Numérico

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

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

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

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

INTRODUÇÃO AO SCILAB

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007

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

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

Programação em MATLAB

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

Fundamentos de MATLAB. Computação 2º Semestre 2016/2017

Introdução ao MatLab Operações com Vectores e Matrizes

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis

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

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

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

17 a 19 de fevereiro de 2009

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

INTRODUÇÃO AO MATLAB - PARTE 2

Introdução ao Matlab V.Lobo, EN 2002

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

Introdução ao Matlab. Sérgio Manuel Ângelo da Cruz. Aplicações Informáticas para Engenharia

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

Cálculo Diferencial e Integral II

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

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

Resumo. Sinais e Sistemas Introdução ao Matlab/Octave. Arquitectura. Matlab/Octave

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

Optimização e Algoritmos (2004/2005) Série de Problemas 1 Programação Linear, Método Simplex

Modelo Matemático simples

Matemática 2. Teste Final. Atenção: Esta prova deve ser entregue ao fim de 1 Hora. Deve justificar detalhadamente todas as suas respostas.

Introdução ao MatLab Princípios de Programação

exercícios de análise numérica II

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

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

Computação e Programação

NÍVEL BÁSICO CAPÍTULO II

Capítulo 02. Princípios ásicos do MATLAB

Matemática Computacional - Exercícios

I-3 Introdução ao Matlab

CÁLCULO DIFERENCIAL E INTEGRAL I (CDI-I) PROVA I 20/03/2013. O desenvolvimento de todos os cálculos deve estar presente na prova.

Introdução a Matrizes

Exame de Matemática II - Curso de Arquitectura

Resolução do Exame Tipo

Características Básicas

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

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

COMPUTAÇÃO E PROGRAMAÇÃO

Modelagem Computacional. Parte 8 2

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

Matlab Noções introdutórias. Roteiro para aula

MATLAB. Aula 05. Cláudio R. Lucinda FEA-RP/USP. Aula 05

Esta prática tem como objetivo apresentar o uso de Matlab para encontrar a resposta de um sistema dinâmico.

Índice. AULA 5 Derivação implícita 3. AULA 6 Aplicações de derivadas 4. AULA 7 Aplicações de derivadas 6. AULA 8 Esboço de gráficos 9

Foi criado em 1990 por pesquisadores do INRIA e da ècole Nationale des Ponts et Chaussées (França), sendo gratuito e similar ao Matlab.

TUTORIAL SIMPLIFICADO DE MATLAB

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

MAP CÁLCULO NUMÉRICO (POLI) Lista de Exercícios sobre o Método dos Mínimos Quadrados

OPTIMIZAÇÃO NÃO LINEAR

Exercícios Extra de Computação. Secção de Matemática Departamento de Engenharia Civil FEUP

Cálculo Diferencial e Integral 2 Formas Quadráticas

Aplicações de Álgebra Linear. Lista de Exercícios Humberto José Bortolossi Ainda sobre Matrizes e Aplicações

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

y (n) (x) = dn y dx n(x) y (0) (x) = y(x).

OPTIMIZAÇÃO DE ESTRUTURAS

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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 à 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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