WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 |   ...   | 13 | 14 || 16 | 17 |   ...   | 19 |

2.2. Механизмы планирования (выбора подрядчиков по корпоративным проектам) В настоящем разделе формулируется и решается задача выбора вариантов реализации (подрядчиков, исполнителей работ и т.д.) корпоративных проектов. Для этого рассматриваются характеристики проектов, и задача формулируется в общем виде (подразделы 2.1 и 2.2), описываются ограничения (подразделы 2.3 и 2.4), предлагается метод решения, заключающийся в декомпозиции задачи на два уровня (подраздел 2.5) и приводятся алгоритмы решения задач верхнего (подраздел 2.6) и нижнего (подраздел 2.7) уровней.

2.1. Постановка задачи. Рассмотрим корпоративную программу, состоящую из m проектов с номерами i = 1,..., M. Для каждого проекта проводится тендер с участием нескольких подрядчиков – аэ (претендентов на роль исполнителей работ по проектам), каждый из которых предлагает свой вариант реализации данного проекта.

Вариант характеризуется следующими параметрами:

- последовательность затрат ct 0, t = 0, …, T;

- последовательность возвратов (доходов) rt 0, t = 0, …, T, где T – срок реализации проекта. Содержательно, в проект инвестируются денежные средства в соответствии с графиком затрат ct, отдача от инвестиций происходит в соответствии с графиком возвратов rt.

Заказчик (корпоративный центр и УК) рассматривают задачу оптимального инвестирования заемных средств, предоставляемых в соответствии с кредитным потоком gt, t = 0, …, T. При gt > 0 в момент t сумма gt предоставляется на счет заказчика кредитором (банком), а при gt < 0 сумма gt должна быть возвращена кредитору.

Предположим, что последовательность gt имеет ровно одну перемену знака с плюса на минус (с некоторого момента времени заказчик начинает погашать свои обязательства перед кредитором).

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

Пусть i1 – процентная ставка по банковским кредитам (кредитная ставка). Тогда долг заказчика на момент t составляет t Gt = gk (1+ i1)t-k.

k =Условие GT = 0 означает выполнение обязательств заказчика перед кредитором на момент окончания всех проектов. Таким образом, последний платеж заказчика кредитору составляет T -gT = - gk (1+ i1)T -k.

k =Для удобства учета финансовых потоков определим следующие понятия:

«счет заказчика»:

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

«счет проекта»:

- на данный счет поступают кредитные средства со счета заказчика на покрытие затрат по проекту;

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

Пусть i – средняя процентная ставка по депозитным вкладам (рыночная ставка доходности). Тогда – коэффициент v = 1+ i дисконтирования. Обозначим PVG – приведенная величина креT дитного потока: PVG = gkvk.

k =Определим PVG+ – приведенную величину кредита (приведенная величина денежных средств, которые заказчик инвестирует в проекты): PVG+ = gkvk.

k:gk >2.2. Характеристики проекта. Обозначим PVR – приведенная T величина возвратов по проекту: PVR = vk, где rk – последоваr k k =тельность возвратов. Обозначим PVC – приведенная величина T затрат по проекту: PVC = vk.

c k k =Тогда PV – приведенная стоимость инвестиционного проекта:

T T PV = vk - vk.

r c k k k =0 k =Если PV > 0, то инвестировать денежные средства в проект выгоднее, чем наращивать их в банке.

Обозначим PVBt – приведенный баланс проекта на момент t t времени t: PVBt = vk - vk.

r c k k k =0 k =Определим минимальную величину денежных средств, необходимых для реализации проекта: xmin = - min PVBt (если на 0t T счете проекта в момент t = 0 имеется сумма xmin, то баланс проекта с учетом этой суммы будет неотрицательным).

Обозначим N(i)– количество вариантов реализации (количество потенциальных подрядчиков) для проекта i. По каждому варианту можно вычислить минимальную величину средств, необходимых для его реализации.

Для каждого варианта реализации j по проекту i определены t t вектора rij и cij, t = 0, …, T, компонентами которых являются величины возвратов и затрат, предложенные соответствующим подрядчиком.

Для каждого проекта i определен вектор xij (j = 1,..., N(i)), компонентами которого являются значения минимальных величин средств, необходимых для реализации варианта j по проекту i.

Будем считать, что xij < xij+1 (варианты проекта i пронумерованы в порядке возрастания минимальных величин средств, необходимых для их реализации) Для каждого проекта i определен вектор PVij (j = 1,.., N(i)), компонентами которого являются значения приведенной стоимости проекта i в случае выбора варианта реализации j.

2.3. Ограничения на объем инвестиций. Введем следующие обозначения:

- xi – величина инвестиций в проект i.

- Xi – множество, включающее нуль и значения величин минимальных средств, отвечающих всем вариантам проекта i, Xi = {0, xij, j = 1, …, N(i)};

- K = PVG+ – приведенная величина кредита (приведенная величина денежных средств, которые заказчик инвестирует в проекты).

Обозначим fi(x) – кусочно-постоянную функцию приведенной стоимости проекта i в зависимости от величины вложенных в него 0, 0 x xiPV средств fi (x) =, xij < x < xij +1, j = 1,..., N (i) -1. Точки разрыва ij PViN (i), x xiN (i ) функции fi(x) соответствуют различным вариантам проекта.

Предположим, что при выборе варианта реализации проекта i заказчик (инвестор) производит предварительный отбор вариантов, предложенных соответствующими участниками тендера: если на интервале ( xij -1, xij +1 ) приведенная стоимость проекта i уменьша1 ется, то вариант с номером j1 должен быть отброшен (реализация варианта j1 по проекту i не имеет смысла, так как можно выбрать вариант j1 – 1, прибыль от которого будет выше).

В этом случае необходимо переопределить характеристики задачи xij, PVij, N(i), при которых fi(x) будет неубывающей функцией.

Тогда задача оптимизации формулируется следующим образом:

m i =1 fi(xi ) max m, xi K i = 0 xi max xij 0 j N (i) m где xi K – ограничение на финансовые ресурсы, i =0 xi max(i) xij – ограничение на объем инвестиций в проект i.

0 j N Отметим, что всегда существует оптимальное решение задачи xi* Xi, i = 1,..., N(i). Если при этом x*i = 0, то проект i не реализуется.

2.4. Ограничение на баланс счета заказчика. Оптимальное решение задачи x*i определяет выбор соответствующего варианта реализации по проекту i.

* * Обозначим J = { j1,..., jm} – множество, состоящее из номеров вариантов, реализуемых по проекту i (i = 1, …, m), при этом ji* =0, в случае, если проект i не реализуется. Для обеспечения неотрицательности баланса счета заказчика, решение x*i должно удовлетворять следующему условию:

t m t t t t = 0,...,T gkvk + (r - cij )vk 0, iji* i* k =0 i=1 k =t где gkvk – приведенная величина кредитного потока на момент k =m t t t времени t, (r - cij )vk – суммарный баланс по всем проекiji* i* i=1 k =там на момент времени t.

2.5. Декомпозиция задачи. С учетом всех ограничений оптимизационная задача распределения инвестиций формулируется следующим образом:

m fi(xi ) max i= m xi K.

i= max 0 xi 0 jN (i) xij, i = 1,m t m t t t gkvk + )vk 0, t = 0,T (r - cij* iji* i k=0 i=1 k=Для решения этой задачи используется метод декомпозиции оптимизационной задачи на два уровня:

- на верхнем уровне вычисляется текущее решение задачи при ограничении на объем инвестиций;

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

2.6. Алгоритм решения задачи верхнего уровня. Задача верхнего уровня решается следующим образом [8]:

Определим при i = 1,..., m на отрезке 0 x max(i) xij мини0 j N ~ ~ мальную вогнутую функцию fi (x), для которой fi(x) fi(x) при x : 0 x max(i ) xij, и рассмотрим задачу максимизации функ0 j N m m ~ ции fi (xi ) при ограничениях xi K,, 0 xi max xij 0 j N (i) i=1 i =i = 1,..., m.

~ Заметим, что функции fi (x) вогнуты и кусочно-линейны.

~ Выбираем проект с номером i1, для которого функция fi (x) имеет наибольший наклон первого звена ломаной графика.

Вкладываем в проект i1 величину средств a1 = min[xi, K], где ~ xi – первая точка излома функции fi (x).

1 Если a1 < K, то оптимальное распределение средств найдено.

Если a1 > K, то рассмотрим новую задачу с K = K – a1, где ~ ~ fi (x) = fi (a1 + x), а остальные функции остаются прежними.

1 Выбор проекта и величины вложения в него осуществляются аналогично и т.д.

Алгоритм завершает свою работу либо после исчерпания капитала K, либо после того, как вложение по каждому проекту i достигнет максимальной величины max(i ) xij.

0 j N Если найденное решение xi0,i = 1,...,m удовлетворяет усло~ вию fi(xi0) = fi(xi0), i = 1,...,m, то решение xi0,i = 1,...,m будет являться текущим решением исходной задачи, для которого рассчитывается значение целевой функции.

Для данного решения необходимо проверить условие неотрицательности баланса счета заказчика – решить задачу нижнего уровня (алгоритм решения задачи нижнего уровня приведен ниже в подразделе 2.7).

Предположим, что при некотором i1 выполнено строгое нера~ венство fi (xi0 ) > fi (xi0 ), и xi0 принадлежит минимальному от1 1 1 1 1 резку [xi, xi2 ], где xi, xi2 X. Тогда исходная задача разбиваетi1 1 1 ся на две подзадачи с измененными ограничениями по проекту i1:

0 xi xi в первой подзадаче и xi2 xi maxi ) xi j во второй.

1 1 1 1 0 j N ( Каждая из подзадач решается указанным выше способом и так далее. Если текущее решение подзадачи удовлетворяет условию ~ fi(xi0) = fi(xi0),i = 1,...,m, то оценка снизу для максимума целевой функции возрастает.

Для реализации данного алгоритма введем следующие обозначения.

t Пусть заданы матрицы R = {rij} Rmmax( N (i ))n +1 и t C = {cij} Rmmax( N (i ))n +1, где m – количество инвестиционных проектов, N(i) – количество вариантов реализации для каждого проекта, T – срок реализации каждого варианта.

t Элементы rij матрицы R определяют величины возвратов для варианта j по проекту i в момент времени t = 0, …, T.

t Элементы cij матрицы C определяют величины затрат для варианта j по проекту i в момент времени t = 0, …, T.

t t Матрицы R = {rij} Rmmax( N (i ))n +1 и C = {cij} Rmmax( N (i ))n +определяют элементы матриц X = {xij} Rmmax( N (i)) и F = { fij} Rmmax( N (i)), где xij – минимальная величина средств, необходимых для реализации варианта j по проекту i, fij – значение приведенной стоимости проекта i в случае выбора варианта j.

Матрицы X и F определяют значения кусочно-постоянной 0, 0 x < xi функции fi(x): fi(x) = fij, xij x < xij +1, j = 1,..., N(i) -1.

fiN (i), x xiN (i) Определим характеристики минимальной вогнутой функции ~ ~ fi (x), для которой fi(x) fi(x) при x : 0 x max(i ) xij.

0 j N Обозначим S = {sij} – матрица, элементы которой определя~ ют точки излома функции fi (x). Элементы матрицы S = {sij} вычисляются следующим образом.

Обозначим T = {tij} Rmmax(N (i)), где fij tij =, i = 1,...,m; j = 1,..., N (i) – тангенсы угла наклона прямой, xij проходящей через начало координат и точку с координатами (xij, fij ) – точку разрыва функции fi(x).

Обозначим ji1 – позиция максимального элемента строки i матрицы T. Зафиксируем первый столбец матрицы S: si1 = ji, i = 1, …, m. Переместим начало координат в точку (xij, fij ) и 1 i i осуществим перерасчет элементов матрицы T:

fij - fij i tij- ji =, i = 1,...,m.; j = ji1 +1,..., N(i).

xij - xij i Обозначим ji2 – позиция максимального элемента строки i матрицы T. Зафиксируем второй столбец матрицы S: si2 = ji2, i = 1, …, m, и т.д. Результатом вычислений является матрица S = {sij}.

Обозначим N’(i) – число итераций для строки i матрицы S = {sij} – число элементов в строке i матрицы S. Обозначим X ' = {x'ij } Rmmax( N '(i)) и F' = { f 'ij } Rmmax( N '(i )), где x'ij = xis, ij f 'ij = fis, i = 1, …, m и j = 1, …, N’(i).

ij Таким образом, матрицы X ' = {x'ij } Rmmax( N '(i)) и ~ F' = { f 'ij } Rmmax( N '(i )) определяют функции fi (x) :

f 'ij+1- f 'ij x + f 'ij, x'ij x x'ij+1, j = 1,..., N ' (i) - x'ij+1-x'ij ~ f 'i.

fi(x) = x,0 x x'i x'i f 'iN '(i), x x'iN '(i) Определим матрицу T ' = {t'ij } Rmmax( N '(i)), характеризую~ щую углы наклона звеньев графика функции fi (x) :

f 'ij+1- f 'ij,i = 1,...,m; j = 1,..., N '(i) - x'ij+1-x'ij.

t'ij = 0,i = 1,...,m; j = N '(i),..., max(N '(i)) -1; N' (i) < max(N'(i)) - Матрица T ' = {t'ij } Rmmax( N '(i)) определяет тангенсы углов ~ наклона для графиков функций fi (x). При этом в строке i элемент j матрицы T’ определяет тангенс угла наклона для звена j графика ~ функции fi (x).

Определим векторы X = {xi0} и F0 = { fi0}, i = 1,..., m, где xi0 определяет общую величину инвестиций в проект i после каждой итерации алгоритма решения задачи верхнего уровня, fi0 – определяет отдачу от проекта i при инвестициях в размере xi0.

Начальные условия: xi0 = 0, fi0 = 0, i = 1,..., m.

На первой итерации алгоритма определяем позицию максимального элемента в первом столбце матрицы T ' = {t'ij }. Обозначим i1 – номер строки, в которой находится максимальный элемент, ~ i1 – номер проекта, для которого функция fi (x) имеет наибольший наклон первого звена ломаной графика, x'i 1 – первая точка ~ излома функции fi (x).

Обозначим C = {ci},i = 1,...,m – вектор, элементом которого является номер рассматриваемого варианта для проекта i (номер варианта определяется в терминах матрицы X’ – не совпадает с номерами вариантов для матрицы X: для перехода к номерам вариантов в исходных терминах задачи необходимо использовать матрицу S = {sij}).

На каждой итерации алгоритма индексируется номер варианта для соответствующего проекта i1. На первой итерации ci = 1, ci = 0, i i1. Вкладываем в проект i1 величину средств a1 = min[x'i 1, K], xi0 = xi0 + a1 – инвестиции в проект i1 увеличе1 1 ны на a1.

Если a1 < K, то fi0 = f 'i 1 – фиксируем увеличение отдачи от 1 инвестиций и производим новую итерацию алгоритма с измененными начальными условиями: K = K - a1 (уменьшаем размер свободного капитала), t'i j = t'i j+1, j = 1,..., N'(i1) -1, 1 x'i j = x'i j +1-a1, j = 1,..., N'(i1) -1, f 'i j = f 'i j +1, 1 1 1 ~ j = 1,..., N '(i1) -1, (сдвигаем график функции fi (x) :

Pages:     | 1 |   ...   | 13 | 14 || 16 | 17 |   ...   | 19 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.