Оптимизационное моделирование в экономике
ОПТИМИЗАЦИОННОЕ МОДЕЛИРОВАНИЕ В ЭКОНОМИКЕ
РЕШЕНИЕ ОПТИМИЗАЦИОННЫХ ЗАДАЧ МЕТОДОМ ПОИСКА РЕШЕНИЯ
Цель работы:научиться использовать табличный процессор Excel для решения задач оптимизации.
Содержание работы:
1. Создание математической модели задачи ЛП.
2. Создание формы для ввода условий задачи, ввод в неё исходных данных и зависимостей из математической модели.
3. Ввод целевой ячейки, изменяемых ячеек и ограничений в окно Поиск решения из меню Сервис.
4. Задание параметров поиска и решение задачи.
Порядок выполнения работы:
1. Изучить методические указания.
2. Выполнить задания.
3. Оформить отчет и ответить на контрольные вопросы.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К классу задач линейного программирования (ЛП) относятся такие задачи однокритериальной оптимизации, в которых переменные являются непрерывными и неотрицательными, целевая функция является линейной функцией своих аргументов, а ограничения могут быть представлены в форме линейных неравенств и равенств.
Задача линейного программирования в общем случае формулируется следующим образом:
Определить максимум (минимум) целевой функции F max(min) при заданной системе ограничений (2) и граничных условий (3):
Fmax(min) =A1*X1+A2*X2+...+An*Xn (1)
{B11*X1+B12*X2+...+B1n*Xn<=C1
{B21*X1+B22*X2+...+B2n*Xn<=C2 (2)
{Bn1*X1+Bn2*X2+...+Bnn*Xn<=Cn
Xi>=0, i=1, ..., n (3)
Надстройка Поиск решения является инструментом оптимизации. С помощью этой надстройки можно найти оптимальное или заданное значение некоторой ячейки путем подбора значений нескольких ячеек, удовлетворив нескольким граничным условиям.
Целевая ячейка — это ячейка, для которой нужно найти максимальное, минимальное или заданное значения.
Изменяемые ячейки — это ячейки, от которых зависит значение целевой ячейки. Целевая ячейка должна содержать формулу, прямо или косвенно зависящую от изменяемых ячеек. Поиск решения подбирает значения изменяемых ячеек до тех пор, пока не будет найдено решение.
Ограничение — это условие, накладываемое на некоторую ячейку. Ограничения могут быть наложены на любые ячейки таблицы, включая целевую ячейку и изменяемые ячейки.
Чтобы запустить процедуру поиска решения, надо:
1. В меню Сервис выбрать команду Поиск решения. Откроется диалоговое окно Поиск решения (Рис. 6.1).
2. В поле Установить целевую ячейку ввести ссылку на ячейку, в которой нужно получить максимальное, минимальное или заданное значения.
3. В поле Изменяя ячейки ввести ссылки на изменяемые ячейки. (Если щелкнуть по кнопке Предположить, то Поиск решения самостоятельно определит изменяемые ячейки).
4. Для задания ограничений щелкнуть по кнопке Добавить.
Рисунок 6.1 Диалоговое окно Поиск решения
5. В открывшемся диалоговом окне следует: (Рис. 6.2)
• в поле Ссылка на ячейку ввести ссылку на ячейку, содержащую формулу, которая определяет ограничение; формула должна прямо или косвенно зависеть от одной или нескольких изменяемых ячеек;
• во втором поле выбрать оператор ограничения (>,<,= и т.д.);
• в поле Ограничение ввести значение ограничения.
Рисунок 6.2 Диалоговое окно Добавление ограничения
6. Для задания следующего ограничения щелкнуть по кнопке Добавить и повторить операции пункта 5.
7. Когда все ограничения будут заданы, щелкнуть по кнопке ОК, чтобы вернуться в диалоговое окно Поиск решения.
8. Изменять и удалять ограничения можно с помощью кнопок Изменить и Удалить.
9. С помощью кнопки Параметры можно задать: максимальное время решения; предельное число итераций; относительную погрешность; допустимое отклонение; сходимость; метод поиска.
Если известно, что решаемая задача линейная (т.е. зависимости между переменными линейны), то следует включить режим Линейная модель: процесс решения значительно ускорится.
Для возврата в диалоговое окно Поиск решения щелкнуть по кнопке ОК.
10. Для инициализации процедуры поиска решения щелкнуть по кнопке Выполнить. Полученные результаты будут выведены на рабочий лист.
После завершения процедуры решения в диалоговом окне Результаты поиска решения можно выполнить один из следующих вариантов:
• сохранить найденное решение или восстановить исходные значения на рабочем листе;
• сохранить параметры поиска решения в виде модели;
• сохранить решение в виде сценария;
• просмотреть любой из встроенных отчетов.
Текущие установочные параметры для поиска решения можно сохранить в виде модели. Для этого надо в диалоговом окне Параметры поиска решения щелкнуть по кнопке Сохранить модель и указать на рабочем листе область для сохранения модели (можно указать только верхнюю ячейку области).
При сохранении модели запоминаются целевая ячейка, изменяемые ячейки, ограничения и параметры поиска решения.
Чтобы впоследствии загрузить модель, надо щелкнуть по кнопке Загрузить модель в диалоговом окне Параметры поиска решения. (Диалоговое окно Параметры поиска решения открывается при щелчке по кнопке Параметры в диалоговом окне команды Сервис >• Поиск решения).
Найденные решения (значения изменяемыхячеек) можно сохранить в качестве сценария. Для этого нужно:
1. В диалоговом окне Результаты поиска решения выбрать Сохранить сценарий.
2. В поле Название сценария ввести имя сценария. Просмотреть сценарии можно с помощью команды Сервис > Сценарии.
С помощью программы Поиск решения можно создать три типа отчетов по результатам, полученным при успешном завершении процедуры решения.
Каждый отчет создается на отдельном листе текущей рабочей книги.
Для создания отчета надо в диалоговом окне Результаты поиска решения выбрать нужный тип отчета в поле Тип отчета. Можно выбрать сразу несколько типов (при выделении нескольких строк используется клавиша <Ctrl>).
Типы отчетов:
• Результаты — отчет содержит целевую ячейку, список изменяемых ячеек, их исходные и конечные значения, ограничения и сведения о них.
• Устойчивость — отчет содержит сведения о степени зависимости модели от изменений величин, входящих в формулы, применяемые в задаче (формулы модели и формулы ограничений).
• Пределы — выводится целевая ячейка и ее значение, а также список изменяемых ячеек, их значений, нижних и верхних пределов и целевых результатов.
Рассмотрим применение процессора Excel для решения ЗЛП на примерах.
Задача 1. Планирование производства
Модель линейного программирования дает возможность определить наиболее выгодную производственную программу выпуска нескольких видов продукции при заданных ограничениях на ресурсы.
МП выпускает товары Х1,Х2,Х3,Х4, получая от реализации каждого прибыль в 60,70,120,130 руб. соответственно. Затраты на производство приведены в таблице.
Затраты | X1 | X2 | X3 | X4 | Всего |
Трудовые | |||||
Сырьевые | |||||
Финансы |
Определить:
1)Максимум прибыли в зависимости от оптимального распределения затрат.
2)Минимум ресурсов, необходимых для получения максимальной прибыли.
Решение задачи средствами Excel состоит из 4 этапов:
1. Создание математической модели задачи ЛП.
2. Создание формы для ввода условий задачи, ввод в неё исходных данных и зависимостей из математической модели.
3. Ввод данных из формы в окно Excel Поиск решения из меню Сервис.
4. Задание параметров поиска и решение задачи.
Этап. Создание формы
а). Составление формы в виде:
A | B | C | D | E | F | G | H | |
Переменная | X1 | X2 | X3 | X4 | Формула | Знак | Св.член | |
Значение | ||||||||
Коэф. ЦФ | =СУММПРОИЗВ (В$2:Е$2;В3:Е3) | max | ||||||
Трудовые | =СУММПРОИЗВ (В$2:Е$2;В4:Е4) | <= | ||||||
Сырьевые | =СУММПРОИЗВ (В$2:Е$2;В5:Е5) | <= | ||||||
Финансы | =СУММПРОИЗВ (В$2:Е$2;В6:Е6) | <= |
б). Запись в ячейки В3:Е3 коэффициентов целевой функции F (1), в В4:Е6 коэффициентов из системы ограничений (2) и в ячейки Н4:Н6 - свободных членов из системы (2).
в). Ввод формул с помощью fx - Мастера функций.
Для ввода формулы в целевую ячейку (целевой функции): щелкнуть левой клавишей мыши по ячейке F3, затем по значку Мастера функций fx на панели инструментов, в появившемся окне "Мастер функций, Шаг 1" выбрать категорию "Математические", далее выбрать функцию СУММПРОИЗВ, нажать клавишу ОК, в окне "Мастер функций Шаг 2" в поле Массив 1 ввести с клавиатуры В2:Е2 (ячейки, в которых будут варьироваться Х1..Х4), в поле Массив 2 ввести В3:Е3 (коэффициенты целевой функции ЦФ).
Примечание. Можно вводить В2:Е2 не с клавиатуры, а поставить курсор в окно Массив 1, а затем протащить курсор при нажатой левой клавише мыши по ячейкам В2:Е2, имена ячеек сами запишутся в окно. Аналогично поступить с полем Массив 2.
Нажать клавишу ОК, в ячейку F3 запишется формула 60Х1+70Х2+120Х3+ 130Х4
в виде СУММПРОИЗВ(В2:Е2;В3:Е3).
Чтобы не вводить формулы в другие ячейки, необходимо изменить тип адресации для ячеек В2:Е2 с относительной на абсолютную $B$2:$E$2, установив курсор перед нужным адресом B2и нажав функциональную клавишу F4, затем повторить эти действия для адреса E2. Формула примет следующий вид:
СУММПРОИЗВ($В$2:$Е$2;В3:Е3)
После внесенных изменений необходимо скопировать формулу в ячейки F4:F6 c помощью маркера заполнения. Для этого необходимо выделить ячейку F3, содержащую нужную формулу, установить указатель мыши на черный квадратик в правом нижнем углу ячейки (он примет форму черного крестика) и протащить с помощью левой кнопки мыши на весь требуемый диапазон.
В результате копирования мы увидим следующие формулы:
- в ячейке F4 - СУММПРОИЗВ($В$2:$Е$2;В4:Е4),
- в ячейке F5 - СУММПРОИЗВ($В$2:$Е$2;В5:Е5),
- в ячейке F6 - СУММПРОИЗВ($В$2:$Е$2;В6:Е6).
Этап. Параметры поиска.
В окне "Поиск решения" нажать клавишу "Параметры", выбрать по умолчанию Максимальное время - 100 с.(может быть до 2^15=32767 c.> 4 час.), число итераций- 100 (для большинства задач это количество просчётов подходит с большим запасом), установить флажок в строке "Линейная модель", нажать ОК, в появившемся окне Поиск Решения нажать Выполнить (Рис. 6.3).
Рисунок 6.3 Диалоговое окно Параметры поиска решения
Результаты поиска решения с таблицей результатов:
A | B | C | D | E | F | G | H | |
Переменная | X1 | X2 | X3 | X4 | Формула | Знак | Св.член | |
Значение | ||||||||
Коэф. ЦФ | max | |||||||
Трудовые | <= | |||||||
Сырьевые | <= | |||||||
Финансы | <= |
Таким образом оптимальный план Х(Х1,Х2,Х3,Х4)=(10,0,6,0)
при минимальном использовании ресурсов
-Трудовые - 16 (У1)
-Сырьевые - 84 (У2)
-Финансы - 100 (У3)
даёт максимум прибыли F в 1320 руб.
Вывод: Максимальная прибыль F в 1320 руб. получается при выпуске только товаров Х1 и Х3 в количестве 10 и 6 штук соответственно, товары Х3 и Х4 выпускать не нужно (это приведёт к снижению прибыли). Трудовые (У1) и финансовые (У3) ресурсы используются полностью, по сырьевым ресурсам (У2) есть запас в 110-84=26 ед.
Кроме того, это означает, что изменение трудовых (У1) и финансовых (У3) ресурсов приведёт к изменению прибыли F, а изменение сырьевых ресурсов (У2) - нет.
Разности между плановыми ресурсами и использованными являются двойственными переменными У1, У2 и У3 сопряжённой задачи линейного программирования. В данном случае У1=У3=0, а У2=26 ед. Таким образом, ресурс У2 можно уменьшить на 26 ед., тогда план по сырью тоже будет оптимальным.
Этап. Создание формы
Для решения поставленной задачи выполним следующие подготовительные действия:
1. Внесем необходимые надписи в ячейки A1:I1, A2:A7, B4, I4, J4.
2. В ячейки ВЗ:НЗвведем значения коэффициентов целевой функции: с1 = 2060, c2 = 2430, c3 = 3600, c4 = 890, c5 = 140, c6 = 230, c7 = 650.
3. В ячейку I2 введем формулу: =СУММПРОИЗВ(B2:Н2;B3:H3), которая представляет целевую функцию (4).
4. В ячейки В5:Н7введем значения коэффициентов ограничений, взятых из таблицы.
5. В ячейки J5:J7введем значения правых частей ограничений, соответствующих минимальной суточной потребности в питательных веществах: в белках b1=100, жирах b2= 70 и углеводах b3 = 400.
6. В ячейку I5введем формулу: =СУММПРОИЗВ($B$2:$H$2;В5:Н5), которая представляет левую часть первого ограничения (5).
7. Скопируем формулу, введенную в ячейку I5,в ячейки I6 и I7.
Внешний вид рабочего листа MS Office Excel с исходными данными для решения задачи об оптимальном рационе питания имеет следующий вид (pиc. 6.4).
Рис. 6.4. Исходные данные для решения задачи об оптимальной диете
Следует напомнить, что для отображения формул в ячейках рабочего листа необходимо выполнить операцию главного меню: Сервис| Параметры и в открывшемся диалоговом окне на вкладке Видотметить флажком строку выбора Формулыв группе Параметры окна.
Этап. Параметры поиска.
В дополнительном окне параметров поиска решения следует выбрать отметки Линейная модельи Неотрицательные значения(рис. 6.6, б).
После задания ограничений и целевой функции можно приступить к поиску численного решения, для чего следует нажать кнопку Выполнить.После выполнения расчетов программой MS Excel будет получено количественное решение, которое имеет вид, представленный на рис. 6.7.
Рис. 6.7.Результат количественного решения задачи об оптимальной диете
Результатом решения задачи об оптимальной диете являются найденные оптимальные значения переменных: x1 = 0, x2 = 0,211, x3 = 0,109, x4= 1,887, x5 = 0, х6 = 0, x7 = 0, которым соответствует значение целевой функции: fопт= 2587,140. При выполнении расчетов для ячеек В2:I2был выбран числовой формат с 3 знаками после запятой.
Анализ найденного решения показывает, что для удовлетворения суточной потребности в питательных веществах (белки, жиры, углеводы) следует использовать 211 г мяса баранины, 109 г сыра и 1887 г бананов, совсем отказавшись от хлеба, огурцов, помидоров и винограда. При этом общая калорийность найденной оптимальной диеты будетприближенно равна 2590 ккал, что вполне соответствует малоактивному образу жизни без серьезных физических нагрузок. Напомним, что согласно медицинским данным, энергетические затраты работников интеллектуального труда (юристы, бухгалтера, врачи, педагоги) лежат в пределах 3000 ккал.
Контрольные вопросы
1. Сформулировать основную задачу линейного программирования. Записать математическую модель ЗЛП.
2. Для чего предназначена надстройка Поиск решения?
3. Что понимают под целевой ячейкой, изменяемыми ячейками?
4. Основные этапы решения ЗЛП с помощью процессора Excel.
5. Как сохранить установочные параметры для поиска решения в виде модели?
6. Какие существуют виды отчетов и как их создать? Продемонстрировать на примере.
ОПТИМИЗАЦИОННОЕ МОДЕЛИРОВАНИЕ В ЭКОНОМИКЕ