Разработка системы планирования размещения точек водоснабжения в населенных пунктах
Использование информационных технологий для планирования размещения оптимальных точек водоснабжения, используя теорию графов. Функциональные возможности разрабатываемого приложения. Программная реализация основных модулей на основе алгоритма Флойда.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 31.01.2012 |
Размер файла | 818,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
d4,25=min{d4,54+d5,24d4,24}=min{2+?; ?}=?
d4,35=min{d4,54+d5,34d4,34}=min{2+?; ?}=?
d4,45=min{d4,54+d5,44d4,44}=min{2+?; 0}=0
d4,55=min{d4,54+d5,54d4,54}=min{2+0; 2}=2
d4,65=min{d4,54+d5,64d4,64}=min{2+3; ?}=5
d5,15=min{d5,54+d5,14d5,14}=min{0+?; ?}=?
d5,25=min{d5,54+d5,24d5,24}=min{0+?; ?}=?
d5,35=min{d5,54+d5,34d5,34}=min{0+?; ?}=?
d5,45=min{d5,54+d5,44d5,44}=min{0+?; ?}=?
d5,55=min{d5,54+d5,54d5,54}=min{0+0; 0}=0
d5,65=min{d5,54+d5,64d5,64}=min{0+3; 3}=3
d6,15=min{d6,54+d5,14d6,14}=min{9+?; 2}=2
d6,25=min{d6,54+d5,24d6,24}=min{9+?; 3}=3
d6,35=min{d6,54+d5,34d6,34}=min{9+?; 5}=5
d6,45=min{d6,54+d5,44d6,44}=min{9+?; 7}=7
d6,55=min{d6,54+d5,54d6,54}=min{9+0; 9}=9
d6,65=min{d6,54+d5,64d6,64}=min{9+3; 0}=0
di,j6=min{ di,65+ d6,j5; di,j5}.
d1,16=min{d1,65+d6,15d1,15}=min{10+2; 0}=0
d1,26=min{d1,65+d6,25d1,25}=min{10+3; 1}=1
d1,36=min{d1,65+d6,35d1,35}=min{10+5; 3}=3
d1,46=min{d1,65+d6,45d1,45}=min{10+7; 5}=5
d1,56=min{d1,65+d6,55d1,55}=min{10+9; 7}=7
d1,66=min{d1,65+d6,65d1,65}=min{10+0; 10}=10
d2,16=min{d2,65+d6,15d2,15}=min{9+2; ?}=11
d2,26=min{d2,65+d6,25d2,25}=min{9+3; 0}=0
d2,36=min{d2,65+d6,35d2,35}=min{9+5; 2}=2
d2,46=min{d2,65+d6,45d2,45}=min{9+7; 4}=4
d2,56=min{d2,65+d6,55d2,55}=min{9+9; 6}=6
d2,66=min{d2,65+d6,65d2,65}=min{9+0; 9}=9
d3,16=min{d3,65+d6,15d3,15}=min{7+2; ?}=9
d3,26=min{d3,65+d6,25d3,25}=min{7+3; ?}=10
d3,36=min{d3,65+d6,35d3,35}=min{7+5; 0}=0
d3,46=min{d3,65+d6,45d3,45}=min{7+7; 2}=2
d3,56=min{d3,65+d6,55d3,55}=min{7+9; 4}=4
d3,66=min{d3,65+d6,65d3,65}=min{7+0; 7}=7
d4,16=min{d4,65+d6,15d4,15}=min{5+2; ?}=7
d4,26=min{d4,65+d6,25d4,25}=min{5+3; ?}=8
d4,36=min{d4,65+d6,35d4,35}=min{5+5; ?}=10
d4,46=min{d4,65+d6,45d4,45}=min{5+7; 0}=0
d4,56=min{d4,65+d6,55d4,55}=min{5+9; 2}=2
d4,66=min{d4,65+d6,65d4,65}=min{5+0; 5}=5
d5,16=min{d5,65+d6,15d5,15}=min{3+2; ?}=5
d5,26=min{d5,65+d6,25d5,25}=min{3+3; ?}=6
d5,36=min{d5,65+d6,35d5,35}=min{3+5; ?}=8
d5,46=min{d5,65+d6,45d5,45}=min{3+7; ?}=10
d5,56=min{d5,65+d6,55d5,55}=min{3+9; 0}=0
d5,66=min{d5,65+d6,65d5,65}=min{3+0; 3}=3
d6,16=min{d6,65+d6,15d6,15}=min{0+2; 2}=2
d6,26=min{d6,65+d6,25d6,25}=min{0+3; 3}=3
d6,36=min{d6,65+d6,35d6,35}=min{0+5; 5}=5
d6,46=min{d6,65+d6,45d6,45}=min{0+7; 7}=7
d6,56=min{d6,65+d6,55d6,55}=min{0+9; 9}=9
d6,66=min{d6,65+d6,65d6,65}=min{0+0; 0}=0
В результате, нами получена матрица длин кратчайших путей между каждой парой вершин графа. Ниже представлена таблица путей. Каждый элемент Cij таблицы, это путь из вершины i в вершину j
Таблица путей
1 |
2 |
3 |
4 |
5 |
6 |
||
1 |
- |
d1-2=1-2 |
d1-3=1-2-3 |
d1-4=1-2-3-4 |
d1-5=1-2-3-4-5 |
d1-6=1-2-3-4-5-6 |
|
2 |
d2-1=2-3-4-5-6-1 |
- |
d2-3=2-3 |
d2-4=2-3-4 |
d2-5=2-3-4-5 |
d2-6=2-3-4-5-6 |
|
3 |
d3-1=3-4-5-6-1 |
d3-2=3-4-5-6-1-2 |
- |
d3-4=3-4 |
d3-5=3-4-5 |
d3-6=3-4-5-6 |
|
4 |
d4-1=4-5-6-1 |
d4-2=4-5-6-1-2 |
d4-3=4-5-6-1-2-3 |
- |
d4-5=4-5 |
d4-6=4-5-6 |
|
5 |
d5-1=5-6-1 |
d5-2=5-6-1-2 |
d5-3=5-6-1-2-3 |
d5-4=5-6-1-2-3-4 |
- |
d5-6=5-6 |
|
6 |
d6-1=6-1 |
d6-2=6-1-2 |
d6-3=6-1-2-3 |
d6-4=6-1-2-3-4 |
d6-5=6-1-2-3-4-5 |
- |
2. Поиск медианы
Основываясь на полученной нами матрице длин кратчайших путей, найдем CВВ(i) для каждой вершины графа
CВВ(i)=Уd(i, j).
CВВ(1)==Уjd(1, j)=26
CВВ(2)==Уjd(2, j)=32
CВВ(3)==Уjd(3, j)=32
CВВ(4)==Уjd(4, j)=32
CВВ(5)==Уjd(5, j)=32
CВВ(6)==Уjd(6, j)=26
Медианами графа является такая вершина x, для которой
СВВ(x)=min{СВВ(i)}
Минимальное значение имеет СВВ(1) и СВВ(6)=26, а это значит, что вершина 1 и вершина 6 являются медианами графа.
Выводы к разделу 2
Теория графов находит широкое применение в различных областях науки и техники. Многие математические факты удобно формулировать на языке графов. В последнее время теория графов находит всё больше применений в прикладных вопросах. Графы стали широко использовать в теории массового обслуживания, поскольку там возникают задачи оптимального размещения точек обслуживания. Основной проблемой является минимизация расстояния от любой точки населенного пункта до ближайшего пункта обслуживания.
К решению подобных задач применимы алгоритмы поиска кратчайших путей, поскольку пункты массового обслуживания можно представить вершинами графа, а расстояния между ними - дугами графа.
В информатике графы применяют для наглядного моделирования информационных процессов, для составления программ автоматизированной разработки, алгоритмов решения задач. Графы играют важную роль в теории информации.
Поэтому использование графов в разработках систем планирования размещения объектов в населенных пунктах не только актуально на сегодняшний день, но и практично и удобно в использовании.
оптимальный алгоритм граф флойд
Раздел 3. Программная реализация системы планирования размещения точек водоснабжения в населенных пунктах
3.1 Описание функциональных возможностей разрабатываемого приложения. Информационная структура приложения
Нахождение медиан графа реализовано в методе Флойда в среде программирования Delfi.
Чтобы найти медианы графа необходимо построить граф.
Для задания матрицы весов и количества вершин предусмотрена возможность их введения как вручную, так и из текстового файла. Для этого нужно нажать на вкладку «ввод» и выбрать соответствующее действие (рисунок 7).
Рисунок 7. «Форма программы»
Если вы выбрали «считать из файла», то у вас появится окно (рисунок 8), в котором нужно выбрать: 1.txt (нахождение 1 медианы графа) или 2.txt (нахождение 2 медиан графа) или 3.txt (нет медиан, т.к. задан несвязный граф), которые показаны на рисунках 9,10 и 11 соответственно.
Также предусмотрено изменение элементов матрице вручную на форме программы.
Рисунок 8. «Окно для выбора текстового файла»
Рисунок 9. «Текстовый файл для нахождения 1 медианы»
Рисунок 10. «Текстовый файл для нахождения 2 медиан»
Рисунок 11. «Текстовый файл для несвязного графа»
Предусмотрены следующие проверки:
1) на главной диагонали стоят только нули;
2) матрица должна содержать все элементы;
3) матрица симметрична относительно главной диагонали;
4) значения должны быть целочисленными.
После того как мы загрузили 1.txt (рисунок 12), необходимо нажать на кнопку «построить граф» (рисунок 13).
Рисунок 12. «Форма программы»
Рисунок 12. «Форма программы»
После этого нажав на кнопку «Медиана» мы можем найти 1 или более медиан графа, если он является связным (рисунок 13).
Рисунок 13. «Форма программы»
Также предусмотрено:
1) очистка рисунка и значений матрицы;
2) сохранение матрицы, содержимое которой будет хранится в текстовом файле;
3) сохранение рисунка в файл, имеющий расширение: «.bmp», «.ico», «.emf», «.wmf»;
4) закрытие формы программы.
3.2 Информационная структура приложения. Программная реализация основных модулей
Рассмотрим основные имена функций, процедуры и переменных в программе:
1) procedure TForm1.Button1Click(Sender: TObject)// кнопка «построить граф»;
2) procedure StringGrid1Click(Sender: TObject);//матрица весов и вершин;
3) procedure Button3Click(Sender: TObject);//кнопка нахождения медиан;
4) Matr_S//массив, в котором храниятся значения матрицы;
5) Ves_Tree//переменная - весовой коэффициент;
6) procedure redraw(var im: Timage);//процедура рисования графа;
7) function kolvos// функция, использующая для подсчета и занесения значений в StrinGrid.
Выводы к разделу 3
Таким образом была разработана программная реализация системы планирования размещения точек водоснабжения в населенных пунктах, основные функции и процедуры которой были описаны выше.
Данная программная реализация на практике применена не только для планирования размещения точек водоснабжения в населенных пунктах, но и для размещения других объектов (больниц, учреждений, телефонных коммутаторов и др.) в населенных пунктах, а также в любой области, где необходимо минимизировать расстояния между парами каких-либо точек (пунктов) с целью экономии денежных средств, времени и удобства.
Заключение
Таким образом, в ходе курсовой работы, основываясь на теории графов, был реализован алгоритм нахождения оптимального расположения точек водоснабжения в населенных пунктах, программно реализована разработка систем планирования указанных точек, а также рассмотрена важность и актуальность использования информационных технологий для решения поставленных задач.
К решению подобных задач применимы алгоритмы поиска кратчайших путей, поскольку пункты массового обслуживания можно представить вершинами графа, а расстояния между ними - дугами графа. Теория графов находит широкое применение в различных областях науки и техники. Многие математические факты удобно формулировать на языке графов. В последнее время теория графов находит всё больше применений в прикладных вопросах.
Список использованной литературы
1. Берж К., Теория графов и ее применения, 1972.
2. Кристофидес Н., Теория графов. Алгоритмический подход, 1975.
3. Кормен Т., Лейзер Ч., Алгоритмы. Построение и анализ.
4. Оре О., Графы и их применения, 1975.
5. www.uchimatchact.ru
6. www.matematik.com.ua
7. Джигерей В.С., Экология и охрана окружающей среды, 2006.
8. Белявский Г.О., Экологические показатели и их сравнение, 2008.
Приложение
// нахождение медиан с помощью алгоритма Флойда
const
INF: Double = 1000000;
var
D: array of array of Double;
dist: array of Double;
sum, min_d: Double;
i, j, k, n: Integer;
begin
n := Length(Matr_S);
SetLength(dist, n);
SetLength(D, n, n);
for i := 0 to n - 1 do
for j := 0 to n - 1 do
if Matr_S[i][j] = 0 then D[i][j] := INF else
D[i][j] := Matr_S[i][j];
for k := 0 to n - 1 do
for i := 0 to n - 1 do
for j := 0 to n - 1 do
D[i][j] := Min( D[i][j], D[i][k] + D[k][j]);
min_d := 1000000;
for i := 0 to n - 1 do begin
sum := 0;
for j := 0 to n - 1 do
sum := sum + D[i][j];
dist[i] := sum;
if dist[i] < min_d then min_d := dist[i];
end;
Edit1.Text := '{ ';
for i := 0 to n - 1 do
if dist[i] = min_d then Edit1.Text := Edit1.Text + IntToStr(i + 1) + '; ';
Edit1.Text := Edit1.Text + '}';
Размещено на Allbest.ru
Подобные документы
Программная реализация алгоритма составления каталога товаров из сети электронных магазинов с выявлением одинаковых, используя сравнение по изображениям. 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