- •1. Теория графов
- •1.1 Остовные деревья минимального веса.
- •Алгоритм Прим
- •Алгоритм Краскал
- •1.2 Нахождение кратчайших путей между двумя заданными вершинами. Алгоритм Дийкстры
- •Алгоритм Дийкстры
- •Модифицированный алгоритм Дийкстры
- •1.3 Нахождение кратчайших цепей между всеми парами узлов в сети
- •Алгоритм Флойда (Floyd r. W.)
- •Модификация алгоритма Флойда
- •1.4 Построение потоков максимальной мощности. Алгоритм Форда-Фалкерсона
- •Алгоритм Форда-Фалкерсона
- •1.5 Обобщенные задачи о потоке
- •1.5.1 Построение потока в сети с двойным ограничением потока по дугам
- •1.5.2 Построение потока в сети с пропускными способностями узлов
- •1.5.3 Построение потока в сети с несколькими источниками-стоками
- •1.5.4 Построение потока в сети с неориентированными ребрами
- •1.6 Определение потока заданной величины минимальной стоимости. Алгоритмы Басакера-Гоуэна, Клейна
- •Алгоритм Басакера-Гоуэна (Basaker r.G., Gowen p.J)
- •Алгоритм Клейна (Klein m.)
- •2 Сетевое планирование
- •2.1 Построение сетевых моделей
- •2.2 Расчет и анализ сетевых моделей
- •Задача №1
- •Задача №2
- •I. Поиск критических путей
- •II. Поиск резервов работ
- •Правило №2.1
- •3 Линейное программирование
- •3.1 Примеры задач лп
- •3.2 Свойства решений задач линейного программирования
- •3.3 Двумерные задачи линейного программирования. Графический метод решения. Исследование на разрешимость
- •3.3.1 Построение области допустимых решений целевой функции f.
- •3.3.2 Построение прямой уровня
- •3.3.3 Максимизация целевой функции f
- •3.4 Симплекс-метод.
- •3.4.1 Построение начального опорного плана.
- •3.4.2 Симплексные таблицы
- •3.4.3 Примеры решения задач симплекс-методом
- •4. Теория двойственности в линейном программировании
- •4.1 Понятие двойственности. Построение пары взаимно двойственных задач
- •4.2 Теоремы двойственности и их экономическое содержание
- •4.3 Анализ решения задач линейного программирования
- •5. Транспортная задача
- •5.1 Постановка транспортной задачи в матричной форме. Построение исходного опорного плана
- •5.2 Метод потенциалов
- •5.3 Дополнительные условия в транспортных задачах.
- •6. Дискретное программирование.
- •6.1 Метод Гомори для решения задачи целочисленного линейного программирования
- •7. Динамическое программирование
- •7.1 Многошаговые процессы в динамических задачах
- •7.2 Принцип оптимальности и рекуррентные соотношения
- •7.3 Вычислительная схема динамического программирования
- •7.4 Оптимальное распределение средств на расширение производства
- •8. Матричные игры
- •8.1 Парные матричные игры с нулевой суммой
- •8.2 Платежная матрица
- •Нижняя и верхняя цена игры
- •8.3 Смешанные стратегии
- •8.3 Решение матричной игры сведением к задаче линейного программирования
- •8.4 Решение матричной игры графическим методом
- •8.5 Приближенный метод решения матричных игр
- •Практические работы Практическая работа №1 Построение остовного дерева графа. Нахождение найкратчайшего расстояния между заданными вершинами графа
- •Практическая работа №2 Нахождение наикратчайших расстояний между всеми парами вершин графа. Алгоритм Флойда.
- •Практическая работа №3
- •Практическая работа №4 Нахождение потока заданной величины минимальной стоимости. Алгоритм Басакера-Гоуэна
- •Практическая работа №7 Оптимизация проекта по времени.
- •Практическая работа №8
- •Практическая работа №9 Оптимизация целевой функции с помощью двухфазного симплекс метода.
- •Практическая работа №10 Решение двойственных задач. Экономическая интерпретация задач линейного программирования.
- •Практическая работа №11 Решение транспортных задач.
- •Практическая работа №12 Дополнительные условия в транспортных задачах
- •Практическая работа №13 Метод Гомори для решения задачи целочисленного линейного программирования.
- •Практическая работа №14
- •Практическая работа №15 Решение матричных игр в чистых стратегиях
- •Практическая работа №16 Графический метод решения матричных игр.
- •Каркас минимального веса. Метод р. Прима.
- •Кратчайшие пути
- •Лабораторная работа №2 Кратчайшее расстояния от заданной вершины до всех остальных вершин графа.
- •Алгоритм Дийкстры.
- •Пути в бесконтурном графе.
- •Лабораторная работа №3 Кратчайшие пути между всеми парами вершин графа.
- •Алгоритм Флойда.
- •Лабораторная работа №4 Построение потока максимальной мощности.
- •Потоки в сетях.
- •Метод построения максимального потока в сети.
- •Лабораторная работа №5 Симплекс метод
- •Лабораторная работа №6 Транспортная задача
- •Список литературы
Задача №1
Компания разрабатывает строительный проект. Исходные данные по основным операциям проекта представлены в табл.2.1. Постройте сетевую модель проекта, определите критические пути модели и проанализируйте, как влияет на ход выполнения проекта задержка работы D на 4 недели.
Таблица 2.1
Исходные данные
Название |
Непосредственно предшествующие операции |
Длительность, недели |
A |
– |
4 |
B |
– |
6 |
C |
A,B |
7 |
D |
B |
3 |
E |
C |
4 |
F |
D |
5 |
G |
E,F |
3 |
Решение:
Построим сетевую модель и рассчитаем временные параметры событий (рис.8.3). При поиске критических путей на сетевом графике будем использовать следующие условия его критичности:
необходимое условие – нулевые резервы событий, лежащих на критическом пути;
достаточное условие – нулевые полные резервы работ, лежащих на критическом пути.
Согласно необходимому условию два полных пути сетевой модели (см. рис.3) и могут быть критическими. Проверим достаточное условие критичности для работ (1,2) и (1,3)
;
Путь , начинающийся с работы (1,3) не является критическим, т.к. как минимум одна из его работ (1,3,) не является критической. Работа (1,3) имеет ненулевой полный резерв, а значит может быть задержана с выполнением, что недопустимо для критических работ.
Таким образом, сетевая модель имеет единственный критический путь длительностью недель. За выполнением работ этого пути необходим особый контроль, т.к. любое увеличение их длительности нарушит срок выполнения проекта в целом.
Р абота D или (2,5) не является критической, ее полный резерв равен 3-м неделям. Это означает, что при задержке работы в пределах 3-х недель срок выполнения проекта не будет нарушен. Поэтому если согласно условию работа D задержится на 4 недели, то весь проект закончится на 1 неделю позже.
Рис.2.10. Сетевой график
Задача №2
По данным о кодах и длительностях работ в днях (табл.2.2) постройте график привязки сетевой модели, определите критические пути и их длительность. Определите свободные и полные резервы каждой работы, отметьте на графике привязки свободные резервы работ.
Таблица 2.2
Исходные данные задачи №2
(i,j) |
1,2 |
1,3 |
1,4 |
1,5 |
2,3 |
3,6 |
3,7 |
4,5 |
4,6 |
5,7 |
6,7 |
t(i,j), дни |
3 |
3 |
2 |
10 |
2 |
5 |
9 |
10 |
6 |
1 |
4 |
Общие рекомендации
При поиске критических путей следует помнить, что признаком критической работы являются нулевые значения резервов времени. Это означает, что каждая последующая критическая работа будет начинаться строго в момент окончания предыдущей критической работы. Вследствие этого сдвиг любой из работ критического пути обязательно приведет к увеличению первоначальной длительности проекта ( ). Кроме того, следует учесть, что критический путь является полным, т.е. соединяет исходное и завершающее события сети. Поэтому на графике привязки первая из работ критического пути всегда начинается в исходном событии сети с нулевого (начального) момента времени, а последняя из работ критического пути всегда завершается позже всех остальных работ сети в завершающем событии.
Из вышеприведенных соображений следует способ определения критического пути на графике привязки (все найденные работы выписываются последовательно справа налево):
1) найти на графике привязки и выписать работу (i,j), которая заканчивается позже всех остальных. Это будет последняя работа критического пути (ее конечное событие иметь номер завершающего события сети);
2) из всех работ сети (k,i), конечное событие которых i совпадает с начальным событием i работы (i,j), найденной в п.1), выбрать и выписать ту, которая на графике вплотную примыкает к работе (i,j);
3) из всех работ сети (l,k), конечное событие которых k совпадает с начальным событием k работы (k,i), найденной в п.2), выбрать и выписать ту, которая на графике вплотную примыкает к работе (k,i);
4) продолжать п.3) до тех пор, пока не будет найдена исходная работа сети, т.е. начинающаяся в нулевой момент времени (ее начальное событие будет иметь номер исходного события сети, например, 1).
Следует заметить, что если в сетевой модели несколько критических путей, то, выполняя вышеописанные действия, можно обнаружить несколько работ, удовлетворяющих сформулированным требованиям. В таком случае необходимо продолжать поиск по каждой из таких работ в отдельности. В сложных сетевых моделях подобные разветвления могут привести к большим затратам времени на поиск критически путей. Тем не менее, такой способ хорош для учебных целей, поскольку дает понимание значения критических работ в сетевой модели и учит "читать" и понимать график привязки.
Решение: