Тип работы:
Предмет:
Язык работы:


Экспериментальное исследование трудоемкости метода построения максимального потока в сети на примерах прикладных задач

Работа №42335

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы79
Год сдачи2018
Стоимость6300 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
403
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1 Теоретическая часть 6
1.1 Определения и обозначения 6
1.2 Алгоритм расстановки пометок (Форда-Фалкерсона) 7
1.3 Трудоемкость алгоритма 8
1.4 Описание задач 11
2 Руководство по программе 16
2.1 Описание технологии WPF 16
2.2 Подробное руководство пользователя 17
3 Эксперименты и исследование поставленной проблемы 26
3.1 Зависимость практической трудоемкости от размера входных данных 26
3.2 Сравнение экспериментально вычисленного количества операций с максимально
возможным значением 31
ЗАКЛЮЧЕНИЕ 37
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 39
ПРИЛОЖЕНИЕ А

В наш век быстро сменяющих друг друга технологий, огромное значение имеет время и качество выполнения тех или иных задач. Они же в свою очередь зависят от объема того, что предстоит сделать, на что приложены усилия, будь то количество проектов для строительной бригады, объем продукции для производства или входящие данные для алгоритма.
На практике довольно часто возникают прикладные задачи в сетевой постановке (напр., [1 - 3]). При решении многих из них приходится строить потоки максимальной величины в естественно возникающих или специально построенных сетях (напр., [2,3]). Поэтому исследования, касающиеся работы алгоритмов, позволяющих строить такие потоки, являются актуальными.
Одним из методов, предназначенных для построения максимального потока в ориентированной сети с пропускной способностью дуг, является известный метод расстановки пометок [2]. Целью данной выпускной работы является экспериментальное исследование трудоемкости этого метода на примерах прикладных задач. Требуется на некоторых классах прикладных задач экспериментально установить трудоемкость применяемого при их решении метода расстановки пометок и сравнить ее с известной теоретической оценкой трудоемкости, полученной для сетей общего вида.
В данной работе проводится эксперимент в области дискретной оптимизации для исследования зависимости трудоемкости одного определенного алгоритма от типа задач, к решению которых он применяется. Эксперимент этот важен с практической точки зрения следующим. Сравнивая теоретическую трудоемкость с трудоемкостью, полученной на практике, можно выяснить, является ли оправданным и оптимальным применение данного алгоритма для решения той или иной прикладной задачи. Также при сравнении числа операций можно выяснить, насколько практическая трудоемкость отличается от теоретической и сохраняется ли порядок теоретической оценки сложности алгоритма. Если трудоемкость, полученная на практике, будет намного отличаться от теоретически доказанной, то их сравнение, возможно, даст ответ на вопрос: зависит ли значение числа операций и порядок его оценки от всех параметров задачи, или тот или иной параметр можно опустить.
Оцениваемым ресурсом в выпускной работе является вычислительная сложность (процессорное время). Проведенные в работе исследования позволяют оценить эффективность алгоритма расстановки пометок для трех прикладных задач, а именно, для задачи о спросе и предложении (частный случай), задачи о циркуляции и одной задачи о назначениях.
Основоположниками алгоритма являются американские математики Л.Р. Форд и Д.Р. Фалкерсон. В 1955 году они сформулировали этот алгоритм для решения важной военной задачи. Данный алгоритм применяется в различных сферах: в логистике, задачах планирования, коммуникациях, экономике и т.д. С помощью поиска максимального потока решаются некоторые задачи транспортного типа, задачи о назначениях, задачи о циркуляции и т.д. Теоретическая трудоемкость алгоритма Форда-Фалкерсона известна для каждого типа вышеперечисленных задач. В работе на основе проведенных исследований сделаны выводы о том, для какой из задач алгоритм расстановки пометок работает быстрее, и есть ли наглядная и существенная зависимость между параметрами задачи и трудоемкостью ее решения. Кроме того, оценено времени работы алгоритма для каждого типа задач.
Итак, во введении работы обозначены цель, задачи, предмет и объект исследования, подчеркнута актуальность темы исследования. В первой главе работы раскрываются теоретические аспекты: определения, описание исследуемого алгоритма, постановки прикладных задач и методы их сведения к задаче построения максимального потока в сети, понятие трудоемкости. Во второй главе представлено подробное руководство по программе. В руководстве описывается, как пользователю решить тот или иной вид прикладных задач. В третьей главе описаны проведенные эксперименты по сравнению теоретической и практической трудоемкости для каждого вида задач. В заключении делаются основные выводы по дипломному проекту.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате исследования, проведенного в дипломной работе, можно сделать вывод, что поставленные задачи решены, и цель работы достигнута.
Была написана программа, предназначенная для реализации алгоритма поиска максимального потока в ориентированных сетях. Кроме того, был написан ряд программ для решения прикладных задач. В программах заложена возможность подсчета числа операций, требуемых алгоритму для решения каждой задачи.
На основе полученных данных было проведено исследование, заключавшееся в сравнении практической трудоемкости алгоритма с известной теоретической. Экспериментально был определен порядок оценки сложности алгоритма для трех типов задач. После проведенного анализа были построены графики сравнения экспериментально полученного количества операций с максимально возможными значениями, а на основании полученных результатов были сделаны следующие выводы.
Во-первых, по сформированной статистике можно утверждать, что процент задач, для которых трудоемкость алгоритма не соответствует теоретической, очень мал (2 - 4 % для задач о циркуляции, а для задач о спросе и предложении и для задач о назначениях в 100% случаев порядок трудоемкости, вычисленной экспериментально, совпадает с порядком теоретической трудоемкости). Это значит, что реализованные программы могут быть использованы для поиска максимального потока в сетях, а также для решения прикладных задач, сводящихся к данному алгоритму.
Во-вторых, метод сведения прикладных задач к задаче поиска максимального потока эффективен, так как вычисленная на практике трудоемкость соответствует теоретической оценке сложности.
Итак, в целом практически полученная трудоемкость исследуемого алгоритма соответствует известной теоретической трудоемкости. Кроме того, для решения задачи о назначениях и задачи о циркуляции количество операций оказалось гораздо ниже максимально возможного значения, а для задачи о спросе и предложении количество операций близко к максимально возможному значению.



1. Заботин И.Я., Фазылов В.Р., Шульгина О.Н. Алгоритмы решения оптимизационных задач на графах: Учебное пособие // Казанский Государственный Университет, 2006. с.4-10
2. Форд Л.Р., Фалкерсон Д.Р. Потоки в сетях. -М.: Мир, 1966. - с. 15, с.276
3. Заботин И.Я. Практические задания по курсу «Исследование операций» (Потоки в сетях) -М.: Казань, 1988. - с. 4
4. Задача о максимальном потоке
(https://ru.wikipedia.org/wiki/Задача о максимальном потоке)
5. Максимальный поток минимальной сложности
(https://habr.eom/post/61884/)
6. Адигеев М.Г. Введение в теорию сложности // Методические указания для студентов механико-математического факультета. Ростов-на-Дону, 2004. с. 3-18
7. Ерзин А. И. Введение в исследование операций. Учебное пособие - М.: Новосибирск: Новосибирский государственный университет, 2006. с.54
8. Robert Horvick, Algorithms and Data Structures (https://code.tutsplus.com/tutorials/algorithms-and-data-structures--cm s—20437)
9. Вычислительная сложность
(https://ru■wikipedia■org/wiki/Вычислительная сложность )
10. Кудрявцев В.Б., Андреев А.Е. О сложности алгоритмов. // с.744 (http: //www.intsys. msu.ru/magazine/archive/v 10(1 -4)/andreev-695-760. pdf)
11. Горьков А. Оценка сложности алгоритмов
(https: //habr.com/post/104219/)
12. Белов В.В. Алгоритмы и структуры данных // Понятие сложности алгоритма
(https://studref.com/324942/informatika/ponyatie slozhnosti algoritma)
13. Оценка сложности алгоритмов, или Что такое 0(log n) (https://tproger.ru/articles/computational-complexitv-explained/)
14.Э. Х. Гимади, Н. И. Глебов, А. И. Сердюков, “Алгоритм для приближенного решения задачи коммивояжера и его вероятностный анализ”, Сиб. журн. исслед. опер., 1:2 (1994), 8-17
15. Циркуляция (https://ru■wikipedia■org/wiki/Циркvляция)
16. Циркуляция потока (https: //neerc. ifmo ■щ/wiki/index■php?title=Циркvляция потока)
17. Методы применения алгоритма нахождения максимального потока в сети (https://habr.com/post/102367/)
18. Задача о назначениях
(https://ru■wikipedia■org/wiki/Задача о назначениях)
19. Ирбенек В.С., Келенин К.В. Алгоритмы решения задачи о назначениях и их применение. // Международный научно-практический журнал Программные продукты и системы. с. 20
20. М. И. Рубинштейн, “Об алгоритмах решения задачи о назначении”, Автомат. и телемех., 1981, №2 7, 145-154; Autom. Remote Control, 42:7 (1981), 970-976
21. Трудоемкость алгоритмов и временные оценки (http: //techn■sstu■ru/kafedri/подразделения/1/MetMat/shaturn/theoral g/5. htm)
22. Блог программиста. Анализ сложности алгоритмов. Примеры. (https://pro-prof.com/archives/1660)
23. Руководство по WPF // https: //metanit.com/sharp/wpf/


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ