
- •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.7 Проверка опорного плана на оптимальность методом потенциалов
После построения опорного плана одним из шести методов, рассмотренных в предыдущем подразделе, ещё нельзя утверждать, что план оптимален.
Вводятся следующие обозначения:
Cij – показатель оптимальности загруженной клетки (первое число в каждой ячейке; по условию задачи – расстояние от Ai до Bj)
Ui – потенциал строки
Vj – потенциал столбца
Показатель оптимальности представляет собой сумму потенциала строки и потенциала столбца: Cij = Ui + Vj
Потенциал строки записывается рядом со строкой, потенциал столбца – под столбцом.
Значение первого потенциала выбирается произвольно. В данном случае это 0 (см. Таблица 23 – потенциал верхней строки). Далее рассчитываются потенциалы всех столбцов, ячейки которых заполнены в выбранной строке.
Таблица 23 – Первый произвольный потенциал и расчёт доступных потенциалов столбцов
Аналогично рассчитываются потенциалы строк, ячейки которых заполнены в столбцах с рассчитанными потенциалами (в данном случае можно рассчитать только одну строку). Далее рассчитываются следующие потенциалы столбцов, и в таком порядке определяются все недостающие значения. Если остаются незаполненные ячейки, то нужно снова выбрать значение потенциала произвольно (см. Таблица 24).
Таблица 24 – Рассчитанные потенциалы
Далее определяется характеристика незагруженных клеток, представляющая собой разность показателя оптимальности и суммы потенциалов:
Eij = Cij – (Ui + Vj)
Таким образом, Eij для загруженных клеток равняется нулю.
Из рассчитанных значений составляется отдельная таблица (см. Таблица 25). При этом величина положительных характеристик не имеет значения и просто обозначается.
Таблица 25 – Характеристика незагруженных клеток
Если отрицательные характеристики отсутствуют, то план оптимален, задача решена. В противном случае нужно улучшить план, нужно перейти к следующей итерации.
Выбирается клетка с наименьшим значением Eij. К этой клетке строится цепь перераспределения поставок (см. Таблица 26). Проводится отрезок до одной из поставок в этом же столбце, либо в этой же строке. Из следующей ячейки проводится следующий отрезок. Последний отрезок должен прийти к началу первого, в противном случае цепь перестраивается по-другому.
При этом если первый отрезок проведён по столбцу, то следующий проводится по строке, и наоборот. Таким образом, один отрезок принадлежит либо только одной строке, либо только одному столбцу, и при этом каждый последующий отрезок перпендикулярен предыдущему. В результате получается так, что все вершины полученной фигуры содержат поставки, кроме одной, хотя отрезки могут проходить как по загруженным, так и по незагруженным клеткам. В итоге количество вершин всегда чётное.
Если построить цепь не удаётся, то допускается ввести нулевую поставку - одна из незагруженных клеток признаётся загруженной, при этом значение поставки равняется нулю.
Таблица 26 – Цепь на первой итерации
Далее, начиная с незагруженной вершины, вершины поочерёдно помечаются знаками «+» (положительные) и «-» (отрицательные). Выбирается наименьшая из поставок отрицательных вершин. Это значение прибавляется к положительным вершинам и вычитается из отрицательных (см. Рисунок 2 - полученные значения выделены жирно).
Рисунок 2 – Цепь перераспределения поставок
Далее составляется новая таблица, содержащая новый план поставок. Количество загруженных клеток должно получиться меньше, чем сумма количества столбцов и количества строк в таблице. Потенциалы столбцов и строк и характеристики незагруженных клеток пересчитываются.
Если отрицательные характеристики отсутствуют, то план оптимален, задача решена. В противном случае нужно улучшить план, нужно перейти к следующей итерации (см. Таблица 27, Таблица 28, Рисунок 3, Таблица 29, Таблица 30, Рисунок 4, Таблица 31, Таблица 32, Рисунок 5, Таблица 33, Таблица 34).
Таблица 27 – Второй план поставок
Таблица 28 – Характеристика незагруженных клеток на второй итерации
Рисунок 3 – Вторая цепь перераспределения поставок
Таблица 29 – Третий план поставок
Таблица 30 – Характеристика незагруженных клеток на третьей итерации
Рисунок 4 – Третья цепь перераспределения поставок
Таблица 31 – Четвёртый план поставок
Таблица 32 – Характеристика незагруженных клеток на четвёртой итерации
Рисунок 5 – Третья цепь перераспределения поставок
Таблица 33 – Пятый план поставок
Таблица 34 – Характеристика незагруженных клеток на пятой итерации
Fmin=1*52+1*45+…+3*44=1340