_Поиск_Оптимального_Решения_2_ eq
.pdf
Линейные модели
При решении оптимизационных задач с помощью надстройки в ЭТ Поиск решений (Solver) необходимо различать линейные и нелинейные модели. Под линейными понимаются модели, в которых связь между целевой ячейкой и ограничениями на неизвестные описывается линейными функциями.
Линейное программирование – наиболее развитый раздел математического программирования, вычислительные средства которого позволяют находить глобальный оптимум линейной задачи оптимизации.
Линейные модели используют только линейные зависимости в уравнениях целевой функции и ограничениях на искомое значения. Это означает, что область допустимых решений представляет собой простой выпуклой многоугольник (симплекс), одна из вершин которого и есть оптимальное решение.
Именно этот эффективный математический результат лежит в основе симплекс-метода, в котором для поиска оптимума нужно в определенном порядке пересмотреть небольшое количество вершин, используя простой и эффективный алгоритм последовательного улучшения значения целевой функции. Мощные и эффективные средства линейного программирования определенным образом используются и в целочисленном программировании для решения более сложных задач оптимизации.
Если выражение для целевой ячейки и выражения для ограничений являются линейными, то можно применять быстрые и надежные методы поиска решения. Для использования именно линейных методов следует установить параметр Линейная модель (Assume Linear Model) в окне Параметры поиска решений (Solver Options). Если этот параметр не установить, то даже для линейной задачи будут использоваться общие более медленные методы.
Ниже рассмотрены некоторые практические примеры задач оптимизации, которые относятся к линейным моделям.
План производства. Постановка задачи.
Предприятие имеет запасы 4-х видов ресурсов (мука, жиры, сахар, финансы), из которых
производится 2 виды продуктов (хлеб - буханка черного и батон батон). |
|
|
|
|
|
||
Известны: |
|
|
|
|
|
|
|
нормы расходов ресурсов на производство |
|
Мука |
0.6 |
0.5 |
|
120 |
|
единицы продукции; |
|
Жиры |
0.05 |
0.08 |
|
70 |
|
запасы ресурсов; |
|
Сахар |
0.2 |
0.6 |
|
65 |
|
цены продуктов; |
|
|
|
||||
|
Финансы |
0.2 |
0.24 |
|
50 |
|
|
спрос на хлеб. |
|
|
|
||||
|
|
|
|
|
|
|
|
Найти оптимальный план производства, при котором доход от реализации произведенной продукции должен быть максимальный.
Экономико-математическая модель.
Найти план (количество хлеба и батонов) такой, чтобы Доход =0,99*Хлеб+1,21*Батон - мах При ограничениях:
0,6*Хлеб+0,5*Батон<=120
0,05*Хлеб+0,08*Батон<=70
0,2*Хлеб+0,6*Батон<=65
0,2*Хлеб+0,24*Батон<=50 120<=Хлеб<=150, а также Батон>=0
Реализация в Excel.
Создаем таблицу с формулами, которые связывают план, ограничения и целевую функцию (Доход):
11
в столбце «Использовано» в каждую ячейку вводим формулу вычисления количества использованных ресурсов: =СУММПРОИЗВ(Норма; План);
Оптимальный план производства
Ресурсы |
Хлеб |
Батон |
Запасы |
Использовано |
Остаток |
Т-цена |
Мука |
0.6 |
0.5 |
120 |
=СУММПРОИЗВ(B3:C3;$B$8:$C$8) |
=D3-E3 |
0 |
Жиры |
0.05 |
0.08 |
70 |
=СУММПРОИЗВ(B4:C4;$B$8:$C$8) |
=D4-E4 |
0 |
Сахар |
0.2 |
0.6 |
65 |
=СУММПРОИЗВ(B5:C5;$B$8:$C$8) |
=D5-E5 |
2 |
Финансы |
0.2 |
0.24 |
50 |
=СУММПРОИЗВ(B6:C6;$B$8:$C$8) |
=D6-E6 |
0 |
Цена |
0.99 |
1.21 |
Доход= |
=СУММПРОИЗВ(B7:C7;$B$8:$C$8) |
|
|
План |
0 |
0 |
|
|
|
|
Спрос (верх.) |
150 |
|
|
|
|
|
Спрос (нижний.) |
120 |
|
|
|
|
|
в ячейку с Доходом вводим формулу =СУММПРОИЗВ(Цена; План).
Совет. Если таблицу разместить так, как показано, достаточно ввести формулу в первую ячейку, зафиксировать абсолютные адреса координаты плана (нажать F4, чтобы появились символы $) и протянуть эту формулу (маркером автозаполнения) к строке с номером 7 (Доход=).
Запускаем программу Поиск решений командой
Данные/Анализ/Поиск решения (В Excel 2007) Сервис/Поиск решения (В Excel 2003 и ниже). В полях Установить целевую ячейку, Изменяя ячейки, Ограничения вводим соответствующие адреса ячеек. Так как это линейная модель, то не забываем фиксировать в окне Параметры поиска решений переключатель на позицию Линейная модель и Неотрицательные значения. Нажимаем кнопку Выполнить и в появившемся окне
Результаты поиска решения выводим отчет по устойчивости.
Результат: чтобы получить максимальный доход в размере 219,1 д. ед. нам нужно производить 150 ед. хлеба и 58,3 ед. батона. Из отчета по устойчивости видим, что ресурс Сахар дефицитный и его «Теневая цена» составляет 2 д. ед., это означает то, что если мы увеличим этот ресурс на 1 ед. наш доход увеличится на 2 и будет равен 221,1 д. ед.
Интересно то, что «нормированная стоимость» хлеба – положительное число (0,6) означает, что принудительное увеличение выпуска этого продукта увеличит доход на 0,6 д. ед. за каждую дополнительную единицу, поскольку мы сами занизили эту величину согласно спросу.
Очевидно, что хлеб и батоны должны быть целыми числами, поэтому в модели необходимо добавить ограничение относительно целочисленных значений плана. Кроме того, после полученного отчета и анализа результата, для проверки влияния «Теневой цены» на Доход , можно увеличить запас Сахара на 1 единицу, снова запустить надстройку Поиск решений и пересчитать результат. При заданных новых ограничениях он будет таков: чтобы получить максимальную прибыль в размере 221,1 д. ед. нужно производить 150 ед. хлеба и 60 ед. батонов и иметь запас сахара в 66 ед. Необходимо отметить, что при целочисленных ограничение нельзя выводить отчеты.
Ассортиментное ограничение.
Ассортимент – набор товар в определенной пропорции. Это довольно распространенное ограничение, особенно при выпуске комплектов продуктов из одних и тех же ресурсов.
В нашей задаче про хлеб и батоны мы уберем ограничение на спрос и добавим ассортиментное ограничение в таком соотношении Хлеб/Батон=3/1,2, то есть, 1,2Хлеба=3Батона.
12
В строке Ограничения вводим формулы 1,2*Хлеб и 3*Батон соответственно. Потом запускаем программу Поиск решений и добавляем ограничение на ассортимент. Получаем результат, где при заданном ассортименте получим максимальный доход (217,7), если будем производить 147,7 ед. хлеба и 59,1 ед. батонов. Опять мы можем вывести отчет по устойчивости сделать определенный анализ и после этого добавить целочисленное ограничение на план.
Инвестиции Постановка задачи.
Инвестор, рискуя, планирует наилучшим образом определить части суммы денег общим объемом S д. ед., которые будут вложены в N предприятий путем покупки акций с целью получения прибыли в определенном последующем периоде.
Условие оптимально означает, что существует два альтернативных критерия оптимизации: минимизация риска при фиксированном доходе (аккуратный подход) или максимизация дохода при фиксированном риске (риске).
В инвестиционном менеджменте набор частей сумм инвестирования называется портфель, оптимальным портфелем называется такой набор, который инвестор признает для себя наилучшим относительно дохода и риска. Чем больший доход, тем больший риск.
Наш инвестор хочет вложить деньги в сумме 30000 д. ед. в акции 6 предприятий, для каждого из которых известны доходность акций (%), срок действия, оценка риска, максимальная величина инвестиций на одно предприятие не больше 7500 в предприятия с уровнем риска больше 3 вложить не больше 1/3 суммы всех денег, а в предприятия со сроком больше чем 5 лет не меньше 15000 из суммы денег.
Инвестор должен выбрать на основе фиксированных предприятиями рисков оптимальный вариант – куда и сколько вложить денег, что бы получить максимальный доход.
Экономико-математическая модель.
Найти план инвестирования при котором, Об_Доход=План*Доходность(%) -> mах
При ограничениях: План=30000; План_предприятия<=7500; План>=Мин_взнос Предприятия(риск>=3) <=10000; Предприятия(срок>5)>=15000.
Реализация в Excel.
Создаем таблицу с формулами, которые связывают план, ограничения и целевую функцию (Об_Доход):
13
столбец Доход заполняем формулами План*Доходность; столбец Портфель заполняем формулами План/Об_Доход;
под столбцом Уровень риска вводим формулу: =СУММЕСЛИ(Риск;>=3;план); под столбцом Срок вводим формулу: =СУММЕСЛИ(Срок;>5;план); в целевую ячейку Об_Доход вводим формулу: =СУММ(Доход).
Запускаем программу Поиск решений командой Данные/Анализ/Поиск решения (В Excel 2007) Сервис/Поиск решения (В Excel 2003 и ниже). В полях Установить целевую ячейку, Изменяя ячейки, Ограничения вводим соответствующие адреса ячеек. Так как это линейная модель, то не забываем фиксировать в окне Параметры поиска решений переключатель на позицию Линейная модель и Неотрицательные значения. Нажимаем кнопку Выполнить и в появившемся окне Результаты поиска решения выводим отчет по устойчивости.
Анализ результатов.
Оптимальный план инвестирования (540; 180; 912,5; 825; 138; 840) обеспечит максимальный Доход в размере 3435,5 д. ед., что составило 11,5% суммы инвестиций (не плохо, если идеальный 12,5%). Нормированная стоимость неизвестных (План) указывает, как изменится Об_Доход при принудительном увеличении значения неизвестных.
Теневая цена 0,108 для величины инвестиций (30000) указывает на увеличение Об_Дохода почти на 11 копеек при увеличении суммы инвестирования на 1 д. ед. Теневая цена 0,017 для величины ограничения на сумму рискованных инвестиций (10000) указывает на увеличение Об_Дохода на эту величину при увеличении ограничения на 1 ед.
Расписание. Постановка задачи.
14
Расписание касается людей или машин, состояние которых на определенном этапе определяются двумя вариантами – человек в определенный день вышел/ не вышел, машина на определенной стадии работает/ не работает т. д. Соответственно, расписание имеет вид комбинаций по типу составления бинарного вектора 011100101 имеющего только два состояния.
В нашем случае 10 работниц исполняют возложенные на них функции, на каждый день известны потребности в их численности, при чем установлена 5-дневная рабочая неделя. Нужно определить расписание выхода на роботу, чтобы удовлетворить эти потребности с минимальным количеством чел./день.
Экономико-математическая модель.
1.Найти таблицу расписания такую, чтобы
2.Чтобы общее количество человек - min
3.При ограничениях: Всего задействованных человек = Потребностям в них; количество рабочих дней каждой работницы = 5, а также все неизвестные двоичного типа.
Реализация в Excel.
Создаем таблицу с формулами, которые связывают план, ограничения и целевую функцию (Количество):
встолбец Дни вводим формулу суммы по строкам матрицы расписания;
встроку Всего вводим формулу суммы по столбцам матрицы расписания;
вцелевую ячейку Количество вводим формулу: =СУММ(Всего).
Запускаем программу Поиск решений командой Данные/Анализ/Поиск решения (В Excel 2007) Сервис/Поиск решения (В Excel 2003 и ниже). В полях Установить целевую ячейку, Изменяя ячейки, Ограничения вводим соответствующие адреса ячеек. Так как это линейная модель, то не забываем фиксировать в окне Параметры поиска решений переключатель на позицию Линейная модель и Неотрицательные значения. Нажимаем кнопку Выполнить и в появившемся окне Результаты поиска решения выводим отчет по устойчивости.
15
Анализ результатов
В полученном результате видим, что данное расписание соответствует нашим заданным ограничениям и при котором задействовано наименьшее количество работниц
– это значит что наш план оптимальный.
Нелинейные модели
На практике линейные модели скорее исключение, чем правило, потому что очень часто величины (цены, процентные ставки, тарифы), которые влияют на конечный результат, являются не пропорционально зависимыми от неизвестных (объемы товаров или инвестиций) и потому общий результат описывается нелинейным соотношением. Нелинейность – это довольно распространенная ситуация, ее вызывают сложные взаимоотношения между величинами, что характерно для технических, финансовых, биологических и других процессов. Потому нелинейность экономических задач существенно расширяет возможности учета существующих свойств. Хотя относительно их решения исследователи должны учитывать повышенную сложность получения желательного результата вплоть до невозможности его получения вообще.
Нелинейные модели классифицируют с позиции сложности получения глобального оптимума – все зависит от функциональных особенностей целевой функции и ограничений. Все множество нелинейных задач оптимизации можно разделить на три класса соответственно особенностям целевой функции и функции ограничений в порядке нарастания сложности:
І. Задачи квадратичного программирования, где достигается глобальный оптимум. ІІ. Задачи выпуклого программирования, где достигается глобальный оптимум.
ІІІ. Задачи общего вида, где достигается несколько локальных оптимумов, среди которых ищут глобальный оптимум.
В Excel для поиска оптимума нелинейной задачи используется улучшенный метод сопряженных градиентов Флетчера-Ривса итерационного типа, приспособленный известным математиком Л. Лесдоном для программы надстройки Excel Solver (Поиск решений).
Идея градиентного метода поиска экстремума функции была предложена в 1847 году Коши. На начальном этапе выбирается стартовая точка (начальное приближение в виде набора произвольных значений неизвестных) и вычисляется градиент (начальные производные целевой функции в диапазоне этой точки). Шаг и направление движения в следующую точку для улучшения ЦФ определяется как сумма предыдущего значения плюс значение градиента. Далее в следующих точках эта процедура повторяется, пока значения вычисленных производных не станут нулевыми, что говорит о достижении экстремума.
Особенностью программы-оптимизатора Поиск решений относительно нелинейных моделей является «Отчет по устойчивости», в котором определяются теневые цены ограничений в виде множителей Лагранжа и, соответственно, отсутствуют значения максимального допустимого увеличения ограничивающего параметра. Поскольку речь идет о нелинейных задачах оптимизации, при определении параметров модели оптимизации не нужно фиксировать режим «Линейная модель».
Ниже рассмотрены некоторые практические задачи нелинейных моделей:
План производства. Постановка задачи.
Предприятие имеет запасы 4-х видов ресурсов (мука, жиры, сахар, финансы), с использованием которых производится 2 вида продуктов (хлеб и батон). Известны:
нормы расходов ресурсов на производство единицы продукции;
запасы ресурсов;
16
цены продуктов; спрос на хлеб.
Найти оптимальный план производства, при котором прибыль от реализации произведенной продукции должна быть максимальный. При чем прибыль равна выручка – затраты = цена ед. продукции * план ед. продукции – 1рубль затрат*план ед. продукции^0,7 (^ означает в степени 0,7).
Экономико-математическая модель.
Найти план (количество хлеба и батонов) такой, чтобы Прибыль =0,99*Хлеб+1,21*Батон –Хлеб^0,7-Батон^0,7 - mах При ограничениях:
0,6*Хлеб+0,5*Батон<=120
0,05*Хлеб+0,08*Батон<=70
0,2*Хлеб+0,6*Батон<=65
0,2*Хлеб+0,24*Батон<=50
Хлеб, Батон>=0
Реализация в Excel.
Создаем таблицу с формулами, которые связывают план, ограничения и целевую функцию (Прибыль):
в столбце «Использовано» в каждую ячейку вводим формулу вычисления количества использованных ресурсов: =СУММПРОИЗВ(Норма; План);
в ячейку с Прибылью вводим формулу =СУММПРОИЗВ(Цена; План)- Хлеб^0,7-Батон^0,7.
Запускаем программу Поиск решений командой
Данные/Анализ/Поиск решения (В Excel 2007) Сервис/Поиск решения (В Excel 2003 и ниже). В полях Установить целевую ячейку, Изменяя ячейки, Ограничения вводим соответствующие адреса ячеек. Не забываем фиксировать в окне Параметры поиска решений переключатель на позицию Неотрицательные значения. Нажимаем кнопку Выполнить и в появившемся окне Результаты поиска решения выводим отчет по устойчивости.
Анализ результата
Оптимальный план производства (151,9; 57,7) обеспечивает максимальную прибыль в размере 169,5 д. ед.
При этом, полученные Множители Лагранжа указывают на возможное увеличение прибыли при увеличении дефицитного запаса ресурсов на 1 ед.
17
Оптимальный портфель инвестиций. Общая постановка задачи.
Это – типичная, важная и очень распространенная финансовая задача, которая появляется в практике ресурсного обеспечения, страхования, инвестирования, банковского дела и т. д. В ней речь идет о поиске оптимального варианта распределения целого (как правило, суммы денег) на отдельные части.
В нашем случае инвестор желает вложить определенную сумму денег в определенное количество ценных бумаг (ЦБ) и хочет определить, какую часть этой суммы лучше всего вложить в каждый вид ЦБ. Выбранный набор ЦБ носит название инвестиционный портфель.
Лучшим может быть один из двух альтернативных вариантов:
минимизация риска при ограничении на доход;
максимизация дохода при ограничении на риск.
Как уже говорилось выше, что в инвестиционном менеджменте набор частей суммы инвестирования называется портфель (portfolio), оптимальный портфелем является такой набор, который инвестор определяет для себя лучшим согласно отношению между доходностью вложений и риском потери.
Доход получается за определенный период времени от инвестирования вложенной суммы, которая выросла за этот период до некоторой величины и является положительным или отрицательным числом. Он вычисляется по следующей формуле:
Доход = (Сумма полученная за период – Инвестированная сумма)/ Инвестированную сумму.
Риск в теории инвестирования принято измерять величиной возможного разброса дохода созданного портфеля от среднего значения, этот разброс в статистике называют вариацией или дисперсией. Он вычисляется по формуле:
Риск =СУММ(Дисперсия ЦБ_M * Сумма инвестиции ЦБ_M ^2) +2 * СУММ(Ковариация ЦБ_ML* Сумма инвестиции ЦБ_M * Сумма инвестиции ЦБ_L)
Начальные данные для этой задачи содержаться в таблице статистики доходов для всех ЦБ, собранной за определенное количество периодов. Из этой таблицы можно получить:
среднее значение дохода от определенной ЦБ: =СРЗНАЧ(Диапазон); вариацию (дисперсию) дохода от определенной ЦБ: =ДИСПР(Диапазон);
ковариацию (число, которое характеризирует зависимость дохода от двух ЦБ, которые определенным способом связанные между собой и влияют друг на друга) дохода от определенной ЦБ: =КОВАР(Диапазон 1;Диапазон 2).
Существует два варианта этой задачи:
значение средних доходов, их вариаций и ковариаций заданные (модель Марковица);
заданная статистика доходов, из которой находят значение средних доходов, их вариаций и ковариаций (модель Шарпа)
Ниже рассмотрены две задачи модели Шарпа на минимум и максимум.
Минимальный риск. Постановка задачи.
Инвестиции в объеме 100% предназначены для вложения разными долями в три вида ценных бумаг, для которых известна доходность за 12 месяцев. Для оценками риска необходимо из заданной статистики доходности по каждой ЦБ найти дисперсию и ковариацию. Определить оптимальное распределение плана заполнения инвестиционного портфеля, которое обеспечит минимальный риск. При этом, зафиксированы ограничения на величину дохода (5%) и на величину доли инвестиций для первой ценной бумаги (не больше чем 50% от общей суммы).
Экономико-математическая модель.
1.Найти план инвестирования (портфель) такой, чтобы
2.Общий риск = ДИСПР ЦБ_1 * План ЦБ_1^2 + ДИСПР ЦБ_2 * План ЦБ_2^2 ДИСПР ЦБ_3 * План ЦБ_3^2 +2 * (КОВАР ЦБ_12* План ЦБ_1 * План ЦБ_2 + КОВАР ЦБ_13* План ЦБ_1 * План ЦБ_3 + КОВАР ЦБ_23* План ЦБ_2 * План ЦБ_3) - min
3.При ограничениях: Сумма частей портфеля = 100%; Сумма дохода = 5%; Вложения в ЦБ 1 <= 50%, все неизвестные больше нуля.
18
Реализация в Excel.
Средний доход очень просто вычисляется с помощью функции Excel СРЗНАЧ(Диапазон), вариация (дисперсия) с помощью функции ДИСПР(Диапазон), а ковариация – функции КОВАР(Диапазон_1; Диапазон_2). Имея значения вариации трех ценных бумаг и ковариаций, можно вычислить значения целевой функции.
Запускаем программу Поиск решений командой |
|
Данные/Анализ/Поиск решения (В Excel 2007) |
Результат: |
Сервис/Поиск решения (В Excel 2003 и ниже). |
|
В полях Установить целевую ячейку, Изменяя ячейки, Ограничения вводим соответствующие адреса ячеек. Не забываем фиксировать в окне Параметры поиска решений переключатель на позицию Неотрицательные значения. Нажимаем кнопку Выполнить и в появившемся окне Результаты поиска решения выводим отчет по устойчивости.
Максимальный доход. Постановка задачи.
Инвестиции касаются трех ценных бумаг, для которых известно только доходность за 12 месяцев. Для оценки риска из статистики по доходности нужно найти дисперсию и ковариацию, а дальше определить значения оптимального портфеля, которое обеспечит максимальный доход. При этом вводится
19
фиксированное ограничение на величину риска (1%) и на величину плановой доли приобретения каждой ценной бумаги (не больше чем 1/3 общей суммы).
Экономико-математическая модель.
1.Найти план инвестирования (портфель) такой, чтобы
2.Сумма доход = Средний доход * Сумма инвестирования - > mах
3.При ограничениях: Сумма частей портфеля = 100%;
4.Общий риск = ДИСПР ЦБ_1 * План ЦБ_1^2 + ДИСПР ЦБ_2 * План ЦБ_2^2 + ДИСПР ЦБ_3 * План ЦБ_3^2 +2 * (КОВАР ЦБ_12* План ЦБ_1 * План ЦБ_2 + КОВАР ЦБ_13* План ЦБ_1 * План ЦБ_3 + КОВАР ЦБ_23* План ЦБ_2 * План ЦБ_3)<= 1%;
5.Вложения в каждую ЦБ <= 100%/3, все неизвестные больше нуля.
Реализация в Excel.
Средний доход очень просто вычисляется с помощью функции Excel СРЗНАЧ(Диапазон), вариация (дисперсия) с помощью функции ДИСПР(Диапазон), а ковариация – функции КОВАР(Диапазон 1;Диапазон 2). Имея значения вариации трех ценных бумаг и ковариаций, можно вычислить значения риска. В целевую ячейку вводим формулу суммы по доходу по каждой ценной бумаги.
Результат:
Запускаем программу Поиск решений командой
Данные/Анализ/Поиск решения (В Excel 2007) Сервис/Поиск решения (В Excel 2003 и ниже). В полях Установить целевую ячейку, Изменяя ячейки, Ограничения вводим соответствующие адреса ячеек. Не забываем фиксировать в окне Параметры поиска решений переключатель на позицию Неотрицательные значения. Нажимаем кнопку Выполнить и в появившемся окне Результаты поиска решения выводим отчет по устойчивости.
20
