Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АКП_ответы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.41 Mб
Скачать

20. Оценка точности алгоритма. Определение оценок в лучшем и в худшем для алгоритма решения задачи коммивояжора по методу поиска в глубину.

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

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

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

Рассмотрим изложенный подход на примере решения задачи коммивояжера последовательным алгоритмом. Содержание алгоритма заключается в следующем: начиная с некоторой исходной вершины взвешенного графа – модели исходного описания, выбирают ребро минимальной длины среди ребер, инцидентных текущей (исходной) вершине, и включаем его в маршрут. Причем это ребро не должно образовывать цикла с ребрами, уже включенными в маршрут (до тех пор, пока количество включённых рёбер не станет равным n-1). N-ое ребро берём какое есть, чтобы завершить маршрут.

Конструирование набора данных для получения границ погрешности в лучшем и худшем требует анализа вида и последовательности преобразования исходного графа, а также связи выбираемого очередного компонента с целевой функцией. Основная операция алгоритма – выбор среди рёбер, инцидентных вершине, ребра, имеющего минимальный вес. Целевая функция – минимум суммы весов или длин, образующих гамильтонов цикл. Выбор последнего ребра обусловлен тем, что оно последнее. Отсюда следует, что указанным алгоритмом будет получено оптимальное решение, если на каждом шаге, в том числе последнем, мы будем включать в цикл среди всех рёбер, инцидентных текущей вершине (за исключением соединяющей её с предыдущей) ребро минимальной длины. Это довольно жёсткое условие, т.е существуют наборы входных данных, которые этому условию не удовлетворяют, однако решение будет оптимальным.

Оценка в лучшем

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

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

К вопросу о последнем шаге, может получиться вот так:

Оценка в худшем

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