Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
оценка сложности алгоритмов.doc
Скачиваний:
82
Добавлен:
10.07.2019
Размер:
353.28 Кб
Скачать

Билет 31

Приближенное решение NP – сложных задач.

Хотя оценки сложности высоки, существуют алгоритмы решения многих NP-сложных задач, которые для значительного диапазона данных обеспечивают приемлемое время решения. В основе многих алгоритмов решения переборных задач лежит метод “ветвей и границ”, динамически отсекающий бесперспективные ветви перебора (точнее было бы назвать его не методом, а методологическим подходом). Он был продемонстрирован при составлении минимального расписания для мультипроцессорной системы. Находилось наименьшее время, где плотность загрузки превосходила n, и последовательно испытывались комбинации дополнительных связей. Если комбинация порождала длину критического пути, большую некоторой уже полученной ранее, то такая комбинация отвергалась, а вместе с ней и все те комбинации, которые она могла бы породить в дальнейшем. Значит, различные комбинации связей на последовательных шагах выполнения алгоритмов – это ветви, а условие, чтобы эти связи не приводили к недопустимому увеличению длины критического пути – это границы. В действительности, есть более эффективные границы, позволяющие более существенно отбрасывать бесперспективные ветви и тем самым значительно ускорять нахождение решения.

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

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

Значит, возникает понятие точного и приближённого алгоритма решения задачи оптимизации.

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

При построении приближённых алгоритмов обычно требуют, чтобы они имели полиномиальную сложность. Приводят теоретические статистические оценки, на сколько (как правило, в процентном отношении) предлагаемое ими решение хуже точного решения.

Например, эвристический алгоритм решения задачи о коммивояжере k1 по теоретическим оценкам (заметим, что статистические, возможно, значительно лучше) выдаёт путь обхода всех городов, не более чем в два раза превышающий минимальный. Он основан на предварительном построении минимального остовного дерева (связного подграфа, содержащего все вершины и не содержащего циклов – а следовательно, имеющего n вершин и n–1 рёбер), объединяющего города. (Алгоритм – полиномиальный, в минимальном остовном дереве сумма рёбер минимальна.) На рис. 4.7 показан путь обхода по этому дереву с пропуском уже посещённых городов.

Рис.2.7. Путь обхода по дереву при решении задачи коммивояжера.

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

Рис. 2.8. Нахождение минимального расписания при решении группы задач.

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

Статистические оценки говорят, что в среднем планы, полученные таким простым методом, на 8–10% по длине превышают оптимальные, т.е. полученные точным методом.