Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций СиАОД.docx
Скачиваний:
17
Добавлен:
01.03.2025
Размер:
4.62 Mб
Скачать
    1. Задача перекресток

Задача

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

Программа в качестве входных данных использует множество всех допустимых поворотов на перекрестке (продолжение прямой дороги, проходящей через перекресток, также будем считать «поворотом») и разбивает это множество на несколько групп так, чтобы все повороты в группе могли выполняться одновременно.

Затем с каждой группой сопоставим соответствующий режим работы светофоров на перекрестке.

Желательно минимизировать число разбиений исходного множества поворотов.

Пример перекрестка

Для построения модели этой задачи можно применить математическую структуру – граф.

Вершины графа – повороты, а ребра соединяют вершины повороты, которые нельзя выполнять одновременно.

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

При такой раскраске несовместимым поворотам будут соответствовать вершины, окрашенные в разные цвета.

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

Возможные подходы к решению.

Первый подход

Перебор всех возможных вариантов раскраски (для не слишком больших графов).

Второй подход

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

Третий подход

Изменяем постановку задачи и ищем не оптимальное, а близкое к оптимальному решение. Алгоритмы, которые находят «подходящее», но не оптимальное решение, называются эвристическими.

    1. Максимальный поток

Максимальный поток

Сетью называется ориентированный граф G=(V,E), каждому ребру (u,v)  E которого поставлено в соответствие число c(u,v)0, называемое пропускной способностью ребра..

Если (u,v)  E мы полагаем c(u,v)=0

В графе выделены две вершину: исток s и сток t .

Предполагаем, что в графе нет «бесполезных» вершин (каждая вершина лежит на каком-то пути из истока в сток)

Потоком в сети G называется функция f:VVR, обладающая следующими тремя свойствами.

Ограничение, связанное с пропускной способностью:

f (u,v)  c(u,v) для всех u,v из V.

Кососимметричность:

f (u,v) = - f (v,u) для всех u,v из V.

Сохранение потока:

для всех u из V – {s,t}

Величина потока f определяется как сумма

Задача о максимальном потоке состоит в следующем: для данной сети G с истоком s и стоком t найти поток максимальной величины.

Разделим вещество, поступающее в данную вершину v и вещество, из нее выходящее.

Входящим потоком называется сумма

. Аналогично определяется выходящий поток.

Закон сохранения потока можно сформулировать так; для любой вершины, кроме истока и стока, входящий поток равен исходящему.

Пример сети