
- •010500.62 «Математическое обеспечение и
- •Введение
- •1 Графы
- •1.1Основные характеристики графов
- •1.2 Пути и маршруты
- •2. Алгоритм Форда-Фалкерсона
- •2.1 Краткое описание алгоритма
- •2.2 Анализ сложности алгоритма
- •2.3 Псевдокод
- •3 Распараллеленный вариант алгоритма
- •3.1 Библиотека omp.H
- •3.2 Краткое описание распараллеливания алгоритма
- •Заключение
- •Список использованных источников
- •Приложение а
- •Текст основного файла
- •Приложение б
- •Текст включаемого файла
3.2 Краткое описание распараллеливания алгоритма
Процесс распараллеливания алгоритма Форда-Фалкерсона сводится к распараллеливанию обхода графа в ширину. Если же при реализации алгоритма, для поиска путей в графе использовать, например, алгоритм обхода в глубину – распараллеливание не представляется возможным.
При распараллеливании используется библиотека omp.h, использующая инструменты OpenMP технологии. Алгоритм делится на несколько потоков, и на каждом из потоков выпоняется своя часть программы. Параллелизм реализуется за счет написания прагм в соответствующих фрагментах кода. На рисунке 5 представлен фрагмент кода, с использованием нижеописанных прагм. Полный листинг представлен в приложении Б.
Основной целью распараллеливания был анализ ускорения работы алгоритма. На практике, ускорение заметно только на очень больших наборах данных, но совсем незначительное. Ожидаемое ускорение, вычисленное по формуле Амдаля, при 25% операций выполненных параллельно на 2 процессорах составляет 300% от последовательного выполнения, однако на практике такого ускорения достигнуто не было, в виду целого ряда факторов, влияющих на быстроту выполнения операций.
Рисунок 5 – Фрагмент распараллеленного кода программы
Заключение
В процессе создания данного проекта была рассмотрена теория графов в общем, изучены понятия путей и маршрутов. Разработана программа, реализующая алгоритм Форда-Фалкерсона в MicrosoftVisualStudio 2010.Алгоритм может найти свое применение в программах для транспортных и коммуникационных сетей, таких как коммутация информационного пакета в Internet, где вершины - роутеры, а ребра это связи между роутерами. Таким образом, чем короче будет путь, тем быстрее пакет достигнет пункта назначения и меньше будут информационные потери.
Также были углублены знания, полученные в процессе выполнения лабораторных работ по предмету «Программирование».
Список использованных источников
ГОСТ 7.32–2001. Отчёт о научно-исследовательской работе. Структура и правила оформления [Текст]. – Взамен ГОСТ 7.32–91 ;введ. 2001–07–01. – Минск :Межгос. совет по стандартизации, метрологии и сертификации ; М. : Изд-во стандартов, 2001. – 16 с. – (Система стандартов по информации, библиотечному и издательскому делу).
ГОСТ 7.1–2003. Библиографическая запись. Библиографическое описание. Общие требования и правила составления [Текст]. – Взамен ГОСТ 7.1–84, ГОСТ 7.16–79, ГОСТ 7.18–79, ГОСТ 7.34–81, ГОСТ 7.40–82 ;введ. 2004–07–01. – М. : Изд-во стандартов, 2004. – 116 с. – (Система стандартов по информации, библиотечному и издательскому делу).
Канева, Ольга Николаевна. Дискретная математика [Текст] : учеб.пособие / О. Н. Канева, 2009. - 87 с.
Левин, А. Самоучитель работы на компьютере в вопросах и ответах[Текст]: учеб. пособие / А. Левин -М.: «Аквариум», 2007г. – 644с.
Алгоритм Форда-Фалкерсона [Электронный ресурс]: максимальный поток транспортной сети. – http://habrahabr.ru/– Загл. с экрана.
Алгоритм Распараллеливание поиска в ширну [Электронный ресурс]: оптимизация алгоритмов. –http://neerc.ifmo.ru/mediawiki/index.php?title.redirect=no/– Загл. с экрана.