Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UMK_Mod_t-kh_prots_i_sist.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
20 Мб
Скачать
☆

3.3. Симплексный метод

Симплексный метод – это распространенный метод решения задач линейного программирования. Свое название метод получил от слова «симплекс», обозначающего простейший выпуклый многоугольник, число вершин которого всегда на единицу больше, чем размерность пространства. Симплексный метод разработан в США математиком Дж. Данцигом в конце 1940-х годов.

Симплексный метод включает получение неотрицательного базисного решения системы канонических линейных уравнений типа (3.1), последующую минимизацию (максимизацию) целевой функции (3.3) и нахождение таким способом оптимальных значений искомых переменных х1, х2… хn.

Идея симплексного метода заключается в том, что в процессе вычисления последовательно переходят от первого базисного решения ко второму, третьему и т.д. с помощью так называемых симплексных преобразований. Преобразования производятся в форме симплексных таблиц, что значительно упрощает и ускоряет расчеты.

Чтобы получить неотрицательные базисные решения системы линейных уравнений, надо процесс исключения неизвестных вести так, чтобы свободные члены уравнений на всех этапах процесса оставались неотрицательными. При этом следует руководствоваться следующим правилом: в качестве новой базисной переменной принимается любая свободная переменная, при которой есть хотя бы один положительный коэффициент; выводится из базиса переменная, которая соответствует наименьшему отношению свободных членов уравнений к соответствующим положительным коэффициентам уравнений при вводимой в базис переменной. Такие преобразования называются симплексными преобразователями.

Это очень важно, поскольку для нахождения частного неотрицательного решения, отвечающего наибольшему возможному значению какой-то одной свободной переменной при нулевых значениях других свободных переменных, вместо определения области изменения указанной переменной и подстановки ее наибольшего возможного значения в общее решение достаточно принять эту переменную за базисную и подвергнуть систему симплексному преобразованию, перейдя к новому базису, что значительно упрощает расчеты.

Вычисления удобно производить с помощью симплексных таблиц. Переход от одной таблицы к другой соответствует одной итерации, т. е. переходу от одного базиса к другому, при этом значение целевой функции уменьшается. За определенное число итераций переходят к базису, для которого получают оптимальное (минимальное или максимальное) значение целевой функции. Рассмотрим симплексный метод в общем виде.

Общая задача линейного программирования заключается в минимизации (максимизации) целевой функции, переменные которой связаны между собой системой линейных уравнений, подчинены условию неотрицательности.

Пусть необходимо минимизировать линейную форму

L = с1 х1+ с2 х2 + … сn хn .

При условиях (для наглядности нулевые и единичные коэффициенты в уравнениях сохранены):

1х1+ 0х2 + … 0хm + a1m+1xm+1…+a1nxn = b1;

0х1+ 1х2 + … 0хm + a2m+1xm+1…+a2nxn = b2 ;

……………………………………………

0х1+ 0х2 + … 1хm + amm+1xm+1…+amnxn = bm.

В данной системе уравнений уже имеется готовый базис, поскольку каждое уравнение ограничений содержит неизвестную с коэффициентом, равным единице, которой нет в других уравнениях, т. е. из коэффициентов при переменных х1, х2…, хm можно составить единичную матрицу.

Решим уравнения относительно базисных переменных :

х1 = b1 – (a1m+1·хm+1…+ a1nxn );

х2 = b2 – (a2m+1·хm+1…+ a2nxn );

………………………………

хm = bm – (amm+1xm+1…+ amnxn),

а целевую функцию выразим через свободные переменные, подставив в нее на место базисных переменных их выражения через свободные переменные:

L=c1b1+c2b2+cmbm–(c1a1m+c2a2m+1+…+cmamn+1)xm+1-…-(c1a1n+c2a2n+…+cmamn)xn…+cnxn..

Переменные х1, х2…, хm, с помощью которых найден первый базисный план, являются базисными, а остальные xm+1, xm+2,…xn – свободными. Базисных переменных должно быть всегда столько, сколько уравнений в системе. Исходя из условия неотрицательности, наименьшее значение свободных переменных равно нулю. Полученное базисное решение системы уравнений и является ее первоначальным допустимым решением, т.е. x1= b1, x2=b2, … xm=bm, xm+1=0,…, xn=0.

Этому решению соответствует значение целевой функции

L = с1 b1+ с2 b2 + … сm bm.

Первоначальное решение проверяется на оптимальность. Если оно неоптимально, то путем введения в базис свободных переменных находят следующие допустимые решения с меньшим значением целевой функции. Для этого определяют свободную переменную, которую необходимо ввести в базис, а также переменную, которую необходимо вывести из базиса. Затем переходят от предыдущей системы к последующей эквивалентной системе. Осуществляется это с помощью симплекс-таблиц. Решение задачи продолжается до получения оптимального значения целевой функции.

Симплексные таблицы составляют следующим образом (см. табл. 3.1). Вверху таблицы помещают все переменные х1, х2…, хn и коэффициенты cj, с которыми соответствующие переменные входят в целевую функцию. Первый столбец ci состоит из коэффициента целевой функции при переменных, вошедших в базис. Затем следует столбец базисных переменных и свободных членов уравнений. Элементы остальных столбцов таблицы представляют собой коэффициенты при переменных, с которыми последние входят в систему уравнений. Таким образом, каждой строке таблицы соответствует уравнение системы, решенное относительно базисной переменной. В таблице показан и вариант плана, который соответствует целевой функции при данном базисе.

Нижняя строка таблицы называется индексной. Каждый ее элемент (оценка) ∆j определяют

∆j = zj – cj,

где cj – коэффициенты при соответствующих переменных в целевой функции; zj – сумма произведений коэффициентов целевой функции при базисных переменных на соответствующие переменные – элементы j–го столбца таблицы.

Таблица 3.1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]