Автор: Пользователь скрыл имя, 20 Января 2012 в 22:34, контрольная работа
Компьютерный эксперимент. Анализ результатов моделирования. Двойственный симплекс-метод. Содержательные и формальные модели. Содержательная классификация моделей. Прямая и двойственная задачи. Связь между решениями прямой и двойственной задачами. Этапы моделирования. Постановка задачи. Разработка модели. Жесткие и мягкие модели. Универсальность моделей. Прямая и обратная задачи математического моделирования.
Исследование опорного плана на оптимальность, а также дальнейший вычислительный процесс удобнее вести, если условия задачи и первоначальные данные, полученные после определения исходного опорного плана, записать так, как показано в табл. 1.
В столбце Сb этой таблицы записывают коэффициенты при неизвестных целевой функции, имеющие те же индексы, что и векторы данного базиса.
В столбце Р0 записывают положительные компоненты исходного опорного плана, в нем же, в результате вычислений получают положительные компоненты оптимального плана. Столбцы векторов Pj представляют собой коэффициенты разложения этих векторов по векторам данного базиса.
В табл. 1. первые m строк определяются исходными данными задачи, а показатели (m+1)-й строки вычисляют. В этой строке, в столбце вектора Р0 записывают значение целевой функции, которое она принимает при данном опорном плане, а в столбце вектора Pj — значение .
Значение , находится как скалярное произведение вектора Pj (j=1,m) на вектор Сb =(с1; с2; ...; сm):
Значение , равно скалярному произведению вектора Р0 на вектор Сb:
После заполнения табл. 1 исходный опорный план проверяют на оптимальность. Для этого просматривают элементы (m + 1) -й строки таблицы. В результате может иметь место один из следующих трех случаев:
1) для j = m + 1, т + 2,…n (при j=1,m; ). Поэтому в данном случае числа для всех j от 1 до n;
В первом случае на основании признака оптимальности исходный опорный план является оптимальным. Во втором случае целевая функция не ограничена сверху на множестве планов, а в третьем случае можно перейти от исходного плана к новому опорному плану, при котором значение целевой функции увеличится. Этот переход от одного опорного плана к другому осуществляется исключением из исходного базиса какого-нибудь из векторов и введением и него нового вектора. В качестве вектора, вводимого в базис, можно взять любой из векторов Pj , имеющий индекс j, для которого . Пусть, например, и решено ввести в базис вектор Рk .
Для определения вектора, подлежащего исключению из базиса, находят min ( ) для всех > 0. Пусть этот минимум достигается при i=r. Тогда из базиса исключают вектор Рr, а число называют разрешающим элементом.
Столбец и строку, на пересечении которых находится разрешающий элемент, называют направляющими.
После выделения направляющей строки и направляющего столбца находят новый опорный план и коэффициенты разложения векторов Pj через векторы нового базиса, соответствующего новому опорному плану. Это легко реализовать, если воспользоваться методом Жордана - Гаусса. При этом можно показать, что положительные компоненты нового опорного плана вычисляются по формулам:
таблица 1.
i | Базис | Cb | P0 | C1 | C2 | ... | Cr | … | Cm | Cm+1 | … | Ck | … | Cn |
P1 | P2 | … | Pr | … | Pm | Pm+l | … | Pk | … | Pn | ||||
1
2 … r … m |
P1
P2 … Pr … Pm |
C1
C2 … Cr … Cm |
b1
b2 … br … bm |
1
0 … 0 … 0 |
0
1 … 0 … 0 |
...
… … … … … |
0
0 … 1 … … |
…
… … … … … |
0
0 … 0 … 1 |
a1m+1
a2m+1 … arm+1 … amm+1 |
…
… … … … … |
a1k
a2k … ark … amk |
…
… … … … … |
a1n
a2n … ar … amn |
m + 1 | Fo | 0 | 0 | … | 0 | … | 0 | Dm+1 | … | Dk | … | Dn |
таблица 2.
i | Базис | Cb | P0 | C1 | C2 | ... | Cr | … | Cm | Cm+1 | … | Ck | … | Cn |
P1 | P2 | … | Pr | … | Pm | Pm+l | … | Pk | … | Pn | ||||
1
2 … r … m |
P1
P2 … Pr … Pm |
C1
C2 … Cr … Cm |
b1
b2 … br … bm |
1
0 … 0 … 0 |
0
1 … 0 … 0 |
...
… … … … … |
0
0 … 1 … … |
…
… … … … … |
0
0 … 0 … 1 |
a1m+1
a2m+1 … arm+1 … amm+1 |
…
… … … … … |
a1k
a2k … ark … amk |
…
… … … … … |
a1n
a2n … ar … amn |
m + 1 | Fo | 0 | 0 | … | -cr | … | 0 | -Cm+1 | … | 0 | … | -Cn |
а коэффициенты разложении векторов Pj через векторы нового базиса, соответствующего новому опорному плану,— по формулам
После вычисления и , согласно формулам (6) и (7) их значения заносят в табл. 2. Элементы (m+1)-й строки этой таблицы могут быть вычислены либо по формулам
либо на основании их определения.
Наличие двух способов нахождения элементов (т+1)-й строки позволяет осуществлять контроль правильности проводимых вычислений.
Из формулы (8) следует, что при переходе от одного опорного плана к другому наиболее целесообразно ввести в базис вектор Pj, имеющий индекс j, при котором максимальным по абсолютной величине является число ( ) ( <0, >0). Однако с целью упрощения вычислительного процесса в дальнейшем будем вектор, вводимый в базис, определять, исходя из максимальной абсолютной величины отрицательных чисел . Если же таких чисел несколько, то в базис будем вводить вектор, имеющий такой же индекс, как и максимальное из чисел сj, определяемых данными числами ( <0).
Итак,
переход от одного опорного плана
к другому сводится к переходу
от одной симплекс-таблицы к
1. В столбцах векторов, входящих в базис, на пересечении строк и столбцов одноименных векторов проставляются единицы, а все остальные элементы данных столбцов полагают равными нулю.
2. Элементы векторов Р0 и Pj в строке новой симплекс-таблицы, в которой записан вектор, вводимый в базис, получают из элементов этой же строки исходной таблицы делением их на величину разрешающего элемента. В столбце Сb в строке вводимого вектора проставляют величину сk , где k - индекс вводимого вектора.
3. Остальные элементы столбцов вектора Р0 и Pj новой симплекс-таблицы вычисляют по правилу треугольника. Для вычисления какого-нибудь из этих элементов находят три числа:
1) число, стоящее
в исходной симплекс-таблице
Эти три числа образуют своеобразный треугольник, две вершины которого соответствуют числам, находящимся в исходной симплекс-таблице, а третья — числу, находящемуся в новой симплекс-таблице. Для определения искомого элемента новой симплекс-таблицы из первого числа вычитают произведение второго и третьего.
После заполнения новой симплекс-таблицы просматривают элементы (m + 1)-й строки. Если все , то новый опорный план является оптимальным. Если же среди указанных чисел имеются отрицательные, то, используя описанную выше последовательность действий, находят новый опорный план. Этот процесс продолжают до тех пор, пока либо не получают оптимальный план задачи, либо не устанавливают ее неразрешимость.
При нахождении решения задачи линейного программирования мы предполагали, что эта задача имеет опорные планы и каждый такой план является невырожденным. Если же задача имеет вырожденные опорные планы, то на одной из итераций одна пли несколько переменных опорного плана могут оказаться равными нулю. Таким образом, при переходе от одного опорного плана к другому значение функции может остаться прежним. Более того, возможен случай, когда функция сохраняет свое значение в течение нескольких итераций, а также возможен возврат к первоначальному базису. В последнем случае обычно говорят, что произошло зацикливание. Однако при решении практических задач этот случай встречается очень редко, поэтому мы на нем останавливаться не будем.
Итак, нахождение оптимального плана симплексным методом включает следующие этапы: