Технология решения задач линейного программирования с помощью Поиска решений в среде EXCEL.
Поиск решения - это надстройка EXCEL, которая позволяет решать оптимизационные задачи. Ecли, в меню Сервис отсутствует команда Поиск решения, значит, необходимо загрузить эту надстройку. Выберите команду СервисÞ
Надстройки и активизируйте надстройку Поиск решения. Если же этой надстройки нет в диалоговом окне Надстройки,
то вам необходимо обратиться к панели управления Windows, щелкнуть на пиктограмме Установка и удаление программ
и с помощью программы установки Excel (или Office) установить надстройку Поиск решения.
После выбора команд Сервис Þ
Поиск решения появится диалоговое окно Поиск решения.
В диалоговом окне Поиск решения есть три основных параметра:
• Установить целевую ячейку
• Изменяя ячейки
• Ограничения
Сначала нужно заполнить поле Установить целевую ячейку. Во всех задачах для средства Поиск решения оптимизируется результат в одной из ячеек рабочего листа. Целевая ячейка связана с другими ячейками этого рабочего листа с помощью формул. Средство Поиск решения использует формулы, которые дают результат в целевой ячейке, для проверки возможных решений. Можно выбрать поиск наименьшего или наибольшего значения для целевой ячейки или же установить конкретное значение.
Второй важный параметр средства Поиск решения — это параметр Изменяя ячейки. Изменяемые ячейки — это те ячейки, значения в которых будут изменяться для того, чтобы оптимизировать результат в целевой ячейке. Для поиска решения можно указать до 200 изменяемых ячеек. К изменяемым ячейкам предъявляется два основных требования. Они не должны содержать формул, и изменение их значений должно отражаться на изменении результата в целевой ячейке. Другими словами, целевая ячейка зависима от изменяемых ячеек.
Третий параметр, который нужно вводить, для Поиска решения – это ограничения.
Для решения задачи необходимо:
1) Указать адреса ячеек, в которые будет помещен результат решения (изменяемые ячейки).
2) Ввести исходные данные.
3) Ввести зависимость для целевой функции
4) Ввести зависимости для ограничений.
Запустить Поиск решений.
5) Назначение целевой функции (установить целевую ячейку).
6) Ввод ограничений.
7) Ввод параметров для решения ЗЛП.
Рассмотрим технологию решения используя условия Задачи 1 (Задача о костюмах).
Намечается выпуск двух видов костюмов - мужских и женских. На женский костюм требуется 1 м шерсти, 2 м лавсана и 1 человеко-день трудозатрат. На мужской костюм - 3,5 м шерсти, 0,5 м лавсана и 1 человеко-день трудозатрат. Всего имеется 350 м шерсти, 240 м лавсана и 150 человеко-дней трудозатрат. Tребуется определить, сколько костюмов каждого вида необходимо сшить, чтобы обеспечить максимальную прибыль, если прибыль от реализации женского костюма составляет 10 денежных единиц, а от мужского - 20 денежных единиц. При этом следует иметь в виду, что необходимо сшить не менее 60 мужских костюмов.
Сформулируем экономико-математическую модель задачи.
Введем следующие обозначения: х1 - число женских костюмов; x2 - число мужских костюмов.
Прибыль от реализации женских костюмов составляет 10х1, а от реализации мужских 20х2, т.е. необходимо максимизировать целевую функцию
f(x) = 10´
х1 + 20´ х2 -> max.
Ограничения задачи имеют вид:
х1 + х2 £ 150 - ограничение по труду
2 х1 + 0.5 х2 £ 240 - ограничение по лавсану
х1 + 3.5 х2 £ 350 - ограничение по шерсти
х2 ³ 60 - ограничение по костюмам
х1 ³ 0
Решение.
1. Указать адреса ячеек, в которые будет помещен результат решения (изменяемые ячейки).
Обозначьте через Х1, Х2 количество костюмов каждого типа. В нашей задаче оптимальные значения вектора Х =(Х1, Х2,) будут помещены в ячейках A2:B2, оптимальное значение целевой функции в ячейке C3.
2. Ввести исходные данные.
Введите исходные данные задачи, как показано на рис.1.
Рис. 1.
3. Ввести зависимость для целевой функции
•Курсор в ячейку «С3».
•Курсор на кнопку «Мастер функций», расположенную на панели инструментов.
•М1. На экране появляется диалоговое окно «Мастер функций шаг 1 из 2»
• Курсор в окно «Категория» на категорию «Математические».
• Курсор в окно «Функции» на «СУММПРОИЗВ» (рис.2)..
Рис 2.
На экране появляется диалоговое окно «СУММПРОИЗВ» (рис. 3)
Рис. 3.
• В строку «Массив 1»[1]
ввести А2:В2
• В строку «Массив 2» ввести А3:В3.
Массив 1 будет использоваться при вводе зависимостей для ограничений, поэтому на этот массив надо сделать абсолютную ссылку[2].
На экране: в ячейку С3
введена функция (рис. 4).
Рис. 4.
• Курсор в ячейку «С3».
• На панели инструментов кнопка «Копировать в буфер».
• Курсор в ячейку «С4».
• На панели инструментов кнопка «Вставить из буфера».
• Курсор в ячейку «С5».
• На панели инструментов кнопка «Вставить из буфера».
• Курсор в ячейку «С6».
• На панели инструментов кнопка «Вставить из буфера».
• Курсор в ячейку «С7».
• На панели инструментов кнопка «Вставить из буфера».
Рис.5.
Примечание. Содержимое ячеек С4 – С7 необходимо проверить. Они обязательно должны содержать информацию, как это показано для примера на рис.6 (в качестве примера представлено содержимое ячейки С5).
Рис. 6.
В строке «Меню» указатель мышки на имя «Сервис». В развернутом меню команда «Поиск решения». Появляется диалоговое окно «Поиск решения» (рис. 7).
Рис. 7.
• Курсор в строку «Установить целевую ячейку».
• Введите адрес ячейки «$С$3».
• Введите направление целевой функции в зависимости от условия вашей задачи: «Максимальному значению» («Минимальному значению»).
• Курсор в строку «Изменяя ячейки».
• Ввести адреса искомых переменных А$2:В$2. (Рис. 8.)
Рис. 8.
6. Ввести ограничения
• Указатель мышки на кнопку «Добавить. Появляется диалоговое окно «Добавление ограничения»
• В строке «Ссылка на ячейку» введите адрес $С$4.
• Ввести знак ограничения ?.
• В строке «Ограничение» введите адрес $D$4 (рис. 9)..
• Указатель мышки на кнопку «Добавить». На экране вновь диалоговое окно «Добавление ограничения».
• Введите остальные ограничения задачи, по выше описанному алгоритму
• После введения последнего ограничения кнопка «ОК».
На экране появится диалоговое окно «Поиск решения» с введенными условиями (рис.10).
.
Рис. 9.
Рис.10
7. Ввести параметры для решения ЗЛП
• В диалоговом окне указатель мышки на кнопку «Параметры». На экране появляется диалоговое окно «Параметры поиска решения» (рис. 11).
Рис.11
• Установите флажки в окнах «Линейная модель» (это обеспечит применение симплекс - метода) и «Неотрицательные значения».
• Указатель мышки на кнопку «ОК». На экране диалоговое окно «Поиск решения».
• Указатель мышки на кнопку «Выполнить».
Через непродолжительное время появится диалоговое окно «Результаты поиска решения» и
исходная таблица с заполненными ячейками А3:В3 для значений Хi и ячейка С3 с максимальным значением целевой функции (рис.12).
Рис.12
Если указать тип отчета «Устойчивость», то можно получить дополнительную информацию об оптимальном решении (Рис. 13).
Рис. 13.
В результате решения задачи получили ответ:
Х1 = 70 - необходимо сшить женских костюмов,
Х2 = 80 - необходимо сшить мужских костюмов,
F(x) = 2300 что бы получить максимальную прибыль.
Решим еще одну задачу.
Задача 4.
(Задача о коврах)
Фабрика имеет в своем распоряжении определенное количество ресурсов: рабочую силу, деньги, сырье, оборудование, производственные площади и т. п. Допустим, например, ресурсы трех видов рабочая сила, сырье и оборудование имеются в количестве соответственно 80(чел/дней), 480(кг), 130(станко/часов). Фабрика может выпускать ковры четырех видов. Информация о количестве единиц каждого ресурса необходимых для производства одного ковра каждого вида и доходах, получаемых предприятием от единицы каждого вида товаров, приведена в табл.1.
Таблица 1
Ресурсы |
Нормы расхода ресурсов на единицу изделия |
Наличие ресурсов |
|||
Ковер А |
Ковер В |
Ковер С |
Ковер D |
||
Труд |
7 |
2 |
2 |
6 |
80 |
Сырье |
5 |
8 |
4 |
3 |
480 |
Оборудование |
2 |
4 |
1 |
8 |
130 |
Цена (тыс.руб.) |
3 |
4 |
3 |
1 |
1. Сформулируем экономико - математическую модель задачи.
Обозначим через Х1, Х2, Х3, Х4
количество ковров каждого типа.
Целевая функция - это выражение, которое необходимо максимизировать f(x) = 3Х1 +4Х2 +3Х3
+Х4
Ограничения по ресурсам
7Х1 +2Х2 +2Х3 +6Х4 80
5Х1 +8Х2 +4Х3 +3Х4480
2Х1 +4Х2 +Х3 +8Х4130
Х1, Х2, Х3, Х40
Решение
1. Указать адреса ячеек, в которые будет помещен результат решения (изменяемые ячейки).
Обозначьте через Х1, Х2, Хз, Х4 количество ковров каждого типа. В нашей задаче оптимальные значения вектора Х =(Х1, Х2, Хз, Х4) будут помещены в ячейках
ВЗ:ЕЗ, оптимальное значение целевой функции в ячейке F4.
2. Ввести исходные данные.
)Введем исходные данные в созданную форму. В результате получим (Рисунок 14):
Рисунок 14. Данные введены.
3 Введем зависимость для целевой функции
• Курсор в F4.
• Курсор на кнопку Мастер функций.
На экране диалоговое окно Мастер функций шаг 1 из 2.
• Курсор в окно Категория на категорию Математические.
Рисунок 15. Вводится функция для вычисления целевой функции.
• Курсор в окно Функции на СУММПРОИЗВ.
• В массив 1 ввести[3]
В$3:E$3.
• В массив 2 ввести В4:E4.
• Готово. На экране: в F4 введена функция, как показано на Рисунке 15.
4. Введем зависимость для левых частей ограничений:
• Курсор в F4.
• Копировать в буфер.
• Курсор в F7.
• Вставить из буфера.
• Курсор в F8.
• Вставить из буфера.
• Курсор в F9.
• Вставить из буфера.
На этом ввод зависимостей закончен.
Запуск Поиска решения.
6) Назначение целевой функции (установить целевую ячейку).
¨ Курсор в поле Установить целевую ячейку.
¨ Ввести адрес $F$4.
¨ Ввести направление целевой функции: Максимальному значению.
Ввести адреса искомых переменных:
¨ Курсор в поле Изменяя ячейки.
¨ Ввести адреса В$3:E$3.
5. Ввод ограничений.
Курсор в поле Добавить.
Появится диалоговое окно Добавление ограничения (Рисунок 16.).
Рисунок 16. Ввод правых и левых частей ограничений.
· В окне Ссылка на ячейку ввести $F$7.
· Ввести знак ограничение £..
· Курсор в правое окно.
·Вести $H$7.
· Добавить. На экране опять диалоговое окно Добавление ограничения. Ввести остальные ограничения.
· После ввода последнего ограничения ввести ОК.
На экране появится диалоговое окно Поиск решения с введенными условиями (Рисунок 17).
Рисунок 17. Введены все условия для решения задачи.
8) Ввод параметров для решения ЗЛП (Рисунок 18).
§ Открыть окно Параметры поиска решения.
§ Установить флажок Линейная модель, что обеспечивает применение симплекс-метода.
§ Установить флажок Неотрицательные значения.
§ ОК (На экране диалоговое окно поиска решения).
§ Выполнить (На экране диалоговое окно результаты поиска решения – Рисунок 19.).
Рисунок 18. Ввод параметров.
Рисунок 19. Решение найдено.
Полученное решение означает, что максимальный доход 150 тыс. руб. фабрика может получить при выпуске 30 ковров второго вида и 10 ковров третьего вида. При этом ресурсы труд и оборудование будут использованы полностью, а из 480 кг пряжи (ресурс сырье) будет использовано 280 кг.
Создание отчета по результатам поиска решения
Excel позволяет представить результаты поиска решения в форме отчёта. Существует три типа таких отчетов:
§ Результаты (Answer). В отчет включаются исходные и конечные значения целевой и влияющих ячеек, дополнительные сведения об ограничениях
§ Устойчивость (Sensitivity). Отчет, содержащий сведения о чувствительности решения к малым изменениям в изменяемых ячейках иди в формулах ограничений.
§ Пределы (Limits). Помимо исходных и конечных значений изменяемых и целевой ячеек в отчет включаются верхние и нижние границы значений, которые могут принимать влияющие ячейки при соблюдении ограничений.
1. Отчет по результатам.
Отчет по результатам |
||||
Целевая ячейка (Максимум) |
||||
Ячейка |
Имя |
Исходно |
Результат |
|
$F$4 |
коэф. в ЦФ ЦФ |
0 |
150 |
|
Изменяемые ячейки |
||||
Ячейка |
Имя |
Исходно |
Результат |
|
$B$3 |
значение Х1 |
0 |
0 |
|
$C$3 |
значение Х2 |
0 |
30 |
|
$D$3 |
значение Х3 |
0 |
10 |
|
$E$3 |
значение Х4 |
0 |
0 |
|
Ограничения |
||||
Ячейка |
Имя |
Значение |
Формула |
|
$F$7 |
труд левая часть |
80 |
$F$7<=$H$7 |
|
$F$8 |
сырье левая часть |
280 |
$F$8<=$H$8 |
|
$F$9 |
оборудование левая часть |
130 |
$F$9<=$H$9 |