Задача линейного программирования
Постановка задачи линейного программирования. Задачи линейного программирования (ЗЛП) - простейший тип оптимизационных задач. Постановка данной задачи выглядит следующим образом.
Имеется множество переменныхX = (X1, X2,..., хп). Целевая функция линейно зависит от управляемых параметров:
F=Idtr
I= 1
Имеются ограничения, которые представляют собой линейные формы:
JajiXi <bj, где j = \,m.
і
Задача линейного программирования формулируется так: определить максимум линейной формы
F(x1,x2,...,A:„) = max(clxl -Vc1X1 +... + сплс„) (Ю.З)
при условии, что точка (дс}, X1,..., хл) принадлежит некоторому множеству D, которое определяется системой линейных неравенств
*11*1 +*12*2 +- + flL*.
O21X1+U11X1+... +UlltXn <Ь2;
IanlXl+OmlX1+...+OmnXa <Ьт.
Любое множество значений (х[,х'2,...,х*а), которое удовлетворяет системе неравенств (10.4) задачи линейного программирования, является допустимым решением данной задачи. Если при этом выполняется неравенство
C1-C10 +C2X01 +...+CnX0n ZcxXl +C2X1 +...+Cnхл
для всего множества значений X1, х,..., хп, то значение х1',х°2,...,хп является оптимальным решением задачи линейного программирования.
Задачу линейного программирования удобно представлять в векторной форме, тогда она будет выглядеть следующим образом: найти max F(x) = max (cTx) при условии AX < P0; Х> 0,
где с = (с,, C2,..., сп) представляет собой л-мерный вектор, составленный из коэффициентов целевой функции, причем ст-транспонированная вектор-строка; х = (xp Jt2,...,хп) - и-мерный вектор переменных решений;
'ьА
P0 = - m-мерный вектор свободных членов ограничений;
AJ
матрица А размером (тхп) - матрица, составленная из коэффициентов всех линейных ограничений:
A =
aMl flV2 -а.
Простые ЗЛП допускают геометрическую интерпретацию, позволяющую непосредственно из графика получить решение и проиллюстрировать идею решения более сложных задач линейного программирования.
Каноническая форма задачи линейного программирования.
Любую задачу линейного программирования можно свести к некоторой стандартной форме с ограничениями, записанными в виде уравнений. Это достигается путем введения свободных переменных во все ограничения. Свободная переменная учитывает разницу между правой и левой частями неравенства.
Пусть
п
хп+х - дополнительная переменная, которая численно равна Ьх - JjflUjcI;
і=і
п
хп+2 - дополнительная переменная, которая численно равна ъ2 -Ja2iXi,
і=і
И т.д.;
п
х - дополнительная переменная, которая численно равна Ът - JamiXr В результате получаем новую систему ограничений: 1=1
UnXl +Q11X1 +... + аихп +1*„+1 + 0jc„+2 + ... + Ojc„+m = Ь,;
*21*1 +^22X2 + ...+а1пхп+0хп+1 + Lret2 +...+0 хп+т=Ь2;
flmi*i +ашіх г +-+OmnXn + Ojc„+) +0хп+2 +...+Ц,+т =Ьт\
X1 >0, i = l, 2,..., и, п +1,..., п + т.
Целевая функция будет иметь вид
шахFixl,хгхп) = max(c,jc, +C1X1+...,спхп+0хп+1+ 0хп+2+...+0хп+т). Или в матричной форме:
maxF(jc) = max(cTjc) (Ю-5)
при условии AX1+ BX2=P0, X1 > 0, X1 > 0,
где X1 - вектор первоначальных переменных; X2-вектор свободных переменных; В - единичная матрица тх.п.
fi о-0I
I0 о -Ij
Такую форму записи называют канонической формой задачи линейного программирования. В канонической форме ограничения записываются в виде равенств.
При записи задачи линейного программирования в стандартной или канонической форме число линейно независимых уравнений, как правило, меньше числа переменных (на практике всегда т<п, где т - число уравнений). Отметим некоторые свойства, касающиеся системы ограничений:
уравнения линейно независимы, если ни одно из них не может быть получено из остальных путем алгебраических преобразований, т.е. никакие из них не являются следствием остальных;
если число независимых уравнений больше числа переменных, то такая система не имеет решения и называется несовместимой;
если число независимых уравнений равно числу переменных, то такая система имеет единственное решение, которое либо оптимально, если все компоненты положительны, либо недопустимо, если хотя бы одна из компонент отрицательна;
если удается найти множество неотрицательных значений X= (Jr1, X2,..., хп), которое является решением системы т линейных уравнений с п+т неизвестными, то такое решение называют базисным, а ненулевые переменные - базисными переменными.
Пример задачи линейного программирования. Рассмотрим двухмерную задачу линейного программирования.
Пусть требуется найти максимум линейной формы
InaxFOcpX2) = тах(*, +2jc2)
при условии
+X1<120,
0< Jc1 <100,
< JC2 < 75.
Изобразим область, описываемую совокупностью ограничений на плоскости Jt1 Ojc2 (рис. 10.1). Переменные X1 ил:2 неотрицательные, поэтому множество точек (JT1, JC2), являющихся возможными решениями задачи, находятся в I квадранте. Заменим знак в Jc1 + х2 <, 120 на знак равенства, получим уравнение прямой: Jr1 +Jr2 = 120. Эта прямая делит плоскость на две полуплоскости. Все точки одной полуплоскости удовлетворяют неравенству Jr1 + Jr2 > 120, другой - неравенству Jr1 + Jr2 < 120.
Построив аналогичные прямые Jr1 =100 и Jr2 = 75, получим многоугольник, множество точек которого (Jc1, х2) удовлетворяет всем неравенствам системы ограничений. Этот многоугольник и представляет собой область допустимых решений D.
Из множества точек (дг,, дг2) многоугольника необходимо выбрать такую, в которой функция F(X1, Jr2) = (jc( + 2jc2) принимает максимальное
Рис. 10.1. Геометрическая интерпретация задачи линейного программирования
значение. Для некоторого фиксированного значения F * линейная функция F *(х,, л2) = (Jc1 + Ix2) представляет собой прямую линию. Задаваясь различными значениями F*, получим семейство параллельных прямых. Увеличение значений линейной функции соответствует перемещению прямой параллельно самой себе вверх. Следовательно, как видно из рис. 10.1, максимальное значение целевой функции на допустимом множестве точек соответствует прямой, проходящей через точку 2 пересечения прямых Jc1 +X2= 120 и х2 = 75.
Решив эту систему, получим Jc1 = 45. Тогда максимальное значение функции F = max(x, + 2jc2) = 195.
Решение задач линейного программирования симплекс-методом
Метод полного исключения. Перейдем к изложению методов решения задач линейного программирования. Рассмотрим вначале один из вспомогательных методов, иллюстрирующий возможность преобразования системы линейных уравнений, а именно, приведения матрицы, составленной из параметров уравнений ограничений, к единичному виду. Переобозначим свободные коэффициенты ограничений ^0=Ь-
Пусть имеется система ограничений в виде
п
^aijXi=aJ0, j = 1, т.
1*1
Перепишем данную систему уравнений в матричной форме: AX=A0, и А = [A, A0], где Ap - расширенная матрица.
ЇУІетод полного исключения состоит из конечного числа однотипных шагов и заключается в приведении матрицы А к единичному виду. Метод основан на следующих двух операциях.
Одну из строк расширенной матрицы умножают на число, отличное от нуля.
Из каждой строки расширенной матрицы (Ap) вычитают данную строку. Каждое такое преобразование называется преобразованием Гаусса. В результате получаем новую систему линейных уравнений, эквивалентную исходной.
Рассмотрим более подробно метод полного исключения.
Среди элементов матрицы А выбирают произвольный элемент, отличный от нуля. Этот элемент называют направляющим элементом шага. Строку и столбец, содержащие направляющий элемент, называют направляющей строюй и направляющим столбцом данного преобразования.
Все элементы направляющей строки расширенной матрицы (Ap) делят на направляющий элемент. В результате получают направляющую строку с направляющим элементом, равным единице. Далее из каждой строки матрицы А вычитают новую направляющую строку, умноженную на элемент, который расположен на пересечении строки и направляющего столбца. Итак, пусть исходная система уравнений имеет вид
а11*1 <*21*1 | + CI12X2 + •• + U22X2 +. | ■ + аых„ =а10; .+ а2„Хп =<*20’ |
ашХХ | + ат2Х2 + | ■■+aVnXn=a^O- |
Возьмем в качестве направляющей строки вторую строку, в качестве направляющего столбца второй столбец, тогда направляющий элемент будет Jc2 (коэффициент при нем равен а22). Разделим направляющую строку на этот коэффициент и перепишем вновь полученную систему ограничений:
#21 а,. —-а, #21 а* ——а„
Далее умножаем направляющую строку поочередно на элементы, стоящие в направляющем столбце преобразуемого уравнения, и результат вычитаем из соответствующего уравнения. Иными словами, вначале умножим направляющую строку на ап и вычтем полученный результат из первого уравнения. Далее направляющую строку умножим на агг и вычтем из третьего уравнения и т.д. до последнего т-то уравнения. Получим новую систему:
| / \ |
|
|
+ | ^21 аы —-Ou | її | #2i а.о—~ап |
| \ 22 ) |
| CL12 \ 22 у |
\ Ґ їх. =
го шага главная часть матрицы Ap** не содержит ни одного элемента или содержит только нулевые элементы, то процесс исключения переменных заканчивается. После проведения преобразований в системе может оказаться / уравнений, 1<т. Пусть это первые по порядку I уравнений тогда система уравнений может быть записана в виде
(Ю.6)
Примем, что i-й направляющей строке соответствует г-й направляющий столбец, тогда #(,) =|°’ ^ \ j = 1, 2,..., I.
[1; 1 = j
п
Следовательно, (10.6) можно записать в виде х. = aj„ - J aIl0Xj, причем
j=i+і
переменные х. являются базисными, а переменные xs (s = /+I, ..., п) - небазисными.
Пример применения метода полного исключения. Рассмотрим пример применения метода полного исключения Гаусса для исследования системы уравнений
#21 а —21-а. Pt. = Расширенная матрица имеет вид
#2і
GLn—— а_
Матрицу, в которую преобразовалась расширенная матрица Ap после первого шага, обозначим Ар\ В полученной матрице все элементы направляющего столбца, отличные от направляющего элемента, стали равными нулю. Совокупность элементов первых п столбцов матрицы Ap, лежащих вне направляющей строки и столбца предыдущего шага,
называют главной частью матрицы А'1’ данного преобразования. Направляющий элемент второго шага выбирают среди ненулевых элементов главной части матрицы Ap0, полученной после проведенного преобразования.
Второй и дальнейший шаги метода проводят аналогично первому шагу. Последовательность действий продолжается до тех пор, пока 310
| 1 | 2 | 1 | 1 | 3 |
| 2 | 1 | 1 | 3 | 3 |
АР = | 4 | 5 | 3 | 5 | 9 |
| Л | A2 | аі | A4 | А> |
X1 +2*2+^3+х4 =3;
• Ixl + х2 + Xi + 3 = 3;
4 X1 + Sx2 + Зх3 + Sx4 = 9.
Первый шаг. В качестве первого направляющего элемента возьмем ап=1. Умножив первую строку матрицы А на 2, вычтем результат из второго уравнения и, умножив на 4, вычтем результат из третьего уравнения; получим
А2 А0 12 113 0-3-1 1 -З
А0) = aP
Второй шаг. Поскольку главная часть матрицы AJ10 содержит отличные от нуля элементы, продолжим процесс исключения. Выберем
элемент а22 = -3 в качестве направляющего элемента на втором шаге преобразования. Разделим вторую строку на -3, получим
где ос3, OC4 - произвольные скаляры.
Симплексные преобразования. В основе симплекс-метода лежит идея поиска базисного решения с последующим переходом от одного базиса к другому таким образом, чтобы целевая функция при этом все время увеличивалась, если речь идет о задаче максимизации. Пусть мы имеем задачу линейного программирования в канонической форме. Матрица ограничений имеет вид
A1X1 +... + AnXn +е,хп+, +...+еяхл+я =A0,
Далее умножим вторую строку на 2 и вычтем результат из первой строки, умножим вторую строку на -3, результат вычтем из третьей 1 0 К K і' 0 1K-K1 1 о о 3 1 -3 АР = строки, в итоге А‘2) = 0 0 0 0 2 I 1 1 Уз -К -3 -1 1 0 '1' '0' '0 0 1 0 где ех = 0 , є2 — 0 > Єт 0 0 0 I единичный базис, элементы а > 0 для всех г = 1, 2, ..., т. Будем применять метод полного исключения к расширенной матрице ограничений. Выбираем направляющий элемент а на данной итерации. В результате преобразования Гаусса, методика которого была только что описана, получим новые значения коэффициентов:
ВВЕДЕНИЕ 5
- Введение
- Глава I определениясистемного анализа
- Системность - общее свойство материи
- Определения системного анализа
- Понятие сложной системы
- Характеристика задач системного анализа
- Особенности задач системного анализа
- Глава 2 характеристика этапов системного анализа
- Процедуры системного анализа
- Анализ структуры системы
- Построение моделей систем
- Исследование ресурсных возможностей
- Определение целей системного анализа
- Формирование критериев
- Генерирование альтернатив
- Реализация выбора и принятия решений
- Внедрение результатов анализа
- Глава 3 построение моделей систем
- Понятие модели системы
- Агрегирование - метод обобщения моделей
- Глава 4 имитационное моделирование - метод проведения системных исследований
- Сущность имитационного моделирования
- Композиция дискретных систем
- Содержательное описание сложной системы
- Глава 5 теория подобия - методология обоснования применения моделей
- Модели и виды подобия
- Основные понятия физического подобия
- Элементы статистической теории подобия
- Глава 6 эксперимент - средство построения модели
- Характеристика эксперимента
- Обработка экспериментальных данных
- Глава 7 параметрические методы обработки экспериментальной информации
- 7.1. Оценивание показателей систем и определениеихточности
- 7.2. Использование метода максимального правдоподобия для оценивания параметров законов распределения
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- 7.5. Примеры оценки показателей законов распределения
- Глава 8
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- Формулировка теоремы Байеса для событий
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- 8.3. Вычисление апостериорной плотности при последовательном накоплении информации
- Достаточные статистики
- Сопряженные распределения
- 8.9. Оценивание параметров семейства гамма-распределений
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- Глава 9
- Общие замечания
- Ядерная оценка плотности
- Глава 10
- Задача линейного программирования
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- Метод искусственных переменных
- Дискретное программирование
- Нелинейное программирование
- Глава 11 системный анализ и модели теории массового обслуживания
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- Замкнутые системы с ожиданием
- 11.5. Пример расчета надежности системы с ограниченным количеством запасных элементов
- Глава 12 численные методы в системном анализе
- Метод последовательных приближений
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53
- Глава 13 выбор или принятие решений
- Глава I определения системного анализа 7
- Глава 2 33
- Глава 3 построение моделей систем 53