Двойственность в линейном программировании

Автор: Пользователь скрыл имя, 19 Ноября 2012 в 19:23, курсовая работа

Описание работы

Целью курсового проекта является изучить литературу по выбранной теме и научиться применять на практике симплекс – метод для решения прямой и двойственной задачи линейного программирования, а также решить двойственную задачу линейного программирования с помощью программы MS Excel.
Курсовой проект состоит из введения, двух глав и заключения.
В первой главе рассматриваются основные понятия и предложения теории двойственности ЗЛП, виды математических моделей двойственных задач и их экономическая интерпретация.
Во второй главе рассматривается решение двойственной задачи с помощью программы MS Excel.

Работа содержит 1 файл

План.doc

— 310.50 Кб (Скачать)

Таким образом, отыскание решения задачи (54) – (56) двойственным симплекс-методом включает следующие этапы:

1. Находят псевдоплан  задачи.

2. Проверяют этот псевдоплан  на оптимальность. Если псевдоплан  оптимален, то найдено решение  задачи. В противном случае либо  устанавливают неразрешимость задачи, либо переходят к новому псевдоплану.

3. Выбирают разрешающую  строку с помощью определения  наибольшего по абсолютной величине отрицательного числа столбца вектора Р0 и разрешающий столбец с помощью нахождения наименьшего по абсолютной величине отношения элементов (m+1)–и строки к соответствующим отрицательным элементам разрешающей строки.

4. Находят новый псевдоплан и повторяют все действия начиная с этапа 2.

Таблица  1

Пример:

Найти максимальное значение функции  при условиях

Решение: Запишем исходную задачу линейного программирования в форме основной задачи: найти максимум функции при условиях

Умножим второе и третье уравнения системы ограничений  последней задачи на –1 и перейдем к следующей задаче: найти максимум функции

(57)

при условиях

(58)

(59)

Составим для последней  задачи двойственную задачу. Такой  является задача, в результате решения которой требуется найти минимальное значение функции

(60)

при условиях

(61)

(62)

Выбрав в качестве базиса векторы  и , составим симплексную таблицу (табл. 16) для исходной задачи (57) – (59).

Таблица 2

i

Базис

Сб

Р0

1

1

2

0

0

       

P1

P2

P3

p4

p5

1

2

3

4

p3

P4

p5

2

0

0

8

–4

–6

16

1

–1

–1

1

1

1

–2

1

1

0

0

0

0

1

0

0

0

0

1

0


Из этой таблицы видим, что планом двойственной задачи (57) – (59) является . При этом плане Так как в столбце вектора Р0 таблица 16 имеются два отрицательных числа (–4 и –6), а в 4–й строке отрицательных чисел нет, то в соответствии с алгоритмом двойственного симплекс–метода переходим к новой симплекс–таблице. (В данном случае это можно сделать, так как в строках векторов Р4 и Р5 имеются отрицательные числа. Если бы они отсутствовали, то задача была бы неразрешима. Вектор, исключаемый из базиса, определяется наибольшим по абсолютной величине отрицательным числом, стоящим в столбце вектора Р0. В данном случае это число –6. Следовательно, из базиса исключаем вектор Р5. Чтобы определить, какой вектор необходимо ввести в базис, находим где Имеем

Значит, в базис вводим вектор P2. Переходим к новой симплекс–таблице (табл. 3).

Таблица 3

i

Базис

Сб

Р0

1

1

2

0

0

       

P1

P2

P3

p4

p5

1

2

3

4

p3

P4

p2

2

0

1

5

–7

3

13

1/2

–3/2

1/2

1/2

0

0

1

0

1

0

0

0

0

1

0

0

1/2

1/2

–1/2

1/2


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

Так как в столбце  вектора Р0 таблицы 17 стоит отрицательное число –7, то рассмотрим элементы 2–й строки. Среди этих чисел есть одно отрицательное –3/2. Если бы такое число отсутствовало, то исходная задача была бы неразрешима. В данном случае переходим к новой симплекс-таблице (табл. 4).

Таблица 4

i

Базис

Сб

Р0

1

1

2

0

0

       

P1

P2

P3

p4

p5

1

2

3

4

p3

P1

p2

2

1

1

8/3

14/3

2/3

32/3

0

1

0

0

0

0

1

0

1

0

0

0

1/3

–2/3

1/3

1/3

2/3

–1/3

–1/3

2/3


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

 

 

2. Решение двойственных  задач линейного программирования с помощью Microsoft Excel

 

2.1 Постановка задачи

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

Введем следующие обозначения:

i=1,…, m - номера (индексы) используемых ресурсов;

 - запас i-го ресурса, т.е. допустимый расход i-го ресурса в плановом периоде; другое название - ограничение по ресурсу i;

j=1,…, n - номера (индексы) продуктов;

 - рыночная цена j-го продукта;

- расход i-го ресурса на производство единицы j-го продукта;

 - плановый объем производства j-го продукта, величина неизвестная, ее нужно найти в процессе решения задачи. Исходные данные задачи запишем в виде матрицы.

Рис. 2

Каждая строка матрицы  соответствует одному ресурсу, каждый столбец – одному продукту. Справа от каждой строки записана величина ограничения по ресурсу (b1,…, bi,…, bm); внизу каждого столбца - цена продуктов (с1,…, сj,…, сm).

В каждой клеточке матрицы  записаны так называемые технологические  коэффициенты aij, показывающие расход i-го ресурса на производство единицы j-го продукта.

Запишем конкретный числовой пример

Рис. 3

 

2.2 Построение математической  модели и её реализация

 

Теперь приступим к  созданию математической модели, т.е. к  математической записи задачи.

Целевая функция:

Ограничения:

x1 ³ 0;

x2 ³ 0;

x3 ³ 0.

Решим поставленную выше задачу с применением EXCEL.

Содержание ячеек:

B1:D1 – имена продуктов (технологических способов);

A2:A4 – имена ресурсов;

B2:D4 – технологические коэффициенты (расход ресурсов при единичных интенсивностях технологических способов);

B6:D6 – цены продуктов;

B8:D8 – переменные;

F2:F4 – запас ресурсов;

G2:G4 – плановые расходы ресурсов, получаются в результате решения;

G6 – значение целевой функции, получается в результате решения.

Формулы для вычислений:

G2=СУММПРОИЗВ (B$8:D$8; B2:D2);

G3:G4 – копируются из G2;

G6=СУММПРОИЗВ (B8:D8; B6:D6).

Запишем формулы в  ячейки G2:G4. Установить курсор на G2. На панели инструментов выбрать значок формул (f). Появятся два окна. В окне «категория» выбрать «математические», затем в окне «функция» выбрать «СУММПРОИЗВ». Появится окно «СУММПРОИЗВ». В нем нужно указать, где располагаются операнды. Первый операнд – строка B$8:D$8, второй операнд – стока B2:D2. В ячейки G3:G4 формулу скопировать из G2. Аналогичным образом записать формулу целевой функции в ячейку G6. Теперь нужно указать остальные условия решения задачи. Установить курсор на ячейку целевой функции G6. В главном меню выбрать «сервис», а потом «поиск решения». Появится окно, в котором нужно указать:

Целевая ячейка – G6;

Включить кнопку «максимальное  значение»;

Указать изменяемые ячейки (расположение переменных) – B8:D8;

Записать ограничения. Их можно записать прямо в этом же окне, но лучше выбрать «добавить» и в появившемся окне «добавить» последовательно записать ограничения:

B8:D8 0 – неотрицательности переменных;

G2:G4 F2:F4 – плановый расход ресурсов меньше их запаса.

Теперь электронная  модель сформирована и можно решать задачу. Для этого нужно вернуться  в окно «поиск решения» и нажать «выполнить». Если электронная модель сформирована правильно, то будет получено сообщение, что задача решена. Результат решения находится на листе EXCEL и в трех отчетах: Результаты, Устойчивость, Пределы.

 

Рис. 4.1.4

 

Основные результаты видны в таблице (рис. 4.1.4.). По сравнению с условиями задачи, показанными на рис. 4.1.3., появились данные:

1. Значение целевой  функции в ячейке G6 = 15880;

2. Значения переменных  в ячейках B8:D8: х1 = 86, х2 = 0, х3 = 268; это значит, что 1-й продукт должен производиться в объеме 86 единиц, 2-й – 0, а 3-й – 286.

3. Плановый расход  ресурсов в ячейках G2:G4: расход 1-го ресурса = 271,6, расход 2-го ресурса = 310, расход 3-го ресурса = 2200.

Как видно 1-й ресурс недоиспользован, а 2-й и 3-й израсходованы полностью.

Кроме результатов в электронной таблице EXCEL готовит три отчета: Результаты, Устойчивость, Пределы. Отчет по результатам изображен на рис 4.1.5, где изображены три таблицы.

Отчет по результатам

Целевая ячейка (максимум)

Ячейка   Имя   Исходно  Результат

$G$6    Цены  ЦФ  15880

 

Изменяемые Ячейки

Ячейка Имя Исходно  Результат

$B$8 Перем Пр1 0 86

$C$8 Перем Пр2 0 0

$D$8 Перем Пр3 0 268


 

Ограничения

Ячейка Имя Значение Формула Статус Разница

$G$2 Рес 1 Расход 271,6 $G$2 $F$2 не связан 228,4

$G$3 Рес 2 Расход 310 $G$3 $F$3 связанное 0

$G$4 Рес 3 Расход 2200 $G$4 $F$4 связанное 0

$B$8 Перем Пр1 86 $B$8 0 не связан 86

$C$8 Перем Пр2 0 $C$8 0 связанное 0

$D$8 Перем Пр3 268 $D$8 0 не связан 268


Рис. 4.1.5

 

1-я таблица – целевая  ячейка – дает значение целевой  функции, которая уже имеется в таблице EXCEL, значит, эти данные избыточны.

2-я таблица – изменяемые  ячейки – дает значение переменных, которые уже имеются в таблице EXCEL, эти данные тоже избыточны.

3-я таблица – ограничения  – дает оценку ограничений.  Колонка «значение» дает значения планового расхода ресурсов и переменных – эти данные имеются в таблице EXCEL и здесь избыточны. Столбец «статус» значением «связанное» отмечает ограничения (не больше или не меньше), которые в результате решения превратились в строгие равенства, прочие ограничения имеют статус «несвязанные». Столбец «разница» показывает, на какую величину ограничения отклонились от строгого равенства. Так, например, ограничение 1-го ресурса 500, плановое значение 271,6, разница = 500 – 271,6 = 228,4.

Отчет по устойчивости изображен  на рис. 4.1.6. Он состоит из двух таблиц.

Отчет по устойчивости

Изменяемые ячейки

Ячейка Имя Результат  Норир.

Значение градиент

$B$8 Перем Пр1 86 0

$C$8 Перем Пр2 0 -22,8

$D$8 Перем Пр3 268 0


 

Ограничения

Ячейка Имя Результат. Лагранжа

значение Множитель

$G$2 Рес 1 Расход 271,6 0

$G$3 Рес 2 Расход 310 20

$G$4 Рес 3 Расход 2200 4,4


Рис. 4.1.6

 

Таблица «изменяемые  ячейки» показывает значения переменных, которые уже имеются в таблице EXCEL. Столбец «нормируемый градиент» показывает, как влияет увеличение переменных на единицу на величину целевой функции. Таблица «ограничения» содержит важную информацию в столбце «Лагранжа множители». Эти величины в литературе имеют различные названия: объективно обусловленные оценки (О.О.О.) по Л. Канторовичу, двойственные оценки по Д. Данцигу, оптимальные цены, теневые цены и другие. В дальнейшем будем называть их наиболее распространенным именем – двойственные оценки и обозначать – vi, где i – номер ограничения. В данном примере v1 = 0, v2 = 20,0, v3 = 4,4. Отчет по пределам показан на рис. 4.1.7.

 

Отчет по пределам

Ячейка Целевое Значение

имя

$G$6 Цены ЦФ 15880


 

Ячейка Изменяемое Значение имя

Нижний Целевой

предел результат

Нижний Целевой

предел результат

$B$8 Перем Пр1 86

0 10720

86 15880

$C$8 Перем Пр2 0

0 15880

0 15880

$D$8 Перем Пр3 268

0 5160

268 15880


Рис. 4.1.7.

 

В этом отчете уже в  третий раз дается значение целевой  функции 15880, в пятый раз значение переменных (х1 = 86, х2 = 0, х3 = 268). Нижний предел для всех переменных = 0, так, установлены ограничения по переменным. Верхний предел равен соответственно 86, 0 и 268, так устанавливают ограничения по ресурсам. Целевой результат показывает значение целевой функции при соответствующих значениях переменных. Если х1 = 0, то ЦФ = 10720 и т.д.

Запишем математическую модель рассмотренной задачи в общем  виде:

 

 

Пусть:

В-бюджет, т.е. количество денег, которое можно израсходовать на приобретение ресурсов для производства продукции, а si – рыночная цена i-го ресурса. Тогда единственное ограничение по ресурсам будет выглядеть следующим образом:

Информация о работе Двойственность в линейном программировании