Аннотация
Бурное развитие дискретной математики обусловлено прогрессом компьютерной техники, необходимостью создания средств обработки и передачи информации, а также представления различных моделей на компьютерах, являющихся по своей природе конечными структурами.
Целью данной работы является нахождение максимального потока , в компьютерной среде при помощи языка программирования С/С++. Реализация данной программы была осуществлена при помощи Visual Studio 2008.
Основные результаты: Найден максимальный поток.
Содержание
Введение 5
1 Теория и основные понятия 6
1.1 Определение теории графов 6
1.2 Поток в транспортной сети 8
1.3 Формализованное задание графа 11
1.4 Числовые характеристика графа 14
1.5 Степени всех вершин графа 14
1.6 Вершинная и реберная связность графа 14
1.7 Цикломатическое число графа 14
1.8 Вершинное и реберное числа независимости 14
1.9 Числа вершинного и реберного покрытия графа 15
1.10 Вершинное и реберное число внешней устойчивости графа 15
1.11 Радиус и диаметр графа 16
2 Синтез логических схем 17
2.1 Таблица истинности функции алгебры логики 17
2.2 Совершенные дизъюнктивная и конъюнктивная нормальная форма 18
2.3 Анализ функции алгебры логики на принадлежность к классам 18
2.4 Минимизация функции алгебры логики 20
2.5 Минимизация с помощью карт Карно 20
2.6 Минимизация методом Квайна – Мак-Класски 21
Заключение 32
Список используемых источников 33
Введение
Задача о максимальном потоке в сети изучается уже более 60 лет. Интерес к ней подогревается огромной практической значимостью этой проблемы. Методы решения задачи применяются на транспортных, коммуникационных, электрических сетях, при моделировании различных процессов физики и химии, в некоторых операциях над матрицами, для решения родственных задач теории графов, и даже для поиска Web-групп в WWW. Исследования данной задачи проводятся во множестве крупнейших университетов мира.
60 лет назад, задача о максимальном потоке решалась simplex методом линейного программирования, что было крайне не эффективно. Форд и Фалкресон предложили рассматривать для решения этой задачи ориентированную сеть и искать решение с помощью итерационного алгоритма. В течение 20 лет, все передовые достижения в исследовании данной задачи базировались на их методе. В 1970г. наш соотечественник, Диниц, предложил решать задачу с использованием вспомогательных бесконтурных сетей и псевдомаксимальных потоков, что намного увеличило быстродействие разрабатываемых алгоритмов. А в 1974 Карзанов улучшил метод Диница, введя такое понятие как предпоток. Алгоритмы Диница и Карзанова, как и исследования Форда и Фалкерсона, внесли огромный вклад в решение данной проблемы. На основе их методов 15 лет достигались наилучшие оценки быстродействия алгоритмов. В 1986г. появился третий метод, который также без раздумий можно отнести к фундаментальным. Этот метод был разработан Голдбергом и Таряном, и получил название Push-Relabel метода. Для нахождения максимального потока, он использует предпотоки и метки, изменяемые во время работы алгоритма. Push-Relabel алгоритмы очень эффективны, и исследуются до сих пор. И, наконец, в 1997г. Голдберг и Рао предложили алгоритм, присваивающий дугам неединичную длину. Это самый современный из всех известных мне алгоритмов.
В нашей курсовой работе, мы рассмотрим и реализуем на языке программирования C++ алгоритм решения задачи о максимальном потоке, предложенный Фордом и Фалкерсоном.
