Разработка системы планирования размещения точек водоснабжения в населенных пунктах
Использование информационных технологий для планирования размещения оптимальных точек водоснабжения, используя теорию графов. Функциональные возможности разрабатываемого приложения. Программная реализация основных модулей на основе алгоритма Флойда.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 31.01.2012 |
Размер файла | 818,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования, науки, молодежи и спорта Украины
Донецкий Национальный Университет
Кафедра прикладной математики и
теории систем управления
Курсовая работа
На тему
«Разработка системы планирования размещения точек водоснабжения в населенных пунктах»
Выполнила
студентка гр. «4-И(ММ)»
математического фак-та
Беспалая Анна
Научный руководитель
доцент кафедры ПМ и ТСУ
Вайсруб Н. В.
2011г.
Содержание
Введение
Раздел 1. Актуальность использования информационных технологий для планирования размещения точек водоснабжения в населенных пунктах
1.1 Рост проблем водоснабжения в связи с ухудшением экологической ситуации
1.2 Задача оптимального размещения точек водоснабжения в населенных пунктах и их решения
1.1 Рост проблем водоснабжения в связи с ухудшением экологической ситуации
1.3 Актуальность использования информационных технологий для планирования размещения точек водоснабжения в населенных пунктах
1.4 Постановка задачи
Выводы к разделу 1
Раздел 2. Задача о размещении медиан в графе и методы ее решения
2.1 Основные понятия теории графов
2.2 Понятие медианы
2.3 Методы нахождения медиан графа
2.4 Алгоритм нахождения медиан графа
2.5 Примеры нахождения медиан графа
Выводы к разделу 2
Раздел 3. Программная реализация системы планирования размещения
точек водоснабжения в населенных пунктах
3.1 Описание функциональных возможностей разрабатываемого приложения
3.2 Информационная структура приложения. Программная реализация основных модулей
Выводы к разделу 3
Заключение
Список использованной литературы
Приложения
Введение
В настоящее время существует масса проблем, связанных с ухудшением экологической ситуации окружающей среды. К ним относится и занимает немало важное место и проблемы загрязнения водных ресурсов, которое связано с проблемами водоснабжения.
Человек всячески борется с решением данных проблем, и одной из важных его разработок является разработка систем планирования размещения точек водоснабжения в населенных пунктах. Одной из целей данных разработок является использование информационных технологий для планирования размещения точек водоснабжения в населенных пунктах. Целью моей курсовой работы и будет программная реализация оптимального размещения точек водоснабжения, используя алгоритм Флойда.
В связи с этим я рассмотрела и изучила основные понятия теории графов, в особенности понятие медианы графа, что позволило мне найти решение размещения точек водоснабжения в населенных пунктах.
Вообще говоря, графы стали широко использовать в теории массового обслуживания, поскольку там возникают задачи оптимального размещения точек обслуживания, таких как больницы, пожарные части, сберегательные банки, товарные склады и т.п. Основной проблемой является минимизация расстояния от любой точки населенного пункта до ближайшего пункта обслуживания.
Раздел 1. Актуальность использования информационных технологий для планирования размещения точек водоснабжения в населенных пунктах
1.1 Рост проблем водоснабжения в связи с ухудшением экологической ситуации
Главная проблема водоснабжения -- нехватка чистой воды, загрязнение вод рек и озер бытовыми и промышленными стоками, стоками животноводческих комплексов. Поэтому необходимо широко внедрять системы оборотного водоснабжения, очистки сточных вод и их использования.
Водные ресурсы являются одним из наиболее важных и вместе с тем наиболее уязвимых компонентов окружающей среды. Их быстрое изменение под влиянием хозяйственной деятельности приводит к обострению ниже описанных проблем.
Нельзя допустить большие потери воды. Они велики не только на пути от водоисточника до потребителя (так, в 1991 г. при суммарном объеме забора воды из природных источников 117 км3, потери составили 9,1 км3), но весьма значительны и в промышленности - 25% и более (за счет утечек в сетях, фильтрации, несовершенства технологических процессов); в жилищно-коммунальном хозяйстве - от 20 до 40% (за счет утечек в жилых и общественных зданиях, коррозии и износа водопроводных сетей); в сельском хозяйстве (переполивы в растениеводстве, завышенные нормы подачи воды для целей животноводства).
Сохраняется многолетняя тенденции нарастания загрязнения поверхностных вод. Годовой объем сброшенных стоков за последние 5 лет практически не изменился и составляет 27 км3. Со сточными водами промышленности, сельского и коммунального хозяйства и водные объекты поступает огромное количество загрязняющих веществ. [7]
Результаты проверки качества водных источников показали: только12% обследованных водных объектов можно отнести к условно чистым (фоновым); 32% - находятся в состояний антропогенного экологического напряжения (умеренно загрязненные); 56% - являются загрязненными годными объектами (или их участками), экосистемы которых находятся в состоянии экологического регресса.
Питьевая вода в настоящее время далеко не высокого качества, показатели которого постоянно ухудшаются. Состояние водных источников (поверхностных и подземных) и систем централизованного водоснабжения не может гарантировать требуемого качества питьевой воды (191). Более 50% жителей вынуждены пользоваться водой, не соответствующей стандартам по различным показателям. Более 20% проб питьевой воды не удовлетворяет действующим нормам по химическим показателям и более 11% по микробиологическим, 4,3% проб питьевой воды представляют реальную опасность для здоровья населения. Основными причинами ухудшения качества питьевой воды являются: несоблюдение режима хозяйственной деятельности в зонах санитарной охраны (17% водоисточников и 24% коммунальных водопроводов из поверхностных источников вообще не имеют санитарно-охранных зон); отсутствие в ряде-случаев очистных сооружений на коммунальных водопроводах (13,1%) и обеззараживающих установок (7,2%), а также вторичное загрязнение воды в разводящих сетях при авариях, количество которых ежегодно возрастает .[8]
Поэтому в связи с ухудшением экологической ситуации окружающей среды тем самым возрастают проблемы водоснабжения. Для решения этих проблем рассмотрим задачи оптимального размещения точек водоснабжения в населенных пунктах.
1.2 Задача оптимального размещения точек водоснабжения в населенных пунктах и их решения
На сегодняшний день существует немало оптимизационных задач для размещения точек в населенных пунктах и за их пределами. К этим задачам относятся статистические, математические методы, а также методы для решения конкретных задач. Статистические методы основаны на общенаучных и экономико-географических методах обработки статистических данных, а с помощью математических методов есть возможность быстро обрабатывать цифровой материал и получать количественные оценки анализируемых явлений.
Рисунок 1. «Карта населенных пунктов»
В данной работе мы рассмотрим задачу оптимального размещения некоторого количества точек водоснабжения, в которой предусматривается, что сумма кратчайших расстояний от населенных пунктов до точек водоснабжения - минимальна. Будем располагать точки водоснабжения на графе, где населенные пункты - вершины графа, оптимально-расположенные точки водоснабжения - медианы графа, а расстояния между этими вершинами являются дугами, которые имеют заданный весовой коэффициент (см. рисунок 1). Таким образом, нам необходимо так расположить точки водоснабжения, чтобы сумма кратчайших расстояний от населенных пунктов до этих точек была минимально возможной. Оптимальное в указанном смысле место расположения точки называется медианой графа. Для решения поставленной задачи будем использовать алгоритм нахождения медиан заданного графа.
1.3 Актуальность использования информационных технологий для планирования размещения точек водоснабжения в населенных пунктах
Актуальность данной работы обусловлена тем, что большинство населения земли проживает в таких регионах, где наблюдается острая нехватка водных ресурсов, из-за чего значительно обостряется конкуренция в использовании поверхностных водных ресурсов. В этих условиях современные крупные города в равной степени нуждаются в разработке концепции развития не только питьевого водоснабжения, где принципиальные вопросы многими государствами в основном решены, но и технического водоснабжения, имеющего свою специфику решения различных водохозяйственных задач. Поэтому требуется решение задач относительно учета факторов риска при обосновании стратегий для вариантов инновационного развития, ресурсного обеспечения и оценки потенциала инфраструктуры водоснабжения городов.
Целью данной работы является нахождения оптимального расположения точек водоснабжения, пользуясь разработками теоретико-методологических и методических основ концепции управления параметрами системы водоснабжения городов. А именно необходимо проанализировать эффективность программную реализацию метода Флойда для решения задач нахождения медиан графа.
Практическая значимость: предложенная программа может быть использована также как для оптимального размещения любого производства (например, больницы, пожарные части, сберегательные банки, товарные склады и т.п.) от населенных пунктов, так и для минимизации финансовых средств от транспортных перевозок. Также в различных формах часто встречаются задачи при выборе места расположения коммутаторов в телефонной сети, подстанций в электросетях, баз снабжения (складов) в сети дорог (где вершины представляют потребителей), отделов сортировки в почтовой связи и др.
1.4 Постановка задачи
Постановка задачи заключается в разработке программы, которая позволяет для заданной карты населенных пунктов, представленной с помощью связного неориентированного графа, определить размещение некоторого количества точек водоснабжения (медиан графа) так, чтобы сумма кратчайших расстояний от населенных пунктов (вершин графа) до точек водоснабжения была минимальной. Для нахождения медиан будем использовать алгоритм Флойда, который базируется на нахождении кратчайшего пути между всеми парами вершин графа.
Описание математической постановки задачи и самого алгоритма нахождения медиан графа, и детальное рассмотрение нахождения медиан с помощью алгоритма Флойда будем рассматривать в следующем разделе.
Выводы к разделу 1
Таким образом, учитывая нынешнюю экологическую ситуацию окружающей среды, необходимое решение проблем расположения точек водоснабжения в населенных пунктах сегодня очень актуально. Благодаря своему широкому применению теория графов в последние годы интенсивно развивается.
В большой мере этому способствует прогресс в области развития больших быстродействующих вычислительных машин. Поэтому особенно актуально использование информационных технологий для планирования размещения точек водоснабжения.
В связи с этим пользуясь разработками теоретико-методологических и методических основ концепции управления параметрами системы водоснабжения городов мы легко можем решить задачу оптимального расположения точек водоснабжения, применяя различные алгоритмы анализа графов. А чтобы рассмотреть эти алгоритмы для начала необходимо ознакомится с основными понятиями теории графов, рассмотренных в следующей главе.
Раздел 2. Задача о размещении медиан в графе и методы ее решения
2.1 Основные понятия теории графов
Граф G задается множеством точек (вершин) (которое обозначается через множество X) и множеством линий (ребер, дуг) (обозначаемых множеством A), соединяющих между собой все или часть этих точек. Граф задается парой (X,А).
Граф называют ориентированным (рис. 2), если его пары и (где ) считают различными. В графе ребро соединяет точку с и имеет направление из вершины в .
Рисунок 2. «Ориентированный граф»
Граф называют неориентированным (рис.3), если порядок записи элементов в парах и (где ) не имеет значения.
Рисунок 3.«Неориентированный граф»
Петлей называется дуга, начальная и конечная вершины которой совпадают.
Граф со взвешенными дугами - это граф, дугам которого приписаны (сопоставлены) некоторые числа , называемые весом (длиной, стоимостью или ценой) пути.
Две вершины называются смежными, если какая-нибудь из двух дуг и или обе одновременно присутствуют в графе.
Две дуги называются смежными, если они различны и имеют общую вершину (независимо от того, является ли эта точка началом или концом для каждой из дуг).
Помеченный граф (или перенумерованный) - граф, вершины которого отличаются одна от другой какими-либо пометками. В качестве пометок обычно используются буквы или целые числа.
Степенью вершины в графе G называется число рёбер, инцидентных (т. е. количество ребер, имеющих граничной вершину).
Цепь - это последовательность ребер , в которой у каждого ребра одна из граничных вершин является также граничной вершиной для ребра , а другая - граничной вершиной для .
Простая цепь - цепь, у которой все ребра различны. В противном случае цепь называют составной.
Цикл - это конечная цепь, начинающаяся в некоторой вершине и заканчивающаяся в той же вершине . Если в цикле все ребра различны, то его называют простым, в противном случае его называют составным.
Цикл с отрицательной суммарной длиной - цикл, обходя который, путь будет иметь сколь угодно малый вес .
Матрица весов - матрица , элементами которой являются длины дуг графа.
Путь - это последовательность дуг, в которой конечная вершина всякой дуги, отличной от последней, является начальной для следующей дуги.
Маршрут - это последовательность ребер в которой каждое ребро , за исключением, возможно, первого и последнего ребер, связано с ребрами и своими двумя концевыми вершинами.
Путь между двумя вершинами называется кратчайшим, если его стоимость минимальна среди стоимостей всех возможных путей между этими двумя вершинами .[4,6]
2.2 Понятие медианы
Для простоты изложения начнем с рассмотрения задачи о размещении точек водоснабжения на графе.
Пусть необходимо выбрать место для размещения точек водоснабжения в населенном пункте. В этой задачи требуется так расположить эти вершины, чтобы сумма кратчайших расстояний от вершин графа до других населенных пунктов была минимально возможной. Оптимальное в указанном смысле место расположения пункта называется медианой графа. Под вершинами графа понимаются точки водоснабжения.
Исходя из природы целевой функции, такие задачи называются минисуммными задачами размещения.
В данной работе мы будем рассматривать минисуммные задачи размещения. В частности рассмотрим задачу о нахождении p-медианы данного графа G; это задача о размещении заданного числа (скажем, p) точек водоснабжения, при которых сумма кратчайших расстояний от вершин графа G до ближайших населенных пунктов принимает минимально возможное значение.
А теперь определим что является медианой.
Задача о p-медиане может быть несколько обобщена, если каждой вершине xj сопоставить некоторый вес vj (представляющий, например, ее размер и важность); тогда целевой функцией, подлежащей минимизации, станет сумма «взвешенных» расстояний.
Пусть дан граф G = (X, Г). Для каждой вершины xi ? X (здесь и далее суммирование ведется по всем xi ? X)
уo(xi) = ? vj d(xi, xj) -- внешнее передаточное число,
уt(xi) = ? vj d(xj, xi) -- внутреннее передаточное число,
где d(xi, xj) -- кратчайшее расстояние от вершины xi до вершины xj.
Вершина xo*, для которой уo(xo* ) = min [ уo(xi) ], называется внешней медианой графа G, а вершина xt*, для которой уt(xt*) = min [ уt(xi) ], называется внутренней медианой графа G.
Рассмотрим выбор точек водоснабжения.
Для этого вернемся к нашей задаче. Итак, повторюсь, что точки водоснабжения можно представить в виде вершин графа, а дороги, проложенные до населенных пунктов -- дуги. На практике каждой вершине присваивается вес vj, представляющий ее «важность» (например, vj может быть числом, равным длине пути, измеряемый, например, в километрах).
В этом случае задача сводится к нахождению места для размещения точек водоснабжения, чтобы сумма расстояний до населенных пунктов было минимальным. Таким образом, возвращаясь к обозначениям, введенным выше, необходимо найти такую вершину xo,t*, чтобы сумма внешних и внутренних передаточных чисел была наименьшей. Тогда вершина xo,t* может быть названа внешне-внутренней медианой. Далее покажем, что точка xo,t* является оптимальной, т. е. для любой другой точки графа (вершины или произвольной точки дуги) общее расстояние при условии, что в этой точке будет располагаться точка водоснабжения, будет не меньше, чем для вершины xo,t*.
Обобщим понятие медианы, определив p-медиану.
Пусть Xp -- подмножество множества вершин X графа G = (X, Г), и положим, что Xp содержит p вершин. Переопределим следующие обозначения
d(Xp, xj) = min [ d(xi, xj) ] и d(xj, Xp) = min [ d(xj, xi) ],
где минимум ищется по всем xi ? X.
Если xi? -- вершина из Xp, на которой достигается минимум в предыдущих формулах, то говорят, что вершина xj прикреплена xi?. Передаточные же числа множества вершин Xp определяются аналогично передаточным числам одиночной вершины:
уo(xi) = ? vj d(Xp, xj) -- внешнее передаточное число,
уt(xi) = ? vj d(xj, Xp) -- внутреннее передаточное число.
Множество же Xo*, для которого уo(Xo*) = min [ уo(xi) ] (минимум ищется по всем Xp ? X), называется внешней p-медианой графа G, аналогично определяется внутренняя p-медиана.
Понятно, что нахождение p-медианы используя непосредственно вышеуказанные формулы нецелесообразно с вычислительной точки зрения.
Далее рассмотрим абсолютные p-медианы.
Для упрощения задачи будем далее рассматривать неориентированный граф G. Т. о. индексы t и o будут отсутствовать, т. к. внешние и внутренние передаточные числа будут совпадать. Точку графа (вершина или точка дуги), для которой передаточное число будет принимать наименьшее значение, будем называть абсолютной медианой графа G. [1]
2.3 Методы нахождения медиан графа
Существует несколько методов нахождения медиан графа.
К этим методам относятся:
1). Метод Беллмана-Форда.
Данный метод был предложен независимо Ричардом Бел-лманом и Лестером Фордом и позволяет найти кратчайшие пути из одной вершины ко всем остальным вершинам, для случая, когда веса ребер могут быть отрицательными.
Алгоритм вернет значение true, если в графе нет отрицательных циклов, и false, если таковой цикл имеется. Если в графе есть отрицательные циклы, то задача о поиске кратчайших путей (по крайней мере, для некоторых вершин) не существует [6].
2) Метод Дейкстры.
Этот метод основан:
- на приписывании вершинам графа временных пометок, причем пометка вершины дает верхнюю границу длины пути от к этой вершине;
- пометки (их величины) постепенно уменьшаются с помощью некоторой итеративной процедуры;
- на каждом шаге итерации одна из временных меток становится постоянной, т. е. эта пометка уже не является верхней границей, а дает длины кратчайшего пути от вершины к рассматриваемой вершине.
3) Эвристический метод.
Тейц и Барт предложили эвристический метод для нахождения p-медианы. Метод состоит в следующем: случайным образом выбираются p вершин, они образуют начальное множество S, аппроксимирующее p-медианное множество Xp*. Затем выясняется, может ли некоторая вершина xj ? X \ S заменить вершину xi ? S (как медианная вершина), для чего строят новое множество S* = (S ? {xj}) \ {xi} и сравнивают передаточные числа у(S*) и у(S). Если у(S*) < у(S), то S заменяют на S*, которое лучше аппроксимирует p-медианное множество Xp*. Затем аналогично исследуется множество S* и т. д., пока не будет построено множество S^, которое нельзя будет изменить по вышеуказанному принципу.
4). Метод Флойда.
Один из наиболее эффективных методов решения задачи о нахождении медиан графа предложил Флойд.
В данной работе мы находим медианы неориентированного графа.
Этот метод применяют, если необходимо найти кратчайшие пути между всеми парами вершин. Метод базируется на использовании последовательности из n преобразований начальной матрицы весов . При этом на каждой итерации матрица представляет собой длины кратчайших путей между каждой парой вершин с тем ограничением, что путь между и ; (для любых и) содержит в качестве промежуточных только вершины из множества .
2.4 Алгоритм нахождения медиан графа
Пользуясь рассмотренным выше методом Флойда распишем пошагово алгоритм нахождения медиан графа.
Предположим, что в начальной матрице весов для всех и , если в графе отсутствует дуга .
Присвоение начальных значений
Шаг 1. Положить.
Итерация:
Шаг 2. .
Шаг 3. Для всех , таких, что , и для всех , так,
что , введем операцию: .
Проверка на окончание:
Шаг 4. (а) Если , то в графе существует цикл
отрицательного веса, содержащий вершину и решения нет.
Остановка алгоритма.
(б) Если все и , то получено решение. Матрица
дает длины всех кратчайших путей. Остановка алгоритма.
(в) Если все и , то вернуться к шагу 2. [2]
2.5 Примеры нахождения медиан графа
Рассмотрим 2 примера, используя алгоритм Флойда. При чем в первом примере мы находим 1 медиану, а во втором 2.
Пример 1
Рисунок 4. «Пример 1»
Необходимо найти медиану графа (их может быть несколько).
Решение:
1. Получим матрицу длин кратчайших путей для заданного графа (см. рисунок 4). Применим для этого алгоритм Флойда.
На основании исходных данных формируем матрицу длин кратчайших дуг D0, каждый элемент которой равен длине кратчайщей дуги между вершинами i и j. Если такой дуги нет, положим значение элемента равным ?.
D0: 0 3 ? ?
? 0 5 ?
? ? 0 7
6 ? ? 0
На основании матрицы D0, вычислим последовательно все элементы матрицы D1. Для этого мы используем рекуррентное соотношение di,j1=min{ di,10+ d1,j0; di,j0}.
d1,11=min{d1,10+d1,10d1,10}=min{0+0; 0}=0
d1,21=min{d1,10+d1,20d1,20}=min{0+3; 3}=3
d1,31=min{d1,10+d1,30d1,30}=min{0+?; ?}=?
d1,41=min{d1,10+d1,40d1,40}=min{0+?; ?}=?
d2,11=min{d2,10+d1,10d2,10}=min{?+0; ?}=?
d2,21=min{d2,10+d1,20d2,20}=min{?+3; 0}=0
d2,31=min{d2,10+d1,30d2,30}=min{?+?; 5}=5
d2,41=min{d2,10+d1,40d2,40}=min{?+?; ?}=?
d3,11=min{d3,10+d1,10d3,10}=min{?+0; ?}=?
d3,21=min{d3,10+d1,20d3,20}=min{?+3; ?}=?
d3,31=min{d3,10+d1,30d3,30}=min{?+?; 0}=0
d3,41=min{d3,10+d1,40d3,40}=min{?+?; 7}=7
d4,11=min{d4,10+d1,10d4,10}=min{6+0; 6}=6
d4,21=min{d4,10+d1,20d4,20}=min{6+3; ?}=9
d4,31=min{d4,10+d1,30d4,30}=min{6+?; ?}=?
d4,41=min{d4,10+d1,40d4,40}=min{6+?; 0}=0
Представим матрицу D1, включив в нее рассчитанные элементы.
D1: 0 3 ? ?
? 0 5 ?
? ? 0 7
6 9 ? 0
На основании матрицы D1, вычислим последовательно все элементы матрицы D2. Для этого мы используем рекуррентное соотношение di,j2=min{ di,21+ d2,j1; di,j1}.
d1,12=min{d1,21+d2,11d1,11}=min{3+?; 0}=0
d1,22=min{d1,21+d2,21d1,21}=min{3+0; 3}=3
d1,32=min{d1,21+d2,31d1,31}=min{3+5; ?}=8
d1,42=min{d1,21+d2,41d1,41}=min{3+?; ?}=?
d2,12=min{d2,21+d2,11d2,11}=min{0+?; ?}=?
d2,22=min{d2,21+d2,21d2,21}=min{0+0; 0}=0
d2,32=min{d2,21+d2,31d2,31}=min{0+5; 5}=5
d2,42=min{d2,21+d2,41d2,41}=min{0+?; ?}=?
d3,12=min{d3,21+d2,11d3,11}=min{?+?; ?}=?
d3,22=min{d3,21+d2,21d3,21}=min{?+0; ?}=?
d3,32=min{d3,21+d2,31d3,31}=min{?+5; 0}=0
d3,42=min{d3,21+d2,41d3,41}=min{?+?; 7}=7
d4,12=min{d4,21+d2,11d4,11}=min{9+?; 6}=6
d4,22=min{d4,21+d2,21d4,21}=min{9+0; 9}=9
d4,32=min{d4,21+d2,31d4,31}=min{9+5; ?}=14
d4,42=min{d4,21+d2,41d4,41}=min{9+?; 0}=0
Представим матрицу D2, включив в нее рассчитанные элементы.
D2: 0 3 8 ?
? 0 5 ?
? ? 0 7
6 9 14 0
На основании матрицы D2, вычислим последовательно все элементы матрицы D3. Для этого мы используем рекуррентное соотношение di,j3=min{ di,32+ d3,j2; di,j2}.
d1,13=min{d1,32+d3,12d1,12}=min{8+?; 0}=0
d1,23=min{d1,32+d3,22d1,22}=min{8+?; 3}=3
d1,33=min{d1,32+d3,32d1,32}=min{8+0; 8}=8
d1,43=min{d1,32+d3,42d1,42}=min{8+7; ?}=15
d2,13=min{d2,32+d3,12d2,12}=min{5+?; ?}=?
d2,23=min{d2,32+d3,22d2,22}=min{5+?; 0}=0
d2,33=min{d2,32+d3,32d2,32}=min{5+0; 5}=5
d2,43=min{d2,32+d3,42d2,42}=min{5+7; ?}=12
d3,13=min{d3,32+d3,12d3,12}=min{0+?; ?}=?
d3,23=min{d3,32+d3,22d3,22}=min{0+?; ?}=?
d3,33=min{d3,32+d3,32d3,32}=min{0+0; 0}=0
d3,43=min{d3,32+d3,42d3,42}=min{0+7; 7}=7
d4,13=min{d4,32+d3,12d4,12}=min{14+?; 6}=6
d4,23=min{d4,32+d3,22d4,22}=min{14+?; 9}=9
d4,33=min{d4,32+d3,32d4,32}=min{14+0; 14}=14
d4,43=min{d4,32+d3,42d4,42}=min{14+7; 0}=0
Представим матрицу D3, включив в нее рассчитанные элементы.
D3: 0 3 8 15
? 0 5 12
? ? 0 7
6 9 14 0
На основании матрицы D3, вычислим последовательно все элементы матрицы D4. Для этого мы используем рекуррентное соотношение di,j4=min{ di,43+ d4,j3; di,j3}.
d1,14=min{d1,43+d4,13d1,13}=min{15+6; 0}=0
d1,24=min{d1,43+d4,23d1,23}=min{15+9; 3}=3
d1,34=min{d1,43+d4,33d1,33}=min{15+14; 8}=8
d1,44=min{d1,43+d4,43d1,43}=min{15+0; 15}=15
d2,14=min{d2,43+d4,13d2,13}=min{12+6; ?}=18
d2,24=min{d2,43+d4,23d2,23}=min{12+9; 0}=0
d2,34=min{d2,43+d4,33d2,33}=min{12+14; 5}=5
d2,44=min{d2,43+d4,43d2,43}=min{12+0; 12}=12
d3,14=min{d3,43+d4,13d3,13}=min{7+6; ?}=13
d3,24=min{d3,43+d4,23d3,23}=min{7+9; ?}=16
d3,34=min{d3,43+d4,33d3,33}=min{7+14; 0}=0
d3,44=min{d3,43+d4,43d3,43}=min{7+0; 7}=7
d4,14=min{d4,43+d4,13d4,13}=min{0+6; 6}=6
d4,24=min{d4,43+d4,23d4,23}=min{0+9; 9}=9
d4,34=min{d4,43+d4,33d4,33}=min{0+14; 14}=14
d4,44=min{d4,43+d4,43d4,43}=min{0+0; 0}=0
Представим матрицу D4, включив в нее рассчитанные элементы.
D4: 0 3 8 15
18 0 5 12
13 16 0 7
6 9 14 0
В результате, нами получена матрица длин кратчайших путей между каждой парой вершин графа. Ниже представлена таблица путей. Каждый элемент Cij таблицы, это путь из вершины i в вершину j:
Таблица путей 1 2 3 4:
1 - d1-2=1-2 d1-3=1-2-3 d1-4=1-2-3-4
2 d2-1=2-3-4-1 - d2-3=2-3 d2-4=2-3-4
3 d3-1=3-4-1 d3-2=3-4-1-2 - d3-4=3-4
4 d4-1=4-1 d4-2=4-1-2 d4-3=4-1-2-3 -
2. Поиск медианы.
Основываясь на полученой нами матрице длин кратчайших путей, найдем CВВ(i) для каждой вершины графа
CВВ(i)=Уd(i, j).
CВВ(1)==Уjd(1, j)=26
CВВ(2)==Уjd(2, j)=35
CВВ(3)==Уjd(3, j)=36
CВВ(4)==Уjd(4, j)=29
Медианой графа является такая вершина x, для которой СВВ(x)=min{СВВ(i)}. Минимальное значение имеет СВВ(1)=26, а это значит, что вершина 1 является медианой графа.
Пример 2
Рисунок 5. «Пример 2»
1. Получим матрицу длин кратчайших путей для заданного графа (см. рис. 6).
На основании исходных данных формируем матрицу длин кратчайших дуг D0, каждый элемент которой равен длине кратчайщей дуги между вершинами i и j. Если такой дуги нет, положим значение элемента равным ?.
На основании матрицы D0, вычислим последовательно все элементы матрицы D1. Для этого мы используем рекуррентное соотношение
di,j1=min{ di,10+ d1,j0; di,j0}.
d1,11=min{d1,10+d1,10d1,10}=min{0+0; 0}=0
d1,21=min{d1,10+d1,20d1,20}=min{0+1; 1}=1
d1,31=min{d1,10+d1,30d1,30}=min{0+?; ?}=?
d1,41=min{d1,10+d1,40d1,40}=min{0+?; ?}=?
d1,51=min{d1,10+d1,50d1,50}=min{0+?; ?}=?
d1,61=min{d1,10+d1,60d1,60}=min{0+?; ?}=?
d2,11=min{d2,10+d1,10d2,10}=min{?+0; ?}=?
d2,21=min{d2,10+d1,20d2,20}=min{?+1; 0}=0
d2,31=min{d2,10+d1,30d2,30}=min{?+?; 2}=2
d2,41=min{d2,10+d1,40d2,40}=min{?+?; ?}=?
d2,51=min{d2,10+d1,50d2,50}=min{?+?; ?}=?
d2,61=min{d2,10+d1,60d2,60}=min{?+?; ?}=?
d3,11=min{d3,10+d1,10d3,10}=min{?+0; ?}=?
d3,21=min{d3,10+d1,20d3,20}=min{?+1; ?}=?
d3,31=min{d3,10+d1,30d3,30}=min{?+?; 0}=0
d3,41=min{d3,10+d1,40d3,40}=min{?+?; 2}=2
d3,51=min{d3,10+d1,50d3,50}=min{?+?; ?}=?
d3,61=min{d3,10+d1,60d3,60}=min{?+?; ?}=?
d4,11=min{d4,10+d1,10d4,10}=min{?+0; ?}=?
d4,21=min{d4,10+d1,20d4,20}=min{?+1; ?}=?
d4,31=min{d4,10+d1,30d4,30}=min{?+?; ?}=?
d4,41=min{d4,10+d1,40d4,40}=min{?+?; 0}=0
d4,51=min{d4,10+d1,50d4,50}=min{?+?; 2}=2
d4,61=min{d4,10+d1,60d4,60}=min{?+?; ?}=?
d5,11=min{d5,10+d1,10d5,10}=min{?+0; ?}=?
d5,21=min{d5,10+d1,20d5,20}=min{?+1; ?}=?
d5,31=min{d5,10+d1,30d5,30}=min{?+?; ?}=?
d5,41=min{d5,10+d1,40d5,40}=min{?+?; ?}=?
d5,51=min{d5,10+d1,50d5,50}=min{?+?; 0}=0
d5,61=min{d5,10+d1,60d5,60}=min{?+?; 3}=3
d6,11=min{d6,10+d1,10d6,10}=min{2+0; 2}=2
d6,21=min{d6,10+d1,20d6,20}=min{2+1; ?}=3
d6,31=min{d6,10+d1,30d6,30}=min{2+?; ?}=?
d6,41=min{d6,10+d1,40d6,40}=min{2+?; ?}=?
d6,51=min{d6,10+d1,50d6,50}=min{2+?; ?}=?
d6,61=min{d6,10+d1,60d6,60}=min{2+?; 0}=0
di,j2=min{ di,21+ d2,j1; di,j1}.
d1,12=min{d1,21+d2,11d1,11}=min{1+?; 0}=0
d1,22=min{d1,21+d2,21d1,21}=min{1+0; 1}=1
d1,32=min{d1,21+d2,31d1,31}=min{1+2; ?}=3
d1,42=min{d1,21+d2,41d1,41}=min{1+?; ?}=?
d1,52=min{d1,21+d2,51d1,51}=min{1+?; ?}=?
d1,62=min{d1,21+d2,61d1,61}=min{1+?; ?}=?
d2,12=min{d2,21+d2,11d2,11}=min{0+?; ?}=?
d2,22=min{d2,21+d2,21d2,21}=min{0+0; 0}=0
d2,32=min{d2,21+d2,31d2,31}=min{0+2; 2}=2
d2,42=min{d2,21+d2,41d2,41}=min{0+?; ?}=?
d2,52=min{d2,21+d2,51d2,51}=min{0+?; ?}=?
d2,62=min{d2,21+d2,61d2,61}=min{0+?; ?}=?
d3,12=min{d3,21+d2,11d3,11}=min{?+?; ?}=?
d3,22=min{d3,21+d2,21d3,21}=min{?+0; ?}=?
d3,32=min{d3,21+d2,31d3,31}=min{?+2; 0}=0
d3,42=min{d3,21+d2,41d3,41}=min{?+?; 2}=2
d3,52=min{d3,21+d2,51d3,51}=min{?+?; ?}=?
d3,62=min{d3,21+d2,61d3,61}=min{?+?; ?}=?
d4,12=min{d4,21+d2,11d4,11}=min{?+?; ?}=?
d4,22=min{d4,21+d2,21d4,21}=min{?+0; ?}=?
d4,32=min{d4,21+d2,31d4,31}=min{?+2; ?}=?
d4,42=min{d4,21+d2,41d4,41}=min{?+?; 0}=0
d4,52=min{d4,21+d2,51d4,51}=min{?+?; 2}=2
d4,62=min{d4,21+d2,61d4,61}=min{?+?; ?}=?
d5,12=min{d5,21+d2,11d5,11}=min{?+?; ?}=?
d5,22=min{d5,21+d2,21d5,21}=min{?+0; ?}=?
d5,32=min{d5,21+d2,31d5,31}=min{?+2; ?}=?
d5,42=min{d5,21+d2,41d5,41}=min{?+?; ?}=?
d5,52=min{d5,21+d2,51d5,51}=min{?+?; 0}=0
d5,62=min{d5,21+d2,61d5,61}=min{?+?; 3}=3
d6,12=min{d6,21+d2,11d6,11}=min{3+?; 2}=2
d6,22=min{d6,21+d2,21d6,21}=min{3+0; 3}=3
d6,32=min{d6,21+d2,31d6,31}=min{3+2; ?}=5
d6,42=min{d6,21+d2,41d6,41}=min{3+?; ?}=?
d6,52=min{d6,21+d2,51d6,51}=min{3+?; ?}=?
d6,62=min{d6,21+d2,61d6,61}=min{3+?; 0}=0
di,j3=min{ di,32+ d3,j2; di,j2}.
d1,13=min{d1,32+d3,12d1,12}=min{3+?; 0}=0
d1,23=min{d1,32+d3,22d1,22}=min{3+?; 1}=1
d1,33=min{d1,32+d3,32d1,32}=min{3+0; 3}=3
d1,43=min{d1,32+d3,42d1,42}=min{3+2; ?}=5
d1,53=min{d1,32+d3,52d1,52}=min{3+?; ?}=?
d1,63=min{d1,32+d3,62d1,62}=min{3+?; ?}=?
d2,13=min{d2,32+d3,12d2,12}=min{2+?; ?}=?
d2,23=min{d2,32+d3,22d2,22}=min{2+?; 0}=0
d2,33=min{d2,32+d3,32d2,32}=min{2+0; 2}=2
d2,43=min{d2,32+d3,42d2,42}=min{2+2; ?}=4
d2,53=min{d2,32+d3,52d2,52}=min{2+?; ?}=?
d2,63=min{d2,32+d3,62d2,62}=min{2+?; ?}=?
d3,13=min{d3,32+d3,12d3,12}=min{0+?; ?}=?
d3,23=min{d3,32+d3,22d3,22}=min{0+?; ?}=?
d3,33=min{d3,32+d3,32d3,32}=min{0+0; 0}=0
d3,43=min{d3,32+d3,42d3,42}=min{0+2; 2}=2
d3,53=min{d3,32+d3,52d3,52}=min{0+?; ?}=?
d3,63=min{d3,32+d3,62d3,62}=min{0+?; ?}=?
d4,13=min{d4,32+d3,12d4,12}=min{?+?; ?}=?
d4,23=min{d4,32+d3,22d4,22}=min{?+?; ?}=?
d4,33=min{d4,32+d3,32d4,32}=min{?+0; ?}=?
d4,43=min{d4,32+d3,42d4,42}=min{?+2; 0}=0
d4,53=min{d4,32+d3,52d4,52}=min{?+?; 2}=2
d4,63=min{d4,32+d3,62d4,62}=min{?+?; ?}=?
d5,13=min{d5,32+d3,12d5,12}=min{?+?; ?}=?
d5,23=min{d5,32+d3,22d5,22}=min{?+?; ?}=?
d5,33=min{d5,32+d3,32d5,32}=min{?+0; ?}=?
d5,43=min{d5,32+d3,42d5,42}=min{?+2; ?}=?
d5,53=min{d5,32+d3,52d5,52}=min{?+?; 0}=0
d5,63=min{d5,32+d3,62d5,62}=min{?+?; 3}=3
d6,13=min{d6,32+d3,12d6,12}=min{5+?; 2}=2
d6,23=min{d6,32+d3,22d6,22}=min{5+?; 3}=3
d6,33=min{d6,32+d3,32d6,32}=min{5+0; 5}=5
d6,43=min{d6,32+d3,42d6,42}=min{5+2; ?}=7
d6,53=min{d6,32+d3,52d6,52}=min{5+?; ?}=?
d6,63=min{d6,32+d3,62d6,62}=min{5+?; 0}=0
di,j4=min{ di,43+ d4,j3; di,j3}.
d1,14=min{d1,43+d4,13d1,13}=min{5+?; 0}=0
d1,24=min{d1,43+d4,23d1,23}=min{5+?; 1}=1
d1,34=min{d1,43+d4,33d1,33}=min{5+?; 3}=3
d1,44=min{d1,43+d4,43d1,43}=min{5+0; 5}=5
d1,54=min{d1,43+d4,53d1,53}=min{5+2; ?}=7
d1,64=min{d1,43+d4,63d1,63}=min{5+?; ?}=?
d2,14=min{d2,43+d4,13d2,13}=min{4+?; ?}=?
d2,24=min{d2,43+d4,23d2,23}=min{4+?; 0}=0
d2,34=min{d2,43+d4,33d2,33}=min{4+?; 2}=2
d2,44=min{d2,43+d4,43d2,43}=min{4+0; 4}=4
d2,54=min{d2,43+d4,53d2,53}=min{4+2; ?}=6
d2,64=min{d2,43+d4,63d2,63}=min{4+?; ?}=?
d3,14=min{d3,43+d4,13d3,13}=min{2+?; ?}=?
d3,24=min{d3,43+d4,23d3,23}=min{2+?; ?}=?
d3,34=min{d3,43+d4,33d3,33}=min{2+?; 0}=0
d3,44=min{d3,43+d4,43d3,43}=min{2+0; 2}=2
d3,54=min{d3,43+d4,53d3,53}=min{2+2; ?}=4
d3,64=min{d3,43+d4,63d3,63}=min{2+?; ?}=?
d4,14=min{d4,43+d4,13d4,13}=min{0+?; ?}=?
d4,24=min{d4,43+d4,23d4,23}=min{0+?; ?}=?
d4,34=min{d4,43+d4,33d4,33}=min{0+?; ?}=?
d4,44=min{d4,43+d4,43d4,43}=min{0+0; 0}=0
d4,54=min{d4,43+d4,53d4,53}=min{0+2; 2}=2
d4,64=min{d4,43+d4,63d4,63}=min{0+?; ?}=?
d5,14=min{d5,43+d4,13d5,13}=min{?+?; ?}=?
d5,24=min{d5,43+d4,23d5,23}=min{?+?; ?}=?
d5,34=min{d5,43+d4,33d5,33}=min{?+?; ?}=?
d5,44=min{d5,43+d4,43d5,43}=min{?+0; ?}=?
d5,54=min{d5,43+d4,53d5,53}=min{?+2; 0}=0
d5,64=min{d5,43+d4,63d5,63}=min{?+?; 3}=3
d6,14=min{d6,43+d4,13d6,13}=min{7+?; 2}=2
d6,24=min{d6,43+d4,23d6,23}=min{7+?; 3}=3
d6,34=min{d6,43+d4,33d6,33}=min{7+?; 5}=5
d6,44=min{d6,43+d4,43d6,43}=min{7+0; 7}=7
d6,54=min{d6,43+d4,53d6,53}=min{7+2; ?}=9
d6,64=min{d6,43+d4,63d6,63}=min{7+?; 0}=0
di,j5=min{ di,54+ d5,j4; di,j4}.
d1,15=min{d1,54+d5,14d1,14}=min{7+?; 0}=0
d1,25=min{d1,54+d5,24d1,24}=min{7+?; 1}=1
d1,35=min{d1,54+d5,34d1,34}=min{7+?; 3}=3
d1,45=min{d1,54+d5,44d1,44}=min{7+?; 5}=5
d1,55=min{d1,54+d5,54d1,54}=min{7+0; 7}=7
d1,65=min{d1,54+d5,64d1,64}=min{7+3; ?}=10
d2,15=min{d2,54+d5,14d2,14}=min{6+?; ?}=?
d2,25=min{d2,54+d5,24d2,24}=min{6+?; 0}=0
d2,35=min{d2,54+d5,34d2,34}=min{6+?; 2}=2
d2,45=min{d2,54+d5,44d2,44}=min{6+?; 4}=4
d2,55=min{d2,54+d5,54d2,54}=min{6+0; 6}=6
d2,65=min{d2,54+d5,64d2,64}=min{6+3; ?}=9
d3,15=min{d3,54+d5,14d3,14}=min{4+?; ?}=?
d3,25=min{d3,54+d5,24d3,24}=min{4+?; ?}=?
d3,35=min{d3,54+d5,34d3,34}=min{4+?; 0}=0
d3,45=min{d3,54+d5,44d3,44}=min{4+?; 2}=2
d3,55=min{d3,54+d5,54d3,54}=min{4+0; 4}=4
d3,65=min{d3,54+d5,64d3,64}=min{4+3; ?}=7
d4,15=min{d4,54+d5,14d4,14}=min{2+?; ?}=?
Подобные документы
Программная реализация алгоритма составления каталога товаров из сети электронных магазинов с выявлением одинаковых, используя сравнение по изображениям. SURF-метод в основе алгоритма: поиск особых точек на изображении и составление их дескрипторов.
дипломная работа [3,1 M], добавлен 27.06.2012Описание системы автономного водоснабжения административного здания морского терминала ЗАО "Каспийский Трубопроводный Консорциум". Разработка и программная реализация алгоритма управления системой. Анализ и нормирование вредных производственных факторов.
дипломная работа [2,9 M], добавлен 14.11.2010Блок-схема алгоритма Флойда. Разработка его псевдокода в программе Microsoft Visual Studio. Программа реализации алгоритмов Беллмана-Форда. Анализ трудоемкости роста функции. Протокол тестирования правильности работы программы по алгоритму Флойда.
курсовая работа [653,5 K], добавлен 18.02.2013Анализ современных информационных технологий цехового планирования. Разработка математической модели объекта проектирования. Формализация модели бизнес-процесса АРМа цехового плановика. Детальная разработка модулей программного продукта планирования.
дипломная работа [4,9 M], добавлен 29.06.2012Исследование существующего документооборота. Методика расчета планирования обновления оборудования. Описание программных средств, выбора интерфейса. Разработка и реализация приложения системы мониторинга, учета и планирования обновления оборудования.
дипломная работа [2,0 M], добавлен 07.03.2015- Разработка алгоритма информационной поддержки работы должностных лиц на основе гипермедиа–технологий
Анализ информационного процесса в органах управления связью штаба на этапе планирования связи. Методика информационной поддержки работы должностных лиц при планировании связи на основе гипермедиа-технологий. Процесс планирования полевой опорной сети.
дипломная работа [480,8 K], добавлен 17.07.2012 Методология и технология разработки программного продукта. Решение задачи поиска кратчайших путей между всеми парами пунктов назначения, используя алгоритм Флойда. Разработка интерфейса программы, с использованием среды Delphi Borland Developer Studio.
курсовая работа [2,0 M], добавлен 26.07.2014Разработка алгоритма фильтрации данных, полученных с систем спутниковой навигации с помощью GNSS-модуля. Анализ работы фильтра Калмана, его программная реализация под конкретную задачу. Выбор навигационных модулей для получения данных позиционирования.
дипломная работа [3,6 M], добавлен 12.01.2016Изучение основных понятий и определений теории графов. Рассмотрение методов нахождения кратчайших путей между фиксированными вершинами. Представление математического и программного обоснования алгоритма Флойда. Приведение примеров применения программы.
контрольная работа [1,4 M], добавлен 04.07.2011Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.
курсовая работа [314,2 K], добавлен 27.01.2015