- •17. Транспортная задача
- •1. Запишем отдельно матрицу стоимостей для того, чтобы было удобнее выбирать минимальные стоимости.
- •18. Составление опорного допустимого плана перевозок
- •Метод минимальной стоимости
- •19. Критерий оптимальности решения транспортной задачи
- •20. Нахождение оптимального решения с помощью циклических перевозок
- •21. Транспортные задачи с неправильным балансом
- •22. Целочисленное линейное программирование. Метод Гомори
- •23. Метод ветвей и границ
- •24.Нелинейное программирование. Постановка задачи
21. Транспортные задачи с неправильным балансом
В рассмотренной модели транспортной задачи мы предполагали, что суммарные запасы поставщиков равны суммарным запросам потребителей, т.е.
Такая
задача называется задачей с правильным
балансом, а ее модель — закрытой. Если
же это равенство не выполняется, то
задача называется задачей с неправильным
балансом, а ее модель — открытой. Решение
задачи с неправильным балансом сводится
к решению задачи с правильным балансом
введением в ее математическую модель
фиктивного поставщика или фиктивного
потребителя. Тарифы на перевозку грузов
от таких поставщиков или к таким
потребителям полагаются равными 0 (т.е.
фактически соответствующие перевозки
не производятся). В случае превышения
общего запаса продукции над потребностью,
т.е. если
в
рассмотрение вводится фиктивный
потребитель с потребностью
и
тарифами на перевозку ci ( k
+1) =0. Если же
то вводится фиктивный поставщик, запасы которого равны
с тарифами на перевозку c ( n +1)j=0. Этим приемом задача сводится к закрытой транспортной задаче, из оптимального плана которой получается оптимальный план исходной задачи. Заметим, что при составлении начального опорного решения для ускорения вычислений в последнюю очередь следует (хотя и не обязательно) распределять запасы фиктивного поставщика и удовлетворять запросы фиктивного потребителя, несмотря на то, что им соответствуют наименьшие тарифы на перевозку (равные 0).
22. Целочисленное линейное программирование. Метод Гомори
Сущность метода заключается в построении ограничений, отсекающих нецелочисленные решения задачи линейного программирования, но не отсекающих ни одного целочисленного плана.
Алгоритм решения задачи линейного целочисленного программирования этим методом.
Решаем задачу симплексным методом без учета условия целочисленности. Если все компоненты оптимального плана целые, то он является оптимальным и для задачи целочисленного программирования. Если обнаруживается неразрешимость задачи, то и неразрешима задача целочисленного программирования.
Если среди компонент оптимального решения есть нецелые, то к ограничениям задачи добавляем новое ограничение, обладающее следующими свойствами:
- оно должно быть линейным;
- должно отсекать найденный оптимальный нецелочисленный план;
- не должно отсекать ни одного целочисленного плана.
Для построения ограничения выбираем компоненту оптимального плана с наибольшей дробной частью и по соответствующей этой компоненте k-й строке симплексной таблицы записываем ограничение Гомори.
,
,
где fk = xj - [xj];
fkj = zkj - [zkj];
S* - новая переменная;
[xj], [zkj] -ближайшее целое, не превосходящее xj и zkj соответственно.
Составленное ограничение добавляем к имеющимся в симплексной таблице, тем самым получаем расширенную задачу. Чтобы получить опорный план этой задачи, необходимо ввести в базис тот вектор, для которого величина
минимальна.
И если для этого вектора величина
получается
по дополнительной строке, то в следующей
симплексной таблице будет получен
опорный план. Если же величина
не
соответствует дополнительной строке,
то необходимо переходить к М-задаче
(вводить искусственную переменную в
ограничение Гомори).Решаем при помощи обычных симплексных преобразований полученную задачу. Если решение этой задачи приводит к целочисленному оптимальному плану, то искомая задача решена. Если мы получили нецелочисленное решение, то снова добавляем одно дополнительное ограничение, и процесс вычислений повторяется. Проделав конечное число итераций, либо получаем оптимальный план задачи целочисленного программирования, либо устанавливаем ее неразрешимость.
Замечания:
Если дополнительная переменная S* вошла в базис, то после пересчета какого-либо последующего плана соответствующие ей строку и столбец можно удалить (тем самым сокращается размерность задачи).
Если для дробного xj обнаружится целочисленность всех коэффициентов соответствующего уравнения (строки), то задача не имеет целочисленного решения.
