Значение (мета) эвристических методов

10
  1. Для оптимизации из Википедии :

    В информатике метаэвристика обозначает вычислительный метод, который оптимизирует проблему путем итеративной попытки улучшить подходящее решение с учетом заданного показателя качества. Метаэвристика делает мало или вообще не делает предположений об оптимизируемой проблеме и может искать очень большие пространства возможных решений. Однако метаэвристика не гарантирует, что оптимальное решение когда-либо будет найдено. Многие метаэвристики реализуют некоторую форму стохастической оптимизации.

    Другими терминами, имеющими значение, аналогичное метаэвристическому, являются: без производных, прямой поиск, черный ящик или просто эвристический оптимизатор. По этой теме было опубликовано несколько книг и обзорных работ.

    • Интересно, как определить, является ли метод оптимизации метаэвристическим или нет? Например,

      (1) Является ли симплекс-метод линейного программирования метаэвристическим?

      (2) Являются ли большинство методов нелинейного программирования, таких как градиентный спуск, метод множителей Лагранжа, методы штрафа, методы внутренних точек (барьерные методы), метаэвристическими?

      (3) Являются ли все методы без градиента, такие как метод Нелдера-Мида или метод симплексного спуска, метаэвристическими?

    • Какие методы оптимизации не являются метаэвристическими?

  2. В более широком смысле (выход за рамки оптимизации) для методов решения проблем из Википедии :

    Эвристика относится к методам, основанным на опыте , для решения проблем, обучения и обнаружения . Если исчерпывающий поиск нецелесообразен, эвристические методы используются для ускорения процесса поиска удовлетворительного решения. Примеры этого метода включают использование эмпирического правила, обоснованного предположения, интуитивного суждения или здравого смысла.

    В более точном смысле, эвристика - это стратегии, использующие легкодоступную, хотя и слабо применимую, информацию для управления решением проблем людьми и машинами.

    Интересно, как понять значение слова "эвристический"?

    • Как я могу определить, является ли метод «решения проблем, обучения и обнаружения» эвристическим или нет?

    • Какие методы «решения проблем, обучения и обнаружения» не являются эвристическими?

Спасибо и всего наилучшего!

Тим
источник

Ответы:

7

Эвристика - это то, что работает во многих случаях на практике, хотя нет подробного аргумента, почему она должна работать хорошо.

Метаэвристика - это не алгоритм, а общая эвристическая схема или идея, которую можно использовать внутри конкретных алгоритмов.

Например, симплексный алгоритм для линейного программирования не является ни эвристикой, ни метаэвристикой, поскольку он имеет хорошо известную теорию сходимости. Sqame подходит для последовательного квадратичного программирования или методов внутренней точки. (Методы внутренних точек представляют собой общую схему, но не эвристическую и, следовательно, не метаэвристическую, поскольку с ней связана довольно сильная теория.)

Симплексный алгоритм Nelder-Mead = downhill для минимизации функции - это эвристика (на самом деле он может не справиться с довольно простыми задачами в более высоких измерениях), а поиск по табу - это метаэвристика (поскольку можно написать довольно много разнообразных алгоритмов, использующих поиск по табу, но в остальном совершенно другого качества.

Арнольд Ноймайер
источник
Спасибо! (1) Итак, чтобы сказать, является ли метод метаэвристическим, стоит посмотреть, есть ли у него теория относительно того, когда он сходится к истинному оптимизатору? Если метод еще не имеет такой теории, то является ли он мясоэвристическим? Если однажды будет теория для нее, станет ли она метаэвристической или неметаэвристической? (2) «Другими терминами, имеющими значение, аналогичное метаэвристическому, являются: без производных, прямой поиск, черный ящик или просто эвристический оптимизатор». Интересно, использует ли метаэвристика только значения функций и является ли она производной бесплатной? Это «поисковый» метод в вашем ответе на мой другой вопрос?
Тим
@Tim: метаэвристический означает: (i) нет теории сходимости и (ii) нет определенного рецепта для продолжения, а есть общие принципы. - без производных (= прямой поиск = черный ящик; разные имена для одного и того же из разных исторических корней) могут быть эвристическими или нет; это просто говорит о входных данных, которые пользователь должен предоставить.
Арнольд Ноймайер
Спасибо! Интересно, использует ли метаэвристика только значения функций и является ли она производной бесплатной?
Тим
@ Тим: Наверное, да; Я не знаю ничего, что называется метаэвристикой, которая использует градиенты.
Арнольд Ноймайер
7

Я не буду перебирать симплекс и Nelder-Mead, поскольку @ArnoldNeumaier уже дал очень хорошее объяснение, но хотел добавить свои 2 цента.

Одна из лучших цитат, которые я слышал некоторое время назад, чтобы описать разницу между эвристикой и метаэвристикой: эвристика - довольно хорошее правило. Метаэвристика - довольно хорошее правило для нахождения довольно хороших правил.

Вы должны просто увидеть это как способ найти хорошую эвристику для конкретных задач; в основном, если вы задаете себе один из следующих вопросов, вы говорите о метаэвристике:

  • Как мне настроить параметры этой эвристики, чтобы улучшить производительность для этой проблемы?
  • Это эвристика лучше, чем эта эвристика?

Существует множество метаэвристик, которые вы можете использовать для решения проблем, обучения и обнаружения , а именно:

Я считаю, что большинство метаэвристики в некоторой степени вдохновлены природными явлениями, которые трудно строго объяснить, но имеют хорошие свойства сходимости.

Вот хорошая ссылка, если вы хотите узнать больше о некоторых других метаэвристических методах

Чарльз Менгу
источник
Спасибо! Я не уверен, что понимаю: «Эвристика - довольно хорошее правило. Метаэвристика - довольно хорошее правило для нахождения довольно хороших правил». Например, являются ли моделируемый отжиг, рой частиц, муравьиная колония и табу поиск эвристическим или метаэвристическим? Если они один из двух, каковы их аналоги для другого?
Тим
Из этой цитаты следует понимать, что и эвристика, и метаэвристика не точны и не доказаны, поэтому «довольно хорошее правило». Метаэвристика находится на более высоком уровне, чем эвристика, и через несколько последовательных итераций вы можете найти набор параметров, которые решат проблему правильно. Если бы вы знали, что это за набор параметров с самого начала, вам просто нужно написать эвристику для решения проблемы. Но так как вы не знаете, вы должны использовать алгоритм, чтобы найти эти параметры для вашей эвристики: метаэвристику. Надеюсь, что это проясняет.
Чарльз Менгуй
И алгоритмы, которые я привел здесь, являются метаэвристическими, и вы можете найти более подробную информацию по ссылке, которую я дал. Я не уверен, что именно вы имеете в виду для коллег.
Чарльз Менгуй
Под аналогами я имею в виду, например, если все алгоритмы являются метаэвристическими, то какие эвристики, с которыми они работают, должны быть сами по себе плюс конкретные значения для их настраиваемых параметров?
Тим
Взять, к примеру, моделируемый отжиг. В конце концов, это поиск по цепочке Маркова. «Правило» эвристики состоит в том, чтобы предполагать, что состояние в цепи Маркова является решением. Что метаэвристика делает, так это ищет конвергенцию в цепи Маркова, чтобы найти оптимальное состояние, которое описывает решение. В общем, я думаю, что вам не следует слишком стараться проводить различие: используйте эвристику, когда есть «относительно» простое решение, которое можно легко вычислить, и используйте метаэвристику, когда пространство решения слишком велико и вам нужно быть умнее решение проблемы.
Чарльз Менгю