![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
9. Что может указать на появление (впервые) вырожденного решения при реализации условия допустимости симплекс-метода? Какое условие приведет к повторению вырожденности решения на следующей итерации? Какое условие необходимо для того, чтобы вырожденность исчезла на следующей итерации? Обоснуйте ответы математически.
10. Каковы соотношения между крайними точками пространства решений и базисными решениями при вырожденности и невырожденности решений? Какое максимальное число итераций симплекс-метода может быть выполнено в одной и той же крайней точке?
11. Дана следующая задача ЛП: максимизировать г = СХ при ограничениях АХ < b, X > 0, где b > 0. Предположим, что вводимый в базис вектор Ру таков, что по крайней мере один элемент вектора В~'Ру положителен.
a) Пусть вектор Р, заменен на аР;, где а — положительное число, при этом переменная Xj остается переменной, вводимой в базис. Найдите соотношения между значениями переменной xjt соответствующими векторам Ру и cdt*.
b) Ответьте на вопрос предыдущего пункта, если дополнительно вектор b заменен на вектор рЧЬ, где (3 — положительное число.
12. Дана следующая задача ЛП: максимизировать z = СХ при ограничениях АХ<Ь, Х>0, где Ь>0. Предположим, что после получения оптимального решения возникла идея сделать небазисную переменную xt базисной (т.е. приносящей доход, если вспомнить экономическую интерпретацию задач ЛП) путем уменьшения ресурсов, расходуемых на единицу x/t до величины 1/а от исходного значения, где а— число, превышающее единицу. По
7.2. Модифицированный симплекс-метод
скольку сокращено потребление ресурсов, ожидается, что доход на единицу Xj также уменьшится до величины 1/а от исходного значения. Может ли это изменение привести к рентабельности переменной xt? Каковы ваши рекомендации относительно того, чтобы сделать переменную х. приносящей доход?2
13. Дана следующая задача ЛП: максимизировать г = СХ при ограничениях (A, I)X = b, X > 0. Обозначим через Хв текущий базисный вектор, через Св — вектор коэффициентов целевой функции, соответствующих базисным переменным. Допустим, что вектор Св изменен на DB. Докажите, что в этом случае разности 2.-су, соответствующие базисному вектору Хв, останутся равными нулю. Дайте объяснение этому.
7.2.2. Вычислительная процедура модифицированного симплекс-метода
Имея условия оптимальности и допустимости, приведенные в разделе 7.2.1, можно описать последовательность вычислений, выполняемых в модифицированном симплекс-методе.
Шаг 0. Находится начальное базисное допустимое решение. Пусть В и Св — базис и вектор коэффициентов целевой функции, соответствующих базисным переменным.
Шаг 1. Каким-либо подходящим способом вычисляется обратная мат-рица В.
Шаг 2. Для каждой небазисной переменной х/ вычисляется величина
zrcrCBWlV-cr
Если для всех небазисных переменных xj величины zi - с}>0 в задаче максимизации или г. - с. < 0 в задаче минимизации, то вычисления заканчиваются, так как получено оптимальное решение
хв = в-1ь,г = свхв.
Иначе на основе условия оптимальности определяется вводимая (в базис) переменная дс как небазисная переменная, которой соответствует наибольшая (по модулю) отрицательная величина г. - с/ в задаче максимизации или наибольшая положительная в задаче минимизации.
Этот вопрос можно переформулировать без "экономического" подтекста: при каких условиях переменная xt может быть представлена в оптимальном решении? — Прим. ред.
3 В большинстве руководств по линейному программированию, включая первые шесть изданий этой книги, приводится метод вычисления обратной матрицы на основе ее мультипликативного представления (см. раздел А.2.7). Поскольку в симплекс-методе последовательные базисы отличаются только одним вектор-столбцом, мультипликативное представление обратной матрицы позволяет не вычислять заново обратную матрицу на очередной итерации симплекс-метода, а получать ее из обратной матрицы предыдущей итерации, что значительно упрощает вычисления. Автор удалил описание этого метода получения обратной матрицы из данной главы, так как он не рассчитан на машинную реализацию вследствие возможных серьезных проблем, порождаемых ошибками округления. Обычно в программах, реализующих симплекс-метод, для вычисления обратной матрицы используются другие численные методы, такие как метод декомпозиции (разложения на две треугольные матрицы). В частности, программа TORA использует метод декомпозиции.
Глава 7. Теория линейного программирования
Шаг 3. Вычисляется вектор В~'Ру. Если все элементы этого вектора отрицательны или равны нулю, вычисления заканчиваются, так как задача не имеет ограниченного решения. Иначе вычисляется вектор В 'b. Для всех строго положительных элементов вектора В_1Р вычисляется отношение, определенное в условии допустимости. Базисная переменная xt, которой соответствует наименьшее отношение условия допустимости, становится исключаемой из базиса переменной.
Шаг 4. Из текущего базиса В формируется новый базис путем замены в базисе В вектора Р; на вектор Р,. Выполняется переход к этапу 1 для начала новой итерации.
Пример 7.2.1
С помощью модифицированного симплекс-метода решим заново задачу о компании Reddy Mikks из раздела 2.1. Решение этой задачи обычным симплекс-методом дано в разделе 3.3.2. Сравнение двух решений данной задачи показывает, что оба метода выполняют одну и ту же последовательность действий.
Представим в матричном виде рассматриваемую задачу, уже приведенную к стандартной форме:
максимизировать г = (5, 4, 0, 0, 0, 0)(л:1, хг, х3, xt, х5, х6)Т
при ограничениях
V | |||||||
' 6 4 | (Г | *2 | '24s | ||||
1 2 | *3 | ||||||
-1 1 | *4 | ||||||
, 0 1 | к | *5 | |||||
Л) | |||||||
#2» | *4. | *5> *6^0. |
Мы используем запись С = (с,, с2, с6) для представления вектора коэффициентов целевой функции и (Р,, Р2, Р6)— для представления столбцов коэффициентов левых частей ограничений. Вектор правых частей ограничений обозначим Ь.
В следующих вычислениях мы приводим формулы, по которым выполняются вычисления, и конечный результат без подробных арифметических выкладок, которые читатель может выполнить самостоятельно.
Итерация О
Х„ - (*„ xt, xt, х/, СВо = (0, 0, 0, 0). В0 = (Р3,Р4,Р5,Рв) = 1, в-' -I.
Таким образом,
Х,о = В-1Ь = (24,6,1,2)Г, г=СД =0.
7.2. Модифицированный симплекс-метод
Вычисления условия оптимальности св|в-' = (0, 0, 0, 0).
Ц " *,Ui - С*Л' (Pi. Р.) - <*„ сг) = (-5, -4). Отсюда следует, что вводимым в базис вектором будет Р,. Вычисления условия допустимости
xe„ = (*з> *4. *6. ^e)r = (24> 6' *> 2)Г-В-'Р, =(6, 1,-1, 0)г.
Следовательно,
х, =1шп|^ру,—,—| =min{4, 6,—,—}=4, и вектор Р3 определяется как исключаемый из базиса.
Результаты выполненных вычислений представим в виде знакомой симплекс-таблицы. Такое представление поможет сравнить модифицированный и обычный симплекс-методы.
Базис | Х1 | хг х3 | Хл | хь | х6 | Решение |
z | -5 | -Л 0 | ||||
Хз | ||||||
Х4 | ||||||
Хь | -1 | |||||
Хб |
Итерация 1
Х«, = (*,. *4> *S> *в) > СВ, = (5> °> 0> 0)-
(6 О О ОЛ
В.^.Р,, Р5,Рв) =
110 0 -10 10 ^0 0 0 1,
Используя подходящий метод вычисления обратной матрицы В~' (в разделе А.2.7
приведен метод вычисления обратных матриц на основе их мультипликативного представления), находим
' i о о 0Л
о
-110 0 6
ioio
0 0 0 1
Отсюда получаем
В~' b = (4, 2, 5, 2)\ 2 = Св Хв = 20.
Глава 7. Теория линейного программирования
Вычисления условия оптимальности
снв:' = -,о,о,о
Ц " с)ггя = С„В-1 (Р2) Р3) - (с2, с3) = ^-|, |
Отсюда следует, что вводимым в базис будет вектор Р2. Вычисления условия допустимости
хч = (*i> х*> хь> x<f = (4> 2' 5> 2)Г-
ВГ'Р2=1т.т.г.1
2 4 5
з'з'з'
Следовательно,
и вектор Р4 определяется как исключаемый из базиса. (Постройте симплекс-таблицу, отображающую результаты вычислений этой итерации.)
Итерация 2
Хв, = (*„ хг, х5, х/, Св, = (5, 4, 0, 0).
В2 = (Р„Р2,Р5,Р6) =
(Ь 4 0 0\ 12 0 0 -1110 0 10 1
Находим
/ 1
в;1 =
о о
i \ 0 0
I 1 0
i л о i
Отсюда получаем
хв, = в2-ь=|з,т,т.
Ill
2'2'2
z= СЯХЙ. -21.
Вычисления условия оптимальности
ад'=(2.1, о, о].
izj - *,U«= С8;В2-' (Р3, Р4) - (с3, с4) = ^, 1 Отсюда следует, что решение ХЛ оптимально. Вычисления заканчиваются. Оптимальное решение:
х. = 3. л:„ = 1.5. 2 = 21.
7.2. Модифицированный симплекс-метод
УПРАЖНЕНИЯ 7.2.2
1. В примере 7.2.1 представьте результаты вычислений, выполненных на первой и второй итерациях, в виде симплекс-таблиц.
2. Решите модифицированным симплекс-методом следующие задачи ЛП.
a) Максимизировать z = 6л:, - 2х2 + Зх3 при ограничениях
2 л:, - х2 + 2х3 < 2, х1 +4х3 < 4,
b) Максимизировать г = 2л:, + л:2 4- 2л:3 при ограничениях
4л:, + Зл:2-1-8д:3< 12, 4л:, + л:2 +12л:3<8, 4л:,-л:2 + 3л:3<8, л:,, л:2, х3>0.
c) Минимизировать z = 2jc, + л:2 при ограничениях
Зл:, -Ь л:2 = 3, 4л:, + Зл:2 > 6, л:, + 2л:2<3, л:,, лс2>0.
d) Минимизировать z = 5лс, - 4л:2 4- 6л:3 4- 8л:4 при ограничениях
л:, + 7л:2 + Зл:3 + 7л:4 < 46, Зл:, - л:2 + л:3 + 2л:4<20, 2xl + 3x2-x3 + xi>18,
^2' ^3* ^4 ~ ^*
3. Решите следующую задачу ЛП с помощью модифицированного симплекс-метода, используя в качестве начального базиса вектор = (л:2, л:4, л:5)г.
Минимизировать г = 7х2 + 11л:3 - 10л:4 + 26л:6 при ограничениях
х2-х3 + х, + хв = 6,
л:2 - д:3 4- д:4 4- Зл:6 — 8,
л:, 4- л:2 - Зл:3 4- л:4 4- л:5 = 12,
Х\> ^3> ^Ч' ^5' ^"6 —
4. Используя модифицированный симплекс-метод в схеме вычислений двух-этапного метода с искусственными переменными, решите следующие задачи.
a) Задача из упражнения 2,с.
b) Задача из упражнения 2,d.
Глава 7. Теория линейного программирования
с) Задача из упражнения 3 (отказавшись от предложенного начального решения Хдо).
5. Модифицированный двойственный симплекс-метод. Последовательность выполнения модифицированного двойственного симплекс-метода (использующего матричные вычисления) можно описать следующим образом.
Шаг 0. Пусть В0 = I — начальный базис, причем хотя бы один из элементов вектора отрицателен (т.е. решение недопустимо).
Шаг 1. Вычисляем текущие значения базисных переменных: Хв = B"'b. Выбираем в качестве исключаемой из базиса переменную, имеющую наибольшее отрицательное значение (обозначим исключаемую переменную хг). Если все элементы в Хв неотрицательны, то вычисления заканчиваются, так как достигнуто допустимое решение.
Шаг 2.
a) Для всех небазисных переменных ху вычисляем разности zj-cj = СВВ_1Р. - е..
b) Для всех небазисных переменных ху вычисляем коэффициенты ограничений (В"'Р)г, ассоциированные со строкой, соответствующей исключаемой переменной хг.
c) Определяем вводимую в базис переменную как переменную, на которой достигается следующий минимум.
, (В-'рд<о|.
Если все (В'РД > 0, допустимого решения не существует.
Шаг 3. Формируем новый базис путем замены в базисе вектора Р. на Рг. Вычисляем новую обратную матрицу В"1 и переходим к шагу 1.
Примените описанный метод для решения следующей задачи.
Минимизировать z = 2х, + х2
при ограничениях
Зх, + х2 > 3, 4х, + Зх2 > 6, х, + 2х2 < 3, х,, х2> 0.
7.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧ С ОГРАНИЧЕННЫМИ ПЕРЕМЕННЫМИ
В некоторых моделях линейного программирования на значения переменных могут налагаться явные положительные верхние и нижние ограничения. Например, в производственных моделях нижние и верхние границы переменных могут соответствовать минимальным и максимальным значениям спроса на определенную продукцию. Явные ограничения, налагаемые на переменные, особенно заметны при решении задач целочисленного программирования методом ветвей и границ (см. раздел 9.3.1).
= min
j
(В-РД
7.3. Алгоритм решения задач с ограниченными переменными
Специальный алгоритм решения задач с ограниченными переменными, который мы рассмотрим в этом разделе, особенно эффективен, поскольку он учитывает тот факт, что ограничения заданы в явном виде. Сначала рассмотрим более простой случай, когда заданы только нижние границы на значения переменных. При явных ограничениях X > L замена (подстановка) типа
X = L + X', Х'>0
позволяет решать задачу ЛП относительно переменных X', для которых нижняя граница значений равна нулю. Значения исходных переменных X вычисляются путем обратной подстановки; при этом, очевидно, гарантирована их неотрицательность.
Теперь рассмотрим ситуацию с верхними границами X<U. В данном случае прямая замена X = U - X", X" > 0 невозможна, поскольку обратная подстановка не гарантирует неотрицательности X. Здесь необходимо применение других процедур.
Запишем задачу ЛП с верхними границами на значения переменных как
максимизировать г = {СХ | (A, I)X = Ь, 0 < X < U}.
При выполнении алгоритма решения задач с ограниченными переменными явно используются только ограничения (A, I)X = b, X > 0; ограничения вида X < U учитываются лишь в измененном симплексном условии допустимости.
Пусть Хв = В_1Ь — текущее базисное допустимое решение задачи ЛП с ограничениями (A, I)X = b, X > 0. Обозначим через Р; вводимый в базис вектор, определенный на основе обычного симплексного условия оптимальности. Если предположить, что все небазисные переменные равны нулю, уравнение ограничения относительно базисной переменной xt будет записано следующим образом.
(ХД=(В,Ь),-(В-,Р.),х/
Поскольку вводимая переменная х примет положительное значение, величина базисной переменной (Хв), возрастет или уменьшится, в зависимости от того, будет значение (В'РД отрицательным или положительным. Таким образом, при определении значения вводимой переменной xj необходимо удовлетворить следующие три условия.
1. Базисная переменная (Хв), должна остаться неотрицательной, т.е. (Хв), > 0.
2. Базисная переменная (Хв), не должна превышать своей верхней границы, т.е. должно выполняться неравенство (Хв), < (UB)„ где UB — вектор, содержащий упорядоченные элементы вектора U, соответствующие вектору Хв.
3. Вводимая переменная xt не может принять значения, превышающего верхнюю границу, т.е. должно выполняться неравенство x.<ut, где и.— у-й элемент вектора U.
Первое условие (Хв), > 0 требует выполнения неравенства
(В-Ц-СВ-'РДа^О, которое заведомо будет выполняться, если
х,*е.=тЫ(В"Н-
(в-'рд
(В-'РДэ-О.
Это условие полностью соответствует условию допустимости обычного симплекс-метода.
Глава 7. Теория линейного программирования
Условие (ХД < (UB), эквивалентно неравенству
(в-'ьх-св-'рдж^ид,
которое будет выполняться, если
|(B-'b),-(U,),
л: <8, = тЫ ' - ' 1 (В-'Р,),
(В~'РД. <0
Наконец, третье условие будет выполнено, если выполняется неравенство х < иг Все три неравенства относительно х. можно обобщить в виде следующего условия.
лгу = тт{в1( 92, и).
Базис, формируемый для следующей итерации, зависит от того, какое значение (0,, 02 или и) примет переменная х}. Предполагая, что (Хв)г— исключаемая переменная, получаем следующие правила формирования базиса.
1. Если х. = Qj, то переменная (Хв)г исключается из базиса и принимает нулевое значение. Новый базис формируется точно так же, как в обычном симплекс-методе с вводимой переменной xt и исключаемой (Хв)г.
2. Если хл = 62, переменная (Хв)г исключается из базиса и принимает значение своей верхней границы. Новый базис формируется точно так же, как в обычном симплекс-методе, но с учетом того, что переменная (Хв)г равна верхней границе. Поскольку значения в, и 62 получены при условии, что все небазисные переменные равны нулю, необходимо выполнить преобразование новой небазисной переменной (Хв)г, чтобы она также приняла нулевое значение.
Это достигается с помощью подстановки (XB)r= (UB)r- (Xfi)', где (Хв)'>0.
Не имеет особого значения, когда выполняется эта подстановка: до или после вычисления нового базиса.
3. Если х^ = ujt то базисный вектор Хв остается неизменным, поскольку в данном случае никакая из текущих базисных переменных не принимает ни нулевого значения, ни значения своей верхней границы. Таким образом, переменная х} остается небазисной, но со значением своего верхнего предела. После подстановки дс = ы; - лгу выполняется следующая итерация симплекс-метода.
В случае равенства значений 0,, 02 и ыу выбор правила, в соответствии с которым переходим к следующей итерации симплекс-метода, произволен. Вместе с тем предпочтительнее использовать третье правило (л:у = и), так как в этом случае требуется выполнить меньший объем вычислений.
Подстановка xf = и} - x't изменяет исходные значения с}, Ру и b на cj = -cjt PJ = -Ру
и b' = b - UjPj. Это означает, что при выполнении модифицированного симплекс-метода на каждой итерации все вычисления (таких величин, как В"1, Хв и zy-cy) должны основываться на измененных значениях С, А и b (более подробно этот вопрос рассмотрен в упражнении 7.3.1.5).
7.3. Алгоритм решения задач с ограниченными переменными
Пример 7.3.1
Решим следующую задачу ЛП вышеописанным методом решения задач с ограниченными переменными.
при ограничениях
х,+у + 2х3<14,
2х1 + 4у + 3х3<43,
О < х, < 4, 7 < у < 10, 0 < х3 < 3.
Поскольку переменная у ограничена положительной константой не только сверху, но и снизу, производим замену у = х2 + 7, где 0 < х2 < 10 - 7 = 3.
Во избежание излишних вычислительных сложностей здесь мы применим не модифицированный симплекс-метод, а обычный симплекс-метод в виде компактных симплекс-таблиц.
Итерация 0
Базис Xi хг хз xt х5 Решение
z -3 -5 -2 0 0 35
xt 112 10 7
хъ 2 4 3 0 1 15
Имеем В = В"1 = I и Хв = (л:4, xs)T = B~'b = (7,1 Ъ)т. Принимая переменную х2 в качестве вводимой в базис переменной (z2 - с2 — -5), получаем B~lP2 = (1, 4)т. Отсюда следует
02 = оо (поскольку В_1Р2 > 0).
Так как по условию л:2 < 3, получаем значение, принимаемое переменной х2.
х2 = min{3,75, °о, 3} = 3 = и2.
Поскольку л:2 = и2, базис остается неизменным; переменная х2 в базис не вводится (остается небазисной), но принимает значение своей верхней границы. После подстановки х2 = 3 - х\ получаем новую симплекс-таблицу.
Базис | Х1 | / Х2 | хз | Xt | х5 | Решение |
z | -3 | -2 | ||||
Xi, | -1 | |||||
Хь | .. 2 | -Л |
Выполненная подстановка изменяет исходный вектор правых частей ограничений с Ь= (7, 15)г на Ь' = (4, 3)г. Эти изменения должны учитываться в последующих вычислениях.
Максимизировать z = Зх1 + 5у + 2х.
8, = mirH—, — > = 3,75, что соответствует переменной х5,
Глава 7. Теория линейного программирования
Итерация 1. Определяем вводимую в базис переменную Базисный вектор Хв и обратная матрица В"1 (= I) такие же, как на предыдущей итерации. Вычисляем
в-'р.-а.г)'.
Отсюда следует
6, = nun j у, — > = 1,5, что соответствует переменной х&,
92 = оо (поскольку В-1Р, > 0).
Так как по условию задачи де, < 4, получаем значение, принимаемое переменной
jeI-min{l,5,oo, 4} = 1,5 (=9,).
В данной ситуации переменная х, становится базисной со значением 1,5, переменная jc5 выводится из базиса и принимает нулевое значение. Получаем следующую симплекс-таблицу.
Базис | Х1 | Xi | Хь | Решение | ||
z | -1 | 5/2 | 3/2 | 109/2 | ||
Xi | 1/2 | -1/2 | 5/2 | |||
х, | -2 | 3/2 | 1/2 | 3/2 |
Итерация 2. Имеем новую обратную матрицу.
В =
о
Значения базисных переменных определяются так:
Хв = (*4> xj = В1 Ь' = (5/2, 3/2)т,
где Ь' = (4, 3)г— значения правых частей ограничений, вычисленные в конце нулевой итерации.
Определяем х\ как вводимую в базис переменную. Учитывая, что К = -Р2, получаем
Далее вычисляем
'5 2 1'
в'р; =(i,-2)r
= 2,5, что соответствует базисной переменной xt,
= 1,25, что соответствует базисной переменной хг.
Так как по условию х[ < 3, получаем значение, принимаемое переменной х\.
х2 = min{2,5,1,25, 3} = 1,25 (= 82).
7.3. Алгоритм решения задач с ограниченными переменными
Таким образом, переменная х'г вводится в базис (со значением 1,25), из которого
исключается переменная дс, с ненулевым значением, равным ее верхней границе. Применяем подстановку х1 = 4 - х\ и получаем следующую симплекс-таблицу.
Базис | А | х2 | Хз | ха | Xs | Решение |
z | -1 | 5/2 | 3/2 | 109/2 | ||
ха | 1/2 | -1/2 | 5/2 | |||
-1 | -2 | 3/2 | 1/2 | -5/2 | ||
Далее в базис вводится переменная | х\ и исключается х\ | , что приводит к следующей | ||||
симплекс-таблиц | е. | |||||
Базис | А | х. | Хз | ха | Xs | Решение |
z | 1/2 | 7/4 | 5/4 | 223/4 | ||
Ха | ■1/2 | 5/4 | -1/4 | 5/4 | ||
/ X, | 1/2 | -3/4 | -1/4 | 5/4 |
Данная таблица представляет допустимое оптимальное решение. Оптимальные значения переменных х1У хг и х3 получаем обратной подстановкой: дс, = ui - х\ =4-0 = 4, хг = и2 - х'2 = 3 - 5/4 = 7/4 и х3 = 0. Теперь вычисляем значение переменной у: у = 12 + х2=7 + 7/4 = 35/4. Оптимальное значение целевой функции равно z = 223/4.
УПРАЖНЕНИЯ 7.3.1
1. Дана следующая задача линейного программирования.
Максимизировать z = 2xt + х2
при ограничениях
х1 + х2<3, 0 < х, < 2, 0 < х2 < 2.
a) Решите задачу графическим способом и определите последовательность крайних точек пространства решений, ведущих к оптимальному решению.
b) Решите задачу с использованием метода решения задач с ограниченными переменными и покажите, что данный метод порождает ту же последовательность крайних точек пространства решений, приводящую к оптимальному решению, что и графический способ.
c) Как алгоритм решения задач с ограниченными переменными распознает крайние точки пространства решений?
2. Решите следующую задачу ЛП методом решения задач с ограниченными переменными.
Дата публикования: 2014-11-18; Прочитано: 435 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!