Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решение задач ЛП.doc
Скачиваний:
11
Добавлен:
15.04.2015
Размер:
301.06 Кб
Скачать

13

Решение задач линейного программирования средствами программы Excel

Для решения задач линейного программирования в программе Excel имеется надстройка Поиск решения, обращение к которой производится из меню Сервис.

Если команда Поиск решения отсутствует в меню Сервис, то требуется установить надстройку «Поиск решения». Для этого в меню Сервис выбирается команда Надстройки, которая открывает диалоговое окно, показанное на рис. 1.

Рис. 1

Далее в этом окне устанавливается флажок той надстройки, которую необходимо загрузить, и нажимается кнопка OK.

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

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

Предприятие изготавливает и реализует три вида продукции – P1, Р2 и Р3. Для производства продукции используются три вида ресурсов – комплектующие изделия, сырье и материалы. Запасы ресурсов и их расход на изготовление единицы продукции каждого вида приведены в таблице 1.

Прибыль от реализации единицы продукции каждого вида составляет 240, 210 и 180 денежных единиц для P1, Р2 и Р3 соответственно.

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

Таблица 1

Виды ресурсов

Расходы ресурсов на 1 ед. продукции

Запасы

Ресурсов, ед.

P1

P2

P3

Комплектующие изделия

4

6

8

3120

Сырье

2

8

10

3000

Материалы

6

9

4

3150

Математическая модель задачи

Обозначим переменными x1, x2 и x3 искомые объемы производства продукции видов P1, Р2 и Р2, а через F – прибыль предприятия. Тогда математическая постановка представленной задачи принимает следующий вид.

Определить значения переменных x1, x2 и x3, для которых достигается максимум целевой функции

F = 240 x1 + 210 х2 + 180 x3

при ограничениях:

Целевая функция описывает суммарную прибыль от реализации произведенной продукции всех трех видов. Ограничения (1), (2) и (3) учитывают расход и запасы комплектующих изделий, сырья и материалов соответственно. Поскольку объемы производства продукции не могут быть отрицательными, добавляются условия

x1 ≥ 0; x2 ≥ 0; x3 ≥ 0.

Порядок решения задачи

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

Шаг 1. Исходные данные задачи записываются на рабочем листе электронной таблицы. Один из вариантов использования ячеек показан на рис. 2.

Рис. 2

Замечание. Если известно исходное допустимое базисное решение, то можно несколько ускорить процесс поиска оптимального решения. Для этого начальные значения некоторых или всех переменных могут быть заданы вручную. В данном примере для их хранения используются ячейки $B$2, $C$2 и $D$2. Если допустимое базисное решение не задано, то программа Excel автоматически определяет начальные значения переменных задачи.

Шаг 2. В ячейку E3 вводится формула

=СУММПРОИЗВ(В3:D3; $B$2:$D$2)

для вычисления текущего значения целевой функции, которая находит сумму попарных произведений ячеек (В3:D3) с коэффициентами при переменных в выражении целевой функции на ячейки ($B$2:$D$2) с текущими значениями переменных.

Шаг 3. Чтобы задать ограничения решаемой задачи, в ячейки E5, E6 и E7 копируется формула из ячейки E3. После этого в указанных ячейках должны быть получены формулы, представленные в таблице 2.

Таблица 2

Ячейка

Содержание (формула)

E5

=СУММПРОИЗВ(В5:D5; $B$2:$D$2)

E6

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

E7

=СУММПРОИЗВ(В7:D7; $B$2:$D$2)

Шаг 4. После создания таблицы с исходными данными курсор устанавливается в ячейку E3, содержащую формулу для вычисления целевой функции. Далее в меню Сервис выбирается команда Поиск решения, которая открывает диалоговое окно, приведенное на рис. 3.

Рис. 3

В поле Установить целевую ячейку окна «Поиск решения», показанного на рис. 3, должен появиться адрес ячейки с формулой целевой функции (в данном примере это ячейка $E$3).

Затем в этом окне (рис. 3) заполняются следующие поля этого окна:

- в поле Равной переключатель вида экстремума целевой функции устанавливается в положение максимальное значение (или минимальное значение при соответствующей постановке задачи);

- в поле Изменяя ячейки указывается диапазон ячеек со значениями переменных задачи, выделив его на рабочем листе электронной таблицы (в примере это ячейки $B$2:$D$2);

- в поле Ограничения задаются ограничения исходной задачи. Для этого курсор устанавливается в поле ввода ограничений и нажимается кнопку Добавить. В результате выводится диалоговое окно «Добавление ограничения», показанное на рис. 4.

Рис. 4

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

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

Затем выбирается вид отношения, связывающего левую и правую части ограничения, что показано на рис. 5.

Рис. 5

После нажатия кнопки Добавить в окне «Добавление ограничения» (или кнопки ОК для ввода последнего ограничения) данное ограничение попадает в список ограничений решаемой задачи. С помощью кнопок Удалить и Изменить можно удалять выделенные в списке ограничения или вносить в них исправления.

Шаг 5. После заполнения всех полей окна «Поиск решения» нажимается кнопка Параметры (рис. 3), которая открывает диалоговое окно «Параметры поиска решения», показанное на рис. 6.

Рис. 6

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

Здесь (рис. 6) также можно определить параметры процесса решения: предельное время поиска решения, максимальное количество итераций, точность и т.п. Флажок Показывать результаты итераций позволяет по шагам следить за поиском решения. Флажок Автоматическое масштабирование включается в том случае, когда разброс значений переменных очень велик.

Шаг 6. Задав необходимые параметры в окне «Параметры поиска решения», нажимается кнопка Выполнить для поиска решения задачи (рис. 3) в окне «Поиск решения». Если решение найдено, то на экран выводится окно с соответствующим сообщением (рис. 7).

Рис. 7

Полученные результаты отображаются на рабочем листе электронной таблицы, как это показано на рис. 8. В частности, значения переменных - в ячейках $B$2:$D$2, значение целевой функции – в ячейке E3.

Рис. 8

Таким образом, получено оптимальное решение исходной задачи в виде вектора , где , и , для которого значение целевой функции F максимально и определяется как F* = 129825.

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

Отчет по результатам для рассмотренной задачи показан на рис. 9.

Рис. 9

В данном отчете представлено оптимальное решение задачи линейного программирования и его расположение в области допустимых решений. В графах Результат выводятся оптимальные значения целевой функции F* и переменных задачи , а также их значения для исходного базисного решения, с которого начинался поиск оптимального решения (графа Исходное значение). Состояние ограничений (графа Статус) характеризует расположение точки в области допустимых решений. Графа Разница показывает разности между значениями левых и правых частей ограничений (невязки). Для связанного ограничения невязка равна нулю, что свидетельствует о расположение точки на границе области допустимых решений, которая задается этим ограничением. Если ограничение являются не связанным, то оно не влияет на оптимальное решение.

Замечание. В экономической интерпретации связанные ограничения соответствуют дефицитным ресурсам. Для не связанных ограничений графа Разница показывает оставшиеся объемы неиспользованных не дефицитных ресурсов. В рассмотренной задаче ограничения (1) и (3) соответствуют комплектующим изделиям и материалам, которые являются дефицитными ресурсами. Ограничение (2) является не связанным, т.е. не влияет на оптимальный план производства продукции по критерию максимальной прибыли. Это означает, что второй ресурс (сырье) не использован в объеме 292,5 ед.

В отчет по устойчивости (рис. 10) приведены границы устойчивости переменных задачи (графы Допустимое увеличение и Допустимое уменьшение коэффициентов целевой функции), а также границы устойчивости теневых цен (т.е. переменных двойственной задачи), в пределах которых оптимальное решение не изменяется. Большие значения пределов (1Е+30) означают фактическое отсутствие соответствующих границ, т.е. переменная может изменяться до бесконечности.

Рис. 10

В графе Нормированная стоимость элемент во второй строке (-150) показывает, на сколько уменьшится значение функции, если в решении переменную x2 увеличить на единицу. С другой стороны, при допустимом увеличении коэффициента функции при неизвестной x2 на 150 единиц значение этой переменной не изменится, т.е. неизвестная x2 будет равна нулю, а если выйти за пределы допустимого увеличения (коэффициент при x2 увеличить более чем на 150), то неизвестная x2 в решении будет больше нуля.

В отчете по пределам (рис. 11) показаны нижние и верхние пределы возможного изменения переменных (в пределах области допустимых решений) и соответствующие значения целевой функции (графа Целевой результат) при этих изменениях. В частности, если x1 = 0, а x2 и x3 остаются без изменений, то F = 2400 + 2100 + 180191,25 = 34425; при x3 = 0 и неизменных x1 и x2 получим F = 240397,5 + 2100 + 1800 = 95400.

Рис. 11