
- •Часть I
- •Часть 1. Линейное программирование
- •Задания для решения в аудитории
- •1.2. Виды задач линейного программирования
- •1.2.1. Приведение задачи линейного программирования к канонической форме
- •Задания для решения в аудитории
- •1.2.2. Переход от канонической формы задачи линейного программирования к стандартной форме
- •Задания для решения в аудитории
- •1.3.1. Графический метод решения задач линейного программирования с переменными
- •Задания для решения в аудитории
- •Задания для самостоятельной подготовки
- •1.4. Симплексный метод решения задач линейного программирования
- •1.4.1. Нахождение начального допустимого базисного решения
- •Задания для решения в аудитории
- •1.4.2. Составление и преобразование симплексных таблиц
- •Задания для решения в аудитории
- •1. Решить симплексным методом задачу линейного программирования: , , , .
- •1.4.3. Особые случаи симплексного метода
- •Задания для решения в аудитории
- •1. Решить симплексным методом задачу линейного программирования: , , , .
- •2. Решить симплексным методом задачу линейного программирования: , , , . Задания для самостоятельной подготовки
- •1.5. Метод искусственного базиса
- •1.6.2. Первая теорема двойственности
- •Задания для самостоятельной подготовки
- •1.7. Метод Гомори решения задач целочисленного программирования
- •Задания для самостоятельной подготовки
- •1.8. Транспортная задача линейного программирования
- •1.8.1. Математическая модель транспортной задачи
- •1.8.2. Опорное решение транспортной задачи
- •1.8.3. Метод потенциалов
- •Задания для самостоятельной подготовки
Задания для самостоятельной подготовки
Решить задачи целочисленного программирования методом Гомори:
1)
2)
3)
Ответы:
1.
.
2.
.
3.
- не существует.
1.8. Транспортная задача линейного программирования
1.8.1. Математическая модель транспортной задачи
Однородный
груз сосредоточен у
поставщиков в объемах
.
Данный груз необходимо доставить
потребителям в объемах
.
Известны
- стоимости перевозки единицы груза от
каждого
-го
поставщика каждому
-му
потребителю. Требуется составить такой
план перевозок, при котором запасы всех
поставщиков вывозятся полностью, запросы
всех потребителей удовлетворяются
полностью и суммарные затраты на
перевозку всех грузов минимальны.
Исходные данные транспортной задачи записываются в таблице вида
|
|
|
|
… |
|
|
|
|
… |
|
|
|
|
|
… |
|
|
… |
… |
… |
… |
… |
|
|
|
|
… |
|
Переменными
(неизвестными) транспортной задачи
являются
- объем перевозок от каждого
-го
поставщика каждому
потребителю. Эти переменные могут быть
записаны в виде матрицы перевозок
.
Математическая модель транспортной задачи в общем случае имеет вид:
(1)
(2)
(3)
(4)
Целевая функция задачи (1) выражает требование обеспечить минимум суммарных затрат на перевозку всех грузов. Уравнения (2) показывают, что запасы всех поставщиков вывозятся полностью. Уравнения (3) выражают требование полностью удовлетворить запросы всех потребителей. Неравенства (4) являются условиями неотрицательности всех переменных задачи.
Транспортная
задача, для которой выполняется условие
,
то есть суммарные запасы поставщиков
равны суммарным запросам потребителей,
называется закрытой.
Если условие не выполняется, то задача называется открытой.
Т.1. Для того чтобы транспортная ЗЛП имела решение, необходимо и достаточно, чтобы она была закрытой.
Пример. Составить математическую модель транспортной задачи
|
|
100 |
50 |
50 |
50 |
9 |
7 |
1 |
|
70 |
8 |
5 |
3 |
|
80 |
4 |
2 |
6 |
Пусть
.
,
,
.
1.8.2. Опорное решение транспортной задачи
Опорным решением транспортной задачи называется любое допустимое решение, для которого векторы условий, соответствующие положительным координатам, линейно независимы.
Так
как ранг системы векторов условий
транспортной задачи равен
,
то опорное решение не может иметь
отличных от нуля координат больше чем
.
Для проверки линейной независимости векторов условий, соответствующих координатам допустимого решения, используют циклы.
Циклом
называется
такая последовательность клеток таблицы
транспортной задачи
,
в которой две и только две соседние
клетки расположены в одной строке или
столбце, причем первая и последняя также
находятся в одной строке или столбце.
Т.2. Система векторов условий транспортной задачи линейно независима тогда и только тогда, когда из соответствующих им клеток таблицы нельзя образовать ни одного цикла.
Следовательно, допустимое решение транспортной задачи является опорным только в том случае, когда из занятых им клеток таблицы нельзя образовать ни одного цикла.
Метод вычеркивания
Для проверки возможности образования цикла используется метод вычеркивания.
Если в строке или столбце таблицы одна занятая клетка, то она не может входить в какой-либо цикл, так как цикл имеет две и только две клетки в каждой строке или в столбце. Следовательно, можно вычеркнуть все строки таблицы, содержащие по одной занятой клетке, затем вычеркнуть все столбцы, содержащие по одной занятой клетке, далее вернуться к строкам и продолжить вычеркивание строк и столбцов. Если в результате вычеркиваний все строки и столбцы будут вычеркнуты, значит, из занятых клеток таблицы нельзя выделить часть, образующую цикл, и система соответствующих векторов условий является линейно независимой, а решение – опорным. Если же после вычеркиваний останется часть клеток, то эти клетки образуют цикл, система соответствующих векторов условий линейно зависима, а решение не является опорным.
Метод минимальной стоимости
Этот метод позволяет построить опорное решение, которое достаточно близко к оптимальному решению, так как использует матрицу стоимостей транспортной задачи.
На каждом шаге метода заполняется только одна клетка таблицы, соответствующая минимальной стоимости и исключается из рассмотрения только одна строка или один столбец. Очередную клетку, соответствующую минимальной стоимости заполняют по тем же правилам, что и в методе северо-западного угла. Если поставщик еще не исключен, но его запасы равны нулю, то на том шаге, когда от него требуется поставить груз, в соответствующую клетку таблицы заносится базисный нуль и только потом поставщик исключается из рассмотрения. Аналогично поступают с потребителем.
Пример. Составить начальное опорное решение транспортной задачи, используя метод минимальной стоимости
|
|
20 |
30 |
30 |
20 |
23 |
|
|
|
|
|
38 |
|
|
|
|
|
39 |
|
|
|
|
Решение:
1)
Среди элементов матрицы стоимости
минимальной является стоимость
.
В клетку
записываем максимально возможную
перевозку
.
Исключаем из рассмотрения первого
потребителя. Запасы третьего поставщика
уменьшаем
.
Вычеркиваем первый столбец.
2)
Среди элементов оставшейся матрицы
стоимости минимальной является стоимость
.
В клетку
записываем максимально возможную
перевозку
.
Исключаем из рассмотрения первого
поставщика. Запросы второго потребителя
уменьшаем
.
Вычеркиваем первую строку.
3)
Среди элементов оставшейся матрицы
стоимости минимальной является стоимость
.
В одну из этих клеток, например,
записываем максимально возможную
перевозку
.
Исключаем из рассмотрения второго
потребителя. Запасы второго поставщика
уменьшаем
.
Вычеркиваем второй столбец.
4)
Среди элементов оставшейся матрицы
стоимости минимальной является стоимость
.
В клетку
записываем максимально возможную
перевозку
.
Исключаем из рассмотрения третьего
поставщика. Запросы третьего потребителя
уменьшаем
.
Вычеркиваем третью строку.
5)
Среди элементов оставшейся матрицы
стоимости минимальной является стоимость
.
В клетку
записываем максимально возможную
перевозку
.
Исключаем из рассмотрения третьего
потребителя. Запасы второго поставщика
уменьшаем
.
Вычеркиваем третий столбец.
6)
В оставшейся матрице осталась незаполненной
одна клетка со стоимостью
.
Записываем в нее число
.
7)
Применяя метод вычеркивания, проверяем
линейную зависимость векторов условий
|
|
20 |
30 |
30 |
20 |
23 |
|
|
|
|
|
38 |
|
|
|
|
|
39 |
|
|
|
|
В транспортной задаче переход от одного опорного решения к другому осуществляется с помощью цикла. Для некоторой свободной клетки таблицы строится цикл, содержащий часть клеток, занятых опорным решением. По этому циклу перераспределяются объемы перевозок (сдвиг по циклу). Перевозка загружается в выбранную свободную клетку и освобождается одна из занятых клеток, получается новое опорное решение.
Если таблица транспортной задачи содержит опорное решение, то для любой свободной клетки таблицы существует единственный цикл, содержащий эту клетку и часть клеток, занятых опорным решением.
Для удобства вычислений вершины циклов нумеруют и отмечают нечетные знаком плюс, а четные знаком минус. Такой цикл называется означенным.
Сдвигом
по циклу
на величину
называется увеличение объемов перевозок
во всех нечетных клетках цикла, отмеченных
знаком плюс, и уменьшение объемов
перевозок на ту же величину во всех
четных клетках, отмеченных знаком минус.