
- •1 Краткое описание алгоритмов
- •1. Формирование математической модели
- •2. Графический метод решения задач линейного программирования
- •3. Решение математических задач симплексным методом
- •5. Решение двойственной задачи
- •6. Построение опорных планов шестью методами
- •7. Проверка опорного плана на оптимальность методом потенциалов
- •8. Метод дифференциальных рент
- •9. Решение задач о кратчайших расстояниях
- •10. Сетевое планирование и управление
- •12. Решение задач оптимальной загрузки оборудования
- •13. Задача оптимального раскроя
- •14. Решение задач оптимальной очерёдности обработки деталей
- •15. Решение задач выбора венгерским методом
- •2 Подробное изложение алгоритмов
- •2.1 Формирование математической модели
- •2.2 Графический метод решения задач линейного программирования
- •2.3 Решение математических задач симплексным методом
- •2.5 Решение двойственной задачи
- •2.6 Построение опорных планов шестью методами
- •2.7 Проверка опорного плана на оптимальность методом потенциалов
- •2.8 Метод дифференциальных рент
- •2.9 Решение задач о кратчайших расстояниях
- •2.10 Сетевое планирование и управление
- •2.12 Решение задач оптимальной загрузки оборудования
- •2.13 Задача оптимального раскроя
- •2.14 Решение задач оптимальной очерёдности обработки деталей
- •2.15 Решение задач выбора венгерским методом
2.5 Решение двойственной задачи
Каждой задаче линейного программирования соответствует двойственная ей задача (Таблица 13, Таблица 14, Таблица 15). За основу в данном случае берётся прошлая работа, в данном случае эта задача называется прямой. Поскольку ранее осуществлялся поиск максимального значения целевой функции, то в двойственной задаче рассчитывается минимальное значение. Коэффициенты целевой функции прямой становятся свободными членами двойственной, а свободные члены прямой – коэффициентами целевой функции двойственной. Знаки меняются на противоположные. Количество неизвестных прямой задачи равно количеству неравенств сопряженной и наоборот.
{ |
9Y1+3Y2+8Y3<=3 3Y1+2Y2+3Y3<=5 6Y1+4Y2+6Y3<=7 4Y1+3Y2+4Y3<=19
|
Fmax=3Y1+10Y2+12Y3
Матрица транспонируется.
Таблица 13 – Первая симплексная таблица
Таблица 14 – Вторая симплексная таблица
Таблица 15 – Последняя симплексная таблица
10*1=10
Fmax=10 при Y2=1.
Численно Fmin прямой задачи и Fmax обратной задачи равны.
2.6 Построение опорных планов шестью методами
Из нескольких пунктов нужно перевести груз в несколько других пунктов. Известно количество груза в пунктах отправления и количество груза, необходимого в пунктах назначения. Известны расстояния от каждого пункта отправления до каждого пункта назначения. Требуется установить, сколько груза и в какие пункты следует перевезти, чтобы весь груз был распределён при минимальном грузообороте. Вводятся следующие обозначения (см. Таблица 16):
Ai – пункт отправления
ai – количество груза в пункте отправления (мощность)
Bj – пункт назначения
bj – количество груза, необходимого в пункте назначения (спрос)
cij – расстояние от Ai до Bj
xij – количество груза, доставляемого из Ai в Bj
Таблица 16 – Структура распределительной таблицы
Каждый поставщик должен отправить весь свой груз. Каждый потребитель должен получить весь требуемый груз. Сумма поставок строки равна её мощности. Сумма мощностей столбца равна его спросу. Сумма мощностей равна суммарному спросу. Поставка не может быть отрицательной.
Транспортная задача (как и любая задача линейного программирования) решается в два этапа: базисное распределение и проверка на оптимальность. Далее рассмотрены шесть методов распределения поставок.
Метод северо-западного угла (см. Таблица 17): в левую верхнюю ячейку заносится поставка; если Ai>Bj, то далее рассматривается следующая в строке ячейка, в противном случае – следующая в столбце.
Таблица 17 – Метод северо-западного угла
Fmin=1*52+6*110+…+3*44=2008
Метод минимального элемента в строке (см. Таблица 18): берётся наименьший Cij в строке, туда заносится поставка; если Aij распределена, то осуществляется переход к следующей строке, иначе ищется следующий наименьший элемент строки.
Таблица 18 – Метод минимального элемента в строке
Fmin=1*52+1*45+…+3*44=1431
Метод минимального элемента в столбце (см. Таблица 19): берётся наименьший Cij в столбце, туда заносится поставка; если Bij удовлетворён, то осуществляется переход к следующему столбцу, иначе ищется следующий наименьший элемент столбца.
Таблица 19 – Метод минимального элемента в столбце
Fmin=1*52+1*79+…+3*64=1578
Метод минимального элемента в матрице (см. Таблица 20): берётся наименьший Cij в матрице, туда заносится поставка; в зависимости от распределения мощности или спроса из дальнейшего рассмотрения исключается строка или столбец.
Таблица 20 – Метод минимального элемента в матрице
Fmin=1*52+9*39+…+3*13=1465
Метод двойного предпочтения (см. Таблица 21): берётся столбец, в нём ищется наименьший Cij; определяется, является ли этот элемент минимальным в строке, и в таком случае заносится поставка и вычеркивается строка или столбец, в противном случае берётся следующий столбец.
Таблица 21 – Метод двойного предпочтения
Fmin=1*52+9*39+…+3*13=1465
Метод Фогеля (см. Таблица 22): в каждой строке и в каждом столбце определяется разность между минимальными Cij; полученные числа записываются рядом, среди них выбирается наибольшая, и в соответствующей строке или столбце в ячейку с минимальным элементом заносится поставка, после чего вычёркивается строка или столбец и пересчитываются оставшиеся разности.
Таблица 22 – Метод Фогеля
Fmin=6*25+9*101+…+3*44=1858
После построения опорного плана выбирается план с наименьшим функционалом, и осуществляется его проверка на оптимальность.