Автор работы: Пользователь скрыл имя, 24 Ноября 2013 в 22:00, курсовая работа
Информатизация общества - это глобальный социальный процесс, особенность которого состоит в том, что доминирующим видом деятельности в сфере общественного производства является сбор, накопление, продуцирование, обработка, хранение, передача и использование информации, осуществляемые на основе современных средств микропроцессорной и вычислительной техники, а также на базе разнообразных средств информационного обмена.
Одним из приоритетных направлений процесса информатизации современного общества является информатизация образования - внедрение средств новых информационных технологий в систему образования. Это сделает возможным:
- совершенствование механизмов у правления системой образования на основе использования автоматизированных банков данных научно-педагогической информации, информационно-методических материалов, а также коммуникационных сетей;
Введение ……………..……………………………………………………………….3-5
1. Двойственность задачи в линейном программировании……………….6-17
1.1. Прямые и двойственные задачи в линейном программировании
1.2. Основные теоремы двойственности
1.2.1 Несимметричные двойственные задачи
1.2.2 Симметричные двойственные задачи
1.3 Виды математических моделей двойственных задач
1.4 Двойственный симплексный метод
2. Разработка программы ……………….17-27
2.1 Постановка задачи
2.2 Построение математической модели
2.3 Описание решения двойственной задачи
Заключение ..………………………………………………………………………28-29
Список используемой литературы …………
Будем считать, что D является матрицей, составленной из компонент векторов конечного базиса A1, A2., Am Таблица состоит из коэффициентов разложения векторов A1, A2,…, An исходной системы по векторам базиса. В этой таблице каждому вектору A j соответствует вектор Xj.
Используя соотношения, получаем:
A=D, D-1A
A0 =DX*; D-1A0 =X
min Z= C*X*,
C* – C > 0,
где С=(C1, C2,…, Cm), С=(C1, C2,…, Cm, Cm +1,…, Cn), a=(CX1–C1; СХ2 – С2,…, CXn–Cn)=(Z1–С; Z2-C2;…, Zn–Cn) – вектор, компоненты которого неположительны, так как они совпадают с Zj–Cj>0, соответствующими оптимальному плану.
Оптимальный план исходной задачи имеет вид X=D-1А0, поэтому оптимальный план двойственной задачи ищем в виде
Y = C*D-1
Покажем, что Y* действительно план двойственной задачи. Для этого ограничения запишем в виде неравенства YA-С>0, в левую часть которого подставим Y*.
YА–С=С*D-1А–С=С-С>0, откуда находим Y*A>С
Так как Y* удовлетворяет ограничениям (1.2), то это и есть план двойственной задачи. При этом плане значение линейной функции двойственной задачи f(Y)=Y*A0.Учитывая соотношения, имеем
f (Y) = Y*A0=C * D-1A0= C*X = minZ(X)
Таким образом, значение линейной функции двойственной задачи от Y численно равно минимальному значению линейной функции исходной задачи
Докажем теперь, что Y* является оптимальным планом. Умножим первое ограничение на любой план Y двойственной задачи, а второе ограничение – на любой план X исходной задачи: YAX=YA0=f(Y), YAX>СХ=Z(X), отсюда следует, что для любых планов Х и Y выполняется неравенство
f(Y)>Z(X)
Этим же соотношением связаны и экстремальные значения maxf(Y)>minZ(Х). Из последнего неравенства заключаем, что максимальное значение линейной функции достигается только в случае, если maxf(Y)=minZ(X), но это значение f(Y) достигает при плане Y, следовательно, план Y – оптимальный план двойственной задачи.
Аналогично можно доказать, что если двойственная задача имеет решение, то исходная также обладает решением и имеет место соотношение maxf(Y)=minZ(X)
Для доказательства второй части теоремы допустим, что линейная функция исходной задачи не ограничена снизу. Тогда из последнего ограничения следует, что f(Y) – Y. Это выражение лишено смысла, следовательно, двойственная задача не имеет решений.
Аналогично предположим, что линейная функция двойственной задачи не ограничена сверху. Тогда из последнего ограничения получаем, что Z(X)+Y. Это выражение также лишено смысла, поэтому исходная задача не имеет решений.
Доказанная теорема позволяет при решении одной из двойственных задач находить оптимальный план другой. Здесь матрица-строка С = (0; 1; 0; –1; – 3, 0), матрица-столбец
1 1 2 0 -1 1 0
A 0 = 2 A = 0 -4 1 2 -1 0
3 0 3 0 0 1 1
1 0 0
2 -4 3
A «’ = 0 1 0
-1 2 0
1 -1 0
0 0 1
Двойственная задача. Найти максимальное значение линейной функции f=y1+2y2+5y3 при ограничениях
y1> 0
2y1 – 4y2 + 3y3 > 1,
y2 > 0,
(-y1) + 2y2 >(-1),
y1 – y2 + y3 = -3, y3 > 0
Оптимальный план исходной задачи X = (0; 1/3; 0; 11/3; 4; 0), при котором получим Zmin= -46/3. Используя эту итерацию, найдем оптимальный план двойственной задачи. Согласно теореме двойственности оптимальный план двойственной задачи находится из соотношения Y= C*D-1, где матрица D-1 - матрица, обратная матрице, составленной из компонент векторов, входящих в последний базис, при котором получен оптимальный план исходной задачи. В последний базис входят векторы A5, A4, A2; значит,
1 -1 2
D = (A 5, A 4, A 2) = -1 2 -4
1 0 3
Обратная матрица D -1 образована из коэффициентов, стоящих в столбцах A1, A3, A6 четвертой итерации:
2 1 0
D -1 = -1/3 1/3 2/3
-2/3 -1/3 1/3
Из этой же итерации следует С = (–3; –1; 1). Таким образом
2 1 0
Y=С*D-1 =(-3; – 1; 1) -1/3 1/3 2/3
-2/3 1/3 1/3
Y=(-19/3; – 11/3; – 1/3),
т.е. yi =С*Хi, где Хi – коэффициенты разложения последней итерации, стоящие в столбцах векторов первоначального единичного базиса.
Итак, i-ю двойственную переменную можно получить из значения оценки (m+1) – й строки, стоящей против соответствующего вектора, входившего в первоначальный единичный базис, если к ней прибавить соответствующее значение коэффициента линейной функции:
у1 =–19/3+0=–19/3; y2 =-11/3+0=-11/3; у3 =-1/3+0=-1/3
При этом плане maxf=-46/3
Разновидностью двойственных задач линейного, программирования являются двойственные симметричные задачи, в которых система ограничений как исходной, так и двойственной задач задается неравенствами, причем на двойственные переменные налагается условие неотрицательности.
Исходная задача. Найти матрицу-столбец Х=(x1, x2,…, xn), которая удовлетворяет системе ограничений
(1.12). АХ>А0, Х>0 и минимизирует линейную функцию Z=СХ
Систему неравенств с помощью дополнительных переменных можно преобразовать в систему уравнений, поэтому всякую пару симметричных двойственных задач можно преобразовать в пару несимметричных, для которых теорема двойственности уже доказана.
Используя симметричность, можно выбрать задачу, более удобную для решения. Объем задачи, решаемой с помощью ЭВМ, ограничен числом включаемых строк, поэтому задача, довольно громоздкая в исходной постановке, может быть упрощена в двойственной формулировке. При вычислениях без помощи машин использование двойственности упрощает вычисления.
Очевидно, для того чтобы записать двойственную задачу, сначала необходимо систему ограничений исходной задачи привести к виду. Для этого второе неравенство следует умножить на -1.
1.3 Виды математических моделей двойственных задач
Основываясь на рассмотренных несимметричных и симметричных двойственных задач отметим, что пары двойственных задач математических моделей могут быть представлены следующим образом:
(1) Исходная задача Двойственная задача
Zmin=CX; fmax =Y>A0;
AX=A0; YA=С
X>0 Y>0
(2) Исходная задача Двойственная задача
Zmax =CX; fmin =YA0;
AX=A0; YA=С
X>0 Y>0
(3) Исходная задача Двойственная задача
Zmin=CX; fmax=YA0;
AX=A0; YA=С
X>0
(4) Исходная задача Двойственная задача
Zmax=CX; fmin=YA0;
AX=A0; YA=С
X>0
Поэтому до того, как сформулировать двойственную задачу для данной исходной, необходимо систему ограничений исходной задачи преобразовать должным образом.
Для получения решения исходной задачи можно перейти к двойственной. А используя оценки ее оптимального плана, можно определить оптимальное решение исходной задачи.
Если рассмотреть первую
симплексную таблицу с
bi являются оценками плана двойственной задачи. Сj являются оценками плана исходной задачи.
Найдем решение двойственной задачи по симплексной таблице. В симплексной таблице прописана исходная задача. Также определим оптимальный план двойственной задачи. Также найдем и оптимальный план исходной задачи.
Такой метод принято называть двойственным симплексным методом.
Допустим нужно определить исходную задачу линейного программирования, которая поставлена в общем виде: минимизировать функцию Z=СХ при АХ=A0, Х>0. Значит в двойственной задаче следует максимизировать функцию f=YA0 при YA>С. Пусть определен следующий базис D=(A1, А2,…, Аi,…, Аm), причем в нем хотя бы одна из компонент вектора Х=D-1A0=(x1, x2,…, xi,…, xm) отрицательная. Для всех векторов Aj используется следующее соотношение Zj–Cj >0 (i=1,2,…, n).
Пользуясь теоремой двойственности, Y=СбазD-1 является планом двойственной задачи. Этот план не оптимальный. Потому что оценки оптимального плана двойственной задачи должны быть неотрицательными и выбранный базис X содержит отрицательную компоненту и не является планом исходной задачи, а с другой стороны.
Поэтому, следует исключить из базиса исходной задачи вектор Аi, который соответствует компоненте xi<0. Данный вектор относится к отрицательной оценке, его необходимо включить в базис двойственной задачи.
Просматриваем i-ю строку для выбора вектора, включаемого в базис исходной задачи. Т.е. если строка не имеет xij<0, тогда линейная функция двойственной задачи не ограничена на многограннике решений. Поэтому нет решений исходной задачи.
В противном случае для столбцов, имеющих отрицательные значения, определяем q0j=min(xi/xij)>0. Также находим вектор, который соответствует minq0j(Zj–Cj) при решении исходной задачи на максимум, а также maxq0j(Zj–Cj) при значении исходной задачи на минимум.
Найденный вектор включаем в базис исходной задачи. Направляющей строкой определяется вектор, который надо убрать из базиса исходной задачи.
Допустим, что q0j=min(xi/xij)=0, т.е. xi=0, тогда xij выбирается как разрешающий элемент, но лишь тогда, когда xij>0.
Данный подход к решению
задачи не приводит к росту количества
отрицательных компонент
Определяя оптимальный план двойственной задачи, находим и оптимальный план исходной задачи.
Используя при решении, алгоритм двойственного симплексного метода условие Zj–Cj>0 допускается не учитывать, пока не будут исключены все хi<0.
Обычным симплексным методом определяется оптимальный план. Этот метод обычно используется при условии, что все хi<0. Чтобы перейти к плану исходной, задачи за одну итерацию надо определить q0j=max(xi/xij)>0.
Задачи линейного
2. Разработка программы
2.1 Постановка задачи
Необходимо спланировать работу швейной мастерской на некоторый период. Установлен перечень выпускаемой продукции, известна рыночная цена каждого продукта. Для производства продукции используются ресурсы: материал, нитки, пуговицы, труд закройщиков, швей-мотористок и т.д. Установлен полный перечень этих ресурсов и общее количество каждого ресурса, которое может быть израсходовано в плановом периоде. Известен расход каждого ресурса на единицу каждого продукта. Необходимо определить, сколько каждой продукции нужно производить, чтобы суммарная рыночная цена всей продукции (выпуск, выручка) была наибольшей.
Введем следующие обозначения:
i=1,…, m - номера (индексы) используемых ресурсов;
- запас i-го ресурса, т.е. допустимый расход i-го ресурса в плановом периоде; другое название - ограничение по ресурсу i;
j=1,…, n - номера (индексы) продуктов;
- рыночная цена j-го продукта;
- расход i-го ресурса на производство единицы j-го продукта;
- плановый объем производства j-го продукта, величина неизвестная, ее нужно найти в процессе решения задачи. Исходные данные задачи запишем в виде матрицы.
Рис.
Каждая строка матрицы соответствует одному ресурсу, каждый столбец – одному продукту. Справа от каждой строки записана величина ограничения по ресурсу (b1,…, bi,…, bm); внизу каждого столбца - цена продуктов (с1,…, сj,…, сm).
В каждой клеточке матрицы записаны так называемые технологические коэффициенты aij, показывающие расход i-го ресурса на производство единицы j-го продукта.
Информация о работе Двойственность задачи в линейном программировании