Методические указания
Для выполнения лабораторных работ
по курсу «Теория принятия решений»
Теоретическая часть
Поиск управленческих решений на электронных таблицах
Использование электронных таблиц широко распространено для решения многочисленных и разнообразных задач, связанных с учетом и контролем результатов управленческой деятельности: торгово-закупочных операций, производственных планов, бухучета и т. п. Вместе с тем форма электронной таблицы оказывается очень удобной при решении многих аналитических задач управления деятельностью, и в частности задач исследования операций и поиска оптимальных решений. Для решения таких задач в рамках наиболее распространенной системы электронных таблиц EXCEL используется пакет программ поиска решения (Solver). Этот пакет основан на использовании алгоритмов и методов математического программирования — одного из основных направлений теории исследования операций.
Процесс исследования системы на электронных таблицах можно рассматривать как естественное продолжение обычной ежедневной практической деятельности, связанной с вычислениями на таблицах. Для этого нужно просто посмотреть на эту деятельность под другим углом зрения и задаться вопросом: «А что, если?..» Что если изменить условия оплаты товара, что если увеличить площади складских помещений и т. п. К каким изменения это приведет? Ответ на такой вопрос тесно связан с размышлениями на тему какова оптимальная стратегия и тактика использования производственных ресурсов, как достигнуть «точки оптимума» и как поддерживать баланс «в ее окрестности». Ответы на эти вопросы и определяют основную цель исследования любой системы. Здесь же нам важно подчеркнуть естественную связь между обычными вычислениями на электронных таблицах и поиском оптимальных управленческих решений на тех же таблицах.
|
|
Во многих случаях результаты такого поиска не просто являются неожиданными, их невозможно получить без программ поиска решений, поскольку возможности человека в задачах перебора вариантов развития деятельности резко ограничены числом таких вариантов. В этом отношении программа поиска оптимального решения приобретает качество уникального решателя задач, способного найти абсолютно нетривиальное решение, не отрабатываемое алгоритмами «естественного интеллекта».
Пример
Задача о красках
Данный пример предназначен для ознакомления со всеми этапами исследований систем управления на электронных таблицах.
Условие задачи. Фабрика изготовляет два вида красок: для внутренних (В) и наружных работ (Н). Продукция обоих видов поступает в оптовую продажу. Для производства красок используются два исходных продукта — П1 и П2. Максимально возможные суточные запасы этих продуктов составляют 6 и 8 т, соответственно. Расходы продуктов П1 и П2 на одну тонну соответствующих красок приведены в таблице.
|
|
Исходный продукт | Расход исходных продуктов в тоннах на тонну краски | Максимальный запас исходных продуктов (т) | |
Краска Н | Краска В | ||
П1 | 2 | ||
П2 |
Изучение рынка сбыта показало, что суточный спрос на краску В никогда не превышает спроса на краску Н более чем на 1 т. Кроме того, установлено, что спрос на краску В никогда не превышает 2 т в сутки. Оптовые цены одной тонны красок равны: 3 тыс. долл. для краски Н и 2 тыс. долл. для краски В.
Какое количество красок каждого вида должна производить фабрика, чтобы доход от реализации продукции был максимальным?
Приступая к решению этой задачи, предположим, что нам примерно известно, сколько краски нужно производить (например, 4 т краски Н и 2 т краски В).
Аналогичное предположение целесообразно делать при решении любой оптимизационной задачи, поскольку оно значительно упрощает процесс разработки структуры электронной таблицы (ЭТ).
Сделав такое предположение, составим ЭТ, которая позволяет рассчитать расходы продуктов на производство красок и получаемый доход (см. табл. 1, 2).
Анализируя табл. 1, замечаем, что расходы продуктов П1 и П2, необходимые для производства красок в соответствии с нашим предположением, превышают максимальный суточный запас. Следовательно, получить 16 тыс. долл. дохода невозможно.
Таблица 1
Попробуем уменьшить объемы производства красок, например 2 т краски Н и 2 т краски В. Подставив эти числа в таблицу, мы получим новые значения прибыли, суточного расхода продуктов и спроса на краски. Продолжая этот процесс перебора вариантов, мы рано или поздно найдем вариант, при котором прибыль будет максимальной, и в то же время будут выполнены ограничения по запасам продуктов и спросу на краски. Это будет означать, что мы решили оптимизационную задачу.
Однако такой процесс поиска решений может оказаться слишком долгим и утомительным. Кроме того, если бы номенклатура красок включала в себя не два, а, например, десять видов, мы вообще вряд ли смогли бы найти оптимальный вариант организации производства путем простого перебора вариантов.
Таблица 2
В этом смысле усложнение задачи связано с увеличением ее размерности (количества изменяемых ячеек) и числа ограничений. Практические задачи оптимизации включают в себя десятки и даже сотни изменяемых ячеек и ограничений. В таких случаях на помощь приходят специальные программы — решатели оптимизационных задач. Одна из таких программ — Solver — включена в систему Microsoft Excel как дополнение Поиск решения (раздел меню Сервис).
Поиск решения
Для решения оптимизационной задачи, оформленной в структуре ЭТ, необходимо вызвать приложение Поиск решения (меню Сервис). При этом на экране появится диалоговое окно Поиск решения.
В поле Установить целевую (ячейку) окна Поиск решения необходимо ввести имя (адрес) соответствующей ячейки. Для нашего примера это ячейка Е24. Затем указывается вид оптимизации путем «нажатия» соответствующей кнопки, расположенной непосредственно под полем целевой ячейки.
В поле Изменяя ячейки указываются имена (адреса) ячеек, содержимое которых подбирается программой поиска решения таким образом, чтобы обеспечить требуемое значение целевой ячейки. Для нашего примера изменяемыми ячейками являются В23, B24, содержащие объемы суточного производства красок.
|
|
Кнопка Предположить поможет вам в определении изменяемых ячеек: нажатие этой кнопки приводит к вводу в окно Изменяя ячейки имен тех ячеек, которые программа поиска расценивает как изменяемые.
В поле Ограничения должны быть введены все ограничения, связанные с решаемой задачей. В нашем примере такие ограничения делятся на три группы:
• естественные ограничения: В23:В24 >= 0 (они вводятся путем нажатия на кнопку Параметры, а затем кнопку Неотрицательные значения);
• ограничения по запасам исходных продуктов: E16:E17<=D16:D17;
• ограничения спроса на краски: В23 >= D29; В24 <= СЗ0.
Добавление, изменение и удаление ограничений осуществляется с использованием соответствующих кнопок, расположенных в правой части поля ограничений окна Поиск решения.
Нажатие кнопки Добавить или Изменить приводит к вызову дополнительного окна определения ограничений. В поле Ссылка на ячейку вводится левая часть ограничения. Список Ограничение включает в себя отношение равенства, «больше или равно», «меньше или равно», отношение цел, которое означает, что левая часть ограничения должна быть целым числом, отношение двоич, означающее, что левая часть ограничения должна быть двоичным числом (т. е. принимающим значения 0 или 1). При использовании отношений цел и двоич поле справа от списка ограничений остается пустым. При использовании любого другого отношения в этом поле размещается правая часть ограничения.
Нажатие кнопки Выполнить окна Поиск решения приводит к запуску процесса поиска решения задачи оптимизации. В результате поиска программа находит такие значения изменяемых ячеек, при которых достигается оптимальное значение целевой ячейки.
Для нашей задачи о красках оптимальное решение будет определяться следующими значениями изменяемых ячеек:
• объем производства краски Н (ячейка В23) — 3,33 т;
• объем производства краски В (ячейка В24) — 1,33 т.
Оптимальное значение целевой ячейки Е24 (при выполнении всех ограничений) составит 12,65 тыс. долл.
Виды ячеек и зависимости
|
|
Выше мы уже использовали понятия изменяемой ячейки и целевой ячейки. Изменяемые ячейки всегда содержат числовую информацию, которая подбирается в процессе поиска решения таким образом, чтобы обеспечить оптимальное значение целевой ячейки. Кроме того, в процессе поиска используются еще два вида ячеек:
• ячейки исходных данных;
• зависимые ячейки.
Ячейки исходных данных содержат числа, которые не меняются программой поиска решения (Solver), зависимые ячейки содержат формулы, которые неоднократно перевычисляются в процессе поиска решения.
Наличие зависимостей между ячейками разных видов в среде EXCEL может быть проиллюстрировано графом зависимостей, построенным непосредственно на структуре таблицы (см. табл. 3). Построение такого графа связано с использованием меню Сервис (Зависимости, Панель зависимостей).
Таблица 3
Использование графа зависимостей позволяет формально контролировать структуру таблицы. В правильно составленной таблице все стрелки должны начинаться в изменяемых ячейках или ячейках исходных данных и заканчиваться в зависимой или целевой ячейке. Из целевой ячейки стрелки зависимостей не могут выходить. Таблица считается хорошо структурированной, если граф зависимостей наглядно иллюстрирует причинно-следственные связи между ячейками. «запутанный» граф свидетельствует о плохой структуризации таблицы.
Основы теории
Формулировка любой оптимизационной задачи требует использования некоторой базовой системы понятий.
Любая переменная (изменяемая ячейка в ЭТ) обычно интерпретируется как некоторый ресурс (например, ресурс времени, материала, продукта, валюты), выраженный в количественном измерении (минуты, тонны, штуки, рубли). Задача оптимизации состоит в том, чтобы подобрать такие значения переменных, при которых целевая функция (целевая ячейка ЭТ) принимает максимальное, минимальное или заданное значение (оптимальное значение), при этом найденные значения переменных в совокупности составляют оптимальное решение задачи.
В классическом исследовании операций задачи математического программирования делятся на несколько различных типов в зависимости от вида целевой функции и ограничений. К основным типам относятся задачи линейного и нелинейного программирования. Для первого типа характерна целевая функция, линейно зависящая от переменных (ресурсов) исследуемой системы, и такие же линейные ограничения. Если же целевая функция или хотя бы одно из ограничений нелинейно зависит от переменной (хотя бы одной), задача относится к типу нелинейного программирования. В качестве примеров нелинейностей можно привести зависимости видов Xi*Xj, Xi/Xj, log(Xi) (вычисление логарифма от Xi), MIN(Xi,Xj,Xk), Xj2 (квадрат Xj) и т. д. Здесь Xi, Xj — переменные задачи.
Если оптимизационная задача должна решаться в целых числах, когда хотя бы одна из переменных модели должна измеряться в штуках (станках, автобусах и т. п.), говорят о целочисленном программировании. Наконец, если хотя бы одна из переменных может принимать только одно из двух значений (0 или 1), говорят о булевском программировании.
Вычислительные алгоритмы поиска решения для разных классов задач характеризуются разной степенью сложности, наиболее сложными являются задачи целочисленного программирования, к наиболее простым относятся задачи линейного программирования. Класс задач линейного программирования весьма широк, эти задачи имеют наиболее эффективную реализацию и характеризуются наглядной экономической интерпретацией результатов. Поэтому любую исследуемую систему желательно привести к линейной модели. К сожалению, это не всегда возможно.
Любой вычислительный алгоритм решения оптимизационной задачи имеет характер итерационного процесса, постепенно (шаг за шагом) приближающегося к оптимальному решению. Такие процессы поиска решения характеризуются точностью вычислений, количеством итераций и временем поиска решения. Все эти характеристики определяются в разделе Параметры окна Поиск решения.
Итерационные процессы поиска должны обладать свойством сходимости вычислений. Это свойство заключается в том, что разность результатов, получаемых на n-ом и (n+1)-ом шаге вычислений, должна с ростом n стремиться к нулю:
Здесь - значения изменяемых ячеек на n-ой и (n + 1)-ой итерации. Практически п ограничивается конкретным значением N — количеством итераций. Количество итераций определяет число шагов в последовательности приближений текущего решения задачи к оптимальному, при этом время, затраченное на реализацию такой последовательности, определяет время поиска оптимального решения. По умолчанию в программе Solver: N = 100.
Точность вычислений оптимального решения задачи определяется количеством значащих цифр в представлении значений изменяемых ячеек . Понятие точности тесно связано с понятием отклонения , которое может задаваться в процентах от абсолютной величины XN.
Итерационные процессы могут отличаться также методами реализации вычислений. Для линейных моделей используется главным образом так называемый симплекс-метод, для нелинейных — метод Ньютона и метод сопряженных градиентов. Они кратко комментируются в разделе «Поиск решения».
Поиск решения