Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000547.doc
Скачиваний:
91
Добавлен:
30.04.2022
Размер:
15.47 Mб
Скачать

Глава 2. Методы оптимизации

В чем заключается работа управленца? Если очень кратко, то создать такие условия, чтобы организация, в которой трудится управленец, получила максимум прибыли, рентабельности, производительности труда, минимум издержек, себестоимости, затрат и т. д. То есть имеется некоторый итоговый показатель, для которого нужно добиться максимального или минимального (оптимального) значения. Математические методы решения подобных задач называются методами оптимизации. Рассмотрим некоторые из них.

2.1. Методы оптимального программирования

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

Функцию, экстремальное значение которой нужно найти в условиях экономических возможностей, называют целевой, показателем эффективности или критерием оптимальности. Экономические возможности формализуются в виде системы ограничений. Все это составляет математическую модель. Математическая модель задачи — это отражение оригинала в виде функций, уравнений, неравенств, цифр и т. д. Модель задачи математического программирования включает:

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

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

Эти условия следуют из ограниченности ресурсов, которыми располагает общество в любой момент времени, из необходимости удовлетворения насущных потребностей, из условий производственных и технологических процессов. Ограниченными являются не только материальные, финансовые и трудовые ресурсы. Таковыми могут быть возможности технического, технологического и вообще научного потенциала. Нередко потребности превышают возможности их удовлетворения. Математически ограничения выражаются в виде уравнений и неравенств. Их совокупность образует область допустимых решений (область экономических возможностей). План, удовлетворяющий системе ограничений задачи, называется допустимым. Допустимый план, доставляющий функции цели экстремальное значение, называется оптимальным. Оптимальное решение, вообще говоря, не обязательно единственно, возможны случаи, когда оно не существует, имеется конечное или бесчисленное множество оптимальных решений. Линейное программирование — раздел оптимального программирования, применяемый при разработке методов отыскания экстремума линейных функций нескольких переменных при линейных дополнительных ограничениях, налагаемых на переменные.

Задачи оптимального и в том числе линейного программирования решаются в EXCEL с помощью специальной надстройки «Поиск решения» («Solver Add – in1»). Рассмотрим решение таких задач на примерах. Сначала рассмотрим общую методику решения оптимизационных задач на ЭВМ, а затем перейдем к конкретным экономическим задачам.

ПРИМЕР 2.1.1. Решить на ЭВМ задачу линейного программирования, которая имеет вид

Решение. Предварительно необходимо в электронной таблице подготовить исходные данные. Для этого, запустив MS Excel, выделим первую строчку под переменные. В ячейке А1 введем подпись «Переменные» и назначим под переменные ячейки В1, С1 и D1. Введем в эти ячейки любые произвольные числа, например единицы. Во второй строке определим целевую функцию. В ячейке А2 введем подпись «Целевая» и в соседней В2 введем формулу, зависящую от переменных «=2*В1+3*С1–D1» (для ввода ссылок на ячейку достаточно щелкнуть мышью по ней, кавычки не вводить). Нажав Enter, получим результат 4. В третью строку вводим левые части основной системы ограничений. В А3 вводим подпись «Ограничения» и в В3 ставим курсор и вводим в виде формулы левую часть ограничения : «=3*В1+С1–D1». Аналогично в ячейки С3 и D3 вводим левые части других ограничений соответственно: «=2*В1+4*С1+D1» и «=3*С1–4*D1». Подготовительный этап закончен.

Вызываем надстройку ПОИСК РЕШЕНИЯ (Solver Add – in). При работе в «EXCEL 2003» или ранней версии заходим в меню СЕРВИС, выбираем НАДСТРОЙКИ и проверяем наличие флажка напротив «Поиск решения», «ОК», заходим вновь в меню СЕРВИС, выбираем ПОИСК РЕШЕНИЯ. При работе в «EXCEL 2007» или более поздней версии нажимаем левой кнопкой мыши по круглой кнопке “Office” в верхнем левом углу экрана или заходим в меню «Файл» (для версии 2010 и выше), внизу выбираем «Параметры Excel», слева выбираем НАДСТРОЙКИ, нажимаем кнопку «Перейти» внизу окна и в открывшемся окне проверяем наличие флажка напротив «Поиск решения», «ОК». В меню ДАННЫЕ выбираем ПОИСК РЕШЕНИЯ.

Откроется окно поиска решения. В нем ставим окно в поле «Установить целевую» (Set Target Cell) и далее щелкаем мышью по ячейке В2 с целевой функцией. В окне появится $B$2. Далее проверяем, что флажок ниже поля стоит напротив надписи «Равной максимальному значению» (Equal to … Max … Value of: ). После ставим курсор в поле «Изменяя ячейки» (By Changing Cell) и обводим ячейки с переменными В1, С1 и D1. В поле появится $B$1:$D$1. В нижней части окна находится поле «Ограничения» (Subject to the Constraints). Для того чтобы ввести ограничения, нажимаем кнопку «Добавить» (Add), откроется окно «Добавление ограничения» (Add Constraints). В левом поле «Ссылка на ячейку» (Cell Reference) вводим ссылку на левую часть первого ограничения — ячейку В3, в центральном окне определяем знак  и в правом «Ограничения» (Constraints) набираем правую часть ограничения — число 17. Нажимаем «ОК», видим, что ограничение появилось в окне. Нажимаем вновь «Добавить» (Add), вводим «С3» «« и «15». Вновь нажимаем «Добавить» (Add), вводим «D3» «« и «5». Для ввода дополнительных ограничений Вновь нажимаем «Добавить» (Add), ставим курсор в левое поле и обводим ячейки В1, С1 и D1 (результат $B$1:$D$1), в среднем окне ставим «» и в правом число 0. Снова «Добавить» (Add), в левое поле вводим В1, а в центральном выбираем «цел.» (int.). В правом окне появится «целое» (integer). Все ограничения введены. Для запуска вычислений нажимаем кнопку «Выполнить» (Solve). Появляется надпись, что решение найдено (Solver Found a Solution). Выбираем «Сохранить найденное решение» (Keep Solver Solution) и «ОК», получаем результат: в ячейках В1, С1 и D1 видны значения переменных , соответствующие оптимальному решению: 4; 1,75 и 0.

В ячейке В2 — значение целевой функции: 13,25.

ПРИМЕР 2.1.2. Найти максимум функции при ограничениях:

РЕШЕНИЕ. Вводим на отдельном листе в ячейки от А1 до С1 произвольные значения, например единицы. В ячейку А2 вводим целевую функцию «=3*A1*A1–4*B1+3*C1*C1*C1» (кавычки не вводить), в ячейку А3 вводим левую часть основного ограничения «=4*A1+3*B1+2*C1». Вызываем, как в предыдущем примере, «Поиск решения (Solver…)». Ссылка на целевую ячейку (Set Target Cell) — А2, стремится к максимуму. Изменяемые ячейки (By Changing Cell) — А1–С1. Ограничения (Subject to the Constraints): $А$38; $A$1:$C$10; $A$1:$C$1 — целое (int). Запуская надстройку, получаем оптимальное решение: Целевая функция при этом равна .

Пример 2.1.3. Рассмотрим решение ЗАДАЧИ ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНОГО АССОРТИМЕНТА ПРОДУКЦИИ.

Фирма производит и продает два типа товаров. Фирма получает прибыль в размере 12 тыс. р. от производства и продажи каждой единицы товара 1 и в размере 4 тыс. р. от производства и продажи каждой единицы товара 2. Фирма состоит из трех подразделений. Затраты труда (чел.-дни) на производство этих товаров в каждом из подразделений указаны в табл. 2.1.1.

Таблица 2.1.1

Подразделение

Трудозатраты, чел.-дней на 1 шт.

товар 1

товар 2

1

2

3

1

1

2

2

3

3

Руководство рассчитало, что в следующем месяце фирма будет располагать следующими возможностями обеспечения произ­водства трудозатратами: 800 чел.-дней в подразделении 1; 600 — в подразделении 2 и 2000 — в подразделении 3. Сколько единиц товара 1 и товара 2 нужно выпустить, чтобы суммарная полученная прибыль была максимальна?

РЕШЕНИЕ. Для решения задачи составляем математическую модель. Пусть — количество товара 1, — количество товара 2. Целевая функция и ограничения имеют вид

Вводим на новом листе в А1 слово «Переменные», в В1 и С1 вводим единицы, в А2 слово «Целевая», в В2 «=12*B1+4*C1», в А3 слово «Ограничения», в В3 «=B1+2*C1», в С3 «=B1+3*C1», в D3 «=2*B1+3*C1». Вызываем «Поиск решения (Solver…)». В поле «Установить целевую» (Set Target Cell) делаем ссылку на В2. Далее нужно проверить, что флажок ниже поля стоит напротив надписи «Равной максимальному значению» (Equal to … Max … Value of:). После ставим курсор в поле «Изменяя ячейки» (By Changing Cell) и обводим ячейки с переменными В1 и С1. В нижней части окна находится поле «Ограничения» (Subject to the Constraints). Для того чтобы ввести ограничения, нажимаем кнопку «Добавить» (Add), откроется окно «Добавление ограничения» (Add Constraints). В левом поле «Ссылка на ячейку» (Cell Reference) вводим ссылку на левую часть первого ограничения — ячейку В3, в центральном окне определяем знак  и в правом «Ограничения» (Constraints) набираем правую часть ограничения — число 800. Нажимаем «ОК», видим, что ограничение появилось в окне. Нажимаем вновь «Добавить» (Add), вводим «С3» «« и «600». Вновь нажимаем «Добавить» (Add), вводим «D3» «« и «2000». Для ввода дополнительных ограничений вновь нажимаем «Добавить» (Add), ставим курсор в левое поле и обводим ячейки В1 и С1, в среднем окне ставим «« и в правом число 0. Снова «Добавить» (Add), в левом поле обводим В1 и С1, а в центральном выбираем «цел.» (int.). В правом окне появится «целое» (integer). Все ограничения введены. Для запуска вычислений нажимаем кнопку «Выполнить» (Solve). Появляется надпись, что решение найдено (Solver Found a Solution). Выбираем «Сохранить найденное решение» (Keep Solver Solution) и «ОК», видим результат: в ячейках В1, С1 приведены значения переменных , соответствующие оптимальному решению: 600 и 0. В ячейки В2 — значение целевой функции: 7200. Следовательно, оптимально выпускать товар 1 в количестве 600 единиц, а товар 2 не выпускать. Ожидается прибыль 7200 тыс. р.

Пример 2.1.4. ТРАНСПОРТНАЯ ЗАДАЧА.

Приведем решение транспортной задачи. Компания «Стройгранит» производит добычу строительной щебенки и имеет на территории региона три карьера. Запасы щебенки на карьерах соответственно равны 800, 900 и 600 тыс. тонн. Четыре строительные организации, проводящие строительные работы на разных объектах этого же региона, дали заказ на поставку соответственно 300, 600, 650 и 500 тыс. тонн щебенки. Стоимость перевозки 1 тыс. тонн щебенки с каждого карьера на каждый объект приведены в табл. 2.1.2.

Необходимо составить такой план перевозки (количество щебенки, перевозимой с каждого карьера на каждый строительный объект), чтобы суммарные затраты на перевозку были минимальными.

Таблица 2.1.2

Карьер

Строительный объект

1

2

3

4

1

8

4

1

7

2

3

2

7

3

3

13

5

11

8

РЕШЕНИЕ. Данная транспортная задача является открытой, так как запасы поставщиков 800 + 900 + 600 = 2300 больше спроса потребителей

300 + 600 + 650 + 500 = 2050. Математическая модель ЗЛП в данном случае имеет вид

— количество щебенки, перевозимой с i-го карьера на j-й объект. Тогда целевая функция равна

Ограничения имеют вид

Решение проводится по аналогии с предыдущими примерами. Следует отметить, что в задаче число переменных, для которых проводится решение, равно 3 × 4 = 12, поэтому для исключения ошибок ввода данных стоит ввести переменные не в строку, а в прямоугольную таблицу из 3-х строк и 4-х столбцов, а затем при вводе ограничений использовать строки и столбцы этой таблицы.

Рассмотрим задачу оптимального распределения денежных средств между инвестиционными проектами.

Пусть некоторый инвестор имеет n пакетов денежных средств, которые он хочет вложить в том или ином количестве в один или несколько из k проектов. Пусть все денежные пакеты равны, причем инвестировать пакеты в проекты можно кратно одному. Также допустим, что в один проект можно инвестировать не более m пакетов. В результате инвестирования каждый проект, получивший средства, через определенный период времени принесет инвестору прибыль, которая зависит от числа вложенных в проект финансовых пакетов.

Пусть aij — прибыль, полученная инвестором от j-го проекта при условии, что в него было вложено i финансовых пакетов (i = 0, 1, …, m; j = 1, 2, … , k). Назовем А = aij матрицей прибылей, причем ее элементы не обязательно должны быть целыми. Очевидно, что a0j = 0. Необходимо так распределить финансовые пакеты по проектам, чтобы суммарная прибыль (равная сумме прибылей от каждого проекта) была максимальна.

Введем переменные:

i = 1,2, …, m; = 1, 2, …, k.

Для построения целевой функции введем матрицу эффективности , которая имеет смысл дополнительной прибыли, полученной от вложения в j-й проект одного дополнительного инвестиционного пакета. Для решения введем еще одну матрицу , i = 2, 3, …, m; j = 1, 2, …, k. Модель задачи будет иметь вид

При нахождении переменных при оптимальном решении инвестиции , дающие наибольшую прибыль, будут равны .

ПРИМЕР 2.1.5. Инвестору предложили вложить имеющиеся средства в количестве 12 д. е. в один или несколько из 5 имеющихся проектов, кратно одной д. е., но не более 7 д. е. в один проект. Матрица прибылей А приведена в табл. 2.1.3.

Таблица 2.1.3

j

i

Проекты

1

2

3

4

5

7

23

23

22

24

22

6

20

22

21

22

21

5

19

19

20

21

20

4

18

17

16

17

18

3

13

14

15

14

13

2

9

10

11

10

9

1

6

5

4

5

7

0

0

0

0

0

0

Как оптимально распределить денежные средства по проектам так, чтобы суммарная прибыль была максимальной (решить на ЭВМ)?

РЕШЕНИЕ. Открываем лист электронной таблицы EXCEL и вводим исходные данные согласно рис. 2.1.1.

Рис. 2.1.1

Исходные данные содержат матрицу А, взятую из условия, матрицу переменных х, значения которых могут быть любыми числами, на рис. 2.1.1 это единицы, остальные матрицы рассчитываем. Ставим курсор в ячейку I5 и вводим в нее формулу «=B5–B6». Автозаполнением распространяем эту формулу на всю таблицу, то есть на ячейки I5–M11. Ставим курсор в I15 и вводим формулу «=B15–B16». Автозаполнением распространяем эту формулу на всю таблицу, то есть на ячейки I15–M20. Вводим целевую функцию и сумму переменных. Ставим курсор в В23 и вводим функцию «=СУММПРОИЗВ» (I5:M11;B15:F21), а затем ставим курсор в D23 и вводим «=СУММ(B15:F21)», где функции «суммпроизв» и «сумм» можно вызвать с помощью мастера функций в категории «Математические».

Вызываем надстройку ПОИСК РЕШЕНИЯ (Solver Add – in). При работаете в «EXCEL 2003» или ранней версии заходим в меню СЕРВИС, выбираем НАДСТРОЙКИ и проверяем наличие флажка напротив «Поиск решения», «ОК», заходим вновь в меню СЕРВИС, выбираем ПОИСК РЕШЕНИЯ. Если Вы работаете в «EXCEL 2007» или более поздней версии, то нажимаем левой кнопкой мыши по круглой кнопке “Office” в верхнем левом углу экрана, внизу выбираем «Параметры Excel», слева выбираем НАДСТРОЙКИ, нажимаем кнопку «Перейти» внизу окна и в открывшемся окне проверяем наличие флажка напротив «Поиск решения», «ОК». В меню ДАННЫЕ выбираем ПОИСК РЕШЕНИЯ.

В открывшемся окне ставим курсор в поле «Установить целевую» (Set Target Cell), щелкаем мышью по ячейке В23 с целевой функцией. Далее проверяем, что флажок ниже поля стоит напротив надписи «Равной максимальному значению» (Equal to … Max … Value of:). После ставим курсор в поле «Изменяя ячейки» (By Changing Cell) и обводим ячейки с переменными В15–F21.

Для того чтобы ввести ограничения, нажимаем кнопку «Добавить» (Add), открывается окно «Добавление ограничения» (Add Constraints). В левом поле «Ссылка на ячейку» (Cell Reference) вводим ссылку на левую часть первого ограничения — обводим ячейки I15‑M20, в центральном окне определяем знак  и в правом «Ограничения» (Constraints): 0. Нажимаем вновь «Добавить» (Add), обводим диапазон «В15:F21», «« и «1». Нажимаем «Добавить» (Add), вводим «В15:F21», «≥» и «0». Вновь «Добавить» (Add), «В15:F21», в среднем поле выбираем «цел.» (в правом появится «целое»). Выбираем «Добавить» (Add), вводим «D23», «« и «E1».

Для запуска вычислений нажимаем кнопку «Выполнить» (Solve). Через некоторое время появляется надпись, что решение найдено (Solver Found a Solution). Выбираем «Сохранить найденное решение» (Keep Solver Solution) и «ОК». На последнем этапе ставим курсор в I23 и вводим функцию «=СУММ(B15:B21) », автозаполняем результат на I23–М23. Видим результат в ячейках I23–M23. Он говорит о том, что оптимальное вложение средств — 4 в первый проект, по 2 во второй и третий, 3 в четвертый и 1 д. е. в пятый. Целевая функция, равная суммарной прибыли при оптимальном решении, равна 60 д. е.