Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
nestudent.ru_46905.doc
Скачиваний:
22
Добавлен:
12.09.2019
Размер:
2.07 Mб
Скачать

Сравнение эвристик

Различные эвристики по‑разному ведут себя в различных задачах. Для задачи о формировании портфеля, эвристика сбалансированной прибыли работает достаточно хорошо, учитывая ее простоту. Стратегии последовательного приближения обычно дают сравнимые результаты, но для больших задач их выполнение занимает намного больше времени. Для других задач наилучшей может быть какая‑либо другая эвристика, в том числе из тех, которые не обсуждались в этой главе.

========216-217

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

Другие сложные задачи

Существует множество очень сложных задач, большинство из которых не имеет решений с полиномиальной вычислительной сложностью. Другими словами, не существует алгоритмов, которые решали бы эти задачи за время порядка O(NC) для любых постоянных C, даже за O(N1000).

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

Задача о выполнимости

Если имеется логическое утверждение, например “(A And Not B) Or C”, то существуют ли значения переменных A, B и C, при которых это утверждение истинно? В данном примере легко увидеть, что утверждение истинно, если A = true, B = false и C = false. Для более сложных утверждений, содержащих сотни переменных, бывает достаточно сложно определить, может ли быть утверждение истинным.

При помощи метода, похожего на тот, который использовался при решении задачи о формировании портфеля, можно простроить дерево решений для задачи о выполнимости (satisfiability problem). Каждая ветвь дерева будет соответствовать решению о присвоении переменной значения true или false. Например, левая ветвь, выходящая из корня, соответствует значению первой переменной true.

Если в логическом выражении N переменных, то дерево решений представляет собой двоичное дерево высотой N + 1. Это дерево имеет 2N листьев, каждый из которых соответствует разной комбинации значений переменных.

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

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

Из‑за неприменимости эвристик и меньшей эффективности метода ветвей и границ, задача о выполнимости обычно является очень сложной и решается только в случае небольшого размера задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]