
- •Оглавление
- •Глава 9. Теория систем массового обслуживания 98
- •Введение
- •Глава 1. Построение математической модели задачи линейного программирования
- •Задачи для самостоятельного решения
- •Глава 2. Графический метод решения задач линейного программирования
- •1. Изобразим на плоскости систему координат
- •2. Рассмотрим ограничения неотрицательности
- •3. Строим множество точек, соответствующее множеству решений системы ограничений.
- •Задачи для самостоятельного решения
- •Глава 3. Стандартная и каноническая формы задачи линейного программирования
- •Задачи для самостоятельного решения
- •Глава 4. Симплексный метод решения задач линейного программирования
- •4.1.Общая идея симплексного метода
- •4.2.Табличный симплексный метод
- •4.3. Метод искусственного базиса
- •Задачи для самостоятельного решения
- •Глава 5. Двойственная задача линейного программирования
- •Задачи для самостоятельного решения
- •Глава 6. Целочисленные задачи линейного программирования
- •Задачи для самостоятельного решения
- •Глава 7. Транспортная задача
- •Задачи для самостоятельного решения
- •Глава 8. Теория игр
- •8.1. Общие понятия
- •8.2. Решение игр в чистых стратегиях
- •8.3. Решения игр в смешанных стратегиях
- •8.3.1. Решение игры 2×2 в смешанных стратегиях
- •8.3.2. Решение игры 2×2 в смешанных стратегиях геометрическим методом
- •8.3.3. Решение игр вида 2×n и m×2 геометрическим методом
- •8.4. Решение матричной игры m×n симплексным методом
- •Задачи для самостоятельного решения
- •Глава 9. Теория систем массового обслуживания
- •9.1. Компоненты и классификация моделей массового обслуживания
- •9.2. Определение характеристик одноканальных систем массового обслуживания
- •9.2.1. Одноканальная смо с отказами
- •9.2.2. Одноканальная смо с ожиданием и ограниченной длиной очереди
- •9.2.3. Одноканальная смо с ожиданием без ограниченной длины очереди
- •9.3. Определение характеристик многоканальных систем массового обслуживания
- •9.3.1. Многоканальная система массового обслуживания с отказами
- •9.3.2 Многоканальная система массового обслуживания с ожиданием и неограниченной очередью
- •9.4. Модель замкнутой системы массового обслуживания
- •Задачи для самостоятельного решения
- •Список литературы
4.3. Метод искусственного базиса
В задачах линейного программирования, где все ограничения являются неравенствами типа "≤" (с неотрицательной правой частью), дополнительные (остаточные) переменные позволяют сформировать начальное допустимое базисное решение. Естественно, возникает вопрос: как найти начальное допустимое базисное решение в задачах ЛП, где есть ограничения в виде равенств или неравенств типа "≥"?
Наиболее общим способом построения начального допустимого базисного решения задачи ЛП является использование искусственных переменных. Эти переменные в первой итерации играют роль дополнительных остаточных переменных, но на последующих итерациях от них освобождаются. Разработано два тесно связанных между собой метода нахождения начального решения, которые используют искусственные переменные: М-метод и двухэтапный метод.
Рассмотрим М-метод:
Пусть задача ЛП записана в стандартной форме. Для любого равенства i, в котором не содержится дополнительная положительная переменная, введем искусственную переменную Ri, которая далее войдет в начальное базисное решение. Но, поскольку эта переменная искусственна (другими словами, не имеет никакого "физического смысла" в данной задаче), необходимо сделать так, чтобы на последующих итерациях она обратилась в нуль. Для этого в выражение целевой функции вводят штраф.
Переменная Ri с помощью достаточно большого положительного числа М штрафуется путем ввода в целевую функцию выражения -MRi в случае максимизации целевой функции и выражения +MRi — в случае минимизации. Вследствие этого штрафа естественно предположить, что процесс оптимизации симплекс-метода приведет к нулевому значению переменной Ri. Следующий пример проясняет детали этого метода.
Пример №1
Дана математическая модель задачи линейного программирования:
Стандартная форма этой задачи получается в результате добавления дополнительной отрицательной (избыточной) переменной х3 во второе неравенство и дополнительной положительной (остаточной) переменной x4 в третье неравенство.
Эта задача в стандартной форме будет записана следующим образом:
В полученной задаче первое и второе уравнения не имеют дополнительных (остаточных) переменных, которые можно ввести в базисное решение. Поэтому введем в эти уравнения искусственные переменные R1 и R2 а в целевую функцию добавим штраф MR1 + MR2. В результате получим следующую задачу ЛП.
В этой модифицированной задаче переменные R1, R2 и х4 используются в качестве начального допустимого базисного решения. В результате получим следующую симплекс-таблицу:
Переменные Базис |
х1 |
х2 |
х3 |
R1 |
R2 |
х4 |
свободные члены bj |
R1 |
3 |
1 |
0 |
1 |
0 |
0 |
3 |
R2 |
4 |
3 |
-1 |
0 |
1 |
0 |
6 |
х4 |
1 |
2 |
0 |
0 |
0 |
1 |
4 |
F |
-4 |
-1 |
0 |
-M |
-M |
0 |
0 |
Заметьте, что в данном методе коэффициенты целевой функции заносятся с противоположным знаком не зависимо от направления поиска.
Прежде чем применять симплекс-метод, надо согласовать значения в F-строке с остальной частью таблицы. В частности, значение функции F, соответствующее начальному базисному решению R1= 3, R2=6 и х4 = 4, должно равняться ЗM+6M+0=9M, а не 0, как показано в таблице. Это противоречие связано с тем, что переменным R1 и R2 соответствуют ненулевые коэффициенты (-M, -М) в строке F, где обычно дополнительным переменным соответствуют нулевые коэффициенты. Чтобы сделать эти коэффициенты нулевыми, следует умножить элементы строк R1 и R2 на величину M, и затем сложить эти строки с F-строкой. (Обратите внимание на "подсвеченные" единицы в этих строках — если бы эти коэффициенты были отличны от единиц, то необходимо было бы сначала разделить все элементы этих строк на данные коэффициенты.) Кратко это действие можно записать следующим образом:
Новая F-строка = старая F-строка + MR1-строка + MR2-строка.
Измененная симплекс-таблица примет следующий вид:
Переменные Базис |
х1 |
х2 |
х3 |
R1 |
R2 |
х4 |
свободные члены b |
R1 |
3 |
1 |
0 |
1 |
0 |
0 |
3 |
R2 |
4 |
3 |
-1 |
0 |
1 |
0 |
6 |
х4 |
1 |
2 |
0 |
0 |
0 |
1 |
4 |
F |
-4+7M |
-1+4M |
-M |
0 |
0 |
0 |
9M |
Отметим, что теперь F = 9M, что соответствует базисному решению R1= 3, R2=6 и х4 = 4.
Последняя таблица готова к применению симплекс-метода с использованием условий оптимальности и допустимости. Поскольку минимизируем целевую функцию, то находим наибольший положительный коэффициент в F-строке. Наибольший коэффициент -4 +7М соответствует переменной x1 которая и будет вводимой. Условие допустимости (оценочное отношение) указывает на переменную R1 в качестве исключаемой.
Поскольку вводимая и исключаемая переменные определены, новую симплекс-таблицу можно вычислить с помощью метода Жордана-Гаусса. Заметим, что вычисления в F-строке, где присутствует M, следует проводить алгебраически. Так, для получения новой F-строки необходимо новую ведущую строку умножить на -(-4 + 7М) и сложить с текущей F-строкой. В результате получим следующую таблицу:
Переменные Базис |
х1 |
х2 |
х3 |
R1 |
R2 |
х4 |
свободные члены b |
x1 |
1 |
1/3 |
0 |
1/3 |
0 |
0 |
1 |
R2 |
0 |
5/3 |
-1 |
-4/3 |
1 |
0 |
2 |
х4 |
0 |
3/5 |
0 |
-1/3 |
0 |
1 |
3 |
F |
0 |
(1+5M)/3 |
-M |
(4-7M)/3 |
0 |
0 |
4+2M |
Отметим, что уже первая итерация исключила из базисного решения искусственную переменную R1, что является результатом включения штрафа в целевую функцию.
Последняя таблица показывает, что следующими (вводимой и исключаемой) переменными будут х2 и R2 соответственно. Конечно, для получения оптимального решения может потребоваться больше двух итераций.
В данной задаче оптимальным решением будет x1= 2/5, х2 = 9/5, х3=1 и F= 17/5.
Пример №2
Дана математическая модель задачи линейного программирования:
Стандартная форма этой задачи получается в результате добавления дополнительной положительной (остаточной) переменной х5 во второе неравенство и дополнительной отрицательной (избыточной) переменной x6 в третье неравенство. Эта задача в стандартной форме будет записана следующим образом.
В полученной задаче
третье уравнение не имеет дополнительной
положительной переменной, которую можно
ввести в базисное решение. Поэтому
введем в это уравнение искусственную
переменную
а в целевую функцию добавим штраф
.
В результате получим следующую задачу
ЛП.
В результате получим следующую симплекс-таблицу:
Переменные Базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
х4 |
2 |
1 |
-2 |
1 |
0 |
0 |
0 |
24 |
х5 |
1 |
2 |
4 |
0 |
1 |
0 |
0 |
22 |
R1 |
1 |
-1 |
2 |
0 |
0 |
-1 |
1 |
10 |
F |
-3 |
3 |
-6 |
0 |
0 |
0 |
-M |
0 |
Прежде чем применять симплекс-метод, надо согласовать значения в F-строке с остальной частью таблицы.
Новая F-строка = старая F-строка - MR1-строка
Измененная симплекс-таблица примет следующий вид:
Переменные Базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
х4 |
2 |
1 |
-2 |
1 |
0 |
0 |
0 |
24 |
х5 |
1 |
2 |
4 |
0 |
1 |
0 |
0 |
22 |
R1 |
1 |
-1 |
2 |
0 |
0 |
-1 |
1 |
10 |
F |
-3-M |
3+M |
-6-2M |
0 |
0 |
M |
0 |
-10M |
Поскольку максимизируем целевую функцию, то находим наибольший по модулю отрицательный коэффициент в F-строке. Наибольший по модулю отрицательный коэффициент -6 -2М соответствует переменной x3 которая и будет вводимой.
Переменные Базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
Оценочное отношение |
х4 |
2 |
1 |
-2 |
1 |
0 |
0 |
0 |
24 |
∞ |
х5 |
1 |
2 |
4 |
0 |
1 |
0 |
0 |
22 |
22/4 |
R1 |
1 |
-1 |
2 |
0 |
0 |
-1 |
1 |
10 |
10/2 |
F |
-3-M |
3+M |
-6-2M |
0 |
0 |
M |
0 |
-10M |
|
Условие допустимости (оценочное отношение) указывает на переменную R1 в качестве исключаемой. В результате получим следующую таблицу:
Переменные Базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
х4 |
3 |
0 |
0 |
1 |
0 |
-1 |
1 |
34 |
х5 |
-1 |
4 |
0 |
0 |
1 |
2 |
-2 |
2 |
х3 |
0,5 |
-0,5 |
1 |
0 |
0 |
-0,5 |
0,5 |
5 |
F |
0 |
0 |
0 |
0 |
0 |
-3 |
3M |
30 |
Отметим, что уже первая итерация исключила из базисного решения искусственную переменную R1.
Переменные базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
Оценочное отношение |
х4 |
3 |
0 |
0 |
1 |
0 |
-1 |
1 |
34 |
∞ |
х5 |
-1 |
4 |
0 |
0 |
1 |
2 |
-2 |
2 |
1 |
х3 |
0,5 |
-0,5 |
1 |
0 |
0 |
-0,5 |
0,5 |
5 |
∞ |
F |
0 |
0 |
0 |
0 |
0 |
-3 |
3M |
30 |
|
Полученный план не оптимален, т.к. в целевой строке содержится отрицательный элемент. Наибольший по модулю отрицательный коэффициент -3 соответствует переменной x6 которая и будет вводимой.
Оценочное отношение указывает на переменную x6 в качестве исключаемой.
Переменные базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
Оценочное отношение |
х4 |
2,5 |
2 |
0 |
1 |
0,5 |
0 |
0 |
35 |
14 |
х6 |
-0,5 |
2 |
0 |
0 |
0,5 |
1 |
-1 |
1 |
∞ |
х3 |
0,25 |
0,5 |
1 |
0 |
0,25 |
0 |
0 |
5,5 |
22 |
F |
-1,5 |
6 |
0 |
0 |
1,5 |
0 |
M |
33 |
|
Полученный план не оптимален, т.к. в целевой строке содержится отрицательный элемент. Наибольший по модулю отрицательный коэффициент -1.5 соответствует переменной x1 которая и будет вводимой.
Оценочное отношение указывает на переменную x4 в качестве исключаемой.
Переменные базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
R1 |
свободные члены bj |
х1 |
1 |
0,8 |
0 |
0,4 |
0,2 |
0 |
0 |
14 |
х6 |
0 |
2,4 |
0 |
0,2 |
0,6 |
1 |
-1 |
8 |
х3 |
0 |
0,3 |
1 |
-0,1 |
0,2 |
0 |
0 |
2 |
F |
0 |
7,2 |
0 |
0,6 |
1,8 |
0 |
M |
54 |
Полученный план оптимален. Результат можно записать как:
х1=14
х2=0, т.к. ее нет в базисе
х3=2
F=54
Проведем проверку:
.
При использовании M-метода следует обратить внимание на следующие два обстоятельства.
1. Использование штрафа М-может и не привести к исключению искусственной переменной в конечной симплекс-итерации. Если исходная задача линейного программирования не имеет допустимого решения (например, система ограничений несовместна), тогда в конечной симплекс-итерации по крайней мере одна искусственная переменная будет иметь положительное значение. Это "индикатор" того, что задача не имеет допустимого решения.
2. Теоретически применение М-метода требует, чтобы M→∞. Однако с точки зрения компьютерных вычислений величина М должна быть конечной и, вместе с тем, достаточно большой. Как понимать термин "достаточно большая" — это открытый вопрос. Величина М должна быть настолько большой, чтобы выполнять роль "штрафа", но не слишком большой, чтобы не уменьшить точность вычислений. На практике вы должны помнить о возможных ошибках машинного округления при выполнении вычислений, в которых совместно участвуют как большие, так и малые числа.