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

4.4. Двойственная задача проблемы Reddy Mikks

Для прямой задачи (2) производства красок компании Reddy Mikks двойственной является следующая задача линейного программирования

Так как оптимальным решением прямой задачи является , то оптимальным решением этой двойственной задачи является следующее: .

Оптимальное решение двойственной задачи показывает, что стоимость единицы первого ресурса (сырье A) составляет $750 за тонну, второго (сырье B) — $500 за тонну. Эти значения совпадают со значениями, полученными выше в 3.4 графическим способом, и справедливы, если значение первого ресурса увеличивается не более чем на 12 тонн, а второго — не более чем на 0,67 тонн. Таким образом, увеличение запаса первого ресурса с 24 до 36 тонн приведет к увеличению дохода на величину . Аналогичное увеличение запаса второго ресурса с 6 до 6,67 тонн приводит к увеличению дохода на величину . Еще раз подчеркнем, что подобные расчеты справедливы только тогда, когда увеличение запасов используемых ресурсов не выходит за полученные выше интервалы значений.

Для третьего и четвертого ресурсов двойственные оценки равны нулю, что указывает на то, что эти ресурсы недефицитны.

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

Тема 5 Постановка и решение задач линейного программирования с помощью стандартного программного обеспечения

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

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

Для того чтобы решить задачу линейного программирования с помощью Excel необходимо представить на рабочем листе все элементы математической постановки:

  1. Исходные данные (константы, параметры) задачи;

  2. Переменные;

  3. Ограничения;

  4. Целевую функцию.

На Рис. 4 приведен пример построения таблицы Excel для задачи о красках. Рассмотрим более подробно указанные элементы на нашем примере.

Рис. 4 Пример построения таблицы Excel для задачи о красках

1. Исходные данные (параметры). Исходные данные включают в себя

а) коэффициенты левых частей ограничений;

б) правые части ограничений;

в) коэффициенты целевой функции.

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

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

В рассматриваемом примере две переменных — им будут соответствовать ячейки B16 и C16, они выделены красной рамкой — в этих ячейках мы получим оптимальный производственный план после решения задачи. В начале решения в эти ячейки вводятся произвольные значения в качестве начального плана.

3. Ограничения. Каждому ограничению задачи, кроме констант и правой части, соответствует ячейка, в которой вычислено значение левой части ограничения — объем затраченных ресурсов.

Так, в соответствии с первым ограничением, для вычисления объема ресурсов 1 — запаса сырья А, затраченного при данном производственном плане (напомним, что значения, введенные в ячейки В16 и С16, и представляют собой текущий план), в ячейку D6 введена следующая формула

=СУММПРОИЗВ(В6:С6;$B$16:$С$16)

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

Функцию СУМПРОИЗВ можно вставить с помощью Мастера Функций, она находится в категории «Математические». Аргументам функции являются массивы (диапазоны ячеек) одинаковой длины. Значение функции равно сумме произведений соответствующих элементов массивов.

Вместо встроенной функции СУММПРОИЗ можно использовать обычную формулу, непосредственно соответствующую логике вычисления левой части ограничения:

=В6*В16+С6*С16

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

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

=СУММПРОИЗВ(B11:C11;B16:C16)

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

=В11*В16+С11*С16

При вводе исходных данных рекомендуется помещать значки (текстовые значения) , , =,  между левыми и правыми частями ограничений, что не влияет на решение задачи, но в дальнейшем упростит прочтение таблицы.

Нахождение оптимального плана.

Обратите внимание, что начальный план, предложенный на Рис. 4: производить 2 тонны краски Е и 3 тонны краски I, не является допустимым, так как второе и четвертое ограничения не выполнены. Допустимость начального плана не влияет на процесс нахождения оптимального решения.

Для решения задачи воспользуемся процедурой «Поиск решения»/«Solver», расположенной в меню Сервис/Service. Процедура «Поиск Решения» представляет собой надстройку Excel и может быть активизирована через пункт «Надстройки» меню «Сервис».

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

Рассмотрим подробно элементы диалогового окна «Поиск решения» (см. Рис. 5).

Рис. 5 Окно «Поиск решения»

В поле «Установить целевую ячейку»/ «Set Target Cell» указывается адрес ячейки с целевой функцией. В нашем случае это ячейка D11.

Тип оптимизационной задачи (максимизация, минимизация или поиск определенного значения) задается путем установки переключателя в группе «Равной»/ «Equal To». В нашей задаче установим переключатель в положение «Максимальному значению»/ «Max», т.к. мы ищем производственный план, обеспечивающий максимальный доход.

В поле «Изменяя ячейки»/«By Changing Cell» указываются адреса ячеек, за счет изменения которых мы хотим максимизировать целевую функцию, т.е. ячейки, отведенные под переменные задачи. В нашем случае введем в поле «Изменяя ячейки» адреса $B$16:$C$16.

Ограничения, налагаемые на переменные задачи, отображаются в поле «Ограничения»/«Subject To the Constraints». Процедура поиска решений допускает ограничения в виде равенств, неравенств, а также позволяет ввести требование целочисленности переменных. Ограничения добавляются по очереди. Для ввода ограничений нажмите кнопку «Добавить»/«Add» в диалоговом окне «Поиск решения» и в открывшемся диалоговом окне «Добавление ограничения» (Рис. 6) заполните поля.

Рис. 6 Окно «Добавление ограничения»

В поле «Ссылка на ячейку» введите адрес ячейки, в которой вычислена левая часть ограничения, в нашем случае это $D$6.

С помощью раскрывающегося списка указывается тип соотношения между левой и правой частями ограничения. В нашем примере это неравенство типа .

В поле «Ограничение» необходимо указать адрес ячейки, в которой находится правые части, в нашем примере это $F$6. Можно вводить сразу группы ограничений, выделяя соответствующие диапазоны ячеек мышью. Нажатие кнопки «ОК» завершает ввод ограничений.

В диалоговом окне, изображенном на Рис. 5, полностью заполнены все поля, в соответствии с нашем примером.

Кнопка «Параметры»/«Options» в диалоговом окне «Поиск решения», необходима для проверки параметров поиска оптимального решения.

В открывшемся диалоговом окне «Параметры поиска решения» (Рис. 7) можно изменять условия и варианты поиска решения исследуемой задачи, а также загружать и сохранять оптимизируемые модели.

Необходимо убедиться, что установлен флажок в пункте «Линейная модель». Пункт «Линейная модель» служит для поиска решения линейной задачи оптимизации или линейной аппроксимации нелинейной задачи. В случае нелинейной задачи этот флажок должен быть сброшен, в случае линейной задачи — установлен, т.к. в противном случае возможно получение неверного результата.

С помощью флажка «Неотрицательные значения» можно задать условие неотрицательности всех переменных.

Флажок «Показывать результаты итераций» служит для приостановки поиска решения и просмотра результатов отдельных итераций.

Рис. 7 Окно «Параметры поиска решения»

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

Поле «Максимальное время» служит для ограничения времени, отпускаемого на поиск решения задачи.

Поле «Предельное число итераций» служит для ограничения числа промежуточных вычислений.

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

Флажок «Автоматическое масштабирование» служит для включения автоматической нормализации входных и выходных значений, качественно различающихся по величине, например, при максимизации прибыли в процентах по отношению к вложениям, исчисляемым в рублях.

Группа «Оценка» служит для выбора метода экстраполяции.

Группа «Производные» служит для выбора метода численного дифференцирования.

Группа «Метод» служит для выбора алгоритма оптимизации.

Вернуться в окно «Поиск решения» можно нажатием кнопки ОК.

Нажатие кнопки «Выполнить»/«Solve» открывает окно «Результаты поиска решения», которое сообщает, что решение найдено (Рис. 8). Для того чтобы вывести отчет о результатах решения задачи выберите в диалоговом окне требуемый тип отчета: «Результаты», «Устойчивость», «Пределы». Можно выбрать одновременно все типы отчетов, выделив их при нажатой клавише Ctrl.

Рис. 8 Окно «Результаты поиска решения»