Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пантелеев Евгений Рафаилович.docx
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
41.77 Кб
Скачать

Использование атд для реализации стратегии исчерпывающего перебора.

Стратегия поиска в глубину.

Т к стратегия поиска в глубину пересматривает при возврате состояние порождённое последним в первую очередь то для поддержки этой й стратегии удобно использовать абстрактный тип стек.

АТД стек используется для сохранения контекста текущего состояния.

Контекст состояния включает в себя номер текущей вершины и индекс вершины-продолжения.

  1. Инициализировать стек. Инициализируемый список ребер пути.

  2. Сформировать начальный контекст.(индекс исходной вершины и индекс неисследованной вершины продолжения)

  3. Сохранить контекст в стеке.

  4. Пока стек не пуст выполнять.

    1. Если найдено состояние-приемник то

      1. Если это состояние целевое то

        1. Включить ребро между текущей вершиной и вершиной приемника в путь

        2. Вывести вариант пути

        3. Выполнить возврат

      2. Иначе

        1. Сохранение текущего контекста в стеке

        2. Формирование нового контекста

    2. Иначе

      1. Возврат

Детализация процедур возврата.

  1. Удалить последнее ребро из списка.

  2. Восстановить последний контекст из стека.

Использование АТЖ при реализации стратегии поиска в ширину.

Для реализации стратегии поиска в ширину используется АТД очередь.

  1. Инициализировать очередь.

  2. Сохранить в очереди текущий контекст (индекс исходной вершины)

  3. Инициализировать список ребер пути.

  4. Пока очередь не пуста выполнять

    1. Взять текущий контекст из очереди

    2. Для всех вариантов продолжения пути выполнять

    3. Если состояние-приемник целевое то

      1. Добавить ребро в список

      2. Вывести решение.

    4. Иначе поместить ребро в список, поместить контекст в очередь

Стратегия ограниченного перебора метод ветвей и границ.

  1. Предполагается что существует способ разбиения множества решений на непересекающиеся подмножества.

  2. Для каждого из подмножеств существует эффективный способ проверки наличия в этом множестве оптимального решения. (отсечение бесперспективных подмножеств)

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

Понятие оценочной функции.

Оценочная функция определена на подмножестве вариантов решения и позволяет оценить наличие или отсутствие оптимального варианта в соответствующем подмножестве.

Свойства оценочной функции.

  1. Значение оценочной функции для подмножества не меньше чем значение оценочной функции для полной функции.

Оценочная функция определяет нижнюю границу критерия оптимальности в соответствующем подмножестве.

Если в множестве решений присутствует оптимальное то значение критерия для него не меньше значения оценочной функции для множества.

Применение метода ветвей и границ для решений задач Гамильтона.

Найти цикл в графе, сумма весов ребер которого минимальна.

Алгоритм Литла. Граф является полно связанным и не содержит петель. На множестве ребер графа определена функция веса.

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

Пример алгоритма Литла.

-

6

4

8

7

14

6

-

7

11

7

10

4

7

-

4

3

10

8

11

4

-

5

11

7

7

3

5

-

7

14

10

10

11

7

-

Процедура приведения

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