5.5. Прикладные задачи теории графов Задача поиска

advertisement
5.5. Прикладные задачи теории графов
Задача поиска минимального остова графа.
Эта задача возникает при проектировании линий электропередачи,
трубопроводов, дорог и т.д., когда требуется заданные центры соединить некоторой
системой каналов (связей) таким образом, чтобы любые два центра были связаны
непосредственно или через другие каналы, и чтобы общая длина (стоимость) каналов
связей была минимальной.
Определение. Граф называется взвешенным, если его ребрам или дугам
приписаны некоторые числа (веса).
Определение. Остовным деревом или остовом графа называется связный
подграф без циклов, содержащий все вершины исходного графа. Подграф содержит
часть или все ребра исходного графа.
В одном графе может быть выделено много остовов (Рис.5.1.).
Рисунок 5.1 Различные остовы графа K3.3
Задача о минимальном остове формулируется следующим образом: во взвешенном
связном графе найти остов минимального веса, то есть остов, суммарный вес ребер
которого является минимальным.
Рассмотрим алгоритм Краскала построения минимального остова графа. Остов
строится постепенно, на каждом шаге добавляется одно ребро. В алгоритме
используются два правила.
1) Первое ребро остова - ребро минимального веса в исходном графе.
2) Если в остов уже добавлено i (i<n-1) ребер, то следующее ребро еi+1,
есть ребро минимального веса среди ребер, которые еще не включены в остов
и не составляют циклов с уже добавленными ребрами.
Рисунок 5.2 Минимальный остов
Пример 5.1. Найти минимальный остов в графе (Рис.5.2.).
Построение остова начнем с ребра (v1,vj), так как оно имеет минимальный вес
(можно было начать и с ребра (v2,v5)). Порядок присоединения ребер к остову:
v1 , v3 , v2 , v5 , v1 , v2 , v4 , v5 
Вес остова
W=1+2+1+4=8.
Заметьте, что ребра (v2,v3), (v1,v5) не были включены в остов, хотя имели вес
меньший, чем ребро (v4,v5), так как они образовывали циклы с уже включенными
ребрами.
Еще один пример применения рассмотренной задачи. Пусть задано множество
аэродромов, и нужно определить минимальный (по сумме расстояний) набор
авиарейсов, который позволил бы перелететь с любого аэродрома на любой.
Решением этой задачи будет минимальный остов полного графа расстояний
между аэродромами
Далее мы лишь перечислим задачи, которые возникают в теории графов и
находят практическое применение. Алгоритмы их решения выходят за рамки этого курса.
Нахождение минимальных путей.
Большое количество задач сводится к поиску минимальных путей между
заданной парой вершин (или всеми парами вершин) в некотором графе (орграфе).
Возможны различные варианты постановки задачи:
задача нахождения пути с минимальным количеством промежуточных вершин (как
добраться из одного города в другой с наименьшим числом пересадок);
задача нахождения пути минимальной суммарной длины, если каждому ребру
(дуге) приписано неотрицательное вещественное число (вес);
задача нахождения пути минимальной суммарной длины, если каждому ребру
(дуге) приписан произвольный (возможно, отрицательный) вес.
Размещение "центров", покрывающих заданную область.
Примеры задач данного типа:
размещение телевизионных или радиопередающих станций на некоторой
территории;
размещение военных баз, контролирующих данную территорию;
размещение центров торговли, обслуживающих некоторый район.
Пример задачи: требуется разместить радиопередающие станции на территории,
представленной квадратом и разделенной на 16 районов так, чтобы станция,
расположенная в любом из районов, могла вещать на этот район и на соседние (по
горизонтали и вертикали). Число станций должно быть минимально.
Решение: построим граф, вершины которого соответствуют районам, и две
вершины связаны тогда и только тогда, когда соответствующие им районы являются
соседними. После построения такого графа задача сводится к нахождению наименьшего
доминирующего множества вершин в графе.
Планирование производства.
Примеры задач данного типа: планирование производства на предприятиях
пищевой, химической, фармацевтической и т.п. промышленности.
Пример задачи: нужно произвести п продуктов на некотором оборудовании,
причем для одних пар <старый продукт, новый продукт> перенастройка аппаратуры
необходима, а для других - нет. Стоимость перенастройки постоянна и не зависит от
конкретных продуктов. Требуется найти циклическую последовательность производств,
не требующих перенастройки аппаратуры, либо убедиться, что такой последовательности
не существует.
Решение: построим орграф, вершины которого соответствуют продуктам, а
существование дуги (и, v) означает, что продукт v можно производить вслед за и без
перенастройки аппаратуры. Тогда задача сводится к нахождению одного или всех
возможных гамильтоновых циклов в построенном орграфе.
Задача о раскраске графа
Определение. Раскраской графа называется такое приписывание цветов его
вершинам, что никакие две смежные вершины не получают одинаковый цвет.
Наименьшее возможное число цветов в раскраске называется хроматическим числом
графа. При раскраске все множество вершин разбивается на классы "одного цвета",
никакие две вершины в одном классе не являются смежными.
Рисунок 5.3 Раскраска графа
Найдем хроматическое число графа (рисунок 5.3.). Вершины 1, 3, 5, 7 - раскрасим
в красный цвет, вершины 2, 6, 8 - в желтый и вершину 4 в зеленый. Хроматическое
число будет равно 3.
Примеры задач данного типа: распределение ресурсов и составление расписаний.
Задача: составить такое расписание экзаменов в конце семестра, чтобы ни одному
студенту не пришлось сдавать более одного экзамена в день, а количество дней, в
течение которых проводятся экзамены, было минимально, при условии, что разделение
студентов на группы отсутствует, и каждый студент может выбрать свой набор
учебных курсов из п возможных (американская система).
Решение: построим граф, вершины которого соответствуют учебным курсам, и две
вершины связаны ребром тогда и только тогда, когда существует хотя бы один
студент, который будет сдавать оба, соответствующих этим вершинам, курса (а
значит, экзамены по ним нельзя проводить в один день). Тогда хроматическое число
построенного графа равно искомому минимальному количеству дней проведения
экзаменов, а любая оптимальная раскраска графа определяет одно из решений задачи.
Задача о коммивояжере. Можно сформулировать эту задачу в терминах теории
графов. Вершинам графа сопоставим города, которые должен объехать коммивояжер,
ребрам - пути, ведущие из города в город, и припишем им стоимость пути. В
полученном графе требуется найти гамильтонов цикл с минимальной суммой весов
его ребер
Related documents
Download