Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

_Поиск_Оптимального_Решения_2_ eq

.pdf
Скачиваний:
33
Добавлен:
08.04.2015
Размер:
964.29 Кб
Скачать

Поиск оптимальных решений

Глобализация экономики и ведение хозяйства в открытой конкурентной борьбе требуют от менеджеров и бизнесменов значительного повышения ответственности за качество принятия решений. Это основная причина, которая обусловливает необходимость применения научного подхода к проблеме выбора правильного управленческого решения из имеющихся альтернатив. Одним из направлений развития научнотехнического прогресса в данной сфере стал раздел математики, который именуется как математическое программирование. Это направление науки тесно связанное с практическими проблемами оптимального распределения ресурсов в различных отраслях производства и сферы услуг.

Различные аспекты оптимизации занимают важное место в бизнесе и деятельности современных организаций и предприятий. Поэтому данный курс может помочь на практике тем студентам и слушателям, которые сталкиваются с задачами оптимального управления в своей повседневной роботе (менеджеры, экономисты, финансисты, банковские работники), а также тем, кто заинтересован в расширении своего профессионального кругозора (например, с целью повышения конкурентного преимущества).

Проблемы оптимизации присутствуют в самых различных процессах производства: поставка сырья; оптимальный выпуск продукции;

оптимальное управление запасами; оптимальное распределение ресурсов; планирование инвестиций; оптимальный рацион (смесь, сплав); назначение на должность (на работу); оптимальная замена оборудования и т.д

Решение задачи оптимизации состоит в поиске оптимального плана размещения ресурсов с использованием математических моделей и вычислительных методов, которые реализуются с помощью компьютеров и специальных программ-оптимизаторов. В данном курсе в представленных задачах и упражнениях все расчѐты будут сделаны с использованием оптимизационной программы Solver (Поиск решений), встроенной в популярный табличный процессор (электронные таблицы) MSExcel.

В предложенных упражнениях обсуждается полученная модель решения с точки зрения улучшения результата, что является очень важным для будущего использования и успешного внедрения разработанной модели развития предприятия.

Краткая история развития методов математического программирования

В 50-ые годы XX столетия на стыке математики и экономики возникло и постепенно стало развиваться современное научное направление "Математическая экономика", где профессиональные экономисты в своих исследованиях активно использовали математические методы, а математики обращаются к экономическим задачам, чтобы применить к их решению имеющиеся методы.

Основателем и активным разработчиком математической экономики считается

Василий Васильевич Леонтьев (1906-1999). Еще в середине 20-х годов XX ст.,

работая в России, В.В. Леонтьев определил проблему межотраслевого баланса (МОБ), сначала на уровне отдельного государства, а впоследствии - на уровнях

Леонтьев В. В. региональной и мировой экономики.

Для решения проблемы МОБ, которой он занимался всю свою жизнь уже как гражданин США, В.В. Леонтьев использовал классический аппарат линейной алгебры и матричного анализа для поиска решения систем линейных уравнений достаточно большого размера, хотя для выполнения табличных расчетов на то время применялись лишь механические арифмометры.

В 1938 году 26-летний профессор-математик Леонид Витальевич Канторович (1912-1986), работая научным консультантом на фанерной фабрике, впервые сформулировал задачу оптимального использования ограниченных производственных ресурсов. Он предложил математический метод ее решения, т.е. наилучшего из всех возможных вариантов распределения ресурсов при

Канторович Л. В. определенных ограничениях. Тогдашняя закодированная тема исследования называлась «Задача фантреста».

1

Этот принципиально важный результат был получен Канторовичем в процессе серьезных математических исследований хозяйственных условий сложившихся к тому времени в новой плановой экономике.

Судьбы обоих научных работников во многом похожие: высокообразованные и талантливые молодые выпускники Ленинградского университета экономист Василий Леонтьев и математик Леонид Канторович работали на новую экономику, сделали свои гениальные открытия, но оказалось — "не в том месте" и несвоевременно. Результаты этих исследований лишь через много лет были оценены должным образом Нобелевскими премиями по экономике.

Американский математик Джордж Бернард Данциг (1914-2005), занимаясь планированием в оборонной сфере, где разрабатывал программы совершенствования военно-воздушных сил США, в 1947 г. повторно и независимо сформулировал задачу оптимизации, соответствующий математический аппарат назвал "линейное программирование", и предложил для ее машинного решения эффективный "симплекс-

Данциг Дж. Б. метод".

В 50-ые годы в США с появлением первых ЭВМ "симплекс-методом" сразу же воспользовались и запрограммировали его. С середины 50-х годов математическая оптимизация уже в виде всем известного линейного программирования начала применяться и в Советском союзе. Давняя разработка Л. В. Канторовича вернулась на родину в американской упаковке! Так в СССР формируется научное направление "экономико-математическое моделирование".

 

Мощный вклад в развитие и внедрение методов оптимизации для планирования и

 

управления в стране, в частности на Украине, связан с именем выдающегося

 

математика и умелого организатора науки академика Виктор Михайлович

 

Глушкова (1923 -1982). Он смог убедить партийное руководство государства в

 

необходимости активного развития этих работ, а в 1962 г. впервые в СССР он

 

организовал академический Институт кибернетики в Киеве с научными отделами, где

Глушков В. М.

разрабатывались математические модели и методы оптимизации.

 

"Исследование операций" является логическим продолжением дисциплины "Математическое программирование", оно имеет собственную интересную историю. Научное направление "исследование операций" возникло перед Второй мировой войной в 1938 г.

Именно тогда выдающийся американский математик и статистик Норберт Винер (1894-1964) занимался проблемами противовоздушной обороны. Он положил начало новой математически обоснованной науке управления объектами разной природы,

которую называл „кибернетика" и издал книгу с таким же названием в 1948 г.

Винер Норберт

Интересно, что активное развитие математических методов стимулировало разработку теории универсальных вычислительных машин, которые по определенной программе давали возможность получить соответствующий результат.

 

Выдающиеся математики, такие, как Джон фон Нейман (1903-1957) (США) или В.М.

 

Глушков (СССР), как никто понимали необходимость иметь мощные вычислительные

 

средства. Они и стали известными в мире как основатели математической теории

 

автоматов и руководители проектов по разработки компьютеров, активными

 

проводниками внедрения методов математического моделирования в экономическую

Джон фон Нейман

практику.

 

Таким образом, после Второй мировой войны методы и технологии операционного управления сложными организациями были перенесенные на задачу управления промышленными предприятиями, экономикой, процессами бизнеса и образовали отдельное направление научного управления производством, экономикой и бизнесом под названием "наука управления" (Management Science).

2

Математическая постановка задачи линейного программирования

Рассмотрим простейшую задачу математического программирования, у которой имеется линейная целевая функция и линейные ограничения. Такая задача называется задачей линейного программирования.

Будем считать, что у этой задачи имеется N переменных и M ограничений. Тогда целевая функция может быть записана в виде:

 

 

 

N

 

 

f (x)

с1х1 ... сN xN

cn хn

max

(1)

 

 

 

n 1

 

 

Если по смыслу задачи целевая функция должна обращаться в минимум, то для получения

выражения (1) в ней достаточно поменять значения всех коэффициентов cn на противоположные (

cn ) .

Набор ограничений функции может быть записан в виде:

 

 

 

 

N

 

 

 

a11х1

...

a1N xN

a1n хn b1

 

 

 

 

n 1

 

 

 

...

 

...

...

 

(2)

 

 

N

 

 

aM 1х1

...

aMN xN

aMn хn

bM

 

 

 

n 1

 

 

Обычно в задачах, связанных с менеджментом, имеет место набор дополнительных N ограничений на переменные, значения целевой функции, которые называют граничными условиями:

 

хn

0; хn

целое (бинарное) .

 

(3)

 

Такую постановку задачи (1)-(3) называют "основной" или "стандартной" в линейном

программировании.

 

 

 

 

 

 

При размерности переменных N = 2 можно представить достаточно наглядную геометрическую

интерпретацию решения

данной

задачи. Например,

если

целевая функция задана выражением

f (x)

õ1 x2 , которое необходимо максимизировать, а набор ограничений функции имеет вид

 

 

 

х1

x2

2,

 

 

 

 

0.5х1

x2

1,

 

 

 

х1

x2

3,

.

 

 

 

 

 

 

 

2х1

x2

6.

 

 

Граничные условия накладывают ограничение на выбор только положительных значений аргумента

õ1; x2

0. При этом может быть найдено ее плоскостное решение (См. рис.1).

Рис. 1 Графическая интерпретация метода линейного программирования.

3

Поиск решений

Мощным средством анализа данных в электронных таблицах является надстройка Поиск решения. С ее помощью можно определить, при каких значениях формула в целевой ячейке (целевая функция ЦФ) принимает оптимальное значение: минимальное, максимальное или равное указанной величине. Для процедуры поиска решения можно задать (но не обязательно) ограничения, только при этом необходимо использовать взаимно связанные (влияющие на ЦФ) ячейки. Для расчета заданного значения ЦФ применяются различные математические методы поиска. При работе можно установить различные режимы работы, а результаты работы программы могут быть оформлены в виде отчета.

Программа Поиск решений (в оригинале MSExcel Solver) – дополнительная надстройка табличного процессора MS Excel, которая предназначена для решения систем линейных и нелинейных уравнений в различных задачах оптимизации, используется с 1991 года.

По умолчанию надстройка Поиск решения отключена.

Чтобы активизировать ее в Excel 2007, необходимо выбрать значок Кнопка Microsoft Office- >Параметры Excel- >

Надстройки. В поле Управление выберите значение Надстройки Excel и нажмите кнопку Перейти. В поле Доступные надстройки установите флажок рядом с пунктом Поиск решения и нажмите кнопку ОК.

В Excel 2003 выберите команду Сервис/Надстройки, в появившемся диалоговом окне Надстройки установите флажок Поиск решения и щелкните на кнопке ОК. Если вслед за этим на экране появится диалоговое окно с предложением подтвердить ваши намерения, щелкните на кнопке Да. (Возможно, вам понадобится установочный компакт-диск Office).

Разработчик программы Solver компания Frontline System уже давно специализируется на разработке мощных и удобных способов оптимизации, встроенных в среду популярных табличных процессоров разнообразных фирм-производителей (MS Excel, Adobe Quattro Pro, Lotus 1-2-3, OpenOffice).

Размер задачи, которую можно решить с помощью базовой версии этой программы, ограничивается такими предельными показателями:

количество неизвестных (decision variable) – 200;

количество формульных ограничений (explicit constraint) на неизвестные – 100; количество предельных условий (simple constraint) на неизвестные – 400.

Высокая эффективность применения данной программы объясняется эффективной интеграцией программы оптимизации и табличного бизнес-документа. Благодаря большой популярности табличного процессора MSExcel встроенная в его среду программа Solver является наиболее распространенным инструментом для поиска оптимальных решений в сфере современного бизнеса.

Процедура поиска решения

1. Создайте таблицу с формулами, которые устанавливают связи между ячейками.

2. Выделите целевую ячейку, которая должна принять необходимое значение, и выберите команду:

-В Excel 2007 Данные/Анализ/Поиск решения;

-В Excel 2003 и ниже по тексту Сервис > Поиск решения (Tools > Solver). Поле Установить целевую ячейку (Set Target Cell) открывшегося диалогового окна надстройки Поиск решения (Solver) будет содержать адрес целевой ячейки.

4

3.Установите переключатели группы Равной: (Equal To:), задающие значение целевой ячейки, — максимальному значению (Мах), или минимальному значению (Min) или какому-либо конкретному значению (Value of). В последнем случае введите значение в поле справа.

4.Укажите в поле Изменяя ячейки (By Changing Cells), в каких ячейках программа должна изменять значения в поисках оптимального результата.

5.Создайте ограничения в списке Ограничения (Subject to the Constraints). Для этого щелкните на кнопке Добавить (Add) и в диалоговом окне Добавление ограничения (Add Constraint) укажите ячейки с заданными значениями (Запасы) условие и ячейки с расчетными значениями (Использовано).

6.Щелкните на кнопке Параметры (Options), и в появившемся окне установите переключатель Неотрицательные значения (если переменные должны быть положительными числами), Линейная модель (если задача, которую вы решаете, относится к линейным моделям).

7.Щелкнув на кнопке Выполнить (Solver), запустите процесс поиска решения.

8.Когда появится диалоговое окно Результаты поиска решения (Solver Results), выберите переключатель Сохранить найденное решение (Keep Solve Solution) или Восстановить исходные значения

(Restore Original Values) и нажмите на кнопку ОК.

Создание таблиц

Существует множество задач, решение которых может быть осуществлено с помощью инструмента Поиск решений. Но для его использования начать следует с организации рабочего листа в соответствии с пригодной для поиска решений моделью, для чего нужно хорошо понимать взаимосвязи между переменными и формулами. Постановка задачи обычно представляет основную сложность, и основные время и усилия тратятся на подготовку модели.

По своей сущности задача оптимизации – это математическая модель определенного процесса производства продукции, распределения, хранения, переработки, транспортирования, покупки или продажи, выполнения комплекса сервисных услуг и т.д. При этом, после постановки задачи это обычная математическая задача типа: Дано/Найти/При условии, которая имеет множество возможных решений. Таким образом, задача оптимизации – задача выбора из множества возможных вариантов наилучшего, т.е. оптимального.

Решение такой задачи называют планом (например, говорят – план производства) другими словами это те неизвестные, которые нам надо найти и, которые дают максимальный доход. Задача оптимизации – задача поиска экстремума (максимального или минимального значения) определенной функции, которую называют целевой функцией (например, доход=план*цену или прибыль=выручка-затраты). Так как и всѐ в экономике ограничено (время, деньги, природные и человеческие ресурсы), в задачах оптимизации всегда есть заданные ограничения на ресурсы (например, люди, деньги, сырье и т.д.).

5

Далее рассмотрен пример оформления очень простой задачи оптимизации, но с еѐ помощью можно легко понять организацию построения таблицы для эффективного решения практических задач оптимизации.

Имеем классическую задачу когда фирма производит два вида продукции (Товар А и Товар Б) по определенной цене. На их производство требуется 4 вида ресурсов (Ресурс 1, Ресурс 2, Ресурс 3, Ресурс 4), которые есть в наличие на фирме в определенном количестве (Запас). Также имеется информация сколько нужно каждого ресурса на производство единицы продукции (Норма), соответственно Товара А и Товара Б. Нужно найти количество выпуска (План) Товара А и Товара Б, которое максимизирует выручку (Доход).

Далее нам надо установить взаимосвязи между ограничениями, планом и целевой функцией. Для этого создадим дополнительный столбец (Использовано), в котором введем формулу СУММПРОИЗВ(Ресурс_M; План). Ресурс_N - норма затрат M-го ресурса на производство единицы продукции Товара А или Б, а План – количество продукции, которое мы ищем. В ячейки Доход вводим формулу СУММПРОИЗВ(Цена; План). Таким образом, мы заполнили формулами столбец Использовано и ячейку Доход. Так как план это переменные, от которых зависит количество использованных ресурсов и доход, то ячейки с формулами напрямую зависят от данных, которые там появятся в результате поиска решений.

Из вышесказанного можно сделать следующие выводы, что для каждой задачи оптимизации должны быть определены три компонента:

1.Формула целевой функции (ЦФ - ячейка Доход, для которой ищется экстремум);

2.Формулы на ограничение для искомых значений (ОФ - использование каждого ресурса);

3.Изменяемые ячейки (переменные значения или искомое - План);

6

Параметры средства Поиск решения

Максимальное время - служит для ограничения времени, отпущенного на поиск решения задачи. В этом поле можно ввести время в секундах, не превышающее 32 767 (примерно девять часов); значение 100, используемое по умолчанию, вполне приемлемо для решения большинства простых задач.

Предельное число итераций - управляет временем решения задачи путем ограничения числа вычислительных циклов (итераций).

Относительная погрешность - определяет точность вычислений. Чем меньше значение этого параметра, тем выше точность вычислений.

Допустимое отклонение - предназначено для задания допуска на отклонение от оптимального решения, если множество значений влияющей ячейки ограничено множеством целых чисел. Чем больше значение допуска, тем меньше времени требуется на поиск решения.

Сходимость - применяется только к нелинейным задачам. Когда относительное изменение значения в целевой ячейке за последние пять итераций становится меньше числа, указанного в поле Сходимость, поиск прекращается.

Линейная модель - служит для ускорения поиска решения путем применения к задаче оптимизации линейной модели. Нелинейные модели предполагают использование нелинейных функций, фактора роста и экспоненциального сглаживания, что замедляет вычисления.

Неотрицательные значения - позволяет установить нулевую нижнюю границу для тех влияющих ячеек, для которых не было задано соответствующее ограничение в диалоговом окне «Добавить ограничение».

Автоматическое масштабирование - используется, когда числа в изменяемых ячейках и в целевой ячейке существенно различаются.

Показывать результаты итераций - приостанавливает поиск решения для просмотра результатов отдельных итераций.

Загрузить модель - после щелчка на этой кнопке отрывается одноименное диалоговое окно, в котором можно ввести ссылку на диапазон ячеек, содержащих модель оптимизации.

Сохранить модель - служит для отображения на экране одноименного диалогового окна, в котором можно ввести ссылку на диапазон ячеек, предназначенный для хранения модели

оптимизации.

Оценка линейная - выберите этот переключатель для работы с линейной моделью. Оценка квадратичная - выберите этот переключатель для работы с нелинейной моделью.

Разности прямые - используется в большинстве задач, где скорость изменения ограничений относительно невысока. Увеличивает скорость работы средства Поиск решения.

Разности центральные - используется для функций, имеющих разрывную производную. Данный способ требует больше вычислений, однако его применение может быть оправданным, если выдано сообщение о том, что получить более точное решение не удается.

Метод поиска Ньютона - требует больше памяти, но выполняет меньше итераций, чем в методе сопряженных градиентов.

Метод поиска сопряженных градиентов - реализует метод сопряженных градиентов, для которого требуется меньше памяти, но выполняется больше итераций, чем в методе Ньютона. Данный метод следует использовать, если задача достаточно большая и необходимо экономить память или если итерации дают слишком малое отличие в последовательных приближениях.

7

Отчеты

По найденным результатам можно создавать отчеты. Такие отчеты полезны для сравнения влияния на решение различных ограничений или исходных данных. Потому они являются очень важными инструментом для анализа полученных результатов и последующего их улучшения в зависимости от возможностей и ресурсов предприятия.

Отчеты бывают трех типов: по результатам (Answer), по устойчивости (Sensitivity), по пределам

(Limit).

Тип выбирается по окончании поиска решений в диалоговом окне Результаты поиска решений (Solver results) в списке Отчеты (Reports). Можно выбрать сразу два или три типа с помощью мыши при нажатой клавиши <Ctrl>. Каждый отчет будет создан на отдельном рабочем листе.

Отчет по результатам

Отчет по результатам содержит информацию о трех компонентах задачи оптимизации: целевой функции (Целевая ячейка), плана (Изменяемые ячейки), и ограничений (Ограничения).

1 – начальное значение целевой функции при начальном опорном плане (3); 2 – максимальное или минимальное значение (в зависимости от задачи) целевой функции. В нашем

случае - 168,57 д. ед.; 3 – начальный опорный план;

4 – оптимальный план задачи. В нашем случае, чтобы получить максимальную выручку в размере 168,57 д. ед., нужно производить 57,14 единиц товара А и 71,43 единиц товара Б (понятно, что товар должен

8

быть в целых единицах, но если бы мы задали такой параметр, то не получили отчеты, которые нужны для анализа и улучшение полученных результатов);

5 – показывает количество использованных ресурсов на производство при оптимальном плане; 6 – формулы ограничений;

7 – показывает влияние ограничений на конечный результат. Если статус отражает значение «связанное», тогда данное ограничение влияет на полученный план, если «не связан» - значит не влияет. В нашем случае ресурс 1 и 4 имеют статус «не связан» - это значит, что эти ресурсы не ограничивают возможности в производстве, что не скажешь про ресурс 2 и 3, которые использованы полностью;

8 – разница между имеющемся в наличие количеством ресурсов и использованных при полученном

плане.

Вывод: большинство данных отчета занесены в таблицу, другие – просто не нужны для анализа. Значит этот вид отчета можно не выводить!

Отчет по устойчивости

Отчет по устойчивости (более точным за содержанием был бы перевод с оригинала sensitivity - чувствительность) является наиболее интересным и полезным – он определяет чувствительность структуры полученного плана относительно изменений начальных данных и, согласно, дальнейшим действиям менеджера с целью улучшения результатов. Такой отчет не создается для моделей, значения в которых ограничены множеством целых чисел. В случае нелинейных моделей отчет содержит данные для градиентов и множителей Лагранжа.

1 – оптимальный план задачи. В нашем случае, чтобы получить максимальную выручку в размере 168,57 д. ед., нужно производить 57,14 единиц товара А и 71,43 единиц товара Б;

2 – нормированная стоимость касается неизвестных плана. Это неудачный перевод с оригинала reduced cost, которую можно было перевести, как «приведенная цена», т.е. цена, которая уменьшает целевую функцию. Это показатель того, как изменится оптимальное значение ЦФ при выпуске продукции, которой нет в оптимальном плане. Например, если нормированная стоимость товара А была бы -3 (хотя в нашем случае это 0), то принудительный выпуск 2 единиц товара А, которых нет в оптимальном плане привел бы к уменьшению Дохода на 2•3=6 и составлял бы 168,57-6= 162, 57 д. ед.

3 – коэффициенты ЦФ; 4, 5 – границы изменений значений коэффициентов ЦФ при условии, что количество оптимальной

продукции (план) не изменится. Например, если целевой коэффициент товара А (КА) равен 1,15 (цена за 1 единицу товара), то если изменять его изменяя его в рамках 1,15-0,43< КА<1,15+0,074 (0,72< КА<1,224), план не изменится, но значения дохода может уменьшится или увеличится. Это можно проверить если запустить программу «Поиск решений», после внесений в таблицу изменений данного коэффициента.

9

6 – количество использованных ресурсов; 7 – теневая цена (в нелинейной модели это множитель Лагранжа) касается ограничений, то есть,

определенное значение указывает на «ценность» ограниченного ресурса в сравнении с другими ресурсами. Этот показатель указывает, как изменится оптимальное значение ЦФ (Доход) при изменении запасов ресурсов на 1 единицу. Например, если увеличить запас ресурса 3 на 10 единиц, то доход увеличится на

10•0,61=6,1 и будет составлять 168,57+6,1=174,67 д. ед. (вернее 168,57+6,14=174,71) 8 – запасы ресурсов;

9, 10 – задают диапазон для 8, в котором действует теневая цена 7 (аналогично 4, 5). Например, диапазон ресурса 3: 200<ресурс 3<340. Если ресурс 3 увеличить на 10 единиц, то доход увеличится на 6,1 и будет составлять 174,67. Если этот ресурс увеличить на 110 единиц, то про доход ничего сказать нельзя, поскольку мы вышли за указанные пределы.

Вывод: для конечного результата оптимизации нужен только отчет по устойчивости плана, поскольку там содержится наиболее существенная информация.

Отчет по пределам

Отчет по пределам состоит из двух частей, которые касаются значений ЦФ (Целевое) и плана (Изменяемое).

1– значение ЦФ (Доход);

2– оптимальный план задачи;

3– наименьшее значения, которое может принять неизвестное (в нашем случае количество товара А и Б имеет Нижний предел 0, поскольку мы в Параметрах Поиска решений отметили Неотрицательные значения);

4– это значение, которое будет в целевой ячейке (Доход), если неизвестное будет равно Нижнему пределу;

5– это наибольшее значение, которое может содержать неизвестные, чтобы получить максимальную ЦФ;

6– это значение, которое будет в целевой ячейке (Доход), если неизвестные будут равны Верхнему пределу.

Вывод: как видим, отчет по пределам содержит результаты, которые мы уже имеем в таблице, поэтому его можно в дальнейшем не выводить.

10