- •Моделирование
- •2. Точность вычислительного эксперимента
- •1. Линейное программирование
- •1.2. Графический метод решения задач лп
- •1.3 Проверка задач лп на чувствительность
- •1.4 Симплекс - метод решения задач лп
- •1.4. Симплекс-метод решения задач лп
- •1.5. Модифицированный симплекс-метод
- •Исходная таблица имеет вид
- •1.6. Транспортная задача
- •1.7. Метод потенциалов для решения тз
- •1.7.1. Нахождение предварительного плана перевозок
- •Учитывая условия баланса наличия и потребления
- •1.7.2. Проверка опорного плана на оптимальность
- •1.7.3. Корректировка плана перевозок
- •1.8. Алгоритм метода потенциалов
- •Проверим необходимое условие в опорном плане:
- •0 3 0 Таблица 1.14
- •Преобразованная матрица показана в табл. 1.25
- •Преобразованная матрица стоимостей приведена в табл. 1.28.
- •1.9. Транспортная задача в сетевой форме
- •1.10. Двойственные задачи линейного программирования
- •Легко видеть, что
- •Запишем целевую функцию для прямой задачи
- •Прямая задача:
- •Из этой таблицы находим решение двойственной пары:
- •Окончательно прямая задача имеет следующее решение:
- •2. Обработка результатов эксперимента
- •Аппроксимация гиперболической функцией
- •Аппроксимация функциональной зависимостью вида
- •Аппроксимация функциональной зависимостью вида
- •Интерполяционный многочлен Ньютона
- •Экстраполяция
- •3. Некоторые простейшие задачи нелинейной оптимизации
- •3.1. Оптимизация числа ниток в графике движения поездов
- •3.2. Управление запасами
- •Понятие о выпуклом программировании
- •В нашем примере целевая функция имеет вид
- •Проверим:
- •Решение задачи выпуклого программирования
- •Сумма реальных расходов со штрафом составит
- •Филоненков Александр Иванович
- •Математические модели и меттоды Учебное пособие
15.
F
=
5X1
+
3X2
max;
3X1
+ 5X2
5X1
+
2X2
10,
16.
F
=
2X1
+ 3X2
max;
X1
+ X2
2,
X1
+
X2
1,
.
17.
F
=
X1
- 2X2
min;
X1
- X2
1,
X1
+ X2
2,
X1
- 2X2
0,
.
18.
F
=
X1
+ 3X2
max;
X1
- X2
1,
2X1
+
X2
2,
X1
- X2
0,
.
19.
F
=
X1
+ X2
max;
X1
+ 2X2
10,
X1
+
2X2
2,
2X1
+ X2
10,
.
20.
F
=
2X1
+
3X2
min;
X1
+ X2
4,
3X1
+
X2
4,
X1
+
5X2
4,
X1
3,
X2
3,
.
27.
F
=
X1
- X2
min;
X1
+ X2
1,
X1
- 2X2
1,
2X1
+
3X2
2,
3X1
+
2X2
3,
X1
+ X2
0.5,
.
Каноническая
задача имеет смысл только тогда, когда
n
(число неизвестных переменных) больше
m
(число уравнений).
при условиях
(ограничениях)
.
(1.19)
15,
.1.4 Симплекс - метод решения задач лп
(1.17)
i=
(1.18)
1.4. Симплекс-метод решения задач лп
Каноническая задача имеет смысл только тогда, когда n (число неизвестных переменных) больше m (числа уравнений).
(1.17)
при условиях (ограничениях)
(1.18)
x 0. (1.19)
Если
число уравнений больше числа неизвестных,
то либо эти уравнения линейно зависимы,
и тогда часть из них можно отбросить,
либо эти уравнения противоречивы, и не
существует ни одного допустимого
решения. Если же число линейно-независимых
уравнений равно числу неизвестных, то
существует единственное решение, и
поэтому не возникают задачи отыскания
экстремума. Условие n>m
в канонической задаче обусловливает
множество решений системы. Среди
множества решений существуют так
называемые базисные
решения
Xб.
Они строятся следующим образом. Среди
n неизвестных
выбирают m
(по числу уравнений). Эти
m
неизвестных образуют базис. Все остальные
n-m
неизвестные, не вошедшие в число
отобранных, полагают равными нулю и
называют небазисными (свободными)
неизвестными. Существует множество
вариантов выбора базиса. Число таких
вариантов равно
. Базисное
решение системы уравнений будет
допустимым (опорным), если все базисные
переменные неотрицательны (Xj
0).
Таким образом, допустимым решением
(планом) называют любой набор переменных
Xj,
удовлетворяющих ограничениям (1.18) и
(1.19).
Решение задачи ЛП заключается в том, чтобы среди всех опорных базисных решений выбрать такое, при котором целевая функция (1.17) достигает экстремума. Наиболее распространенным методом решения задач ЛП канонического вида является симплекс-метод. Симплекс-метод заключается в последовательном вычислении решений, находящихся в вершинах многогранника (симплекса), образующего область допустимых решений. Вычисления выполняются таким образом, что значения целевой функции при каждом следующем шаге строго возрастают. Это свойство симплекс-метода приводит к тому, что просматривается лишь небольшая часть допустимых решений из общего числа. Благодаря этому за приемлемое время можно решить задачи с большим числом переменных.
Целенаправленный переход от одного допустимого решения к другому (от одной вершины симплекса к другой) осуществляется при этом за счет изменения состава базисных и свободных переменных по специальным правилам замещения.
Основная система уравнений
Пусть
Xб=
0 - базисный
вектор, X=
0 - небазисный
вектор,
B=
0
- вектор
свободных
членов, A=
- матрица
коэффициентов.
Основной или нормальной формой системы уравнений называется векторное уравнение вида
Xб
= B – AX,
которое в координатной форме имеет вид :
(1.21)
По определению выполняется соотношение m<n, т.е. число уравнений всегда меньше числа неизвестных.
В системе (1.21) можно разрешить любое уравнение относительно любой переменной и подставить ее во все уравнения. Тогда получим новую систему уравнений, равносильную данной. Но вся система не обязательно удовлетворяет условиям основной системы. Из всех тождественных линейных преобразований можно выбрать такое, которое является инвариантным относительно свойства быть основной системой (инвариант-математическое выражение, остающееся неизменным при определенном преобразовании переменных, связанных с этим выражением). Такие преобразования называются нормальными исключениями или симплекс-преобразованиями, которые определяются следующими операциями.
1. Выбираем такой столбец матрицы А, который имеет хотя бы один положительный элемент aij . Такой столбец называют разрешающим. Пусть для простоты рассуждения он будет первым в системе (1.21).
2.
В разрешающем столбце для всех
положительных элементов находим
множество частных от деления на них
соответствующих членов, т.е. находим
для
3. Из полученного множества выбираем наименьший положительный элемент. Строку, в которой это реализовалось, назовем разрешающей. Положим, для определенности, что эта строка будет первая в системе (1.21).
4.
Элемент матрицы А, стоящий на пересечении
разрешающей строки и разрешающего
столбца, назовем разрешающим. В нашем
случае это
.
Решим уравнение системы относительно неизвестного, стоящего при разрешающем элементе.
5. Подставим найденное значение неизвестного во все другие уравнения, получим систему
(1.22)
В результате исходная система (1.21) преобразована в новую систему (1.22), в которой произошло замещение переменной в базисном векторе. Все вычисления значительно упрощаются, если использовать компактный способ записи в специального рода таблицах. В таблице записывается только числовая информация системы (1.21), а в заголовке указывается, к каким переменным эта информация относится (табл. 1.7).
Таблица 1.7
-
B
Xc
xm+1
...
xn
x1
b1
a1,m+1
...
a1,n
...
...
...
...
...
xm
bm
am,m+1
...
am,n
Правила образования новых коэффициентов при замещении базиса
приведены в табл. 1.8.
Таблица 1.8
Элементы |
Элементы таблицы |
|
Старой |
Новой |
|
Разрешающий |
ak,s |
|
Разрешающей строки |
ak,j |
|
Разрешающего столбца |
ai,s |
|
Все остальные |
ai,j |
|
В этой таблице введем следующие индексы:
S - индекс элементов разрешающего столбца,
K - индекс элементов разрешающей строки.
П
ak,s
ai,s
ak,j
ai,j
Рис. 1.9
Суть преобразований симплекс-метода рассмотрим на примере 1.4. Давайте вспомним ограничивающие неравенства и целевую функцию из этого примера и найдем max целевой функции, пользуясь вышеизложенным методом :
F = 908X1 + 676X2 max.
X1 + X2 14,
X2 10,
10 X1 + 8 X2 120,
7X1 + 5 X2 70,
4X1 + 2X2 28,
Преобразуем
ее в каноническую форму, вводя
дополнительные переменные Xj
0,
и превратив неравенства в равенства.
Следует обратить внимание, что если в
неравенстве стоит знак "
",
то при свободной переменной пишут "
", в противном случае - " + ":
X1
+
X2
= 14 - X3
,
X2 = 10 - X4 ,
10 X1 + 8 X2 = 120 - X5 ,
7X1 + 5 X2 = 70 - X6 ,
4X1 + 2X2 = 28 - X7 .
Чтобы приступить к процедуре симплекс-метода, нужно из множества базисных решений полученной системы уравнений сначала найти опорное. С учетом этого в решении задач симплекс-методом различают три этапа:
- нахождение первоначального базисного решения и формирование исходной симплекс-таблицы;
- определение допустимого решения;
- определение оптимального решения.
1-й этап
Первоначальное базисное решение систем находим, полагая свободными переменные X1 и X2.
Т огда X3 = 14 - X1 - X2 ,
X4 = 10 - X2 ,
X5 =120 - 10X1 - 8X2 ,
X6 = 70 - 10X1 - 5X2 ,
X7 = 28 - 4X1 - 2X2 ,
F = 908X1 + 676X2 = 0 .
Преобразуем эти уравнения к нормальному виду:
X 3 = 14 - ( X1 + X2 ),
X4 = 10 - ( 0X1 + X2 ),
X5 =120 - (10X1 + 8X2 ),
X6 = 70 - ( 7X1 + 5X2 ),
X7 = 10 - ( 4X1 + 2X2 ),
F = 0 + 908 X1 + 676 X2 .
Полученную систему
уравнений запишем в виде исходной
симплекс-таблицы (табл. 1.9). В табл. 1.9 нет
отрицательных свободных членов.
Следовательно, нами получено опорное
(допустимое) решение, так как допустимым
решением является любое неотрицательное
решение (при котором
>
0), но оно не является оптимальным.
Очевидно, что если бы при всех неизвестных в целевой функции F стояли положительные коэффициенты, то было бы достигнуто максимальное значение F. Отсюда вытекает признак оптимальности допустимого решения: в F - строке симплекс-таблицы не должно быть отрицательных коэффициентов.
Таблица 1.9
-
Базисные переменные Xб
Свободный член
Свободные переменные
X1
X2
X3
14
1
1
X4
10
0
1
X5
120
10
8
X6
70
7
5
X728
4
2
F
0
- 908
- 676
2-й этап
Напомним,
что основная операция симплекс-метода
заключается в том, что некоторая базисная
переменная
замещается
на свободную переменную
.
При этом
операция замещения выполняется при
соблюдении следующих условий:
- значение целевой функции F в новом опорном (допустимом) решении должно быть больше, чем в предыдущем;
- новое решение системы должно быть также опорным (допустимым).
В нашем примере первое условие выполняется, если разрешающий элемент положительный и выбран в столбце отрицательного коэффициента F-строки.
Второе условие выполняется, если разрешающий элемент находится как минимальное положительное отношение элементов столбца свободных членов к соответствующим элементам разрешающего столбца.
По выше изложенному правилу для нахождения допустимого решения меняют местами базисные и свободные переменные. Для этого находят разрешающий элемент (в табл. 1.9 он взят в рамку). В нашем случае разрешающим может быть как столбец X1 , так и X2. Деля свободные переменные на соответствующие значения X1 и X2 (кроме строки F), находим наименьшее положительное значение. Для столбца X1:
;
;
;
;
.
Для столбца X2 :
;
;
;
;
.
Наименьшее отношение 28/4 определяет разрешающую строку и разрешающий столбец, а пересечение разрешающего столбца и разрешающей строки - разрешающий элемент aks = 4. В табл. 1.9 разрешающий столбец и разрешающую строку отмечаем стрелками ( ). Определив aks , строят следующую таблицу, в которой меняют местами переменные, входящие в строку и столбец разрешающего элемента, т.е. переводят базисные переменные в свободные, а свободные - в базисные.
В нашем примере меняем местами переменные Х7 и Х1 , отмеченные в табл. 1.9 стрелками. Коэффициенты новой табл. 1.10 находят по коэффициентам старой табл. 1.9, используя выражения, приведенные в табл. 1.8 и “правило прямоугольника”. В табл. 1.10 снова не имеем оптимального решения.
Таблица
1.10
|
Базисные переменные Хб |
Свободный член В |
Свободные переменные |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
X7 |
X2 |
|||||||||||
Х3 |
7 |
- 1/4 |
1/2 |
|
|||||||||
|
10 |
0 |
1 |
|
|||||||||
|
Х5 |
50 |
-5/2 |
3 |
|
||||||||
|
Х6 |
21 |
-7/4 |
3/2 |
|
||||||||
|
Х1 |
7 |
1/4 |
1/2 |
|
||||||||
|
F |
6356 |
227 |
-222 |
|
||||||||
По вышеописанным правилам в табл. 1.10 находим разрешающий элемент 1 и строим новую табл. 1.11 сделав замещение базиса (Х4 и Х2). Особо подчеркнем, что для нахождения разрешающего элемента мы должны выбирать наименьшее положительное значение, т.е. отрицательные отношения свободных членов к коэффициентам разрешающего столбца мы не рассматриваем.
Таблица 1.11
|
Базисные переменные Хб |
Свободный член В |
Свободные переменные |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
X7 |
X4 |
|||||||||||
Х3 |
2 |
- 1/4 |
- ½ |
|
|||||||||
Х2 |
10 |
0 |
1 |
|
|||||||||
|
Х5 |
20 |
-5/2 |
- 3 |
|
||||||||
|
Х6 |
6 |
-7/4 |
- 3/2 |
|
||||||||
|
Х1 |
2 |
1/4 |
- ½ |
|
||||||||
|
F |
8576 |
227 |
222 |
|
||||||||
3-й этап
Проверим, является ли найденное решение оптимальным, а для нашего примера - максимальным. Для этого сделаем анализ целевой функции F: F = 8576 + 227 X7 + 222 X4 .
Целевая функция не содержит отрицательных коэффициентов и имеет наибольшее значение в последней таблице, нами получено оптимальное решение:
X3 = 2; X2 = 10; X5 = 20; X6 = 6; X1 = 2; X7 = X4 = 0;
Fmax = 8576.
Обратите внимание, что результаты решения симплекс методом и графическим совпадают.
В соответствии с рассмотренной последовательностью, алгоритм симплекс-метода должен иметь следующие блоки:
1. Нахождения первоначального базисного (опорного) решения и формирование исходной таблицы.
2. Отыскание разрешающего элемента a ks (нахождение отрицательного свободного члена - b i < 0 и минимального отношения b i / aij ; если в строке отрицательного свободного члена нет отрицательных коэффициентов, то задача неразрешима).
3. Перерасчет новой таблицы по формулам табл. 1.8.
4. Проверка наличия отрицательного свободного члена. Если он есть, то переходим к п. 2. Отсутствие отрицательного свободного члена означает, что получено опорное (допустимое) решение.
5. Аналогично п. 2 - 4 выполняется перерасчет таблицы при поиске оптимального решения.
Решение задачи ЛП симплекс-методом в матричной форме
Требуется
минимизировать
,
при ограничениях
при
x
0.
Введем векторы:
C = (C1 , ... , Cn ) - вектор оценок,
X = (X1 , ... , Xn ) - вектор переменных,
b = (B1 , ... , Bm ) - вектор ограничений
и матрицу
A=
размером
( m
n
) - матрицу коэффициентов ограничений.
Тогда задача ЛП будет иметь следующую трактовку:
минимизировать F=CX
при условиях AX = b, X 0.
Эту задачу можно записать в матричной форме:
Введем обозначение:
А*=
-
здесь матрица A*
размером
(m+1)(n+1).
Согласно выше приведенной методике находят разрешающий элемент aks.
Следующий шаг симплекс-метода - процедура исключения Гаусса, которая позволяет сделать все коэффициенты в s-м столбце, кроме aks , нулевыми, aks - равным единице.
Для симплекс-метода в матричной форме итерация симплекс-метода эквивалентна умножению матричного уравнения слева на следующую квадратную матрицу:
(1.23)
0; s
0.
Если все столбцы матрицы A разделить на базисные B и небазисные N, то задачу ЛП можно записать так:
,
где Cb и CN - соответствующие компоненты вектора C, Xb , XN - базисные и небазисные переменные.
Для выбора начальных базисных переменных xb следует умножить уравнение слева на матрицу:
где R= Cb B-1 .
В результате получим
,
где I - единичная матрица.
Отсюда следует, что относительные оценки при небазисных переменных
cj = cj - Cb B-1 aj = cj - Raj .
Базис будет допустимым, если свободные члены при базисных переменных будут неотрицательными, т.е. B-1b 0.
Если
cj
0 для
,
то базис является оптимальным решением
задачи. Вектор
называют вектором текущих цен. Каждая
строка умножается на вектор R
и вычитается из строки коэффициентов
стоимости, для того чтобы исключить
коэффициенты стоимости при базисных
переменных.
Если задача ЛП задана не в канонической форме, т.е.
минимизировать F=CX
при
условиях
AX
b ,
X
0,
то, вводя слабые переменные, их можно записать в виде
Метод
исключения по строкам для матрицы
эквивалентен умножению этой матрицы
слева на B-1,
где B
- базис подматрицы A,
тогда
,
т.е. матрица, получаемая на месте единичной I, будет матрицей, обратной для текущего базиса. Относительные оценки, расположенные над единичной матрицей, будут
,
поскольку
- единичные векторы.
Так как F= CbB-1b = Rb, текущее значение целевой функции равно произведению вектора текущих цен матрицы A на исходный вектор b.
Пример. F = 5X1 + 6X2 + 3X3 + 4X4 + 5X5 min
при ограничениях
2 X1 + 3X3 + 4X4 + 2X5 = 10,
3X2 + 3X4 + 6X5 = 9,
Для данного примера матрица A* будет иметь вид
.
Пусть X1 и X2 - базисные переменные.
Матрица B имеет вид
.
Тогда обратная матрица B-1 имеет следующий вид
.
Напомним,
что
,
где
присоединенная матрица, составленная
из алгебраических дополнений элементов
bik
определителя
матрицы B.
Определитель равен:
=
.
Следовательно, матрица B неособенная.
Алгебраические
дополнения элементов определителя
имеют следующие значения:
b11
= 3, b12
=
0, b12
=
0, b22
= 2;
т.е.
.
Умножив
на
,
находим обратную матрицу:
.
Вектор текущих цен будет
R
= CbB-1
=
=
.
Напомним, что Cb - базисные компоненты вектора C:
Cb
=
.
Тогда
=
.
Для выбора начального базиса нужно матрицу A* умножить слева на матрицу
,
получим
=
.
Разрешающий элемент находится в квадрате.
Итерация симплекс-метода эквивалентна полученной таблице, умноженной слева на следующую матрицу:
.
Эта матрица получена из матрицы (1.23)
Здесь aks = 2 ;
a11 = 1; a12 = - a0s / aks = - 12/2 = - 6;
a13 = 0 ; a21 = 0 ; a22 = 1/ aks = 1/2 ; a23 = 0;
a31 = 0 ; a32 = - ams / aks = -1/2 ; a33 = 1.
Тогда имеем
=
(1.24)
Разрешающий элемент помещен в квадрат.
Следующая итерация симплекс-метода равносильна умножению слева на матрицу
.
Тогда
=
.
Следовательно, F min =11; X4=7/3; X5=1/3; X1=X2=X3=0.

Х4