Смекни!
smekni.com

Математические методы исследования операций в экономике (стр. 31 из 37)

5.2. ПРИМЕРЫ ЗАДАЧ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ

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

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

В данной задаче рассматривается некоторый экономиче­ский объект (фирма, магазин, завод и т. п.), функционирую­щий в течение конечного числа периодов, обозначаемых но­мерамиk (k∊ l:n). Каждый периодk характеризуется нормативной потребностью в определенном количестве одно­типных работников mk. Тот же объем работ может быть вы­полнен другим количеством сотрудников ξk, что, однако, влечет дополнительные затраты либо за счет нерационально­го использования рабочей силы, либо ввиду повышения опла­ты за интенсивный труд. Размеры этих дополнительных издер­жек описываются функциямиgk k - mk), где (ξk - mk) — отклонение фактической численности работающих ξk , от пла­ново необходимой mk , причемgk (0)=0. Управленческое ре­шение на шаге k заключается в выборе величины изменения числа сотрудников хkZ, что однозначно определяет количе­ство работающих в течение следующего периода: ξk+1k+хk. Затраты по изменению количества работников (найму и уволь­нению) при переходе от периода k к периоду (k+1) задаются функцией uk (хk) , где также uk (0)=0. Тогда суммарные издер­жки, вызванные принятым на шаге k решением, характеризу­ются значением функции

План задачи (стратегия управления) х= (x1, ..., хn-1, 0) за­ключается в выборе поэтапных изменений количества работни­ков, а его суммарная эффективность описывается аддитивной функцией

На основе сформулированной модели ставится задача мини­мизации целевой функции (издержек) (5.15). Добавим, что по­становка задачи не будет корректной, если не задать начальное условие на количество работников. Существуют две модифика­ции данной задачи, определяемые типом начального условия:в первом случае задается исходное значение на первом этапеm1, а во втором — требуемое количество в n-м периоде mn.

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

n(ξ)=0, поэтому минимальные издержки полностью определяются количеством работников в последнем периоде:

Для остальных предшествующих шагов основное рекуррент­ное соотношение примет вид

где Λk(ξ) — минимальные затраты с k-го по п-й периоды, в пред­положении, что количество работников в k-й период равно ξ. Точки

л(ξ), в которых достигаются минимумы (5.17), опреде­ляют условное оптимальное управление на каждом шаге.

Последовательно определяя

л(ξ) и дойдя до этапа 1, мы смо­жем найти безусловное оптимальное управление x1* из того условия, что на начало первого периода численность работни­ков должна составлятьξ1* = m1, a именно

Остальные компоненты оптимального плана хk* и состояния ξk*, образующие оптимальную траекторию, последовательно находятся по рекуррентным формулам

после чего не составляет труда вычислить оптимальное значе­ние целевой функции (5.15).

Остановимся теперь на втором случае, когда задано фи­нальное состояние управляемого объекта, т. е. желаемое коли­чество работников на последнем периодеξn*=mn . Очевидно, что в данной ситуации следует поступить с точностью «до наобо­рот» и рассмотреть процесс принятия решений от начала к кон­цу. Наилучшее условное управление на первом шаге

1(ξ) будет найдено в процессе вычисления функции

где состояниеξ ≥0 является возможным количеством работ­ников на начальном шаге. Соответственно, основное рекуррент­ное соотношение выразит минимальные издержки вплоть до k-го периода через таковые для предыдущих периодов (с перво­го по (k-1)-й) при условии, что численность работников в k-й период будет равна ξ:

Попутно будут найдены функции

k(ξ), k∊2:n, определяю­щие условные оптимальные управления. На последнем перио­де, в силу начального условия,ξn*= mn. Отсюда путем последо­вательного решения рекуррентных уравнений могут быть найдены оптимальные численности работниковξ*k и безуслов­ные оптимальные управления:

В заключение, как и в первом случае, подсчитывается мини­мальная величина издержек.

Обобщая изложенные схемы решения, можно прийти к вы­воду:

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

Продемонстрируем процесс решения задачи о найме работ­ников на конкретном примере:

Для функционирования некоторого предприятия в течение четырех месяцев (нумеруемых от 1 до 4) по нормам требуются следующие количества работников одинаковой квалификации:

причем перед началом первого месяца (в нулевом месяце) фак­тически имеетсяξ0 =2 сотрудников. Администрация планирует в конце каждого месяцаk (кроме последнего) корректировать число работающих на величину xk , k∊0:4, х4 =0. На прием одного сотрудника необходимо затратить 9 у.е., а на увольне­ние — 6 у. е. Предполагается, что расходы на содержание избы­точного работника составляют 8 у. е., а в случае нехватки персо­нала приходится нести затраты в размере 12 у. е. за каждое вакантное место.

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

В начале решения запишем в аналитической форме функции издержек на прием-увольнение сотрудников (и), а также насодержание ненормативного штата (g). С этой целью введем функции

Оценки эффективности управления на каждом шаге имеют вид:

Поскольку в поставленной задаче задано начальное условие ξ*0 =2, ее решение начинается с конца, и, следовательно, будут применяться рекуррентные соотношения (5.17). С технической точки зрения будет удобно на каждом шаге составлять две табли­цы значений: функции издержек, получаемых начиная с текуще­го шага в зависимости от текущего состояния и управления,

и функции минимальных издержек в зависимости от текущего состояния

Для сокращения объема табулируемых значений можно вос­пользоваться свойством выпуклости функции Ωk (xk , ξ), выте­кающим из выпуклости f и g. Из выпуклости функции Ωk (xk , ξ)следует, что заполнять таблицу ее значений необходимо лишь до тех пор, пока они уменьшаются, т. е. можно остановиться, как только очередное значение оказывается больше предыду­щего. Отметим, что подобные приемы очень широко использу­ются в динамическом программировании. Разумеется, иллюст­рируемые методы не рассчитаны на ручной счет, поскольку связаны с очень большим объемом рутинных вычислений. Радикраткости ниже приведены только фрагменты таблиц, содержа­щие интересующие нас значения.