В чем разница между эвристик и метаэвристик?
после некоторых исследований алгоритмов я нашел два термина, которые меня смущают. Я прочитал по крайней мере 20 статей, и все же нет четкого определения ни о том, ни о другом. Надеюсь, кто-то поможет мне определить разницу между эвристикой и алгоритмами метаэвристики. И если возможно, добавьте источник.
ps: я уже знаю, что означают эти слова, но я не знаю, какая точная разница между ними в информатике.
спасибо заранее
3 ответов
вы можете подумать о эвристике, как о приближенном (а не аппроксимационном) решении проблемы. Разница между приближением и аппроксимацией заключается в том, что первое заключается в том, чтобы получить хорошее предположение о решении проблемы, но вы действительно не знаете, насколько оно хорошо. Второй - это получение решения, для которого вы можете доказать, насколько оно близко к оптимальному решению.
Итак, эвристика часто зависит от проблемы, то есть вы определяете эвристику для данного проблема. Метаэвристика-это проблемно-независимые методы, которые могут быть применены к широкому кругу проблем. Эвристика-это, например, выбор случайного элемента для поворота в Quicksort. Метаэвристик ничего не знает о проблеме, которую он будет применять, он может рассматривать функции как черные ящики.
можно сказать, что эвристика использует проблемно-зависимую информацию, чтобы найти "достаточно хорошее" решение конкретной проблемы, в то время как метаэвристика, как и шаблоны проектирования, общая алгоритмические идеи, которые могут быть применены к широкому кругу проблем.
чтобы дать правильную цитату, относительно ответа Алехандро:
" метаэвристика-это высокоуровневая проблемно-независимая алгоритмическая структура, которая предоставляет набор рекомендаций или стратегий для разработки алгоритмов эвристической оптимизации [...] Проблема конкретной реализации алгоритма эвристической оптимизации в соответствии с руководящими принципами, высказанные в рамках метаэвристический также называют метаэвристики " (Соренсен, Гловер на http://scholarpedia.org/article/Metaheuristics)
чтобы быть полностью полным. Мы должны различать точные, приближенные и эвристические алгоритмы. Точный алгоритм находит точное решение. Приближенный алгоритм должен найти приближенное решение в течение приемлемого времени, а также указать диапазон его расхождения с предполагаемым оптимальным решением. Эвристика просто находит достаточно хорошее решение в течение приемлемого времени.
By кстати, пример Алехандро quicksort не представляется полностью адекватным по двум или трем различным причинам.
- фактически, эвристика и метаэвристика являются частью области оптимизации. Поэтому проблема, которую они пытаются решить, заключается в поиске оптимального, а не в сортировке.
- эвристика обычно используется, когда проблемы, которые вы хотите решить, слишком сложны, в вычислительном смысле - что не относится к проблеме сортировки.
- что было указано пример at through the quicksort, если я его хорошо понимаю, является случайным элементом. В принципе, у вас может быть детерминированная эвристика - я никогда не сталкивался с детерминированной метаэвристикой, но, возможно, ее можно закодировать. Это может быть немного "игра со словами", но случайный элемент более правильно характеризует" стохастический поиск", чем (мета)эвристика.
подробное объяснение см. В разделе:
метаэвристика-это высокоуровневая независимая алгоритмическая задача рамки, которые обеспечивают набор руководящих принципов или стратегий для разработки эвристические алгоритмы оптимизации. Термин также используется для обозначения проблемная реализация эвристической оптимизации алгоритм в соответствии с руководящими принципами, изложенными в таких рамках (Серенсен, 2015).
эвристики являются руководящие принципы, metaheurstics является основой, которая использует те.