2.3. Методика оптимального распределения инвестиционных ресурсов
Бритченко И. Г.
Наличие приоритетного ряда, построенного на сравнении коэффициентов эффективности инвестиционных проектов, не решает всех вопросов, возникающих перед банком. Остается нерешенной проблема оптимального распределения имеющихся у коммерческого банка ресурсов по всем предложенным инвестиционным проектам, хотя дальнейшему анализу и рассмотрению подлежат лишь те инвестиционные проекты, коэффициенты эффективности которых больше единицы. При решении данной проблемы должны учитываться следующие обстоятельства:
– ресурсы коммерческого банка, как и любого другого инвестора, ограничены объективными возможностями;
– клиент, запрашивающий определенную сумму кредита, не всегда согласится с меньшей суммой, предложенной ему банком;
– сроки, предусмотренные инвестиционными проектами, могут сильно отличаться друг от друга и от сроков, на которые банк согласен предостасить инвестиционные ресурсы;
– инвестиционные ресурсы банка должны быть максимально задействованы, то есть должна сводиться к минимуму невостребованность ресурсов одновременно с максимальной эффективностью всех инвестируемых средств (в соответствии с имеющимся приоритетным рядом);
– в случае, если невозможно удовлетворить запросы всех имеющихся клиентов из-за ограниченности ресурсов банка, необходимо удовлетворять запросы наиболее экономически выгодных клиентов, то есть тех клиентов, инвестирование которых даст банку наибольший экономический эффект.
Данная задача имеет математическую модель, для составления которой введем следующие обозначения с учетом изложенного выше.
Обозначения:
n-количество инвестиционных проектов;
i-i-ый инвестиционный проект;
Aj – сумма кредита, необходимая для осуществления і-го инвестиционного проекта;
Bi – срок осуществления і-го инвестиционного проекта;
N – общая сумма всех средств, которую может выделить инвестор на осуществление всех проектов;
Pi – обобщающий коэффициент эффективности і-го инвестиционного проекта.
Неизвестными величинами данной задачи являются:
Xi – сумма средств, которая может быть инвестирована в i-ый инвестиционный проект (при максимальной выгодности для инвестора);
Yi – срок, на который банку выгодно предоставлять инвестиционные ресурсы под i-ый инвестиционный проект.
Ограничениями данной задачи являются:
[[]]
Данная задача имеет математическую модель, которая является функцией цели, стремящейся к максимальному значению.
Функция цели выглядит следующим образом:
[[]]
Функция цели представляет сумму всех инвестируемых банком средств в конкретный инвестиционный проект за определенный промежуток времени с учетом эффективности инвестиционных проектов. То есть, если инвестиции за определенный промежуток времени будут наиболее эффективными, то они будут таковыми и в любой другой момент времени.
Поставленная задача имеет модель, описанную выше и решается при помощи пошагового поиска оптимальных значений или путем простого перебора различных вариантов инвестирования. Решение такого рода задач без применения ЭВМ практически невозможно, так как для этого необходимо вручную просчитать огромное количество возможных вариантов распределения инвестиционных ресурсов. Вместе с тем, программное обеспечение для решения имеющийся задачи не относится к разряду сложных, дорогостоящих и наукоемких программных продуктов. Это позволяет сделать применение предложенной методики широко распространенной и доступной каждому инвестору, который обладает компьютером любой модификации, совместимым с компьютерами IBM.
На схеме (Рис.9) приведена одна из программ, при помощи которой решается описанная задача. Предложенная программа написана на языке программирования “Turbo-Pascal”-7.0.
Для ее решения необходимо:
1. Ввести количесво имеющихся инвестиционных проектов.
2. Ввести максимальный размер имеющихся у инвестора ресурсов.
3. Ввести данные каждого инвестиционного проекта (запрашиваемая сумма, срок, обобщенный коэффициент эффективности проекта).
4. Получить оптимальные значения распределения инвестиционных ресурсов.
Рис. 9. Схема программы решения задачи
program bank; uses dos,crt,tpstring; label 1,2,3,11; type string6=string[6]; klient=record skoef,ssum,stim:string6; koef,summ,timm:real; sum,tim:real; flag:boolean; end; var kl:array[1..20] оf klient; summa,r1,r2,r3,rez:real; nkl,i,g,j,k,p,x,y,pp,jj,ii:integer; ss:string; ch:char; ff:text; procedure vvod(x,y:integer;var rez:string6); var sr:string6; ii:integer; begin sr:=rez; repeat gotoxy(x,y);write(sr); ch:=readkey; case ch of ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘,‘6‘, ‘7‘, ‘8‘, ‘9‘: begin sr:=copy(sr,2,5)+ch; end; ‘.‘ , ‘,‘: begin if pos(‘.‘,sr)=0 then sr:=copy(sr,2,5)=ch;end; ‘ ‘:sr:=‘ ‘; #8:sr:=‘ ‘+copy(sr,1,5); end; until (ch=#13)or(ch=#0)or(ch=#27);rez:=sr;end; BEGIN clrscr; for i:=1 to 20 do with kl[i] do begin skoef:=‘ ‘;ssum:=skoef; stim:=skoef; end; assign(ff,‘tttttttt.ttt‘);rewrite(ff); gotoxy(1,1);write(‘ЧИСЛО КЛИЕНТОВ= ‘); readln(nkl);if nkl>20 then nkl:=20; str(nkl:2,ss);write(ff,‘ЧИСЛО КЛИЕНТОВ= ‘,ss,‘ ‘), gotoxy(31,1); write(‘СУММА В БАНКЕ= ‘,ss)writeln(ff,‘ ‘); for i:=0 to nkl div 10 do begin gotoxy(1,2+i*10); if i*10>nkl-10 then k:=nkl mod 10 else k:=10; if k>0 then begin write(charstr(‘–‘,9)); for j:=1 to k do write(‘_______‘); gotoxy(1,3+i*10);write(‘ ‘);write(ff,‘ ‘); for j:=1 to k do begin str(i*10+j:2,ss); write(‘ КЛ._‘‘+ss);write(ff,‘ КЛ._‘+ss);end; writeln(ff,‘ ‘); end; if k>0 then begin gotoxy(1,4+i*10); write(charstr(‘_‘,9)); for j:=1 to k do write(‘___ _‘); gotoxy(1,5+i*10); write(‘КОЭФФИЦ. ‘); for j:=1 to k do write(‘ ‘); gotoxy(1,6+i*10); write(‘ТР. СУММА ‘); for j:=1 to k do write(‘ ‘); gotoxy(1,7+i*10); write(‘ТР. СТРОК‘); for j:=1 to k do write(‘ ‘); gotoxy(1,8+i*10); write(charstr(‘_‘,9)); for j:=1 to k do write(‘____‘); gotoxy(1,9+i*10); write(‘ВЫДАТЬ ‘); for j:=1 to k do write(‘ ‘); gotoxy(1,10+i*10); write(‘НА СРОК ‘); for j:=1 to k do write(‘ ‘); gotoxy(1,11+i*10); write(charstr(‘_‘,9)); for j:=1 to k do write(‘___‘); end;end; 11: for i:=0 to nkl div 10 do begin if i*10>nkl-10 then k:=nkl mod 10 else k:=10 for j:=1 to k do if k>0 then begin x:=j*7+4;y:=i*10+5; 2: vvod(x,y,kl[i*10+j].skoef);if ch=#27 then exit; if ch=#0 then begin dec(j); if j<1 then begin j:=10;dec(i);end; if i<0 then begin i:=0;j:=1; end;goto 1;end; 3: vvod(x,y+1,kl[i*10+j].ssum); if ch=#27 then exit;if ch=#0 then goto 2; 1: x:=j*7+4;y:=i*10+5;vvod(x,y+2,kl[i*10+j].stim); if ch:=#27 then exit;if ch=#0 then goto 3; end;end; r1:=0; for i:=1 to 20 do with kl[i] do begin val(trim(skoef),koef,k); val(trim(ssum),sum,k); val(trim(stim),timm,k); r1:=r1+sum;end; if r1<=summa then begin textcolor(15); for i+0 to nkl div 10 do begin if i*10>nkl-10 then k:=nkl mod 10 else k:=10; for j:=1 to k do if k>0 then begin x:=j*7+4;y:=i*10+9; gotoxy(x,y); write(kl[i*10+j].ssum); gotoxy(x,y+1); write(kl[i*10+j],stim); end;textcolor(7);end;end else begin r1:=summa;for i:=1 to nkl do with kl[i] do begin val(trim(skoef),koef,k); val(trim(ssum),summ,k); val(trim(stim),timm,k); if summ begin sum:=r1;if r1>0 then tim:=timm else tim:=r1;r1:=0;end; flag:=true;end; for pp:=0 to nkl do begin{pp} textcolor(15); if (pp=nkl)and(ii>0)and(kl[ii].sum=0) then kl[ii].tim:=0 for i:=0 to nkl div 10 do begin if i*10>nkl-10 then k:=nkl mod 10 else k:=10; for j:=1 to k do if k>0 then begin x:=j*7+4;y:=i*10+9; gotoxy(x,y);p:pos(‘ .‘,kl[i*10+j].ssum);if p=0 then p:=6; str(kl[i*10+j].sum:6:6-p,ss);write(ss); gotoxy(x,y+1);p:=pos(‘.‘,kl[i*10+j].stim);if p=0 then p:=6; str(kl[i*10+j].tim:6:6-p,ss);wriete(ss);end;end; sound(100*pp);delay(500);nosound;delay(1000); r1:=999999;r2:=0;ii:=0;jj:=0;rez:=0; for i:=1 to nkl do with kl[i] do begin{0}r3:=koef*timm; rez:=rez+sum*r3; if flag then begin if r3 if r3 if (ii>0)and(ii<>jj) then begin{1} if kl[jj].summ-kl[jj].sum>kl[ii].sum then begin kl[jj].sum:=kl[jj].sum+kl[ii].sum;kl[ii].sum:=0; kl[ii].flag:=false;kl[ii].tim:=0;kl[jj].tim:=kl[jj].timm; end;else begin kl[ii].sum:=kl[ii].sum-kl[jj].summ+kl[jj].sum; kl[jj].sum:=kl[jj].summ kl[jj].flag:=false;kl[jj].tim:=kl[jj].timm;end; str(rez:9:3,ss); gotoxy(1,23); write(‘РЕЗУЛЬТАТ = ‘+ss);textcolor(7);end;{1} str(rez:9:3,ss); gotoxy(1,23); write(‘РЕЗУЛЬТАТ = ‘+ss);textcolor(7);end;{pp} if k>0 then begin write(ff,charstr(‘_‘,9)); for j:=1 to k do begin write(ff,‘ ‘);end;writeln(ff,‘ ‘); write(ff,‘КОЭФФИЦ. ‘); for j:=1 to k do with kl[j] do begin pp:=pos(‘.‘,skoef);if pp>0 then pp:=6-pp; str(koef:6:pp,ss);write(ff,‘ ‘,ss);end;writeln(ff,‘ ‘); write(ff,‘ТР. СУММА ‘); for j:=1 to k do with kl[j] do begin write(ff,‘ ‘,copy(‘ ‘+ssum,length(ssum),6));end;writeln(ff,‘ ‘); write(ff,‘ Р.СРОК ‘);for j:=1 to k do with kl[j] do begin write(ff,‘ ‘,copy(‘ ‘+stim,length(stim),6));end;writeln(ff,‘ ‘); write(ff,charstr(‘_‘,9)); for j:=1 to k do with kl[j] do begin write(ff,‘ ‘);end;writeln(ff,‘ ‘); write(ff,‘ВЫДАТЬ ‘); for j:=1 to k do with kl[j] do begin pp:=pos(‘.‘,ssum); if pp>0 then pp:=6-pp; str(sum:6:pp,ss);write(ff,‘ ‘,ss);end;writeln(ff,‘ ‘); write(ff,‘НА СРОК ‘); for j:=1 to k do with kl[j] do begin pp:=pos(‘.‘,stim); if pp>0 then pp:=6-pp; str(tim:6:pp,ss);write(ff,‘ ‘,ss);end;writeln(ff,‘ ‘); write(ff,charstr(‘_‘,9)); for j:=1 to k do begin write(ff,‘ ‘);end; writeln(ff,‘ ‘);writeln(ff,‘ ‘);writeln(ff,‘ ‘);writeln(ff,‘ ‘);end; end;str(rez:9:3,ss);writeln(ff,‘РЕЗУЛЬТАТ = ‘,ss);close(ff); ch:=readkey;if ch<>#27 then goto 11;END.
Предложенная программа позволяет получить максимальное значение заданной функции и наблюдать ее изменение при различных параметрах инвестиционных проектов, корректировать эти параметры в случае необходимости.
Программа и математическая модель позволяет решать и другие задачи, она позволяет наблюдать влияние любой величины или ограничения на оптимальное распределение инвестиционных ресурсов. Наиболее типичным является изменение величины N, то есть инвестиционных возможностей банка, которая по истечение определенного промежутка времени должна увеличится. Это должно произойти потому, что часть полученной от эффективного распределения ресурсов прибыли будет направляться банком на увеличение инвестиционных ресурсов. Такой прирост банковского капитала возможен только при условии эффективного инвестирования имеющегося. Предложенная математическая модель помогает прогнозировать сроки и размер приращения банковского капитала, однако полное прогнозирование этих процессов затруднено рядом внешних факторов, находящихся за пределами внутрибанковской политики. К таким факторам можно отнести изменения в налоговом законодательстве, изменения цен на ресурсы, составляющие себестоимость банковского продукта (например, изменения на рынке трудовых ресурсов) и т.д.
Запланировать и прогнозировать абсолютно все возможные события, влияющие на инвестиционные процессы, используя предложенную модель, невозможно, ведь в экономике не существует абслютно чистых явлений, абслютно соответствующих каким-либо моделям и схемам. Предложенная модель не учитывает, например, такого фактора, как личные отношения между руководителями предприятий, включая и руководителя банка, ряд случайных событий и т.д. Вместе с тем модель позволяет проследить влияние такого макроэкономического фактора как инфляция на инвестиционную привлекательность проектов и распределение инвестиционных ресурсов; позволяет видеть взаимосвязь и взаимное влияние на распределение инвестиционных ресурсов обеспеченности инвестиций и индивидуальных характеристик исполнителя инвестиционногопроекта.
Для предложенной методики оптимального распределения инвестиционных ресурсов характерен тот факт, что при помощи указанных методов можно определить оптимальность распределения ресурсов на конкретный момент времени и при наличии определенных инвестиционных проектов. Однако по истечение некоторого времени в банк могут обратиться другие клиенты с новыми инвестиционными проектами либо, в результате изменения экономических условий, ранее предлагавшиеся инвестиционные проекты станут более эффективными и экономически выгодными. В таком случае инвестору придется решать аналогичную задачу, но уже на другой момент времени и с другими характеристиками. В случае необходимости можно новую задачу дополнить и данными о проинвестированных (действующих) проектах дла наглядного сравнения и экономического анализа. Такой прием может пригодиться при досрочном возврате инвестированных средств заемщиком либо наличии возможности досрочного отзыва ресурсов инвестором.
Предложенная методика может применяться практически при любом количестве инвестиционных проектов и любых экономических характеристиках. Она приемлема как для небольших, так и для крупных банков и их объединений.
Рассмотрим, как практически применяется предложенная методика.
Предположим, что в банке за кредитами обратилось одиннадцать предприятий, то есть имеется одиннадцать инвестиционных проектов. Характеристики имеющихся проектов отражены в таблице 2.
Кроме указанных характеристик инвестиционных проектов известны следующие данные: прогнозируемый годовой процент инфляции (Пинф.) составляет 16%; процент, уплачиваемый при покупке ресурсов (П2) составляет 20%; годовой процент, выплачиваемый банком по остаткам на счетах клиентов (П3) составляет 4%. Кроме того известно, что инвестиционные возможности (N) составляют 600 000 гривень.
Для решения такой задачи необходимо определить коэффициенты эффективности каждого инвестиционного проекта. Применяя предложенную методику, нетрудно подсчитать, что коэффициент эффективности первого инвестиционного проекта (Кэ1) составляет:
[[]]
Аналогично можно определить коэффициенты эффективности других инвестиционных проектов, которые будут составлять:
Кэ1 = 1,349; Кэ2 = 1,042; Кэ3 = 1,090;
Кэ4 = 1,148; Кэ5 = 1,038; Кэ6 = 0,618;
Кэ7 = 1,600; Кэ8 = 1,463; Кэ9 = 1,034;
Кэ10 = 1,109; Кэ11 = 1,062
Приоритетный ряд выглядит следующим образом:
Р6; Р9; Р5; Р2; Р11; Р3; Р10; Р4; Р1; Р8; Р7
При дальнейших расчетах инвестиционный проект под номером 6 не будет приниматься в расчет, так как его коэффициент эффективности (Кэб) меньше 1.
Значения коэффициентов эффективности каждого инвестиционного проекта так же занесены в таблицу 2.
Подставив имеющиеся данные в предложенную программу, получим решение задачи в виде таблицы (таблица № 3).
Данная таблица представляет собой оптимальное распределение имеющихся у банка инвестиционных ресурсов в размере 600 000 гривень среди предложенных одиннадцати инвестиционных проектов.
При этом проекты под номерами 2;3;6;8 инвестироваться не должны.
Инвестиционные проекты под номерами 1;4;5;7;9;10;11 будут инвестироваться в размерах и на срок, указанных в таблице.
В случае, если один из клиентов откажется от инвестиционного проекта, то задача будет решена с новыми условиями и имеющиеся инвестиционные ресурсы будут распределены с учетом изменившихся параметров.