Введение
В России известные разработанные системы автоматизации в большинстве случаев дорогие. Их могут приобретать только, как правило, большие предприятия. Российский бизнес уже понял преимущества использования специалистов, имеющих навыки составления различных приложений, решающих задачи управления на основе фундаментальных знаний и знаний систем компьютерной алгебры [6].
К тому же стоит отметить, что порой легче составить свою программу для решения поставленной задачи нечеткого анализа, опираясь на новейшие фундаментальные знания, чем разбираться с возможностями готовых пакетов программ [2; 3] для нечёткого анализа, как правило, снабжённых неполным набором инструментов для такого анализа.
Заметим, что и нет смысла создавать пакет нечеткого моделирования, который мог бы быть предназначен для решения всевозможных задач. Различные системы компьютерной алгебры уже дают большие возможности для разработки интерактивных динамических приложений для решения задач нечёткого моделирования. По сравнению с языками программирования C/C++, C#, Java, Pascal, FORTRAN системы компьютерной алгебры позволяют сократить время решения типовых задач и значительно упрощают разработку новых алгоритмов [6]. В настоящее время системы компьютерной алгебры становятся главным инструментом для решения широкого спектра научных и прикладных задач в таких областях, как моделирование объектов и разработка систем управления, обработка сигналов и изображений, измерение сигналов и тестирование, финансовое моделирование и др.
В настоящей работе создано интерактивное динамичное приложение «Оценка кредитоспособности предприятий-заёмщиков». Это приложение составлено с использованием фундаментальных знаний теории принятия решений в нечетких условиях. Оно написано с помощью системы компьютерной алгебры Mathematica 8. С помощью этого приложения можно в режиме реального времени определять лучший вариант для предоставления кредита на основании текущих данных бухгалтерской отчётности. Такие задачи реально возникают, например, в банковской деятельности.
Цель исследования: составить приложение «Оценка кредитоспособности предприятий-заёмщиков» при нечётких представлениях о степени удовлетворённости в значениях каждого из критериев оценки. В этом приложении дать оценки кредитоспособности предприятий-заемщиков, используя данные их бухгалтерской отчетности, и обеспечить выбор наиболее рационального варианта для выдачи кредита предприятию-заёмщику из множества допустимых вариантов.
Предмет изучения: кредитоспособность предприятий-заёмщиков.
Объекты исследования: данные бухгалтерской отчетности (финансовые показатели: денежные средства, краткосрочные финансовые вложения, дебиторская задолженность, запасы и затраты, собственный капитал, краткосрочные обязательства, итог баланса, валовая выручка, прибыль).
Методы исследования: метод максиминной свёртки, матричный метод, интерполирование.
Математический аппарат приложения «Оценка кредитоспособности предприятий-заёмщиков»
Постановка задачи. Известны данные бухгалтерской отчетности предприятий-заемщиков (табл. 1).
Таблица 1. Данные бухгалтерской отчетности
Финансовый показатель |
Значение показателя для предприятия, тыс. руб. |
|||
a1 |
a2 |
a3 |
a4 |
|
Денежные средства (ds) |
|
|
|
|
Краткосрочные финансовые вложения (kfv) |
|
|
|
|
Дебиторская задолженность (dz) |
|
|
|
|
Запасы и затраты (zz) |
|
|
|
|
Собственный капитал (sk) |
|
|
|
|
Краткосрочные обязательства (oks) |
|
|
|
|
Итог баланса (ib) |
|
|
|
|
Валовая выручка (vv) |
|
|
|
|
Прибыль (p) |
|
|
|
|
Эти данные могут динамически изменяться. Группой экспертов построены функции принадлежности, соответствующие понятиям «предпочтительный коэффициент абсолютной ликвидности », «желаемый промежуточный коэффициент покрытия », «наилучший общий коэффициент покрытия », «предпочтительный коэффициент финансовой независимости », «наилучший коэффициент рентабельности продукции » (рис. 1) [1], где
(1)
Все критерии считаются одинаково важными со степенью важности , т.е. каждый критерий важен на 100%.
Рис. 1. Функции принадлежности критериев кредитоспособности.
В пакете Mathematica 8 следует создать интерактивное динамичное приложение «Оценка кредитоспособности предприятий-заёмщиков», в котором при нечётких представлениях о степени удовлетворённости в значениях каждого из критериев оценки:
- дать оценку кредитоспособности предприятий-заемщиков, используя данные их бухгалтерской отчетности;
- обеспечить выбор наиболее рационального варианта для выдачи кредита предприятию-заёмщику из множества допустимых вариантов.
Решение. Рассмотрим применение метода максиминной свёртки [4] для принятия решения о целесообразности кредитования четырёх рассматриваемых предприятий. В рассматриваемой задаче предприятия являются альтернативами, из которых предстоит сделать выбор лучшей. Эти альтернативы обозначим через .
Для оценки кредитоспособности предприятий-заемщиков используем данные их бухгалтерской отчетности. В пакете Mathematica 8 матрицу исходных данных можно задать следующим образом:
ds:={Dynamic[ds1],Dynamic[ds2],Dynamic[ds3],Dynamic[ds4]};
kfv:={Dynamic[kfv1],Dynamic[kfv2],Dynamic[kfv3],Dynamic[kfv4]};
dz:={Dynamic[dz1],Dynamic[dz2],Dynamic[dz3],Dynamic[dz4]};
zz:={Dynamic[zz1],Dynamic[zz2],Dynamic[zz3],Dynamic[zz4]};
sk:={Dynamic[sk1],Dynamic[sk2],Dynamic[sk3],Dynamic[sk4]};
oks:={Dynamic[oks1],Dynamic[oks2],Dynamic[oks3],Dynamic[oks4]};
ib:={Dynamic[ib1],Dynamic[ib2],Dynamic[ib3],Dynamic[ib4]};
vv:={Dynamic[vv1],Dynamic[vv2],Dynamic[vv3],Dynamic[vv4]};
p:={Dynamic[p1],Dynamic[p2],Dynamic[p3],Dynamic[p4]};
a:={ds,kfv,dz,zz,sk,oks,ib,vv,p}
ma=Dynamic[a//MatrixForm]
На основании этих данных по формулам (1) рассчитываем финансовые коэффициенты, характеризующие кредитоспособность заемщиков. Рассчитанные значения критериев качества для рассматриваемых предприятий приведены в табл. 2. Там же даны нормативные значения критериев. В программе это будет матрица :
fa:={{Dynamic@F1[ds1,kfv1,oks1], Dynamic@F1[ds2,kfv2,oks2], Dynamic@F1[ds3,kfv3,oks3], Dynamic@F1[ds4,kfv4,oks4]},
{Dynamic@F2[ds1,kfv1,dz1,oks1], Dynamic@F2[ds2,kfv2,dz2,oks2], Dynamic@F2[ds3,kfv3,dz3,oks3], Dynamic@F2[ds4,kfv4,dz4,oks4]},
{Dynamic@F3[ds1,kfv1,dz1,zz1,oks1], Dynamic@F3[ds2,kfv2,dz2,zz2,oks2], Dynamic@F3[ds3,kfv3,dz3,zz3,oks3], Dynamic@F3[ds4,kfv4,dz4,zz4,oks4]},
{Dynamic@F4[sk1,ib1], Dynamic@F4[sk2,ib2], Dynamic@F4[sk3,ib3], Dynamic@F4[sk4,ib4]},
{Dynamic@F5[p1,vv1], Dynamic@F5[p2,vv2], Dynamic@F5[p3,vv3], Dynamic@F5[p4,vv4]}}
mffa=Dynamic[fa//MatrixForm]
Обработка полученной информации с применением математического аппарата теории нечётких множеств проводится в три этапа.
Этап 1. Построение функций принадлежности [5], соответствующих понятиям «предпочтительный коэффициент абсолютной ликвидности», «желаемый промежуточный коэффициент покрытия», «наилучший коэффициент рентабельности» и т.д. (рис. 1). Построение таких функций проводят эксперты, располагающие знаниями в области кредитования предприятий различного функционального назначения [1]. В [1] эти функции заданы в виде кривых, проходящих через фиксированные точки. Поэтому в пакете Mathematica 8 удобно задать эти функции, используя оператор интерполяции. Например, степень принадлежности для первого фактора в Mathematica 8 может быть задана так:
points1={{0,0},{0.06,0.17},{0.12,0.4},{0.14,0.49},{0.16,0.6},{0.20,0.7},{0.25,1}};
df1=Interpolation[points1, InterpolationOrder®3];
mf1[f_]:= Piecewise[{
{df1[f],0
{1,f>=0.25}}]
plot1=Plot[mf1[x],{x,0,0.3}, PlotRange®All, Epilog®Map[Point, points1]]
Остальные степени принадлежности задаются аналогично.
Таблица 2. Расчетные и нормативные значения критериев качества предприятий
Критерий качества |
Значение критерия для предприятий |
Нормативное значение |
|||
а1 |
a2 |
a3 |
a4 |
||
F1 - коэффициент абсолютной ликвидности |
|
|
|
|
0,1-0,25 |
F2 - промежуточный коэффициент покрытия |
|
|
|
|
0,5-1,0 |
F3 - общий коэффициент покрытия |
|
|
|
|
1,0-2,5 |
F4 - коэффициент финансовой независимости |
|
|
|
|
0,6 |
F5 - коэффициент рентабельности продукции |
|
|
|
|
Чем выше, тем лучше |
Этап 2. Определение конкретных значений функций принадлежности по критериям . На каждом из графиков рис. 1 отмечены значения функций принадлежности, соответствующие рассматриваемым альтернативам. Заметим, что поставленную задачу лучше решать в матричном виде. Это упростит написание программы, сделает ее компактной и повысит быстродействие. Поэтому в таблице 3 записываем степени принадлежности . А в программе это будет матрица :
mfa:={{mf1@@fa[[1,1]], mf1@@fa[[1,2]], mf1@@fa[[1,3]], mf1@@fa[[1,4]]},
{mf2@@fa[[2,1]], mf2@@fa[[2,2]], mf2@@fa[[2,3]], mf2@@fa[[2,4]]},
{mf3@@fa[[3,1]], mf3@@fa[[3,2]], mf3@@fa[[3,3]], mf3@@fa[[3,4]]},
{mf4@@fa[[4,1]], mf4@@fa[[4,2]], mf4@@fa[[4,3]], mf4@@fa[[4,4]]},
{mf5@@fa[[5,1]], mf5@@fa[[5,2]], mf5@@fa[[5,3]], mf5@@fa[[5,4]]}};
mfmfa=MatrixForm@@Dynamic[mfa]
Далее (на третьем этапе) осуществляем ранжирование альтернатив с использованием полученных взвешенных оценок на основе их нечёткой композиции [5].
В настоящей работе для принятия решения о кредитоспособности предприятия все критерии считаются одинаково важными со степенью важности .
Этап 3. Осуществление свертки [4] имеющейся информации в целях выявления лучшей альтернативы. Множество оптимальных альтернатив определяется путем пересечения нечетких множеств
,
содержащих оценки альтернатив по критериям выбора.
Таблица 3. Расчетные значения степеней принадлежности
Критерий качества |
Значение степеней принадлежности для предприятий |
|||
а1 |
a2 |
a3 |
a4 |
|
F1 |
|
|
|
|
F2 |
|
|
|
|
F3 |
|
|
|
|
F4 |
|
|
|
|
F5 |
|
|
|
|
Поэтому взвешенная оценка -й альтернативы по всем критериям вычисляется по формуле:
, .
Заметим: это означает, что являются минимумами в соответствующем -м столбце матрицы . Результат занесём в таблицу 4.
Таблица 4. Степени уверенности в целесообразности кредитования соответствующего предприятия
Степени уверенности в целесообразности кредитования соответствующего предприятия |
|||
а1 |
a2 |
a3 |
a4 |
|
|
|
|
В программе это будут
Dynamic[Min[mfa[[All,1]]], Dynamic[Min[mfa[[All,2]]], Dynamic[Min[mfa[[All,3]]], Dynamic[Min[mfa[[All,4]]],
вставляемые в поле на платформе с именем forma.
Лучшей считается альтернатива с максимальным значением функции принадлежности по множеству В.
Создание панелей приложения «Оценка кредитоспособности предприятий-заёмщиков»
Формируем панель criteria, в которую заносятся вычисленные по формулам (1) значения критериев для предприятий. В Mathematica 8 она может быть сформирована следующим образом:
criteria =Panel[Column[{
Grid[{{Style["Критерии",Blue],
Style[" Значения критериев для предприятий ],
Style["Нормативное значение",Blue]}},Alignment→Left],
Grid[Transpose[{{"",Style["Коэффициент абсолютной ликвидности"],Style["Промежуточный коэффициент покрытия"],Style["Общий коэффициент покрытия"],Style["Коэффициент финансовой независимости"],Style["Коэффициент рентабельности продукции"]},
{Style["предприятие а1",Blue], Table[InputField[Dynamic[mfa[[1,1]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[2,1]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[3,1]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[4,1]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[5,1]]],FieldSize→12]]},
{Style["предприятие а2",Blue], Table[InputField[Dynamic[mfa[[1,2]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[2,2]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[3,2]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[4,2]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[5,2]]],FieldSize→12]]},
{Style["предприятие а3",Blue], Table[InputField[Dynamic[mfa[[1,3]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[2,3]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[3,3]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[4,3]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[5,3]]],FieldSize→12]]}, {Style["предприятие а4",Blue], Table[InputField[Dynamic[mfa[[1,4]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[2,4]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[3,4]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[3,4]]],FieldSize→12]], Table[InputField[Dynamic[mfa[[5,4]]],FieldSize→12]]}, {Style[""],Table[InputField["0.1−0.25",FieldSize→12]], Table[InputField["0.5−1",FieldSize→12]], Table[InputField["1−2.5",FieldSize→12]], Table[InputField[0.6,FieldSize→12]], Table[InputField["Чем выше тем лучше",FieldSize→12]]}}],Alignment→Left]
}],ImageMargins→50];
Далее формируем кнопку «Справка», при нажатии на которую открывается меню. При выборе пункта из этого меню открывается отдельное окошко с соответствующей текущей справочной информацией.
information=ActionMenu["С пр а в к а",{
"Матрица исходных данных";⧴({Dynamic[ma]}//CreateWindow[DocumentNotebook[{ma},WindowTitle→"Матрица исходных данных а"]];),
"Значения критериев";⧴({Dynamic[raschet]}//CreateWindow[DocumentNotebook[{criteria},WindowTitle→"Значения критериев",WindowFrame→"Palette",WindowSize→{1200,280}]];),
"Матрица степеней принадлежности";⧴({Dynamic[mfmfa]}//CreateWindow[DocumentNotebook[{mfmfa},WindowTitle→"Матрица степеней принадлежности mfa="]];),
"График степени принадлежности: предпочтит. коэффициент абсолютной ликвидности";⧴({Dynamic[plot1]}//CreateWindow[DocumentNotebook[{plot1},WindowTitle→"предпочтит. коэффициент абсолютн. ликвидности"]];),
"График степени принадлежности: желаемый промежуточный коэффициент покрытия";⧴({Dynamic[plot2]}//CreateWindow[DocumentNotebook[{plot2},WindowTitle→"Желаемый промежуточный коэффициент покрытия"]];),
"График степени принадлежности: желаемый общий коэффициент покрытия";⧴({Dynamic[plot3]}//CreateWindow[DocumentNotebook[{plot3},WindowTitle→"Желаемый общий коэффицент покрытия"]];),
"График степени принадлежности: предпочтит. коэфф. финансовой независимости";⧴({Dynamic[plot4]}//CreateWindow[DocumentNotebook[{plot4},WindowTitle→"Предпочтит коэфф. финансовой независимости"]];),
"График степени принадлежности: наилучший коэффициент рентабельности";⧴({Dynamic[plot5]}//CreateWindow[DocumentNotebook[{plot5},WindowTitle→"Наилучший коэффициент рентабельности"]];)}];
Далее создаём панель forma самого интерактивного динамического приложения:
forma=Panel[Column[{
Grid[{{Style["Оценка кредитоспособности предприятий-заёмщиков"],""}},Alignment→Center],
Grid[{{Style["Финансовый показатель",Blue], Style[" Значения показателей для предприятий (тыс. руб)",Blue],""}}, Alignment→Center],
Grid[Transpose[{{"",Style["Денежные средства"],Style["Краткосрочые финансовые вложения"],Style["Дебиторская задолженность"],Style["Запасы и затраты"],Style["Собственный капитал"],Style["Краткосрочные обязательства"],Style["Итог баланса"],Style["Валовая выручка"],Style["Прибыль"],"",Style["Степени уверенности в целесообразности кредитования соответствующего предприятия"]},
{Style["предприятие a1",Blue],
Table[InputField[Dynamic[ds1],FieldSize→12]], Table[InputField[Dynamic[kfv1],FieldSize→12]], Table[InputField[Dynamic[dz1],FieldSize→12]],Table[InputField[Dynamic[zz1],FieldSize→12]],
Table[InputField[Dynamic[sk1],FieldSize→12]],Table[InputField[Dynamic[oks1],FieldSize→12]],
Table[InputField[Dynamic[ib1],FieldSize→12]],Table[InputField[Dynamic[vv1],FieldSize→12]],
Table[InputField[Dynamic[p1],FieldSize→12]],"",
Table[InputField[Dynamic[Min[mfa[[All,1]]]],FieldSize→12]]},
{Style["предприятие а2",Blue],
Table[InputField[Dynamic[ds2],FieldSize→12]],
Table[InputField[Dynamic[kfv2],FieldSize→12]],
Table[InputField[Dynamic[dz2],FieldSize→12]],
Table[InputField[Dynamic[zz2],FieldSize→12]],
Table[InputField[Dynamic[sk2],FieldSize→12]],
Table[InputField[Dynamic[oks2],FieldSize→12]],
Table[InputField[Dynamic[ib2],FieldSize→12]],
Table[InputField[Dynamic[vv2],FieldSize→12]],
Table[InputField[Dynamic[p2],FieldSize→12]],
"",
Table[InputField[Dynamic[Min[mfa[[All,2]]]],FieldSize→12]]},
{Style["предприятие а3",Blue],
Table[InputField[Dynamic[ds3],FieldSize→12]],
Table[InputField[Dynamic[kfv3],FieldSize→12]],
Table[InputField[Dynamic[dz3],FieldSize→12]],
Table[InputField[Dynamic[zz3],FieldSize→12]],
Table[InputField[Dynamic[sk3],FieldSize→12]],
Table[InputField[Dynamic[oks3],FieldSize→12]],
Table[InputField[Dynamic[ib3],FieldSize→12]],
Table[InputField[Dynamic[vv3],FieldSize→12]],
Table[InputField[Dynamic[p3],FieldSize→12]],
"",
Table[InputField[Dynamic[Min[mfa[[All,3]]]],FieldSize→12]]},
{Style["предприятие а4",Blue],
Table[InputField[Dynamic[ds4],FieldSize→12]],
Table[InputField[Dynamic[kfv4],FieldSize→12]],
Table[InputField[Dynamic[dz4],FieldSize→12]],
Table[InputField[Dynamic[zz4],FieldSize→12]],
Table[InputField[Dynamic[sk4],FieldSize→12]],
Table[InputField[Dynamic[oks4],FieldSize→12]],
Table[InputField[Dynamic[ib4],FieldSize→12]],
Table[InputField[Dynamic[vv4],FieldSize→12]],
Table[InputField[Dynamic[p4],FieldSize→12]],
"",
Table[InputField[Dynamic[Min[mfa[[All,4]]]],FieldSize→12]]}
}],
Alignment→Left],
Grid[Transpose[{{Style["Лучшим предприятием является предприятие с наибольшей степенью уверенности.",Blue],""},
{"",""},
{"",Dynamic[information]}}],
Alignment→Right]}],
ImageMargins→50]
Приложение готово.
Вид готового приложения «оценка кредитоспособности предприятий-заёмщиков»
и демонстрация его работы
Готовое приложение «Оценка кредитоспособности предприятий-заёмщиков» имеет вид, приведённый на рис. 2. На рисунках 3-4 – демонстрация работы приложения. Как только данные бухгалтерской отчетности введены (или изменены), автоматически вычисляются (соответственно пересчитываются) степени уверенности в целесообразности кредитования каждого предприятия. Эти степени уверенности выводятся автоматически в последней строке формы (рис. 2). Лучшим предприятием является предприятие с наибольшей степенью уверенности.
На рис. 2 мы видим, что в поля ввода на форме введены конкретные данные бухгалтерской отчётности. Мы отмечаем, что это случай 1, чтобы обратить внимание читателя на то, что раскрываемые в дальнейшем формы для каждого пункта меню показывают нам справку для данных бухгалтерской отчетности, представленных в форме на рис. 2, т.е. представленные на рис. 2-4 формы соответствуют одним и тем же данным бухгалтерской отчётности.
Рис. 2. Форма «Оценка кредитоспособности предприятий-заёмщиков»
На рис. 3 мы видим, что на форме (рис. 2) щёлкнута кнопка меню «Справка» и выбрано «Показать значения критериев». После этого автоматически открывается новое окошко «2013 03 01 Значения критериев.nb» (рис. 4), в котором видим значения критериев для введенных данных бухгалтерской отчётности.
Рис. 3. Форма «Оценка кредитоспособности предприятий-заёмщиков». Показать значения критериев. Случай 1.
Рис. 4. Форма «Значения критериев для предприятий». Случай 1.
После выбора другого пункта из этого меню открывается новое отдельное окошко с соответствующей текущей справочной информацией.
Если изменить исходные данные бухгалтерской отчётности, то во всех окнах со справочной информацией данные соответственно пересчитаются.
Заключение
В работе с помощью системы компьютерной алгебры Mathematica 8 составлено приложение «Оценка кредитоспособности предприятий-заёмщиков» при нечётких представлениях о степени удовлетворённости в значениях каждого из критериев оценки. В этом приложении даны оценки кредитоспособности предприятий-заемщиков, использованы данные их бухгалтерской отчетности и обеспечен выбор наиболее рационального варианта для выдачи кредита предприятию-заёмщику из множества допустимых вариантов. Это приложение работает в интерактивном динамичном режиме.
С помощью созданного приложения можно решать вопрос о целесообразности кредитования произвольного количества предприятий-заёмщиков, разбивая их на группы, мощность которых не больше четырёх.
Рецензенты:
Зарипов Р.Г., д.ф.-м.н., профессор, зам. директора по научной работе, ИММ КазНЦ РАН, г.Казань.
Уткина Е.А., д.ф.-м.н., доцент кафедры информационных систем, ФГАОУ ВПО «Казанский (Приволжский) федеральный университет», г.Казань.