A otimização é um ramo da matemática que tenta modelar, analisar e resolver analiticamente ou numericamente os problemas que devem minimizar ou maximizar uma função em um conjunto.
A otimização desempenha um papel importante na pesquisa operacional (um campo na fronteira entre a ciência da computação , matemática e economia ), na matemática aplicada (fundamental para a indústria e engenharia ), análise e análise numérica. , Em estatísticas para a estimativa da probabilidade máxima de uma distribuição , para a busca de estratégias no âmbito da teoria dos jogos , ou na teoria de controle e comando .
Muitos sistemas que podem ser descritos por um modelo matemático são otimizados. A qualidade dos resultados e das previsões depende da relevância do modelo, da escolha certa das variáveis que se pretende otimizar, da eficiência do algoritmo e dos meios de processamento digital .
Os primeiros problemas de otimização foram formuladas por Euclides , o III ª século aC, na sua obra histórica itens . Trezentos anos depois, Heron de Alexandria em Catoptrica afirma o "princípio do caminho mais curto" no contexto da óptica (ver figura).
No XVII th século, o surgimento de cálculo leva à invenção de técnicas de otimização, ou pelo menos faz sentir a necessidade. Newton desenvolve um método iterativo que permite encontrar os extremos locais de uma função , colocando em jogo a noção de derivada , resultante de seu trabalho com Leibniz . Essa nova noção permite grandes avanços na otimização de funções, pois o problema se reduz à busca das raízes da derivada.
Durante o XVIII th século, o trabalho de matemáticos Euler e Lagrange levam ao cálculo das variações , um ramo da análise funcional que envolve vários métodos de otimização. Este último inventa uma técnica de otimização sob restrições: os multiplicadores de Lagrange .
O XIX ª século foi marcado pelo crescente interesse dos economistas para a matemática. Eles estabelecem modelos econômicos que devem ser otimizados, o que acelera o desenvolvimento da matemática. A partir deste período, a otimização tornou-se um pilar da matemática aplicada e a profusão de técnicas é tal que não se pode resumir em poucas linhas.
Pode-se mesmo assim evocar a invenção de vários métodos iterativos usando o gradiente da função , bem como o uso do termo “programação matemática”, para designar problemas de otimização.
Historicamente, o primeiro termo introduzido foi o de "programação linear", cunhado por George Dantzig por volta de 1947. O termo "programação" neste contexto não se refere à programação de computadores (embora os computadores sejam amplamente usados hoje para resolver problemas. Programas matemáticos). Vem do uso da palavra "programa" pelas forças armadas americanas para estabelecer horários de treinamento e escolhas logísticas , que Danzig estava estudando na época. O uso do termo "programação" também foi de interesse para liberar fundos em um momento em que o planejamento estava se tornando uma prioridade para os governos .
Assim, a partir de 1939, o matemático Leonid Kantorovich iniciou um trabalho teórico sobre otimização linear com o objetivo de desenhar aplicações concretas para a otimização da produção econômica planejada da União Soviética .
O termo "programação matemática", que requer a longa explicação acima, tende a ser abandonado. Por exemplo, em junho de 2010, a sociedade internacional culta que representa essa disciplina viu seu nome anterior Mathematical Programming Society ser alterado para Mathematical Optimization Society ; pelo mesmo motivo, hoje preferimos usar as expressões “linear / quadrática /… otimização” ao invés de “linear / quadrática /… programação”
Mais formalmente, a otimização é o estudo de problemas que são expressos como segue.
Problema de otimização - Dada uma função definida em um conjunto com valores no conjunto de números reais (possivelmente na linha completa ), encontre um elemento de tal que para all in .
Dizemos que buscamos minimizar a função ao longo do conjunto .
A função tem vários nomes: função de custo ou simplesmente custo , função objetivo ou simplesmente objetivo , critério , etc.
O conjunto é chamado de conjunto admissível e os pontos de são chamados de pontos admissíveis do problema (especialmente quando ele faz parte de outro conjunto e não queremos que pertença ao complementar ). Dizemos que o problema é realizável se não for vazio (o conjunto admissível é frequentemente definido implicitamente, seu caráter não vazio não é necessariamente óbvio, o que justifica a necessidade desse conceito de realizabilidade).
O ponto é denominado solução do problema de otimização (ou mínimo ou minimizador ). Às vezes, também é chamado de solução global para diferenciá-lo dos conceitos locais apresentados a seguir. Diz-se ser um bare mínimo se e para tudo .
Podemos escrever esse problema de maneiras diferentes:
Às vezes, notamos todas as soluções para o problema.
O conjunto é parte de (ou se seus valores estão em ) e seu limite inferior (ou mínimo) é chamado de valor ótimo do problema. Este valor ótimo é alcançado (ou seja, existe tal que ) se, e somente se, o problema de otimização tiver uma solução. Sim , dizemos que o problema é limitado .
Dizemos que o problema é convexo se for uma parte convexa de um espaço vetorial e se for uma função convexa ligada .
O problema descrito acima é um problema de minimização . Como nós temos
um problema de maximização de função (à esquerda acima) é equivalente ao problema de minimização de (à direita acima). Equivalência aqui significa que as soluções são as mesmas e que os valores ótimos são opostos. Em particular, um método para analisar / resolver um problema de minimização pode ser usado para analisar / resolver um problema de maximização.
Sob certas condições, o processo de otimização encontra o máximo geral. Mas em alguns casos de otimização - como redes neurais artificiais , o resultado pode ser uma solução local.
Um máximo local é um ponto tal que existe um bairro onde para todos , . Um mínimo local é definido de forma semelhante.
Geralmente é fácil determinar numericamente os máximos locais com algoritmos de descida - como com o Algoritmo de Gradiente . Para verificar se a solução encontrada é um máximo global , às vezes é possível recorrer a conhecimentos adicionais sobre o problema. Dependendo da natureza da ou da função , vários teoremas fornecem propriedades particulares da solução que simplificam sua pesquisa (ver princípio do máximo ).
Na maioria das vezes, é um subconjunto do espaço euclidiano . Quando é um subconjunto de ou , consistindo de vetores que satisfazem um certo número de restrições (do tipo igualdade ou desigualdade), falamos de otimização combinatória .
A otimização é dividida em subdisciplinas sobrepostas, de acordo com a forma da função objetivo e das restrições: a otimização em dimensão finita ou infinita (estamos falando aqui da dimensão do espaço vetorial das variáveis a serem otimizadas) , otimização contínua ou combinatória (as variáveis a serem otimizadas são discretas no último caso), otimização diferenciável ou não suave (qualifica aqui a regularidade das funções que definem o problema), otimização linear (funções afins), quadrática (objetivo quadrático e restrições afins), semi-definida positiva (a variável a ser otimizada é uma matriz para a qual a positividade semi-definida é necessária ), copositive (a variável a ser otimizada é uma matriz para a qual a co -positividade é necessária ), cônica (generalização das disciplinas anteriores, em que minimizamos uma função linear na intersecção de um cone e um subespaço afim), convexa ( funções convexas ), não linear , o comando otimização e otimizada , estocástica (en) e robusta (presença de perigos), otimização multicritério ( busca-se um compromisso entre vários objetivos contraditórios), otimização algébrica (funções polinomiais), otimização de dois níveis , otimização sob restrições de complementaridade , o disjuntivo otimização (o conjunto admissível é uma reunião de conjuntos), etc.
Essa abundância de disciplinas vem do fato de que praticamente qualquer classe de problemas modeláveis pode levar a um problema de otimização, desde que introduzamos parâmetros a serem otimizados. Além disso, as condições de otimalidade desses problemas de otimização às vezes fornecem expressões matemáticas originais que, pelo mecanismo anterior, por sua vez, levam a novos problemas de otimização.
Uma técnica para resolver um problema de otimização matemática denota aqui
A escolha de uma técnica apropriada depende de
Para encontrar uma solução para a otimização, o problema original é substituído por um problema equivalente. Por exemplo, é possível alterar as variáveis permitindo a decomposição do problema em subproblemas ou a substituição de incógnitas possibilitando a redução do seu número.
A técnica do multiplicador de Lagrange permite superar certas restrições; este método equivale a introduzir penalidades crescentes à medida que o ponto se aproxima das restrições. Um algoritmo de Hugh Everett torna possível atualizar de forma consistente os valores dos multiplicadores a cada iteração para garantir a convergência. Ele também generalizou a interpretação desses multiplicadores para aplicá-los a funções que não são contínuas nem deriváveis. O lambda expressa um coeficiente de penalidade (noção de custo marginal de uma restrição na economia ).
Muitos métodos e algoritmos permitem encontrar um zero da derivada de (alguns são específicos para as funções de uma variável ) ou de seu gradiente . Eles se aplicam validamente em situações onde as restrições sobre não são muito ativas.
Todos esses métodos são desenvolvidos dentro da estrutura de um processo iterativo .
Essas abordagens podem apresentar algumas falhas:
Caso particular: Quando é polinomial de grau 2 em seus argumentos (forma quadrática e linear ) e sem restrição, cancelar o gradiente equivale a resolver um sistema linear (cf Categoria: Análise numérica de matriz ).
Nesta categoria, a maioria dos algoritmos gerais se aplica a situações em que as restrições sobre não são muito ativas. Eles são baseados em algumas idéias dominantes:
Várias melhorias foram feitas para evitar:
As mesmas falhas mencionadas na categoria anterior também podem ocorrer aqui.
O algoritmo Categoria: Otimização apresenta uma lista e dá acesso a esses métodos.
As técnicas de otimização combinatória lidam com problemas em que uma parte (pelo menos) das variáveis do conjunto assume valores discretos . Nós os encontramos dentro da estrutura de
Para resolver problemas difíceis (por exemplo, aqueles com muitos extremos locais pobres), técnicas foram desenvolvidas para determinar pontos que não são estritamente ótimos, mas aproximam-se deles. Esses métodos, chamados de heurísticas e metaheurísticas , geralmente são baseados em fenômenos físicos, biológicos, sócio-psicológicos ou por acaso. Os campos de aplicação são vastos e freqüentemente se estendem muito além dos problemas para os quais foram originalmente projetados.
A Categoria: Metaheurística apresenta uma lista e dá acesso a esses métodos.
Os problemas de otimização multiobjetivo vão além do quadro estrito da definição dada acima: até um ponto admissível, a função objetivo não associa um valor numérico, mas um ponto de um conjunto que na maioria das vezes será associado a um vetor. O objetivo é então otimizar simultaneamente todos os componentes deste vetor. Pode-se também ver a otimização multiobjetivo como um conjunto de problemas de otimização que dependem dos mesmos parâmetros, tendo objetivos possivelmente contraditórios, e que se busca resolver da melhor forma possível.
Em geral, o espaço no qual o vetor solução é expresso é fornecido com uma ordem parcial envolvendo critérios de dominância (por exemplo, em relação à fronteira de Pareto ). A resolução consiste em encontrar um ponto admissível cujo objetivo não seja dominado por nenhum outro.
Eles são extremamente variados: otimização de uma rota , a forma de um objeto , um preço de venda , uma reação química , controle de tráfego aéreo , a eficiência de um dispositivo, o funcionamento de um motor , a gestão de linhas ferroviárias, a escolha do econômico investimentos, a construção de um navio , etc. A otimização destes sistemas permite encontrar uma configuração ideal, para obter uma economia de esforço, tempo, dinheiro, energia, matéria-prima, ou mesmo satisfação.
Os problemas da dinâmica de sólidos indeformáveis (especialmente a dinâmica de corpos rígidos articulados) muitas vezes precisam de técnicas de otimização matemática, uma vez que podemos ver a dinâmica de corpos rígidos como a resolução de uma equação diferencial ordinária em uma variedade restrita; as restrições são várias restrições geométricas não lineares, como "esses dois pontos devem sempre coincidir" ou "este ponto deve estar sempre nesta curva". Além disso, o problema de cálculo das forças de contato pode ser concluído resolvendo um problema de complementaridade linear , que também pode ser visto como um problema de otimização quadrática.
Vários problemas de projeto também podem ser expressos como problemas de otimização. Esse aplicativo é chamado de otimização de forma. Um subconjunto recente e crescente deste campo é denominado Otimização Multidisciplinar que, embora útil em vários problemas, tem sido particularmente aplicado a problemas de engenharia e tecnologia espacial .
Outra área que usa técnicas de otimização é a pesquisa operacional .
A otimização é uma das ferramentas centrais da microeconomia que se baseia no princípio da racionalidade e otimização do comportamento, lucro para as empresas e utilidade para os consumidores .
Na mecânica, existem três formas de otimização:
Longe de constituir uma lista exaustiva, esses poucos exemplos atestam a variedade de formulações e prenunciam a diversidade de ferramentas matemáticas capazes de resolver esses problemas.