Сетевые задачи: общая характеристика
Определение кратчайшего пути между вершинами сети как классический пример сетевых задач. Характеристика ориентированного и неориентированного графа. Методы генерации исходного допустимого потока. Метод Минти для решения задачи о кратчайшем пути в сети.
Рубрика | Математика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 24.01.2011 |
Размер файла | 222,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Основные понятия и определения. Многие экономические задачи, такие как перевозка грузов, перекачка нефти и газа по трубопроводам, управление запасами и т. п., удобно моделировать и решать в терминах сетей и потоков. Основой подобного рода моделей служат ориентированные или неориентированные графы. Приведем некоторые определения.
F Ориентированным графом называется тройка (I, D, G), в которой I -- непустое множество вершин, D -- множество дуг и G -- отображение, которое каждой дуге d?D ставит в соответствие упорядоченную пару вершин (i, j), где i, j ? I.
F Неориентированным графом называется тройка (I, D, G), в которой I -- непустое множество вершин, D -- множество ребер и G -- отображение, которое каждому ребру d?D ставит в соответствие неупорядоченную пару вершин [i, j], где i, j? I.
Граф (I, D, G) называется конечным, если множества I и D конечны.
Геометрически граф может быть представлен в виде множества точек (изображающих вершины) и соединяющих их линий (со стрелками), соответствующих ребрам (дугам) (рис. 3.3, 3.4). Очевидно, что с каждым ориентированным графом можно однозначно связать неориентированный, заменив дуги на ребра. Если любые две вершины графа соединяются не более чем одной дугой (ребром), то граф называется простым и может быть задан с помощью пары (I, D). В этом случае каждая дуга (ребро) d полностью определяется парой соединяемых вершин (i, j), что условно записывается в виде: d=(i,j). Упорядоченная пара вершин (i, j), которая ставится в соответствие некоторой дуге d, задает ее ориентацию: i называется началом дуги, а j -- ее концом, а сама дуга считается инцидентной данным вершинам.
Путем длины п в ориентированном графе (I, D) называется упорядоченная последовательность различных дуг (d1, d2,..., dn), для которых начало каждой последующей совпадает с концом предыдущей. Конечный путь, у которого начальная вершина совпадает с конечной, называется контуром.
Для неориентированного графа аналогом понятия путь является цепь, а контура -- цикл.
Если две любые вершины неориентированного графа могут быть соединены цепью, то он называется связным. Ориентированный граф называется связным, если ему отвечает связный неориентированный граф.
Связный неориентированный граф, не содержащий циклов, называется деревом.
Если Y ? D, а отображение GY является сужением отображения G на множество Y, то граф (I, Y, GY) называют частичным графом (реберным подграфом) графа (I, D, G).
Рассмотрим задачу: имеется конечный граф (I, D, G), каждой вершине i которого сопоставлено некоторое число bi, называемое интенсивностью вершины. Граф (I, D, G), вершинам которого сопоставлены значения интенсивностей bi, будем называть сетью. Если bi > 0, то вершина i называется источником, если bi < 0, то -- стоком, а если bi = 0, то -- нейтральной вершиной. Множество источников, стоков и нейтральных вершин обозначим соответственно I+, I-, I0.
Для определенной выше сети потоком называется такая совокупность величин, заданных на множестве дуг, Х={хd}d?D, что
где Di+ -- множество дуг, исходящих из вершины i, a Di- -- множество дуг, входящих в нее. Величина хd называется значением потока по дуге d и содержательно интерпретируется как количество продукта, пропускаемого по данной дуге.
Соотношение (3.11) означает, что для любой вершины сети разность выходящего и входящего потоков равна ее интенсивности.
На базе введенной терминологии может быть сформулировано много различных задач. Рассмотрим наиболее известные из них. Для каждой дуги d?D определим значения cd ? 0, называемые стоимостью перемещения единицы продукта по дуге, тогда суммарная стоимость потока Х примет вид
Задачу минимизации функции (3.13) при ограничениях (3.11)-(3.12) обычно называют линейной сетевой задачей. Очевидно, что она является задачей линейного программирования. Если дополнительно для каждой дуги сети d?D определить величины rd ? 0, называемые пропускными способностями, то, добавив ограничения мы получаем задачу о потоке в сети с ограниченными пропускными способностями.
Приведенные формулировки задач специально даны в столь абстрактном виде, что позволяет подчеркнуть их универсальность. К очевидной сфере их приложения относится организация грузоперевозок в транспортной сети. В таких моделях вершины i трактуются как пункты, соединенные сетью дорог, и характеризуются потребностями в некотором продукте (bi<0) или его запасами (bi>0). Задачи определения плана, минимизирующего затраты на перевозки, которые с математической точки зрения полностью идентичны (3.11)-(3.13), (3.14), также называют транспортными задачами в сетевой постановке.
Метод потенциалов для транспортной задачи в сетевой постановке. Рассмотрим задачу определения оптимального потока Х в некоторой сети (I, D, G), для которого
при ограничениях
где rd ? 0. Предполагается также, что сеть является сбалансированной, т. е.
Для задачи (3.15)-(3.17) справедлив критерий оптимальности:
F Для того, чтобы допустимый поток Х={хd}d?D (т. е. удовлетворяющий условиям (3.16)-(3.17)) был оптимальным, необходимо и достаточно существование для каждой вершины i ? I такого числа vi, называемого потенциалом, что для всех дуг d = (i, j)
Заметим, что логика обоснования данного критерия абсолютно идентична той, которая использовалась для обоснования критерия оптимальности плана транспортной задачи в матричной постановке: построение двойственной задачи и применение соответствующей теоремы двойственности.
Для решения транспортной задачи в сетевой постановке (3.15)-(3.17) также может быть применен метод потенциалов, который является обобщением описанного выше метода потенциалов для транспортной задачи в матричной постановке.
Поскольку задача (3.15)-(3.17) является частным случаем задачи линейного программирования, ее можно привести к канонической форме. При этом достаточно просто устанавливается, что ранг матрицы задачи равен m-1, где m -- количество вершин в сети. Введем дополнительно еще некоторые понятия, используемые при описании свойств сетевых задач.
Остовом сети (I, D, G) называется любое ее частичное дерево (частичный граф, являющийся деревом). Справедливо утверждение:
F Произвольному остову сети (I, D, G) соответствует базис задачи (3.15)-(3.17) и наоборот.
Пусть имеется некоторый поток Х={хd}d?D. Рассмотрим множество дуг D(X) = {d ? D | 0 < xd < rd}. Опорой потока Х называется частичный граф (I, D(X), G). Говорят, что поток Х невырожден, если его опора (7, D(X), G) является остовом сети (I, D, G). Иными словами, используя терминологию транспортной задачи, в невырожденном потоке, которому отвечает допустимый базисный план задачи, дороги, по которым осуществляются перевозки груза, не достигающие по объему ограничения на пропускную способность, образуют остов (связанную подсеть без циклов) рассматриваемой транспортной сети.
Теперь дадим краткое описание схемы метода потенциалов для транспортной задачи в сетевой постановке.
1°. Предполагается, что в начале очередной итерации q имеется некоторый допустимый невырожденный поток Х={хd(q)}d?D (о методах его генерации на начальном этапе будет сказано в дальнейшем).
По имеющемуся потоку Х(q) строится система потенциалов пунктов сети. Для этого выбирается произвольный пункт i0, потенциал которого полагается vi0 =0. Множество вершин, смежных с i0, обозначим через I(i0). Тогда для любой вершины j ? I(i0) потенциалы рассчитываются по правилу
если (i0,j) ? D(X(q)) (дуга направлена от i0),и
если (j,i0) ? G(D(X(q))) (j,i0) ? D(X(q)) (дуга направлена к i0).
Получив очередную группу вершин с известными потенциалами, мы имеем возможность на основе (3.22)-(3.23) вычислить потенциалы для следующей группы смежных вершин и т. д., пока не будут определены все потенциалы. Возможность сделать это единственным образом вытекает из свойства отсутствия циклов у остова сети.
Имея полную систему потенциалов, для всех дуг следует проверить условия критерия оптимальности (3.19)-(3.21). Если они выполняются, то текущий поток Х(q) -- оптимальный и, следовательно, алгоритм завершен; в противном случае -- переходим к построению следующего «улучшенного» потока.
2°. По аналогии с другими методами последовательного улучшения плана очередной поток получается за счет «ввода» в него одной дуги и «вывода» другой. Если условия критерия оптимальности нарушаются сразу для нескольких дуг, то для ввода имеет смысл выбрать ту, на которой достигается максимальное отклонение цены от разности потенциалов соединяемых вершин. Пусть для ввода выбрана некоторая дуга dl = (s, t), направленная из вершины s в вершину t. Из правил построения потенциалов следует, что в остове существуют две цепи, одна из которых соединяет базовую вершину i0, потенциал которой был принят равным нулю, с s, а другая -- i0 с t. Если дополнить остов дугой dl, образуется единственный цикл. Построенный цикл является аналогом цепочки преобразования плана в методе потенциалов для транспортной задачи в матричной постановке. Обозначим через D+(s,t) множество дуг данного цикла, ориентация которых совпадает с ориентацией дуги dl = (s, t), а через D-(s,t) -- множество дуг, имеющих противоположную ориентацию. Определим величину возможной корректировки объемов грузоперевозок, «перемещаемых» по циклу
Идея формулы (3.24) достаточно прозрачна: при циклическом преобразовании текущего потока увеличиваются объемы грузоперевозок на тех дугах, которые сонаправлены вводимой дуге, и уменьшаются на дугах, имеющих обратную ориентацию. Соответственно, при добавлении мы должны следить за тем, чтобы не превысить ограничения на пропускные способности (? ? rd - хd(q)), а при вычитании -- за неотрицательностью хd(q). После определения ? происходит пересчет компонент текущего потока по формуле
В результате мы получаем новый допустимый поток хd(q+1)), полагаем номер текущей итерации q+1 и переходим к п. 1°.
В описанном алгоритме, как и в случае с матричной транспортной задачей, мы не гарантированы от возникновения вырожденного потока. Как уже упоминалось выше, такому потоку будет соответствовать несвязная опора. Для преодоления вырожденности рекомендуется включить в текущий план фиктивные компоненты с нулевыми объемами так, чтобы соответствующие им дуги дополняли опору до остова сети. Построенный таким способом план позволяет выполнить все действия, входящие в стандартную итерацию метода потенциалов.
Отдельно следует остановиться на методах генерации исходного допустимого потока. Наиболее простой из них (хотя, возможно, и наименее рациональный) основан на идеях, сходных с идеями метода минимизации невязок, используемого для построения допустимого базисного плана ЗЛП. Данный метод предполагает решение соответствующей вспомогательной задачи, которая получается из основной в результате следующих преобразований:
1. К множеству вершин сети добавляется фиктивная нулевая вершина с нулевой интенсивностью (b0= 0).
2. Все вершины, имеющие отрицательную интенсивность (спрос) bi < 0, соединяются с добавленной вершиной 0 входящими дугами (0, i), а вершины, обладающие положительной интенсивностью (запасом) bi > 0, -- исходящими дугами (i, 0). Ограничения на пропускные способности для добавляемых дуг отсутствуют.
3. Стоимости перемещения единицы продукта для вновь добавленных дуг полагаются равными 1, а для дуг, соответствующих транспортной сети основной задачи, -- 0.
Построенная вспомогательная задача обладает очевидным допустимым невырожденным потоком, получаемым назначением объемов, равных интенсивностям вершин, по всем добавленным дугам. Решив вспомогательную задачу, мы либо получим допустимый поток для основной задачи, либо придем к выводу об отсутствии у нее допустимых планов.
Задача о кратчайшем пути
сетевой путь задача граф
Классическим примером сетевых задач является определение кратчайшего пути между вершинами сети. Пусть задан граф (I, D, G), каждой дуге которого поставлено в соответствие число cd, называемое длиной. Также пусть выделены две вершины графа s и t, и требуется найти путь наименьшей длины, ведущий из вершины s в вершину t.
Если в графе имеются «кратные» дуги, соединяющие одинаковые начало и конец, то достаточно оставить одну -- с наименьшей длиной, а остальные отбросить. Таким образом, достаточно рассматривать задачу о кратчайшем пути для простого графа (I, D), в котором дуги определяются упорядоченными парами вершин d = (i, j). Тогда естественно путь L, идущий из вершины s в вершину t, задавать в виде упорядоченного набора вершин, через которые проходит данный путь:
а длины дуг обозначать как cd = ci,j.
Длина описанного выше произвольного пути L определяется по формуле
Легко заметить, что задача о кратчайшем пути является частным случаем транспортной задачи в сетевой постановке (или, что то же самое, задачи об оптимальном потоке). Для этого достаточно присвоить вершине s единичный запас, вершине t единичную потребность, все остальные вершины положить нейтральными, а дугам присвоить неограниченные пропускные способности. Однако, как правило, более рациональным оказывается использование конкретных свойств данной задачи и решение ее специальными (частными) методами. К их числу относится, например, метод Минти, основные идеи которого мы изложим ниже.
Метод Минти решения задачи о кратчайшем пути в сети представляет собой итеративный процесс, в ходе которого строится путь L=(s=i0, i1, ..., ip-1, ip=t).
На предварительном (нулевом) этапе алгоритма:
O формируется массив значений так называемых модифицированных длин i,j, которые перед началом первой итерации полагаются равными сi,j ?0; O осуществляется отметка вершины i0 = s числом mi0 = 0
Размещено на Allbest.ru
Подобные документы
Алгоритм перехода к графическому представлению для неориентированного графа. Количество вершин неориентированного графа. Чтение из матрицы смежностей. Связи между вершинами в матрице. Задание координат вершин в зависимости от количества секторов.
лабораторная работа [34,0 K], добавлен 29.04.2011Способы решения задач дискретной математики. Расчет кратчайшего пути между парами всех вершин в ориентированном и неориентированном графах с помощью использования алгоритма Флойда. Анализ задачи и методов ее решения. Разработка и характеристика программы.
курсовая работа [951,4 K], добавлен 22.01.2014Задача о кенигсбергских мостах, четырех красках, выходе из лабиринта. Матрица инцидентности для неориентированного и (ориентированного) графа. Степень вершины графа. Ориентированное дерево. Линейные диаграммы или графики Ганта. Метод критического пути.
презентация [258,0 K], добавлен 23.06.2013Граф как совокупность объектов со связями между ними. Характеристики ориентированного и смешанного графов. Алгоритм поиска кратчайшего пути между вершинами, алгоритм дейкстры. Алгебраическое построение матрицы смежности, фундаментальных резервов и циклов.
методичка [29,4 M], добавлен 07.06.2009Сущность и основные понятия теории графов, примеры и сферы ее использования. Формирование следствий из данных теорий и примеры их приложений. Методы разрешения задачи о кратчайшем пути, о нахождении максимального потока. Графическое изображение задачи.
курсовая работа [577,1 K], добавлен 14.11.2009Структура текстовой задачи. Условия и требования задач и отношения между ними. Методы и способы решения задач. Основные этапы решения задач. Поиск и составление плана решения. Осуществление плана решения. Моделирование в процессе решения задачи.
презентация [247,7 K], добавлен 20.02.2015Методы решения задачи коммивояжера. Математическая модель задачи коммивояжера. Алгоритм Литтла для нахождения минимального гамильтонова контура для графа с n вершинами. Решение задачи коммивояжера с помощью алгоритма Крускала и "деревянного" алгоритма.
курсовая работа [118,7 K], добавлен 30.04.2011Постановка задачи коммивояжера и основные алгоритмы решения. Маршруты и пути. Понятия транспортной сети. Понятие увеличивающая дуга, цепь, разрез. Алгоритм Флойда-Уоршелл. Решение задачи аналитическим методом. Создание приложения для решения задачи.
курсовая работа [541,3 K], добавлен 08.10.2015Понятие и содержание теории графов. Правила построения сетевых графиков и требования к ним. Сетевое планирование в условиях неопределенности. Теория принятия решений, используемые алгоритмы и основные принципы. Пример применения алгоритма Дейкстры.
курсовая работа [1,0 M], добавлен 26.09.2013Суть задачи коммивояжера, ее применение. Общая характеристика методов ее решения: метод полного перебора, "жадные" методы, генетические алгоритмы и их обобщения. Особенности метода ветвей и границ и определение наиболее оптимального решения задачи.
курсовая работа [393,2 K], добавлен 18.06.2011