- •3.2. Модели задач линейного программирования
- •3.2.1. Составление моделей
- •3.2.2. Задача о составе смеси
- •3.2.3. Задача о загрузке оборудования
- •3.2.4. Задача о распределении ресурсов
- •3.2.5. Задача о перевозках (транспортная задача).
- •3.3. Основная задача линейного программирования
- •X 0, (3.19)
- •4. Графическое решение задач линейного программирования
- •4.1. Решение задач линейного программирования графическим методом
- •4.2. Свойства основной задачи линейного программирования
- •4.3. Исследование графического решения задач линейного программирования
- •4.3.1. Исследование чувствительности решения к изменениям коэффициентов правых частей ограничений
- •4.3.2. Исследование чувствительности решения к изменениям коэффициентов матрицы системы ограничений
- •4.3.3. Исследование чувствительности решения к изменениям коэффициентов целевой функции
- •5. Решение задачи лп симплексным методом
- •5.1. Алгоритм поиска оптимального решения
- •5.2. Определение опорного решения
- •5.3. Общий алгоритм симплексного метода
- •6. Исследование решения задач линейного программирования
- •6.1. Двойственность задач линейного программирования
- •6.2. Решение двойственной задачи
- •6.3. Экономическая интерпретация двойственности
- •6.4. Анализ чувствительности решения к изменению правых частей ограничений
- •6.5. Анализ чувствительности решения к изменению коэффициентов целевой функции
- •7. Решение транспортных и сетевых задач
- •7.1. Транспортная задача открытого типа
- •7.2. Определение допустимого базисного решения транспортной задачи
- •7.3. Распределительный метод решения транспортной задачи
- •7.4. Метод потенциалов для решения транспортной задачи
- •Алгоритм решения транспортной задачи методом потенциалов
- •7.5. Решение транспортной задачи по критерию времени
- •7.6. Решение сетевых задач методом линейного программирования
3.2.5. Задача о перевозках (транспортная задача).
Имеется m складов, n пунктов потребления, связанных сетью дорог с определенными тарифами перевозок. При этом сij – стоимость перевозки единицы груза из i-го склада в j-й пункт потребления. На складах имеются запасы однородного товара в количествах a1 ,…, ai ,…, am. Пункты потребления подают заявки, соответственно, на единицы товара b1 ,…, bj ,…, bn . Необходимо составить план перевозок, т. е. Указать, с какого склада, в какие пункты потребления и какое количество товаров нужно отправлять, чтобы заявки были выполнены, а общие расходы на перевозки были бы минимальными.
В качестве управляемых переменных берется количество товара, направляемого из i-го склада в j-й пункт потребления xij . Если между соответствующими пунктами нет перевозок, то принимается xij = 0.
Заявки считаются выполнимыми, если , т. е. сумма заявок не превышает всех запасов. Это будет дополнительным условием задачи.
Количество взятого с каждого склада товара не должно превышать имеющегося запаса, поэтому
или в свернутом виде
. (3.11)
Заявки, поданные пунктами потребления, должны быть выполнены, следовательно:
или . (3.12)
Полная стоимость перевозок, которую по условиям задачи необходимо минимизировать, включает суммарную стоимость перевозок между всеми складами и всеми пунктами потребления, т. е.
. (3.13)
Это и будет целевая функция транспортной задачи.
3.3. Основная задача линейного программирования
Несмотря на многообразие математических моделей, существуют способы перехода от всех частных задач к основной задаче линейного программирования. Она формулируется следующим образом.
Для переменных x1 , …, xn найти такие неотрицательные значения
xj 0 , , (3.14)
которые обращали бы в максимум целевую функцию
(3.15)
и удовлетворяли системе равенств
. (3.16)
Основную задачу линейного программирования можно представить в матричном виде
F = C X max , (3.17)
A X = B , (3.18)
X 0, (3.19)
где C = [c1 , …, cj , …, cn] – матрица-строка коэффициентов целевой функции;
–матрица коэффициентов системы ограничений;
–матрица-столбец коэффициентов правых частей ограничений, записанная в транспонированном виде;
–матрица-столбец переменных.
В частных задачах может потребоваться не максимизация, а минимизация целевой функции. В этом случае для сохранения алгоритма максимизации решается задача при целевой функции с обратным знаком, т. е. если F min min, то в задаче беретсяF max = – Fmin.
Если в частной задаче в системе ограничений есть неравенства, то от них можно перейти к ограничениям-равенствам и, наоборот, от равенств можно перейти к неравенствам в случае исследования результатов решения.
Например, a11 x1 + … + a1n xn b1 (a11 x1 + … + a1nxn b1 ) , или
a11 x1 + … + a1n xn –b1 0.
Вводится новая переменная xn+1, равная левой части неравенства
xn+1 = a11 x1 + … + a1n xn –b1 .
На эту новую переменную также накладывается условие неотрицательности xn+1 0. Перенеся новую переменную в левую часть неравенства, получим
a11 x1 + … + a1n xn – xn+1 = b1 или (a11 x1 + … + a1n xn + xn+1 = b1 ).
В целевую функцию дополнительные переменные входят с нулевыми коэффициентами:
F = c1 x1 + … + cn xn – 0 xn+1 max.
В частой задаче требование неотрицательности может накладываться не на все переменные. Например, xjне ограничено в знаке. В этом случае вводят замену
xj = xj –xj , xj 0, xj 0.
Это увеличивает число переменных, но позволяет избежать трудностей при анализе решения двойственных задач.
Чтобы решить задачи линейного программирования надо ответить на три вопроса:
Имеет ли задача допустимые решения, т. е. совместна ли система ограничений?
Имеет ли целевая функция экстремум?
Каков этот экстремум, при каких значениях переменных достигается?
Набор чисел X = [x1, …, xj , …, xn], удовлетворяющий условиям (3.14) и (3.16), называетсядопустимым решением.
Решение, при котором линейный функционал (3.15) достигает экстремума, называется оптимальным решением.
При анализе системы может оказаться:
условия (3.16) противоречивы, т. е. не существует набора чисел, удовлетворяющих этим условиям, в этом случае задача не имеет решения;
условия (3.16) непротиворечивы, но Fне имеет экстремума, тогда задача тоже неразрешима.
Если – матрица системы, то– расширенная матрица системы, у которой добавлен столбец свободных членов.
Если в матрице произвольным образом выбрать kстрок иkстолбцов, то элементы, лежащие на их пересечении, образуютквадратную матрицу k – го порядка.
Определитель ее называется минором k – го порядка матрицыА.
Рангомматрицы называется наивысший порядок миноров матрицы, отличных от нуля.
Теорема Кронекера-Капелли утверждает, что для того, чтобы система AX=Bимела хотя бы одно решение, т. е. была совместна, необходимо и достаточно, чтобы ранг матрицы системы был равен рангу расширенной матрицы.
Таким образом, тот общий ранг, который имеют матрица системы и расширенная матрица, составляет ранг системы и представляет собой число независимых уравнений в системе.
Если r–ранг системы, тоr n(число неизвестных),r m(число уравнений).
Возьмем r = mи далее везде будем предполагать, чтоm– число независимых уравнений.
Рассматриваются обычно два случая, когда число уравнений равно или меньше числа переменных.
В первом случае, когда число уравнений равно числу переменных (m=n), система имеет единственное решение x1 ,…, xj ,…, xn. В линейном программировании это редкий случай и практического значения не имеет.
Во втором случае число уравнений меньше числа переменных, т. е. m < n. Это наиболее распространенный вариант задач линейного программирования. В этом случае, если система ограничений совместна, она имеет бесконечное множество решений. При этом части переменных, число которых определяется разностью междуmиn, можно придавать произвольные значения. Они называютсясвободными переменными. Остальные переменные можно выразить через свободные, и они называютсябазисными переменными.
Если хотя бы одна переменная отрицательная, то решение задачи недопустимо.