Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка исо 2012.doc
Скачиваний:
23
Добавлен:
10.11.2019
Размер:
4.49 Mб
Скачать

Задачи для самостоятельного решения

Решить задачу линейного программирования с помощью симплекс-таблиц или М-методом:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

Глава 5. Двойственная задача линейного программирования

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

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

Прямая задача линейного программирования в стандартной форме записывается следующим образом:

Чтобы сформулировать условия двойственной задачи, проведем симметричное структурное преобразование условий прямой задачи в соответствии со следующими правилами:

  1. В одной задаче ищется максимум целевой функции, в другой – минимум.

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

  3. В каждой задаче система ограничений задается в виде неравенств,  причем в задаче, в которой ищется максимум целевой функции, все неравенства вида «≤», а в задаче, в которой находится минимум целевой функции, все неравенства вида «≥».

  4. Коэффициенты при переменных системах ограничений записываются матрицами транспонированными относительно друг друга.

  1. Число неравенств в системе ограничений одной задачи совпадает с числом переменных в другой задаче.

  2. Свободной переменной прямой задачи соответствует ограничение в виде равенства двойственной задачи и, наоборот, ограничению в виде равенства прямой задачи соответствует свободная переменная двойственной задачи.

  3. Условия неотрицательности переменных сохраняются в обеих задачах.

Пример №1

Дана математическая модель прямой задачи линейного программирования

Составить двойственную задачу.

Решение:

1. Приводим все неравенства системы ограничений исходной задачи к одному смыслу:

2. Составляем матрицу коэффициентов при неизвестных системы неравенств и целевой функции:

и транспонируем матрицу

3. Формулируем двойственную задачу. Коэффициенты при переменных в целевой функции одной задачи являются свободными членами системы ограничений другой задачи, и наоборот:

Число переменных исходной задачи является числом неравенств двойственной, и число неравенств в системе ограничений прямой задачи совпадает с числом переменных в двойственной задаче:

Условия неотрицательности переменных сохраняются в обеих задачах:

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

Пример №2

Дана математическая модель двойственной задачи линейного программирования

Составить прямую задачу.

Решение:

1. Все знаки неравенств системы ограничений двойственной задачи удовлетворяют требованиям стандартного вида, т.е. преобразовывать систему не надо:

2. Составляем матрицу коэффициентов при неизвестных системы неравенств и целевой функции:

транспонируем матрицу

3. Формулируем прямую задачу. Коэффициенты при переменных в целевой функции одной задачи являются свободными членами системы ограничений другой задачи, и наоборот:

Число переменных исходной задачи является числом неравенств двойственной, и число неравенств в системе ограничений прямой задачи совпадает с числом переменных в двойственной задаче:

Если изменить знак в свободном члене второго неравенства система ограничений может выглядеть следующим образом:

Условия неотрицательности переменных сохраняются в обеих задачах:

Таким образом, получаем прямую задачу:

Пример №3

Дана математическая модель прямой задачи линейного программирования

Составить двойственную задачу.

Решение:

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

2. Составляем матрицу коэффициентов при неизвестных системы неравенств и целевой функции:

и транспонируем матрицу

3. Формулируем двойственную задачу. Коэффициенты при переменных в целевой функции одной задачи являются свободными членами системы ограничений другой задачи, и наоборот:

Число переменных исходной задачи является числом неравенств двойственной, и число неравенств в системе ограничений прямой задачи совпадает с числом переменных в двойственной задаче:

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

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

Пример №4

Дана математическая модель двойственной задачи линейного программирования

где .

Составить прямую задачу.

Решение:

1. Все знаки неравенств системы ограничений двойственной задачи удовлетворяют требованиям стандартного вида, т.е. преобразовывать систему не надо:

2. Составляем матрицу коэффициентов при неизвестных системы неравенств и целевой функции:

и транспонируем матрицу

3. Формулируем прямую задачу. Коэффициенты при переменных в целевой функции одной задачи являются свободными членами системы ограничений другой задачи, и наоборот:

Число переменных исходной задачи является числом неравенств двойственной, и число неравенств в системе ограничений прямой задачи совпадает с числом переменных в двойственной задаче. Учитывая условия ограничений двойственной задачи на переменную y1, получаем следующую систему ограничений прямой задачи:

Если изменить знак в свободном члене второго неравенства система ограничений может выглядеть следующим образом:

Условия ограничений переменных сохраняются в обеих задачах:

Таким образом, получаем прямую задачу:

Из последних двух примеров следует правило: свободной переменной прямой задачи соответствует ограничение в виде равенства двойственной задачи и, наоборот, ограничению в виде равенства прямой задачи соответствует свободная переменная двойственной задачи.

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

Для любой пары допустимых решений прямой и двойственной задач неравенство F<Z можно интерпретировать следующим образом:

Доход < Общая стоимость ресурсов

Это соотношение показывает, что до тех пор, пока суммарный доход от всех видов деятельности строго меньше суммарной стоимости всех используемых ресурсов, решение как прямой, так и двойственной задачи не может быть оптимальным. Оптимум (максимальный доход) может быть достигнут только тогда, когда все потребляемые ресурсы использованы полностью, т.е. оптимум при F=Z.

Связь между решениями исходной и двойственной задач

Каждая из пары двойственных задач может быть решена самостоятельно. Однако при определении оптимального плана прямой задачи находится их решение двойственно.

Если X* = (x1*, x2*,..., xn*) - оптимальный план прямой задачи,

а Y* = (y1*, y2*,..., ym*) — система оптимальных оценок ресурсов, то

max F(X) = min Z(Y).

Таким образом, если найти оптимальный план прямой задачи, то можно получить оптимальный план двойственной задачи.

Установим соответствие (таблица 1) между переменными прямой и двойственной задач в симплексной таблице.

Таблица 1. Соответствие переменных прямой и двойственной задач

Переменные прямой задачи (заголовок симплексной таблицы)

Переменные двойственной задачи (их значения расположены в целевой строке оптимальной симплексной таблицы)

Пример №5

Рассмотрим пример №1 из четвертой главы, и составим двойственную ей задачу.

Прямая задача в стандартном виде:

Двойственная задача:

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

Переменные

Базис

x1

x2

x3

x4

x5

Свободные члены b

x3

0

0

1

-5

2

4

x2

0

1

0

2

-1

2

x1

1

0

0

-1

1

5

F

0

0

0

1

1

19

Установим соответствие переменных исходной и двойственной задачи:

Значения yi берем из целевой строки симплексной таблицы:

y1=0;

y2=1;

y3=1.

Подставляем эти значения в целевую функцию двойственной задачи, получаем:

, что совпадает с ранее полученным результатом F(X)=19.

Z(Y)= F(X) = 19.

Двойственный симплексный метод

Двойственный симплексный метод основан на теории двойственности и используется для решения задач линейного программирования, свободные члены которых могут принимать любые значения, а система ограничений задана неравенствами «≤», «≥» или равенством «=».

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

Алгоритм двойственного симплексного метода включает следующие этапы:

1. Принцип решения основан на поиске макисмума функции, поэтому систему неравенств необходимо привести к стандартному виду максимизации. Затем от системы неравенств смысла «≤» переходят к системе уравнений, вводя неотрицательные дополнительные переменные, которые являются базисными переменными. Первый опорный план заносят в двойственную симплексную таблицу, такую же, как и симплексная таблица.

2. Проверка плана на оптимальность.

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

3. Выбор ведущих строки и столбца. Среди отрицательных значений базисных переменных выбираются наибольшие по абсолютной величине. Строка, соответствующая этому значению, является ведущей. Двойственную симплексную таблицу дополняют строкой «оценочное отношение», в которую заносят взятые по абсолютной величине результаты деления коэффициентов целевой строки на отрицательные коэффициенты ведущей строки. Минимальные значения оценочной строки определяют ведущий столбец и переменную, вводимую в базис. На пересечении ведущих строки и столбца находится разрешающий элемент.

4. Расчет нового опорного плана.

Расчет производится также как и в симплексной таблице по формуле Жордана-Гаусса.

Пример №6

Дана математическая модель двойственной задачи линейного программирования:

Получить оптимальное решение двойственным симплексным методом

Решение:

Приводим задачу к требуемому виду. Все неравенства в системе ограничений привести к знаку «≤».

Вводим дополнительные переменные:

Заполняем двойственную симплекс-таблицу:

Переменные

Базис

y1

y2

y3

y4

y5

Свободные члены b

y4

-1

-1

-3

1

0

-3

y5

-3

-1

-1

0

1

-2

Z

-15

-7

-12

0

0

0

Проверка плана на оптимальность. В столбце свободных членов есть отрицательные значения, следовательно план не оптимален.

Выбираем ведущую строку (заметим, что в симплекс-методе первым выбирался столбец). Среди отрицательных значений базисных переменных выбираются наибольшие по абсолютной величине, что соответствует y4. Первая строка – ведущая.

Выбираем ведущий столбец.

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

Переменные

Базис

y1

y2

y3

y4

y5

Свободные члены b

y4

-1

-1

-3

1

0

-3

y5

-3

-1

-1

0

1

-2

Z

-15

-7

-12

0

0

0

Оценочное отношение

=15

=7

=4

Как видно в оценочном отношении для y4 и y5 значения не рассчитаны, т.к.:

Во первых, для y4 значение целевой функции 0 , кроме того в ведущей строке положительный элемент.

Во вторых, для y5 значения целевой функции и ведущей строки = 0. Выбираем минимальный из полученных результатов. Это третий столбик соответствующей переменной y3. Переменная y4 исключается из базиса, а переменная y3 вводится в базис. Производим пересчет таблицы.

Переменные

Базис

y1

y2

y3

y4

y5

Свободные члены b

y3

1/3

1/3

1

- 1/3

0

1

y5

-2 2/3

- 2/3

0

- 1/3

1

-1

Z

-11

-3

0

-4

0

12

Оценочное отношение

4 1/8

4 1/2

12

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

Переменные

Базис

y1

y2

y3

y4

y5

Свободные члены b

y3

0

1/4

1

- 3/8

1/8

7/8

y1

1

1/4

0

1/8

- 3/8

3/8

Z

0

- 1/4

0

-2 5/8

-4 1/8

16 1/8

План оптимальный т.к. в столбце свободных членов нет отрицательных значений.