
- •Им. А.Н.Туполева
- •И.П. Ультриванов
- •Учебное пособие для студентов экономического факультета Издательство Казанского
- •Глава 1. Основные понятия моделирования систем
- •Виды и способы математического моделирования систем
- •Экономико-математические модели
- •Адекватность модели
- •1.4. Понятие «черного ящика» в теории управления
- •1.5. Последовательность процесса моделирования
- •Глава 2. Основные свойства систем управления
- •2.1. Понятие системы
- •2.2. Устойчивость динамических систем
- •2.3. Равновесие в экономических системах
- •2.4. Качество процессов регулирования
- •Глава 3. Общие методы оптимизации
- •3.1. Классификация методов получения оптимальных решений
- •3.2. Оптимальные решения
- •3.3. Математическое программирование
- •Глава 4. Задача линейного программирования и ее оптимальное решение
- •4.1. Определение линейности функций
- •4.2. Постановка задачи линейного программирования
- •4.3. Геометрическая интерпретация и графический метод решения задачи линейного программирования
- •4.4. Симплексный метод решения задачи
- •Алгоритм симплекс-метода решения злп. Алгоритм симплекс-метода решения злп продемонстрируем на простом примере.
- •Глава 5. Методы оптимизации в задачах нелинейного программирования
- •5.2. Метод множителей Лагранжа
- •5.3. Методы одномерного поиска минимума функции
- •Эффективность одномерных методов поиска
- •5.4. Методы минимизации без ограничений, использующие производные
- •5.5. Методы минимизации без ограничений, не использующие производные (методы поиска)
Алгоритм симплекс-метода решения злп. Алгоритм симплекс-метода решения злп продемонстрируем на простом примере.
Рассмотрим конкретную задачу.
Целевая функция имеет вид:
F(x1,x2)=2x1+3x2 → max.
Ее функциональные ограничения представляют собой систему неравенств :L1 – L4:
х1+3х2 ≤ 18, (L1)
2х1+х2 ≤ 16, (L2)
х2 ≤ 5, (L3)
3х1 ≤ 21; (L4)
а прямые ограничения заданы неравенствами L5, L6:
х1 ≥ 0, (L5)
х2 ≥ 0. (L6)
Требуется найти решение данной ЗЛП симплексным методом.
Для наглядности, на рис 14 представлена заданная в условии задачи область ее допустимых решений ABCDEG и линии равных уровней целевой функции, показанные пунктиром.
X2 L6
L3 L1
7
6
5
4
3
2
1
0 L4 L2
В С А
D
X1 L5 G E
1 2 3 4
5 6 7 8
Рис.
14
Приведем исходную задачу к каноническому виду, для чего обратим имеющуюся систему функциональных неравенств в равенства, вводя для этого в каждое из них соответствующую неотрицательную переменную:
х1+3х2 + х3 = 18,
2х1+х2 + х4 = 16,
х2 + х5 = 5,
3х1 + х6 = 21.
Все дополнительные переменные введены со знаком «+», так как рассматриваемые неравенства имеют знак « ≤ ».
Для нахождения первоначального базисного решения разобьем переменные на две группы: основные и неосновные. (Напомним, что базисным решением системы m линейных уравнений с n переменными называют решение, в котором все (n – m) неосновных переменных равны нулю.)
В качестве основных переменных на первом шаге нужно выбрать такие переменные, каждая из которых входит только в одно уравнение системы ограничений и при этом нет таких уравнений системы, в которые не входит ни одна из этих переменных. Количество основных переменных равно m.
Если выбранные по этому правилу переменные имеют те же знаки, что и соответствующие им свободные члены в правых частях уравнений, то полученное таким образом базовое решение будет допустимым.
Алгоритм решения задачи разобьем на ряд шагов N i, где N – номер шага, а индекс i – номер итерации.
Шаг 11. Определим состав основных и неосновных переменных.
В соответствии с вышеизложенным правилом:
основные переменные: х3, х4, х5, х6;
неосновные переменные: х1, х2.
Шаг 21. Используя систему равенств, выразим основные переменные через неосновные:
х3 = 18 - х1 - 3х2,
х4 = 16 - 2х1- х2,
х5 = 5 - х2,
х6 = 21 - 3 х1.
Шаг 31. Положив неосновные переменные равными нулю, получим первое базисное решение:
Х1 = (х11 = 0, х21 = 0, х31 = 18, х41 = 16, х51 = 5, х61 = 21).
Полученное на первой итерации решение соответствует вершине А на рис 16.
Шаг 41. Выразим целевую функцию через неосновные переменные и определим ее значение при выбранном базисном решении:
F =2x1+3x2 = 0.
Шаг 51. Проверим, доставляет ли выбранное базисное решение оптимум целевой функции F. Для этого воспользуемся критерием оптимальности решения при нахождении максимума целевой функции: если в выражении целевой функции через неосновные переменные отсутствуют положительные коэффициенты при неосновных переменных, то решение является оптимальным.
В соответствии с данным критерием исследуемое базисное решение не является оптимальным, следовательно, необходимо перейти к другому базисному решению.
Шаг 61. Сформулируем основное правило перехода к лучшему (не худшему) решению: в новый состав основных переменных вводится та из неосновных переменных, которая имеет наибольший положительный коэффициент в целевой функции.
В данном случае это коэффициент при x2.
Чтобы новое опорное решение, с одной стороны улучшало значение целевой функции, а с другой — было бы опорным, необходимо определить:
-
как должна измениться (увеличиться) переменная x2, вошедшая в новый состав основных переменных;
-
какая переменная из «бывших основных» должна перейти в новый состав неосновных переменных при переходе от одного (старого) базисного решения к другому — новому.
Чтобы оценить, в каких пределах возможно изменение переменной x2, необходимо определить, при каких значениях x2 каждая из «старых» основных переменных останется неотрицательной. Соблюдение этого условия и делает новое искомое решение допустимым.
Очевидно, что для этого должны выполняться следующие неравенства:
х3 = 18 - х1 - 3х2 ≥ 0, х2 ≥ 18/3;
х
(4.4.1)
х5 = 5 - х2 ≥ 0, х2 ≥ 5;
х6 = 21 - 3 х1 ≥ 0.
Каждое из неравенств системы (4.4.1) определяет возможные границы изменения переменной х2. В частности, из последнего неравенства системы следует, что переводимая переменная может возрастать неограниченно, т.е. ее граница может быть обозначена как ∞.
Очевидно, что допустимость решения будет обеспечена только в том случае, если будут выполнены все ограничения системы (4.4.1). В свою очередь, это условие будет выполняться, если:
х2 = min{18/3; 16/1; 5/1; ∞}.
При х2 = 5 переменная х5 обращается в 0 и переходит в разряд неосновных. Уравнение, где достигается наибольшее возможное значение переменной х2, называется разрешающим. После проделанных преобразований вновь возвращаемся к первому шагу.
Шаг 12. Определяем состав основных и неосновных переменных:
основные переменные: х2, х3, х4, х6;
неосновные переменные: х1, х5.
Шаг 22. Выразим основные переменные через неосновные, воспользовавшись соотношением из разрешающего уравнения:
х2 = 5 – х5, х2 = 5 – х5;
х3 = 18 - х1 – 3(5 – х5), х3 = 3 - х1 + 3х5;
х4 = 16 - 2х1- (5 – х5), х4 = 11 - 2х1 + х5;
х6 = 21 - 3 х1, х6 = 21 - 3 х1.
Шаг 32. Положив неосновные переменные равными нулю, получим новое базисное решение:
Х2 = (х12 = 0, х22 = 5, х32 = 3, х42 = 11, х52 = 0, х62 = 21).
Полученное на второй итерации решение соответствует вершине В на рис 16.
Шаг 42. Выразим целевую функцию через неосновные переменные и определим ее значение при данном базисном решении:
F =2x1+3х2 = 2x1+3(5–х5) = 2x1+15–3 х5 = 15.
Шаг 52. Проверим, доставляет ли данное базисное решение оптимум целевой функции F. Коэффициент при x1 в выражении целевой функции через неосновные переменные положителен, следовательно данный узел в многоугольнике решений с координатами х1 = 0, х2 = 5 не доставляет оптимума целевой функции и необходимо искать новое базисное решение.
Шаг 62. Используя сформулированное на шаге 61 правило перехода к лучшему решению, введем в новый состав основных переменных x1.
Определим допустимое значение x1 и разрешающее уравнение.
х2 = 5 – х5 ≥ 0, x1 ≤ ∞;
х3 = 3 - х1 + 3х5 ≥ 0, x1 ≤ 3/1;
х4 = 11 - 2х1 + х5 ≥ 0, x1 ≤ 11/2;
х6 = 21 - 3 х1 ≥ 0, x1 ≤ 21/3.
Отсюда:
х1 = min{∞; 3/1; 11/2; 21/3}= 3.
Из разрешающего уравнения следует, что если х1= 3, то х3 = 0, следовательно, можно вернуться к первому шагу в третьем приближении.
Шаг 13. Определим новый состав основных и неосновных переменных:
основные переменные: х1, х2, х4, х6;
неосновные переменные: х3, х5.
Шаг 23. Выразим основные переменные через неосновные:
х1 = 3 – х3 + 3х5, х1 = 3 – х3 + 3х5;
х2 = 5 – х5, х2 = 5 – х5;
х4 = 11 – 2 (3 – х3 + 3х5)+ х5, х4 = 5 + 2х3 - 5х5;
х6 = 21 - 3 (3 – х3 + 3х5), х6 = 12 + 3х3 - 9х5.
Шаг 33. Положив неосновные переменные равными нулю, получим новое базисное решение:
Х3 = (х13 = 3, х23 = 5, х33 = 0, х43 = 5, х53 = 0, х63 = 12).
Полученное на третьей итерации решение соответствует вершине С на рис 16.
Шаг 43. Выразим целевую функцию через неосновные переменные и определим ее значение при данном базисном решении:
F = 2x1+3х2 = 2 (3 – х3 + 3х5)+3 (5 – х5) = 21 - 2х3 + 3х5 = 21.
Шаг 53. Проверим критерий оптимальности: он опять не выполняется, так как коэффициент при х5 положителен.
Шаг 63. Вновь используя сформулированное на шаге 61 правило перехода к лучшему решению, введем в новый состав основных переменных x5.
Определим допустимое значение x5 и разрешающее уравнение:
х1 = 3 – х3 + 3х5 ≥ 0, x5 ≤ ∞;
х2 = 5 – х5 ≥ 0, x5 ≤ 5;
х4 = 5 + 2х3 - 5х5 ≥ 0, x5 ≤ 5/5;
х6 = 21 – 3 (3 – х3 + 3х5)≥ 0, x5 ≤ 12/9.
Отсюда:
х5 = min{∞; 5; 5/5; 12/9}= 1.
Из разрешающего уравнения следует, что при х5=1→ х4=0, следовательно х4 переходит в состав неосновных переменных. Вновь возвращаемся к первому шагу.
Шаг 14. Определяем новый состав переменных:
основные переменные: х1, х2, х5, х6;
неосновные переменные: х3, х4.
Шаг 24. Выразим основные переменные через неосновные. Воспользовавшись разрешающим уравнением, получаем:
х4 = 5 + 2х3 - 5х5,
х5 = 1 +2/5 х3 – 1/5 х4,
х1 = 3 – х3 + 3(1 +2/5 х3 – 1/5 х4),
х2 = 5 - 1 - 2/5 х3 + 1/5 х4,
х6 = 12+3х3 – 9(1 + 2/5 х3 – 1/5 х4),
или после преобразования:
х1 = 6 +1/5 х3 – 3/5 х4,
х2 = 4 - 2/5 х3 + 1/5 х4,
х5 = 1 +2/5 х3 – 1/5 х4,
х6 = 3 - 3/5 х3 + 9/5 х4.
Шаг 34. Положив неосновные переменные равными нулю, получим новое базисное решение:
Х4 = (х14 = 6, х24 = 4, х34 = 0, х44 = 0, х54 = 1, х64 = 3).
Полученное на четвертой итерации решение соответствует вершине D на рис 16.
Шаг 44. Выразим целевую функцию через неосновные переменные и определим ее значение при данном базисном решении:
F = 2x1+3х2 = 2 (6 + 1/5 х3 – 3/5 х4)+3 (4 – 2/5 х3 +1/5 х4) = 24 – 4/5 х3 – 3/5 х4 = 24.
Шаг 54. Используя критерий оптимальности, приходим к выводу, что на этот раз он выполняется и что исследуемое базисное решение является оптимальным.
Рассмотренный пример показывает, что за несколько итераций, каждая из которых содержит определенное число шагов, в задаче линейного программирования может быть найдено оптимальное решение. Существенно, что количество итераций меньше числа узлов в области допустимых решений. В нашем примере, мы пропустили не оптимальные узлы G и E в многоугольнике решений на рис 16.
С точки зрения практического использования результатов решения ЗЛП классификация переменных на основные и неосновные не имеет значения и при анализе оптимального решения может не учитываться. Неосновные переменные обязательно имеют нулевое значение.
Для использования приведенной выше процедуры симплекс-метода при минимизации целевой функции F(X) следует искать максимум функции F1(X) = - F(X), затем полученный максимум взять с противоположным знаком. Это и будет искомый минимум исходной ЗЛП.