![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
х, + 2х2 - Зх3 + 5xt + xs = 4, 5xl - 2х2 + 6х4 + х6 = 8, 2хг + Зх2 - 2х3 + 3xt + х7 = 3, -xl + х3- 2х4 + xs = О, Xj, Х2у... t Х3 ^ 0.
Пусть переменные хь, х6, х7 и х3 составляют начальное допустимое базисное решение. Предположим, что в базис вводится переменная хг Определите, какую из переменных текущего базисного решения следует исключить из базиса так, чтобы все переменные остались неотрицательными. Найдите значение переменной х, в этом новом базисе. Повторите это упражнение для переменных х2, х3 и х4.
4. Дана следующая задача ЛП.
Максимизировать г = х,
при ограничениях
5х, + х2 = 4, 6х, + х3 = 8, Зх, -Ь х^ ~ 3, х,, х2, х„ х4>0.
a) Решите эту задачу путем нахождения точек пересечений (не используя метод Гаусса-Жордана), на каждом шаге интерпретируя полученные результаты в терминах базисных решений симплекс-метода.
b) Повторите решения задачи ЛП при тех же ограничениях, что и в п. а, но для минимизации целевой функции г = х,.
5. Решите следующую задачу ЛП путем нахождения точек пересечений, на каждом шаге интерпретируя полученные результаты в терминах базисных решений симплекс-метода.
Максимизировать г = 5х, - 6х2 + Зх3 - 5х4 + 12х5
при ограничениях
х, + Зх2 + 5х3 + 6х4 + Зх5 < 90, Xj, Х2, х3, Х4, х5 — 0. (Подсказка. Базисное решение содержит только одну переменную.)
6. Следующая таблица представляет отдельную итерацию симплекс-метода. Все переменные неотрицательные. Таблица не оптимальна как для задачи максимизации, так и для задачи минимизации.
3.3. Алгоритм симплекс-метода
Базис | X: | хг | хз | *4 | *5 | Х7 | хв | Решение | |
z | -5 | -1 | -10 | ||||||
Хв | -2 | -3 | -1 | ||||||
Хз | |||||||||
Х\ | -1 | -4 |
a) Разделите все переменные на базисные и небазисные и найдите их значения.
b) Пусть решается задача максимизации. Определите небазисные переменные, которые потенциально могут увеличить значение целевой функции. Для каждой такой переменной, предполагая, что она вводится в базис, найдите исключаемую переменную и соответствующее изменение целевой функции. Не используйте метод Гаусса-Жордана.
c) Повторите упражнение п. Ь, предполагая, что решается задача минимизации.
d) Какие небазисные переменные не смогут изменить значение целевой функции, если их ввести в базис?
7. Рассмотрите двухмерное пространство решений на рис. 3.7.
a) Пусть целевая функция имеет следующий вид:
максимизировать z = Зд:, + 6д:2.
Предполагая, что реализация симплекс-метода начинается в точке А, определите последовательность угловых точек, приводящих к точке оптимума Е.
b) Определите вводимую переменную, значения соответствующих отношений в условии допустимости и значение целевой функции, полагая, что реализация симплекс-метода начинается в точке А и целевая функция имеет вид
максимизировать z = 4л:, + л:2.
c) Повторите п. b применительно к целевой функции
максимизировать z = х, + 4д;2.
Рис. 3.7. Пространство решений для упражнения 7
Глава 3. Симплекс-метод
8. Дана следующая задача ЛП.
Максимизировать г = 16л:, + 15л:2
при ограничениях
40л:, + 31л:2< 124, -JC, + л:2 < 1, л:, <3, л:,, л:2>0.
a) Решите поставленную задачу симплекс-методом, выбирая в качестве вводимой небазисную переменную, имеющую наибольший по абсолютной величине отрицательный коэффициент в z-строке симплекс-таблицы.
b) Решите поставленную задачу симплекс-методом, выбирая в качестве вводимой небазисную переменную, имеющую наименьший по абсолютной величине отрицательный коэффициент в z-строке симплекс-таблицы.
c) Подсчитайте количество итераций, используемых для решения задачи в пп. а и Ь. Действительно ли выбор вводимой переменной среди небазисных, имеющих наибольший по абсолютной величине отрицательный коэффициент в z-строке, ведет к уменьшению числа итераций, выполняемых при реализации симплекс-метода?
d) Предположим, что задача максимизации целевой функции z заменена на задачу минимизации путем умножения функции г на -1. Как это скажется на количестве итераций симплекс-метода?
9. Компания Gutchi производит дорожные сумки, чемоданы и рюкзаки. Для трех видов изделий используется натуральная кожа и синтетические материалы, причем кожа считается ограниченным ресурсом. Производство этих изделий также требует выполнения двух ручных операций: прошивки и окончательной отделки изделия. В следующей таблице приведены ограничения на используемые в производстве ресурсы, а также отпускная цена каждого вида изделия.
Расход ресурса на производство одного изделия Ограничение на ресурс
Ресурс | Сумка | Чемодан | Рюкзак | (ежедневно) |
Кожа (кв. футы) | ||||
Прошивка (часы) | ||||
Отделка (часы) | 0,5 | |||
Отпускная цена (долл.) |
Сформулируйте задачу линейного программирования, с помощью программы TORA найдите ее оптимальное решение и определите статус ресурсов.
3.3.3. Реализация симплекс-метода в системе TORA
В программной системе TORA можно выполнить все итерации симплекс-метода так же, как это было описано в разделе 3.3.2. Сначала введите условия задачи (как это сделать, см. приложение Б). Затем из меню SOLVE/MODIFY выберите команду SolveOAIgebraic^lterations^AII-Slack. (Команда All-Slack (Все остаточные) указывает на то, что начальное базисное решение состоит только из остаточных дополнительных переменных. Остальные команды из подменю Iterations будут описаны
3.3. Алгоритм симплекс-метода
далее в разделах 3.4, 4.3 и 7.4.2.) Далее задается точность, с которой будут отображаться выходные результаты, остается щелкнуть на кнопке Go То Output Screen (Перейти к экрану вывода).
На рис. 3.8 представлено окно, в котором показаны результаты расчетов для каждой итерации для модели Reddy Mikks (файл ch3ToraReddyMikks.txt). Чтобы перейти к следующей итерации, щелкните на кнопке Next Iteration (Следующая итерация, это режим пошагового выполнения). Чтобы сразу получить окончательный ответ, щелкните на кнопке All Iterations (Все итерации). Если вы выполняете вычисления в пошаговом режиме, то на каждой итерации можно указать вводимую и исключаемую переменные, щелкнув на соответствующих столбце и строке. Если ваш выбор корректен, то столбец закрасится зеленым цветом, а строка — красным. В противном случае получите сообщение об ошибке. Такой тип вычислений должен помочь вам понять основные базовые концепции симплекс-метода без громоздких вычислений по методу Гаусса-Жордана.
| TORA D:\Work\ToraFilesteh3ToraRedclyMikks.txl
LINEAR PROGRAMMING
__________________ _________ SIMPI f X 1ЛН1 I АН (Starting All Slack Method)
Title: Re ddy Mi klet mod el, Exa mple 7. 2A (Maximize) _______
Step* for oenerrtine NEXT tableau tram CURRENT one:
1. ENTERING variable: Click a NONBASIC variable (rf correct, column turn* green)
?. LEAVING variable: Click а BASIC variable (it correct, row lurna red) __3. Click c ommand button NEXT ITERATION (or Alt ITERATIONS) Thta atep maybe executed without Stcpa 1 inciter 2.
Рис. 3.8. Модель Reddy Mikks в программе TORA
УПРАЖНЕНИЯ 3.3.3
1. Дана следующая задача ЛП.
Максимизировать z = хг + х2 + Зх3 + 2xt при ограничениях
х1 + 2х2 - Зх3 + 5х4 < 4, 5хг - 2х2 + 6х4 < 8,
Глава 3. Симплекс-метод
2xl + 3x2-2x3 + 3xi<3, -xl + х3 + 2х4 < О,
■^1» "^2' *^3' "^4 —
a) С помощью программы TORA найдите оптимальное решение данной задачи.
b) Имея оптимальное решение, выберите любую небазисную переменную и попробуйте ввести ее в базис, щелкнув на кнопке Next Iteration. Сравните полученное значение целевой функции с оптимальным. (Идея этого упражнения заключается в том, чтобы показать, что в оптимальном решении любая небазисная переменная, введенная в базис, не может улучшить значения целевой функции.)
3.4. ИСКУССТВЕННОЕ НАЧАЛЬНОЕ РЕШЕНИЕ
В примере 3.3.1 при начальном допустимом базисном решении гарантировалось, что все последующие базисные решения, получаемые при выполнении симплекс-метода, также будут допустимыми. В задачах линейного программирования, где все ограничения являются неравенствами типа "<" (с неотрицательной правой частью), дополнительные (остаточные) переменные позволяют сформировать начальное допустимое базисное решение. Естественно, возникает вопрос: как найти начальное допустимое базисное решение в задачах ЛП, где есть ограничения в виде равенств или неравенств типа ">"?
Наиболее общим способом построения начального допустимого базисного решения задачи ЛП является использование искусственных переменных. Эти переменные в первой итерации играют роль дополнительных остаточных переменных, но на последующих итерациях от них освобождаются. Разработано два тесно связанных между собой метода нахождения начального решения, которые используют искусственные переменные: М-метод5 и двухэтапный метод.
3.4.1. М-метод
Пусть задача ЛП записана в стандартной форме (см. раздел 3.1). Для любого равенства i, в котором не содержится дополнительная остаточная переменная, введем искусственную переменную Д, которая далее войдет в начальное базисное решение. Но, поскольку эта переменная искусственна (другими словами, не имеет никакого "физического смысла" в данной задаче), необходимо сделать так, чтобы на последующих итерациях она обратилась в нуль. Для этого в выражение целевой функции вводят штраф.
Переменная i?, с помощью достаточно большого положительного числа М штрафуется путем ввода в целевую функцию выражения -MRt в случае максимизации целевой функции и выражения +МД — в случае минимизации. Вследствие этого штрафа естественно предположить, что процесс оптимизации симплекс-метода приведет к нулевому значению переменной Rt. Следующий пример проясняет детали этого метода.
5 М-метод также называют методом больших штрафов. — Прим. ред.
3.4. Искусственное начальное решение
Пример 3.4.1
Минимизировать z = 4х, + х,
при выполнении условий
Зх, -¥ х2 = 3, 4х, + Зх2 > 6, х, + 2х2 < 4, х„х2>0.
Стандартная форма этой задачи получается в результате добавления дополнительной (избыточной) переменной х3 во второе неравенство и дополнительной (остаточной) переменной х4 в третье неравенство. Эта задача в стандартной форме будет записана следующим образом.
Минимизировать z = 4х, + х2
при выполнении условий
Зх, +х2 = 3, 4х, + Зх2 - х3 = 6, х, + 2х2 +х4 = 4, х,, х2, х3, х4 — 0.
В полученной задаче первое и второе уравнения не имеют дополнительных (остаточных) переменных, которые можно ввести в базисное решение. Поэтому введем в эти уравнения искусственные переменные Л, и R2, а в целевую функцию добавим штраф MRX + MR2. В результате получим следующую задачу ЛП.
Минимизировать z = 4х, + х2 + МЛ, + MR2
при выполнении условий
Зх, + х2 + Л, = 3,
4х, + Зх2 - х, + R2 = 6,
х, + 2х2 +х4 = 4,
" х,, х2, х3, х4, R2j — 0.
В этой модифицированной задаче переменные Л,, R2 и х4 можно использовать в качестве начального допустимого базисного решения. В результате получим следующую симплекс-таблицу.
Базис | Х1 | хг | Хз | «1 | Fk | *4 | Решение |
z | -4 | -1 | -М | -М | |||
Ri | |||||||
Fk | -1 | ШШМШй | |||||
х4 | 1/ |
Прежде чем применять симплекс-метод, надо согласовать значения в z-строке с остальной частью таблицы. В частности, значение функции z, соответствующее начальному базисному решению Л, = 3, Л2 = 6 и х4 = 4, должно равняться ЗМ+ 6М+ 0 = 9М, а не 0, как показано в таблице. Это противоречие связано с тем,
Глава 3. Симплекс-метод
что переменным Л, и R2 соответствуют ненулевые коэффициенты (-М, -М) в строке г (сравните с начальным решением в примере 3.3.1, где дополнительным переменным соответствуют нулевые коэффициенты в z-строке). Чтобы сделать эти коэффициенты нулевыми, следует умножить элементы строк Л, и R2 на величину М, и затем сложить эти строки с г-строкой. (Обратите внимание на "подсвеченные" единицы в этих строках — если бы эти коэффициенты были отличны от единиц, то необходимо было бы сначала разделить все элементы этих строк на данные коэффициенты.) Кратко это действие можно записать следующим образом.
Новая z-строка = старая z-строка + М х /?,-строка + М х /?2-строка
Измененная симплекс-таблица примет следующий вид (проверьте!).
Базис | *1 | хг | хз | я. | Яг | Xi | Решение |
z | -4 + 7М | -1 + AM | -М | 9М | |||
■ Я| | |||||||
я2 | -1 | ||||||
Xi |
Отметим, что теперь z = 9М, что соответствует базисному решению Л, = 3, R2 = 6 и х4-4.
Последняя таблица готова к применению симплекс-метода с использованием условий оптимальности и допустимости, описанных в разделе 3.3.2. Поскольку мы минимизируем целевую функцию, находим наибольший положительный коэффициент в z-строке. Наибольший коэффициент -4 + 7М соответствует переменной д-,, которая и будет вводимой. Условие допустимости указывает на переменную Л, в качестве исключаемой.
Поскольку вводимая и исключаемая переменные определены, новую симплекс-таблицу можно вычислить с помощью метода Гаусса-Жордана. Заметим, что вычисления в z-строке, где присутствует М, следует проводить алгебраически. Так, для получения новой г-строки надо новую ведущую строку умножить на -(-4 + 7М) и сложить с текущей z-строкой. В результате получим следующую таблицу.
Базис | Х\ | хг | R-i | Яг | Xi | Решение | |
z | (1 + 5А*)/3 | -м | (4 - 7М)/3 | 4 +2М | |||
Х\ | 1/3 | 1/3 | |||||
R. | -1 | -4/3 | |||||
Xi | 3/5 | -1/3 |
Отметим, что уже первая итерация исключила из базисного решения искусственную переменную Rlt что является результатом включения штрафа в целевую функцию.
Последняя таблица показывает, что следующими (вводимой и исключаемой) переменными будут х2 и R2 соответственно. Конечно, для получения оптимального решения может потребоваться больше двух итераций. В данной задаче оптимальным решением будет хх = 2/5, х2 = 9/5, хг = 1 и z = 17/5.
3.4. Искусственное начальное решение
При использовании М-метода следует обратить внимание на следующие два обстоятельства.
1. Использование штрафа М может и не привести к исключению искусственной переменной в конечной симплекс-итерации. Если исходная задача линейного программирования не имеет допустимого решения (например, система ограничений несовместна), тогда в конечной симплекс-итерации по крайней мере одна искусственная переменная будет иметь положительное значение. Это "индикатор" того, что задача не имеет допустимого решения. В разделе 3.5.4 показана такая ситуация.
2. Теоретически применение М-метода требует, чтобы М—Однако с точки зрения компьютерных вычислений величина М должна быть конечной и, вместе с тем, достаточно большой. Как понимать термин "достаточно большая" — это открытый вопрос. Величина М должна быть настолько большой, чтобы выполнять роль "штрафа", но не слишком большой, чтобы не уменьшить точность вычислений. На практике вы должны помнить о возможных ошибках машинного округления при выполнении вычислений, в которых совместно участвуют как большие, так и малые числа.
УПРАЖНЕНИЯ 3.4.1
1. Завершите решение задачи из примера 3.4.1 и получите оптимальное решение.
2. Найдите решение задачи из примера 3.4.1 с помощью программы TORA (файл ch3ToraMmethodEx3-4-l.txt), используя команду Iterations1^M-method (Итерации^М-метод). Сравните решения при М=1,М=10иМ = 1000. Какое заключение можно сделать из этого эксперимента?
3. В примере 3.4.1 найдите начальную симплекс-таблицу для каждого из следующих (независимых) случаев и подсчитайте коэффициенты z-строки после определения всех искусственных переменных.
a) Третье ограничение имеет вид л:, + 2х2 > 4.
b) Второе ограничение имеет вид 4л:, + Зх2 < 6.
c) Второе ограничение имеет вид 4л:, + Зх2 = 6.
d) Целевая функция имеет вид: максимизировать z = 4л:, + х2.
4. Существует следующее множество ограничений.
Для каждой из следующих задач найдите коэффициенты z-строки симплекс-таблицы после введения искусственных переменных.
a) Максимизировать z = 5л:, + 6л:2 при ограничениях (1), (3) и (4).
b) Максимизировать z = 2л;, - 7л:2 при ограничениях (1), (2), (4) и (5).
c) Минимизировать z = Зл;, + 6л;2 при ограничениях (3), (4) и (5).
-2xi + Зх2 = 3,
4xi + 5х2> 10, xi + 2x2 < 5, 6x1 + 7х2 < 3, 4xi + 8x2 > 5,
(1) (2) (3) (4) (5)
x1, x2>0.
Глава 3. Симплекс-метод
d) Минимизировать z = 4х, + 6х2 при ограничениях (1), (2) и (5).
e) Минимизировать z = Зх, + 2х2 при ограничениях (1) и (5).
5. Дано следующее множество ограничений:
2х, - Ъх2 + хг > 10,
При этих ограничениях решите задачи ЛП для следующих целевых функций.
a) Максимизировать z = 2х, + Зх2 - 5х3.
b) Минимизировать z = 2х, + Зх2 - Ъхг.
c) Максимизировать z = х, -f 2х2 + х3.
d) Минимизировать z = 4х, - 8х2 + Зх3.
6. Дана следующая задача.
Максимизировать z = 2х, + 4х2 + 4х3 - Зх4 при ограничениях
Х^ "I- ^2 ^3
х, -f 4х2 + х4 = 8, Xj, Х2, Х3, х4 ^ 0.
В этой задаче переменные х3 и х4 могут выполнить роль дополнительных остаточных переменных. Они отличаются от остаточных переменных тем, что имеют ненулевые коэффициенты в выражении целевой функции. Поэтому, если использовать их как начальные базисные переменные, перед выполнением симплекс-метода следует преобразовать в симплекс-таблице z-строку (как это делается для искусственных переменных). Решите эту задачу без искусственных переменных, используя в начальном базисном решении переменные х3 и х4.
7. Без применения искусственных переменных решите следующую задачу, используя в начальном базисном решении переменные х3 и х4.
Минимизировать z = 3xt + 2х2 + Зх3
при ограничениях
х, -f 4х2 + х3 > 7, 2х, + х2 + х4 > 10, х,, х2, Х3, х4 ^ 0.
8. Дана следующая задача.
Максимизировать z = х, -f 5х2 + Зх3
при ограничениях
х, + 2х2 + х3 = 3, х^ — 0»
В первом равенстве переменная х3 может войти в базисное решение вместо искусственной переменной. Однако во втором равенстве искусственная переменная R2 необходима. Используя начальное базисное решение, состоящее из переменных х3 и Д2, найдите оптимальное решение этой задачи.
9. Покажите, как с помощью М-метода можно определить, что следующая задача не имеет допустимого решения.
3.4. Искусственное начальное решение
Максимизировать z = 2х, + 5х2
при ограничениях
Зх, + 2х2>6, 2х, + х2<2, х„ х2>0.
3.4.2. Двухэтапный метод
Двухэтапный метод лишен недостатков, которые присущи М-методу вследствие ошибок округления. Как следует из названия этого метода, процесс решения задачи ЛП разбивается на два этапа. На первом этапе ведется поиск начального допустимого базисного решения. Если такое решение найдено, то на втором этапе решается исходная задача.
Этап 1. Задача ЛП записывается в стандартной форме, а в ограничения добавляются необходимые искусственные переменные (как и в М-методе) для получения начального базисного решения. Решается задача ЛП минимизации суммы искусственных переменных с исходными ограничениями. Если минимальное значение этой новой целевой функции больше нуля, значит, исходная задача не имеет допустимого решения, и процесс вычислений заканчивается. (Напомним, что положительные значения искусственных переменных указывают на то, что исходная система ограничений несовместна.) Если новая целевая функция равна нулю, переходим ко второму этапу.
Этап 2. Оптимальное базисное решение, полученное на первом этапе, используется как начальное допустимое базисное решение исходной задачи.
Пример 3.4.2
К задаче из примера 3.4.1 применим двухэтапный метод. Этап 1
Минимизировать г = Л, + R2
при ограничениях
Зх, +х2 + Л, = 3, 4х, + Зх2 - х, + R2 = 6, х, + 2х2 + х4 = 4, х,, Х2, Хд, х4, Л,, R2, — 0. Соответствующая таблица имеет следующий вид.
Базис | X1 | хг | хз | Я, | Fk | хл | Решение |
г | -1 | -1 | |||||
fli | |||||||
Fk | -1 | ||||||
Х{ |
Глава 3. Симплекс-метод
Как и в А/-методе, сначала вычисляется новая r-строка по формуле новая r-строка = старая r-строка + 1 х /?,-строка + 1 х Л2-строка
Новая r-строка используется для решения задачи первого этапа, что приведет к следующему оптимальному решению (проверьте с помощью программы TORA, выполнив команду Iterations Two-phase Method).
Базис | Хг | хг | «1 | Fk | Xi | Решение | |
г | -V: | -1 | |||||
X, | 1/5 | 3/5 | -1/5 | 3/5 | |||
хг | -3/5 | -4/5 | 3/5 | 6/5 | |||
Xi | -1 |
Поскольку достигнут минимум г = О, значит, на первом этапе получено допустимое базисное решение,v, = 3/5, хг = 6/5 и jr4 = 1. Искусственные переменные полностью выполнили свою "миссию", поэтому из последней таблицы можно удалить их столбцы. Переходим ко второму этапу.
Этап 2
После удаления искусственных переменных исходная задача будет записана следующим образом.
Минимизировать г = 4л, + х2
с ограничениями
х, Н— х = —, ' 5 3 5
_ 3 = 6
x3+xt = 1, л*,, х2, л*3, л*4 ^0.
Обратите внимание на то, что после первого этапа исходная задача претерпела некоторые изменения, которые учитывают полученное базисное решение. Этой трансформированной задаче соответствует следующая таблица.
Базис | *i | хг | хз | Xi | Решение |
z | -4 | ||||
*1 | 1/5 | 3/5 | |||
хг | -3/5 | 6/5 | |||
Xi |
Поскольку базисные переменные х1 и хг имеют ненулевые коэффициенты в г-строке, эту строку следует преобразовать.
Новая z-строка = старая г-строка + 4 х х,-строка + 1 х л-2-строка. Начальная таблица второго этапа примет следующий вид.
3.4. Искусственное начальное решение
Базис | *i | хг | хз | Xi | Решение |
z | 1/5 | 18/5 | |||
*1 | 1/5 | 3/5 | |||
Хг | -3/5 | 6/5 | |||
хл | |||||
Так как решается задача минимизации, следует ввести переменную хъ в базис. Применение алгоритма симплекс-метода уже на следующей итерации приведет к оптимальному решению (проверьте с помощью TORA!). |
Удаление искусственных переменных в конце первого этапа имеет смысл только тогда, когда все они являются небазисными (как в примере 3.4.2). Однако возможна ситуация, когда в конце первого этапа искусственные переменные останутся в базисе, но будут иметь нулевые значения. В этом случае такие переменные при необходимости будут формировать часть начального базисного решения для второго этапа. При этом необходимо так изменить вычисления, выполняемые на втором этапе, чтобы искусственные переменные никогда не смогли принять положительные значения ни в каких итерациях симплекс-метода.
Дата публикования: 2014-11-18; Прочитано: 703 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!