САНКТ-Петербурзький державний політехнічний університет
ІПММ
Кафедра Телематика при ЦНДІ РТК
Курсова робота з Теорії графів
за темою «Потоки в мережах»
Зміст
Завдання
Опис математичної моделі
Особливості реалізації
Розподіл Пойа - 1
Формування зв'язкового ациклического графа
Алгоритм пошуку потоку мінімальної вартості
Алгоритм Фалкерсона
Алгоритм Беллмана - Форда
Алгоритм Дейкстри
Результати роботи програми
Висновок
Список використаної літератури
Завдання
Сформувати зв'язний ациклічний граф випадковим чином відповідно до заданим розподілом (Пойа - 1).
Для заданих графів обчислити потік мінімальної вартості.
В якості величини потоку брати значення, рівне [2/3 * max], де max - максимальний потік.
Матриці пропускних спроможностей та вартості згенерувати випадковим чином.
Реалізувати алгоритми Фалкерсона, Дейкстри і Беллмана - Форда.
Опис математичної моделі
потік граф алгоритм матриця
Нехай - мережа, і - відповідно джерело і стік мережі. Дуги мережі навантажені ненегативними речовими числами, Якщо і - вузли мережі, то число - називається пропускною здатністю дуги Нехай задана функція дивергенції функції у вузлі називається число, яке визначається наступним чином:
Функція називається потоком в мережі, якщо:
. тобто потік через дугу неотрицателен і не перевершує пропускної здатності дуги;
. тобто дивергенція потоку дорівнює нулю у всіх вершинах, крім джерела і стоку.
Кількість називається величиною потоку f. Якщо то дуга називається насиченою.
Нехай paзpeз,.
Всякий розріз визначається розбиттям множини вершин V на дві підмножини S і Т, так що, а в Р потрапляють всі дуги, що з'єднують S і Т. Тоді, де - дуги від S до Т, - дуги від Т до S.
Сума потоків через дуги розрізу Р позначається F (P).
Сума пропускних спроможностей дуг розрізу Р називається пропускною здатністю розрізу і позначається С (Р):
Аналогічно, і суми потоків через відповідні частини розрізів.
Для завдань з потоками, граф G (V, E) повинен задовольняти умовам: - зв'язний граф без петель.
Існує один витік.
Існує один стік.
Кожній дузі поставлена ??у відповідність пропускна здатність дуги.
Теорема Фалкерсона. Максимальний потік в мережі дорівнює мінімальній пропускної здатності розрізу:
Шукаємо максимальний потік мінімальної вартості: якщо, то рішення немає (? - величина потоку, який хочемо знайти).
Якщо навпаки, то мінімізуємо суму:
Модифікація мережі щодо даного потоку:
модифікують щодо даного потоку мережа будується наступним чином:
(- безліч модифікованих вершин)
(- безліч фіктивних дуг)
Якщо (u, v) Е і, то; при цьому (тільки для дуг, по яких проходить потік).
; і. (Тільки для всіх ненасичених дуг, де немає протилежної потоку, в тому числі і для ненасичених дуг з потоком, щодо якого відбувається модифікація мережі).
Для всіх насичених дуг:; вважають, що
Особливості реалізації
Завдання полягає в реалізації обчислення потоку мінімальної вартості для сформованого графа відповідно із заданим розподілом (Пойа - 1). Спочатку мною формується зв'язний граф відповідно до розподілу. Потім обчислюється максимальний потік, за допомогою реалізованого алгоритму Фалкерсона і, в кінцевому підсумку, обчислюється потік мінімальної вартості, за допомогою алгоритму Беллмана - Форда і Дейкстри.
Розподіл Пойа - 1
Розподіл Пойа 1 - розподіл випадкової величини, приймаючої цілі невід'ємні значення, відповідно до формулами:
Де n gt; 0, b gt; 0, r gt;...