Significado de métodos (meta) heurísticos

10
  1. Para otimização, da Wikipedia :

    Na ciência da computação, a metaheurística designa um método computacional que otimiza um problema, tentando iterativamente melhorar uma solução candidata em relação a uma determinada medida de qualidade. As metaheurísticas fazem poucas ou nenhuma suposição sobre o problema que está sendo otimizado e podem pesquisar espaços muito grandes de soluções candidatas. No entanto, as metaheurísticas não garantem que uma solução ideal seja encontrada. Muitas metaheurísticas implementam alguma forma de otimização estocástica.

    Outros termos com um significado semelhante ao metaheurístico são: pesquisa direta, livre de derivativos, caixa preta ou apenas otimizador heurístico. Vários livros e documentos de pesquisa foram publicados sobre o assunto.

    • Gostaria de saber como saber se um método de otimização é metaheurístico ou não? Por exemplo,

      (1) O método simplex para programação linear é metaheurístico?

      (2) A maioria dos métodos de programação não linear, como descida em gradiente, método multiplicador Lagrangiano, métodos de penalidade, métodos de pontos interiores (métodos de barreira), são metaheurísticos?

      (3) Todos os métodos sem gradiente, como o método Nelder – Mead ou o método simplex em declive, são metaheurísticos?

    • Quais são alguns métodos de otimização que não são metaheurísticos?

  2. Mais geralmente (indo além da otimização) para técnicas de resolução de problemas, da Wikipedia :

    Heurística refere-se a técnicas baseadas na experiência para resolução de problemas, aprendizado e descoberta . Onde uma pesquisa exaustiva é impraticável, métodos heurísticos são usados ​​para acelerar o processo de encontrar uma solução satisfatória. Exemplos desse método incluem o uso de uma regra de ouro, um palpite fundamentado, um julgamento intuitivo ou bom senso.

    Em termos mais precisos, heurísticas são estratégias que utilizam informações prontamente acessíveis, embora pouco aplicáveis, para controlar a resolução de problemas em seres humanos e máquinas.

    Gostaria de saber como entender o significado de "heurística"?

    • como posso saber se uma técnica de "solução de problemas, aprendizado e descoberta" é heurística ou não?

    • Quais são algumas técnicas de "resolução de problemas, aprendizado e descoberta" que não são heurísticas?

Obrigado e cumprimentos!

Tim
fonte

Respostas:

7

A heurística é algo que funciona em muitos casos na prática, embora não exista um argumento detalhado sobre por que deve funcionar bem.

Metaheurísticas não é um algoritmo, mas um esquema ou idéia heurística geral que pode ser usada dentro de algoritmos específicos.

Por exemplo, o algoritmo simplex para programação linear não é heurística nem metaheurística, pois possui uma teoria de convergência bem estabelecida. O sqame vale para programação quadrática estática ou métodos de pontos internos. (Os métodos pontuais interiores são um esquema geral, mas não heurístico e, portanto, não uma metaheurística, pois existe uma teoria bastante forte associada a ele.)

O algoritmo Nelder-Mead = simplex em declive para minimizar uma função é heurística (na verdade, pode falhar em problemas bastante simples em dimensões mais altas), e a pesquisa por tabu é meta-heurística (já que muitos algoritmos diversos podem ser escritos que empregam a pesquisa por tabu, mas são de outra forma de qualidade bastante diferente.

Arnold Neumaier
fonte
Obrigado! (1) Então, para dizer se um método é metaheurístico, é ver se ele tem uma teoria a respeito de quando converge para o verdadeiro otimizador? Se um método ainda não tem essa teoria, é uma heurística? Se um dia houver uma teoria para isso, ela se tornará de metaheurística para não metaheurística? (2) "Outros termos com um significado semelhante ao metaheurístico são: pesquisa direta, livre de derivativos, caixa preta ou apenas otimizador heurístico". Gostaria de saber se a metaheurística usa apenas os valores das funções e é livre de derivadas. É o método "search" na sua resposta à minha outra pergunta?
Tim
@ Tim: meios metaheurísticos: (i) nenhuma teoria da convergência e (ii) nenhuma receita definida para o procedimento, mas princípios gerais. - sem derivado (= pesquisa direta = caixa preta; nomes diferentes para o mesmo de diferentes raízes históricas) podem ser heurísticos ou não; apenas informa sobre a entrada que o usuário deve fornecer.
Arnold Neumaier
Obrigado! Gostaria de saber se a metaheurística usa apenas os valores das funções e é livre de derivadas.
Tim
@ Tim: Provavelmente sim; Não conheço nada realmente chamado metaheurístico que use gradientes.
Arnold Neumaier
7

Não vou repetir o simplex e o Nelder-Mead, já que o @ArnoldNeumaier já deu uma explicação muito boa, mas queria adicionar meus 2 centavos.

Uma das melhores citações que ouvi há algum tempo atrás para descrever a diferença entre heurística e metaheurística: Uma heurística é uma regra muito boa. Uma metaheurística é uma regra muito boa para encontrar regras muito boas.

Você deve ver isso como uma maneira de encontrar boas heurísticas para problemas específicos; basicamente, se você se perguntar uma das seguintes perguntas, está falando de uma metaheurística:

  • Como devo ajustar os parâmetros dessa heurística para melhorar o desempenho desse problema?
  • Essa heurística é melhor que a heurística?

Há várias metaheurísticas que você pode usar para solucionar problemas, aprender e descobrir , a saber:

Acho que a maioria das metaheurísticas é um pouco inspirada em fenômenos naturais, difíceis de explicar rigorosamente, mas com boas propriedades de convergência.

Aqui está um bom link, se você quiser ler mais sobre outras técnicas metaheurísticas

Charles Menguy
fonte
Obrigado! Não sei se entendi "Uma heurística é uma regra muito boa. Uma metaheurística é uma regra muito boa para encontrar regras muito boas". Por exemplo, o recozimento simulado, enxame de partículas, colônia de formigas e tabu são heurísticos ou metaheurísticos? Se eles são um dos dois, quais são os seus equivalentes?
Tim
O que você deve entender desta citação é que tanto a heurística quanto a metaheurística não são exatas nem comprovadas, portanto, "regra muito boa". Uma metaheurística está em um nível mais alto que uma heurística, e é através de várias iterações sucessivas que você pode encontrar um conjunto de parâmetros que resolverão um problema corretamente. Se você soubesse o que era esse conjunto de parâmetros desde o início, seria necessário escrever uma heurística para resolver o problema. Mas como você não sabe, é necessário usar um algoritmo para encontrar esses parâmetros para sua heurística: uma metaheurística. Espero que isso esclareça.
Charles Menguy
E os algoritmos que dei aqui são todos metaheurísticos, e você pode encontrar mais detalhes no link que dei. Não sei exatamente o que você quer dizer com os colegas.
Charles Menguy
Por contrapartidas, quero dizer, por exemplo, se os algoritmos são todos meta-heurísticos, então as heurísticas em que operam devem ser elas mesmas mais valores específicos para seus parâmetros ajustáveis?
Tim
Tomemos, por exemplo, recozimento simulado. O que faz no final é uma pesquisa em uma cadeia de Markov. A "regra" da heurística seria assumir que um estado na cadeia de Markov é a solução. O que a metaheurística faz é procurar convergência na cadeia de Markov para encontrar o estado ideal que descreve a solução. Em geral, acho que você não deve se esforçar muito para fazer a distinção: use heurísticas quando houver uma solução "relativamente" simples que possa ser facilmente calculada e use metaheurísticas quando o espaço da solução for muito grande e você precisar ser mais inteligente resolvendo o problema.
Charles Menguy