- •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 Транспортная задача
- •Список литературы
6. Дискретное программирование.
6.1 Метод Гомори для решения задачи целочисленного линейного программирования
Задачей целочисленноголинейного программирования (ЗЦЛП) называют ЗЛП, в которой на переменные налагается дополнительное ограничение – условие целочисленности. ЗЦЛП имеет вид:
(1)
(2)
(3)
- целые числа; (4)
где N1 – некоторое подмножество множества индексов N =1,2, …,n.
Если N1=N, то задачу (1) – (4) называют полностью целочисленной, если N1N, - частично целочисленной.
Метод Гомори является одним из методов решения задач целочисленного линейного программирования. Идея метода Гомори решения задачи (1) – (4) заключается в следующем. Отбрасывается условие целочисленности (4), и полученная ЗЛП (1) – (3) решается симплекс-методом. Если оптимальное решение задачи (1) – (3) удовлетворяет ограничению (4), т.е. является целочисленным, то оно является и решением исходной задачи (1) – (4). Если оптимальное решение задачи (1) – (3) не удовлетворяет ограничению (4), то к основным ограничениям (2) добавляется новое линейное ограничение, обладающее следующими свойствами: 1) оптимальный нецелочисленный план задачи (1) – (3) ему не удовлетворяет; 2) любой целочисленный план задачи (1) – (3) ему удовлетворяет. Затем решается расширенная задача. Процесс повторяется до получения целочисленного решения. Способы построения дополнительного линейного ограничения различны для полностью и частично целочисленных ЗЛП. В силу свойств 1 и 2 дополнительное ограничение называют еще отсечением Гомори, а метод Гомори – методом отсечения.
Рассмотрим метод Гомори для решения полностью целочисленных ЗЛП. Пусть задача (1) – (3) решена симплекс-методом, х0 – ее оптимальный план, а табл. 7.1 - оптимальная симплексная таблица.
Таблица 6.1
БП |
сБ |
А0 |
хj1 |
хj2 |
… |
xjn-m |
хi1 |
xi2 |
… |
хim |
сj1 |
сj2 |
… |
cjn-m |
ci1 |
ci2 |
… |
cim |
|||
хi1 |
ci1 |
X0i1 |
ai1j1 |
ai1j2 |
… |
ai1jn-m |
1 |
0 |
… |
0 |
хi2 |
ci2 |
X0i2 |
ai2j1 |
ai2j2 |
… |
ai2jn-m |
0 |
1 |
… |
0 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
xim |
cim |
X0im |
aimj1 |
aimj2 |
… |
aimjn-m |
0 |
0 |
… |
1 |
zj-cj |
f0 |
zj1-cj1 |
zj2-cj2 |
… |
zjn-m-cjn-m |
0 |
0 |
… |
0 |
Если все значения х0ip - целые, то х0 – решение задачи (1) – (4). Пусть среди чисел х0ip есть нецелочисленные. Выберем из них число с максимальной дробной частью:
Дополнительное линейное ограничение, или отсечение Гомори, будет иметь вид
(5)
В ограничение (5) вводим дополнительную переменную
(6)
где xn+10. Равенство (6) умножим на -1 и получим
(7)
Припишем ограничение (7) к симплексной таблице 1. При том переменная xn+1 будет базисной. Получим расширенную таблицу 2.
Расширенную задачу решают начиная с табл.6.2. Так как в столбце свободных членов табл.6.2 есть отрицательное число, для решения расширенной задачи выполняют следующие операции.
Таблица 6.2
БП |
сБ |
А0 |
хj1 |
хj2 |
… |
xjn-m |
хi1 |
xi2 |
… |
хim |
xn+1 |
сj1 |
сj2 |
… |
cjn-m |
ci1 |
ci2 |
… |
cim |
0 |
|||
хi1 |
ci1 |
X0i1 |
ai1j1 |
ai1j2 |
… |
ai1jn-m |
1 |
0 |
… |
0 |
0 |
хi2 |
ci2 |
X0i2 |
ai2j1 |
ai2j2 |
… |
ai2jn-m |
0 |
1 |
… |
0 |
0 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
xim |
cim |
X0im |
aimj1 |
aimj2 |
… |
aimjn-m |
0 |
0 |
… |
1 |
0 |
xn+1 |
0 |
-x0ik |
-aikj1 |
-aikj2 |
… |
-aikjn-m |
0 |
0 |
… |
0 |
1 |
zj-cj |
f0 |
zj1-cj1 |
zj2-cj2 |
… |
zjn-m-cjn-m |
0 |
0 |
… |
0 |
0 |
Просматривают строку, содержащую отрицательное число в столбце свободных членов, и выбирают любое отрицательное число в этой строке. Выбранное число определяет разрешающий столбец.
Для чисел с одинаковыми знаками составляют симплексные отношения.
Наименьшее симплексное отношение определяет разрешающую строку. На пересечении разрешающей строки и разрешающего столбца находится разрешающий элемент.
С найденным разрешающим элементом выполняют симплексные преобразования.
Пример. Предприятие производит две модели А и В сборных книжных полок. Их производство ограничено наличием сырья (высококачественных досок) и временем машинной обработки. Для каждого изделия модели А требуется 2 м2 досок, а для изделия В – 5 м2. Малое предприятие может получить от своих поставщиков до 1600 м2 досок в неделю. Для изготовления каждого изделия модели А требуется 10 мин машинной обработки, а изделие модели В – 12 мин. Время машинной обработки в неделю 100 ч. Сколько изделий каждой модели следует выпускать малому предприятию в неделю для получения максимальной прибыли, если каждое изделие модели А приносит 20 ден. ед. прибыли, а каждое изделие модели В – 40 ден. ед.?
Решение Математическая модель задачи имеет вид
x1, x2 – целые.
Преобразуем задачу, умножив обе части второго неравенства на 30. Получим задачу
x1, x2 – целые.
По методу Гомори для определения оптимального плана задачи ,решим ЗЛП симплекс-методом. Приведем ее к каноническому виду:
В процессе решения задачи получаются следующие симплекс таблицы
Таблица 6.3
БП |
сБ |
А0 |
х1 |
х2 |
х3 |
x4 |
20 |
40 |
0 |
0 |
|||
х3 |
0 |
1600 |
2 |
5 |
1 |
0 |
х4 |
0 |
3000 |
5 |
6 |
0 |
1 |
zj-cj |
0 |
-20 |
-40 |
0 |
0 |
Таблица 6. 4
БП |
сБ |
А0 |
х1 |
х2 |
х3 |
x4 |
20 |
40 |
0 |
0 |
|||
х2 |
40 |
320 |
2/5 |
1 |
1/5 |
0 |
х4 |
0 |
1080 |
13/15 |
0 |
-6/5 |
1 |
zj-cj |
12800 |
-20/5 |
0 |
40/5 |
0 |
Таблица 6.5
БП |
сБ |
А0 |
х1 |
х2 |
х3 |
x4 |
20 |
40 |
0 |
0 |
|||
х2 |
40 |
|
0 |
1 |
5/13 |
-2/13 |
х1 |
20 |
|
1 |
0 |
-6/13 |
5/13 |
zj-cj |
|
0 |
0 |
80/13 |
20/13 |
Табл.6.5 – оптимальная симплексная таблица,
x0=(x01;x02), где x01= , x02= - оптимальный план задачи. Так как оптимальный план задачи нецелочисленный, он не является оптимальным планом ЗЦЛП. Следуя методу Гомори, находим
По первой строке табл.7.5 строим дополнительное линейное ограничение:
(*)
Так как
ограничение (*) примет вид
Введем в ограничение дополнительную переменную
Домножим ограничение на -1:
Припишем ограничение к табл.7.5 и получим табл.7.6
Таблица 7.6
БП |
сБ |
А0 |
х1 |
х2 |
х3 |
x4 |
x5 |
20 |
40 |
0 |
0 |
0 |
|||
х2 |
40 |
|
0 |
1 |
5/13 |
-2/13 |
0 |
х1 |
20 |
|
1 |
0 |
-6/13 |
5/13 |
0 |
x5 |
0 |
|
0 |
0 |
-5/13 |
-11/13 |
1 |
zj-cj |
|
0 |
0 |
80/13 |
20/13 |
0 |
Следуя методу Гомори, выполним симплексные преобразования табл.6.6 с разрешающим элементом -11/13. Получим табл.6.7.
Таблица 6.7
БП |
сБ |
А0 |
х1 |
х2 |
х3 |
x4 |
x5 |
20 |
40 |
0 |
0 |
0 |
|||
х2 |
40 |
|
|
||||
х1 |
20 |
|
|||||
x4 |
0 |
1 |
|||||
zj-cj |
|
0 |
0 |
60/11 |
0 |
20/11 |
Имеем оптимальный целочисленный план расширенной задачи. Тогда оптимальный план исходной задачи х0=(415;154).