Поиск решения
В Excel имеется надстройка "Поиск решения", которая позволяет решать оптимизационные задачи, а также решать уравнения. Меню Данные/Анализ/Поиск решения. Если надстройки нет, её нужно установить. Бывает так, что надстройка установлена, но не отображается. Надо выполнить команду кнопка Office/Параметры Excel/Надстройки/ и включить надстройку.
Оптимизация состоит в отыскании минимума или максимума целевой функции модели при заданных ограничениях. На рабочем листе нужно создать целевую ячейку и изменяемые ячейки.
-
В целевой ячейке строится выражение Excel, которое вычисляет значение целевой функции.
-
Целевая ячейка зависит от группы ячеек, которые называются изменяемыми ячейками. Их значения надо подобрать так, чтобы значение в целевой ячейке было максимальным, минимальным или заранее определенным.
-
Решение (значения изменяемых ячеек) должно удовлетворять определенным ограничениям.
После соответствующей подготовки рабочего листа можно использовать процедуру поиска решения для подбора значений в изменяемых ячейках и получения в целевой ячейке нужного результата, который одновременно удовлетворяет всем установленным ограничениям.
Пример
Фирма производит две модели А и В полок. Их производство ограничено наличием досок и временем изготовления. Для изделия А требуется 3 м2 досок, а для изделия В — 4 м2. Фирма может получать до 1700 м2 досок в неделю. Для изделия А требуется 0,2 час, а для изделия В — 0,5 час. В неделю можно использовать 160 час. Изделие А приносит 2 долл., а изделие В — 4 долл. прибыли. Сколько изделий каждой модели следует выпускать фирме в неделю, чтобы максимизировать прибыль?
Решение
Составим математическую модель:
- Обозначим: х — количество изделий А, выпускаемых в течение недели, у — количество изделий В.
- Прибыль от этих изделий равна 2х+4у долл. Эту прибыль нужно максимизировать.
- Ограничено количество досок для полок: Зх+4у<=1700.
- Ограничено время на изготовление полок: 0,2х+0,5у<=160 .
- Количество изделий — неотрицательное число: х>= 0, у>= 0.
Формально наша задача оптимизации записывается так:
Заметим, что данная модель является линейной, т.к. целевая функция и ограничения линейно зависят от переменных.
Теперь решим эту задачу в Excel:
|
А |
В |
1 |
Переменные |
Исходные данные и формулы |
2 |
Количество изделий А (x) |
0 |
3 |
Количество изделий В (y) |
0 |
4 |
|
|
5 |
Целевая функция |
|
6 |
Прибыль |
=2*х+4*у |
7 |
|
|
8 |
Ограничения |
|
9 |
Доски |
=3*х+4*у |
10 |
Время |
=0,2*х+0,5*у |
Дайте ячейке В2 имя х, ячейке В3 имя y, ячейке В6 имя Прибыль, ячейке В9 имя Доски, ячейке В9 имя Время. Выделим ячейку В6, в которой вычисляется целевая функция, и вызовем Поиск решения.
Появится диалоговое окно "Поиск решения".
- В поле "Установить целевую ячейку" уже содержится адрес ячейки с целевой функцией $В$6.
- Установим переключатель "Равной максимальному значению".
- Перейдем к полю "Изменяя ячейки". В нашем случае достаточно щелкнуть кнопку "Предположить" и в поле появится адрес блока $В$2:$В$3.
- Перейдем к вводу ограничений. Щелкнем кнопку "Добавить".
Появится диалоговое окно "Добавление ограничения". Ограничения добавляются по одному.
- В поле "Ссылка на ячейку" укажите $В$9.
- Правее расположен выпадающий список с условными операторами. Выберем условие <=.
- В поле "Ограничение" введите число 1700.
- У нас есть еще одно ограничение, поэтому, щелкните кнопку "Добавить" и
- Введите ограничение $В$10<=160.
- Ввод ограничений закончен, поэтому нажмите ОК.
Вы вновь окажетесь в диалоговом окне "Поиск решения".
- Вы увидите введенные ограничения $В$10<=160 и $В$9<=1700.
- Справа имеются кнопки "Изменить" и "Удалить". С их помощью Вы можете изменить ограничение или стереть его.
- Щелкните кнопку "Параметры".
Вы окажетесь в диалоговом окне "Параметры поиска решения".
- Установим флажок "Линейная модель" (так как наши ограничения и целевая функция являются линейными по переменным х и у).
- Установим флажок "Неотрицательные значения" (для переменных х и у).
- Щелкнем ОК и окажемся в исходном окне "Поиск решения".
Мы полностью подготовили задачу оптимизации. Нажимаем кнопку "Выполнить".
Появляется диалоговое окно "Результаты поиска решения".
- В нем мы читаем сообщение "Решение найдено. Все ограничения и условия оптимальности выполнены."
- На выбор предлагаются варианты: "Сохранить найденное решение" или "Восстановить исходные значения". Выбираем первое.
- Можно также вывести отчеты: по результатам, по устойчивости, по пределам. Выделите их все, чтобы иметь представление о том, какая информация в них размещена.
- Нажмите ОК.
После нажатия ОК вид таблицы меняется.
|
А |
В |
1 |
Переменные |
Исходные данные и формулы |
2 |
Количество изделий А (x) |
300 |
3 |
Количество изделий В (y) |
200 |
4 |
|
|
5 |
Целевая функция |
|
6 |
Прибыль |
1400 |
7 |
|
|
8 |
Ограничения |
|
9 |
Доски |
1700 |
10 |
Время |
160 |
В ячейках х и у появляются оптимальные значения. Изделие А нужно выпускать в количестве 300 штук в неделю, а изделие В — 200 штук. Прибыль достигает значения 1400. На самом деле эту задачу надо было формулировать как целочисленную, ведь нельзя выпустить дробное число полок.
Добавьте ограничение чтобы х было целочисленным. Аналогично сделайте ограничение для y.
Совет. Ограничения можно было ввести быстрее. Нужно было ввести в В9:В10 формулы =3*х+4*у-1700 и =0.2*х+0.5*у-160. Тогда ограничения можно было задать блоком $В$9:$В$10<=0. В случае большого количества ограничений это существенно ускорит подготовку задачи.