Программа многоуровневого синтеза процессов когнитивного мониторинга

УДК 006.72

ПРОГРАММА МНОГОУРОВНЕВОГО СИНТЕЗА ПРОЦЕССОВ КОГНИТИВНОГО МОНИТОРИНГА

Н. А. Жукова, С. А. Подкорытов, А. И. Водяхо, А. Б. Тристанов, Н. В. Климов

THE PROGRAM OF MULTI-LEVEL SYNTHESIS OF COGNITIVE MONITORING

PROCESSES

N. A. Zhukova, S. A. Podkorytov, A. I. Vodyakho, A. B. Tristanov, N. V. Klimov

ВВЕДЕНИЕ

В настоящее время во многих прикладных областях наблюдается увеличение интереса к когнитивным искусственным системам, способным реализовывать некоторые из когнитивных функций, свойственных естественным организмам [1-8]. Одной из таких областей является область мониторинга сложных технических объектов [9]. Большинство из применяемых в настоящее время систем мониторинга ориентированы на работу с его типовыми процессами. Их возможности по мониторингу сложных объектов в постоянно изменяющихся условиях ограничены. Оказываются востребованными когнитивные системы мониторинга, способные строить и перестраивать процессы мониторинга на основе данных, посту-

пающих от наблюдаемых объектов, а также данных об окружающей среде, технических средствах сбора данных.

По мнению большинства исследователей, одним из наиболее перспективных подходов к построению когнитивных систем является нейросетевой [10-12]. Однако для решения задач мониторинга требуются большие нейронные сети. Для них необходимы значительные ресурсы, которые на практике отсутствуют. Можно ожидать, что впоследствии будут созданы новые нейросетевые модели, способные решить эту проблему. В настоящее время представляется целесообразным применение подхода, основанного на ассоциативных моделях [13]. Они позволяют описывать наблюдаемые объекты в виде совокупности информационных элементов и связей между ними. Подход к когнитивному мониторингу на основе ассоциативных моделей предусматривает синтез процессов мониторинга на основе связей, которые определены в моделях объектов. Этот метод достаточно хорошо проработан [14-17]. Решение проблемы сложности в данном случае обеспечивается за счет новых многоуровневых моделей синтеза. В статье описывается программа, позволяющая синтезировать многоуровневые процессы мониторинга на машинном уровне. Программа предназначена для использования в составе существующих систем мониторинга.

СИНТЕЗ ПРОЦЕССОВ КОГНИТИВНОГО МОНИТОРИНГА Большинство современных ассоциативных моделей наблюдаемых объектов представлены в виде автоматных моделей. Синтезируемые процессы - это процессы, определяющие способы возможного перехода объекта из исходного состояния в требуемое. Как правило, исходное состояние описывается в виде совокупности значений измеряемых параметров объекта, которая может соответствовать как его исправному состоянию, так и неисправному. В качестве целевого может приниматься исправное состояние объекта или состояние при наличии известной ошибки. В первом случае в результате синтеза доказывается переход в исправное состояние. Если доказательство невозможно, определяются условия, при которых доказательство может стать возможным. Применительно к мониторингу объектов это соответствует выявлению отдельных неисправных элементов в объекте, т. е. локализации неисправности. Во втором случае подтверждается наличие ошибки или устанавливается, что она отсутствует.

Входные и выходные данные представляют собой множество исходных и результирующих фактов. Они задаются в виде массива произвольных переменных. Например, входные данные могут иметь вид: [a1, b1, c1], где a1, b1, c1 - некоторые факты.

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

Функции перехода F из одного состояния в другое задаются в виде JSON-объекта следующей структуры: { "args": ["a1", "b1"],

conditions": "al < 10", result": "c2",

},

где args - это входные данные функции. Они определяют факты, которые необходимы для выполнения перехода; result - результат выполнения функции. Результатом выполнения может быть один или несколько новых фактов; conditions - условия в форме логического выражения, определяющие возможность применения функции.

Уровни моделирования задаются в виде иерархичной графовой структуры

("дерево" или "лес") в следующем виде:

[

{ "functions": [F1, F2],

"id": "baad85ac-1733-4f25-9609-e335807bbb4c", "level": 1, "number": 1, "parent": null

},

].

где functions - это набор функций перехода, определенных на уровне; id - уникальный идентификатор элемента уровня; level - порядковый номер уровня; number - порядковый номер элемента на уровне; parent - опциональный идентификатор родительского элемента с вышестоящего уровня.

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

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

Для нахождения последовательности функций среди всех элементов первого уровня производится поиск функций перехода, позволяющих доказать целевые факты. При наличии таких функций выполняется рекурсивный поиск обратного пути. При этом для всех входных фактов определяются возможные пути их получения с использованием функций перехода, определенных на текущем уровне. Если на каком-то шаге не удалось доказать необходимый исходный факт исходя из целевых фактов, производится переход на уровень ниже, где осуществляется новая попытка доказательства, но уже с использованием функций, определенных на более низком уровне. Такой спуск может производиться, пока не будет достигнут нулевой уровень. В случае успешного нахождения производится реверсирование получившегося списка шагов с исключением дублирующих элементов. Итоговый путь определяет последовательность действий, которые должны выполняться при мониторинге. Синтезированные процессы описываются формальными моделями, что позволяет их передавать во внешние системы для исполнения.

Ниже приводятся основные шаги алгоритма.

1. Выполняется поиск пути, позволяющего доказать целевой факт на первом уровне моделирования:

1.1. Среди всех входных фактов уровня осуществляется поиск целевого факта. Если такой факт найден, то возвращается управление.

1.2. Если целевой факт не найден, то среди функций перехода определяются те, у которых выходные данные включают целевой факт.

1.3. Если функция найдена, то выполняется поверка возможности ее применения. Возможность применения определяется заданными для этой функции условиями применения.

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

1.5. Если условия применения функции не удовлетворены или функция не найдена, производится аналогичный рекурсивный поиск пути к целевому факту на всех дочерних уровнях.

1.6. Если путь к целевому факту на дочерних уровнях найден, то он включается в текущий путь. Если не найден, то поиск завершается. Результатом поиска является пустой путь.

2. В случае, если найден непустой путь, позволяющий доказать целевой факт на основе исходных фактов, то восстанавливается прямой ход - реверсивно меняется порядок функций в найденном пути с исключением шагов-дубликатов. Фрагмент псевдокода, реализующего алгоритм, приведен ниже.

//доказать факт target исходя из имеющихся функций перехода item // @recursive

function process(item, target) { const {functions } = item;

// найти первую функцию перехода, результатом которой является result function getFunctionLeadsTo(result) {

// среди всех функций найти ту, которая удовлетворяет текущим условиям и выходной факт которой - result return _.find(functions, (f) => {

return isConditionedf, finalTarget.conditions) && f.result == result;});}

// @recursive function findPath(result) {

console.debugffindingpath to ${result}) let localSteps = [];

// если результирующий факт найден среди исходных фактов - вернуть пустой путь

if (finalTarget.from.indexOf(result) > -1) { return localSteps; }

const lastFunction = getFunctionLeadsTo(result); if (lastFunction) {

// для каждого входного факта функции найти существующий путь к нему const prevSteps = _.flatten(lastFunction.args.map(findPath)); //просуммировать найденные шаги с предыдущими localSteps = [...prevSteps, lastFunction];

} else {

const chidlltems = getChildltems(item); let isFound = false;

// не найдена последняя функция; проверить все дочерние элементы for (let i = 0; i < chidlltems.length; i++) { //проверить очередной элемент constprevSteps = process(chidlItems[i], result); if (prevSteps) {

// найден дочерний путь localSteps = prevSteps; isFound = true; break;} } if (lisFound) {

throw new Errorfnot found any function or item that leads to ${result}s);}} return localSteps; }

try {

const path = findPath(target); const resultPath = [];

// проверить наличие дублирующих функций path.forEach(f) => {

if (resultPath.indexOf(f) === -1) {

resultPath.push(f); } else {

// функция уже имеется } });

return resultPath; } catch (e) {

// невозможно найти путь к текущему целевому факту return null; } }

// найти корневой элемент const rootltem = _.find(items, (i) => { return li.parent; });

if (Irootltem) {

// корневой элемент не найден; невозможно найти путь return null; }

// найти путь из корневого элемента к целевому факту return process(rootItem, finalTarget.to);}

Предлагаемый алгоритм целесообразно применять в случаях, когда поиск пути осуществляется по многим уровням. Если поиск проводится на одном уровне, то алгоритм сводится к алгоритму поиска в глубину (Depth-first search, DFS). Его сложность составляет O(|E|+|V|), где E и V - множество функций и фак-

тов соответственно. Следует отметить, что функции определены таким образом, что при поиске циклов не возникает.

В случаях когда поиск необходимо проводить на п уровнях, алгоритм DFS требуется запускать п раз. В предположении, что все уровни схожи друг с другом, число запусков алгоритма DFS на уровне т составляет п т_1 . Тогда, если ьй уровень содержит и функций и фактов, то общее количество шагов при поиске равно с £=о..т-1п1 + , где с - некоторая константа. При этом если бы DFS применялся для поиска по полному набору функций и фактов, то понадоби -лось бы с ¿=о..т-1п1 + шагов.

Полученные оценки позволяют сформулировать целесообразные условия применения предлагаемого алгоритма. Одним из таких условий является достаточно быстрое убывание величины Е^ + У^ при увеличении числа п, например, зависимость между числом уровней и числом функций и вершин может носить экспоненциальный характер. Другое условие определяется вероятностями перехода на более высокие уровни. Для этого требуется построение функции распределения количества переходов от вероятностей переходов на некоторое число более высоких уровней.

РЕАЛИЗАЦИЯ ПРОГРАММЫ МНОГОУРОВНЕВОГО СИНТЕЗА В СИСТЕМАХ МОНИТОРИНГА

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

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

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

Подсистема синтеза процессов мониторинга реализует синтез процессов мониторинга по запросу на основе текущего и целевого состояний объекта наблюдения.

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

Рис. 1. Структурная схема программной системы мониторинга Fig. 1. Block diagram of the program monitoring system

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

Прототип системы мониторинга реализован в виде простого веб-приложения. Работа с веб-приложением возможна через веб-обозреватели Google Chrome 68 и выше, Internet Explorer 11 и выше, Mozilla Firefox 50 и выше.

ПРИМЕР МНОГОУРОВНЕВОГО СИНТЕЗА ПРОЦЕССОВ МОНИТОРИНГА

Рассмотрим пример синтеза процессов мониторинга для некоторого технического объекта. Пусть в состав объекта входят две системы, в каждую из них -три подсистемы, а каждая из подсистем характеризуется четырьмя параметрами. Такой объект будет иметь трехуровневую модель, показанную на рис. 2. Для объекта установлены связи между системами и подсистемами, а также между подсистемами и параметрами. Будем считать, что объект исправен, если все его системы исправны. В свою очередь, системы исправны, если исправны их подсистемы. Исправность подсистем определяется значениями параметров и их допусковыми диапазонами.

Рис. 2. Пример трехуровневой модели Fig. 2. Example of a 3-level model

Фрагменты описания объекта, показанного на рис. 2, приведены ниже.

[ {"id": "baad85ac-1733-4f25-9609-e335807bbb4c ", "parent": null, "level": 1, "number": 1,

"functions": [

{ "args": [ "s"], "result": "B1", "conditions": ""}, { "args": [ "B1"], "result": "B2", "conditions": "pB1==0"}, {"args": ["B2" ], "result": "w", "conditions": "pB2==0"}]}, { "id": "382337c0-803f-48e4-bbb1-b0466505c323", "parent": "baad85ac-1733-4f25-9609-e335807bbb4c", "level": 2, "number": 1, "functions": [

{"args": [ "B1"], "result": "B1_1", "conditions": ""}, {"args": [ "B11"], "result": "B1_2", "conditions": "pB1_1 ==0"}, {"args": [ "B1_2"], "result": "B1_3", "conditions": "pB1_2==0"}, {"args": [ "B1_3"], "result": "B2", "conditions": "pB1_3==0"}]}, {"id": "f2e39b89-bb0a-4820-8c9a-406dc453734c", "parent": "382337c0-803f-48e4-bbb1-b0466505c323", "level": 3, "number": 1,

"functions": [{ "args": [ "B11"], "result": "P111", "conditions": ""}, {"args": [ "P111"], "result": "P1_1_2", "conditions": "pP111==0"}, {"args": [ "P112"], "result": "P1_1_3", "conditions": "pP112==0"}, {"args": [ "P113"], "result": "P1_1_4", "conditions": "P113==0"}, ]},]

Из внешних систем могут поступать данные о значениях параметров, а также о состояниях элементов объекта. Пусть в некоторый момент времени известно, что все системы С находятся в исправном состоянии (пример 1), тогда доказательство исправности объекта имеет вид, показанный на рис. 3.

начальное состояние -> целевое состояние значения параметров доказательство

s -> w

pB1=0, pB2=0 F(s) -> B1

F

Рис. 3. Иллюстрация доказательства исправности объекта

Рассмотрим другой случай (пример 2), когда информация об одной из систем и одной из подсистем отсутствует. Тогда при доказательстве рассматриваются значения параметров соответствующей подсистемы (рис. 4).

начальное состояние -> целевое состояние значения параметров

доказательство

pP1_1_2=0, pP1_1_3=0,

s -> w

pB1=1, pB2=0, pB1_1=1, pB1_2=0, pB1_3=0, pP1_1_1=0, pP1_1_4=0; F

-0);

-0); -0); -0);

F

0)

Рис. 4. Иллюстрация доказательства исправности объекта

В случае если одна из систем, например B2_2, неисправна, о чем свидетельствует полученное значение параметра B2_2_3, то доказательство оказывается невозможным:

начальное состояние -> s -> w целевое состояние значения параметров рВ1=0, рВ2=1, рВ2_1=0, рВ2_2=1, рВ1_3=0,

рР2_2_1=0, рР1_1_2=1, рР1_1_3=0, рР1_1_4=0; доказательство F(s) -> В1;

Р(В1) -> В2 (рВ1==0);

F(B2) ->В2 1;

F(B2_1) ->В2_2 (рВ 2 1);

F(B2_2) ->Р2_2_1;

F(P2_2_1)->P2_2_2 (рР2_2_1==0);

Дальнейшее доказательство невозможно

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННЫХ ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ

1. Augello, A. Creativity evaluation in a cognitive architecture / A. Augello, I. Infantino, G. Pilato, F. Vella // Biologically Inspired Cognitive Architectures. -2015. - V. 11. - P. 29-37.

2. Lieto, A. Introduction to cognitive artificial systems / A. Lieto, M. Cruciani // Connection Science. - 2015. - V.27(2).

3. Kotseruba, I. Review of 40 Years of Cognitive Architecture Research: Core Cognitive Abilities and Practical Applications / I. Kotseruba, J. Tsotsos // ArXiv:1610.08602 [cs.AI]. - 2018.

4. Sun, R. The importance of cognitive architectures: an analysis based on CLARION / R. Sun // Journal of Experimental & Theoretical Artificial Intelligence. -2007. - V. 19(2).

5. Fusion paradigms in cognitive technical systems for human-computer interaction / M. Glodek [и др.] // Neurocomputing . - 2015. - V. 161.

6. World survey of artificial brains. Part II: Biologically inspired cognitive architectures / B. Goertzel [и др.] // Neurocomputing. - 2015. - V. 74 (1-3).

7. Cognitive Control / S. Haykin // Proceedings of the IEEE. - 2012. -V. 100 (12).

8. Haykin, S. Cognitive Radar: Step Toward Bridging the Gap Between Neuroscience and Engineering / S. Haykin, Y. Xue, P. Setoodeh. - 2012. - V. 100 (11).

9. Охтилев, М. Ю. Интеллектуальные технологии мониторинга и управления структурной динамикой сложных технических объектов / М. Ю. Охтилев, Б. В. Соколов, Р. М. Юсупов. - Москва: Наука, 2006.

10. Осипов, В. Ю. Прямое и обратное преобразование сигналов в ассоциативных интеллектуальных машинах / В. Ю. Осипов // Мехатроника, автоматизация, управление. - 2010. - №7. - С. 27-32.

11. Осипов, В. Ю. Рекуррентная нейронная сеть с двумя сигнальными системами / В. Ю. Осипов // Информационно-управляющие системы. - 2013. -№ 4 (65). - С. 8-15.

12. Osipov, V. Space-Time Structures of Recurrent Neural Networks with Controlled Synapses / V. Osipov // Advances in Neural Networks. - 2016. - Pp. 177184.

13. Городецкий, В. И. Ассоциативная классификация: аналитический обзор / В. И. Городецкий, О. Н. Тушканова // Труды СПИИРАН. - 2015. - Вып. 38. -Ч. 1. - C. 183-203.

14. Osipov, V. About one approach to multilevel behavioral program synthesis for television devices / V. Osipov, A. Vodyaho, N. Zhukova // International journal of computers and communications. - 2017. - Vol. 11. - Pp. 17-25.

15. A Inductive Synthesis of the Models of Biological Systems According to Clinical Trials. International Conference on Computational Science and Its Applications (ICCSA 2017). Lecture Notes in Computer Science / V. Osipov [и др.], vol. 10404. Springer, Cham. pp 103-115

16. Осипов, В. Ю. Автоматический синтез программ действий интеллектуальных роботов. Программирование / В. Ю. Осипов. - Москва: ФГУП "Академический научно-издательский, производственно-полиграфический и книгораспространительский центр "Наука". - 2016. - № 3. - С. 47-54.

17. Осипов, В. Ю. Синтез результативных программ управления информационно-вычислительными ресурсами / В. Ю. Осипов // Приборы и системы управления. - 1998. - № 12. - С.24-27.

REFERENCES

1. Augello A., Infantino I., Pilato G., Vella F. Creativity evaluation in a cognitive architecture. Biologically Inspired Cognitive Architectures. 2015, vol. 11, pp. 29-37.

2. Lieto A., Cruciani M. Introduction to cognitive artificial systems. Connection Science. 2015, vol. 27(2).

3. Kotseruba I., Tsotsos J. Review of 40 Years of Cognitive Architecture Research: Core Cognitive Abilities and Practical Applications. ArXiv:1610.08602 [cs.AI], 2018.

4. Sun R. The importance of cognitive architectures: an analysis based on CLARION. Journal of Experimental & Theoretical Artificial Intelligence, 2007, vol. 19(2).

5. Glodek M., Honold F., Geier T., Krell G., Nothdurft F., Reuter S., Schüssel F., Hörnle T., Dietmayer K., Minker W., Biundo S., Weber M., Palm G., Schwenker F. Fusion paradigms in cognitive technical systems for human-computer interaction. Neurocomputing, 2015, vol. 161.

6. Goertzel B., Lian R., Arel I., Garis H., Chen S. World survey of artificial brains. Part II: Biologically inspired cognitive architectures. Neurocomputing, 2015, vol. 74 (1-3).

7. Haykin S., Fatemi M.; Setoodeh P.; Xue Y. Cognitive Control. Proceedings of the IEEE, 2012, vol. 100 (12).

8. Haykin S., Xue Y., Setoodeh P. Cognitive Radar: Step Toward Bridging the Gap Between Neuroscience and Engineering, 2012, vol. 100 (11).

9. Ohtilev M. Yu., Sokolov B. V., Yusupov R. M. Intellektual'nye tekhnologii monitoringa i upravleniya strukturnoj dinamikoj slozhnyh tekhnicheskih ob"ektov [Intelligent technologies for monitoring and control of structural dynamics of complex technical objects]. Moscow, Nauka, 2006.

10. Osipov V. Yu. Pryamoe i obratnoe preobrazovanie signalov v associativnyh intellektual'nyh mashinah [Forward and reverse signal conversion in associative intelligent machines]. Mekhatronika, avtomatizaciya, upravlenie, 2010, no. 7, pp. 27-32.

11. Osipov V. Yu. Rekurrentnaya nejronnaya set' s dvumya signal'nymi sistemami [Recurrent neural network with two signal systems]. Informacionno-upravlyayushchie sistemy, 2013, no. 4 (65), pp. 8-15.

12. Osipov V. Space-Time Structures of Recurrent Neural Networks with Controlled Synapses. Advances in Neural Networks, 2016, pp. 177-184.

13. Gorodeckij V. I., Tushkanova O. N. Associativnaya klassifikaciya: analiticheskij obzor [Associative classification: analytical review]. Chast 1. Trudy SPIIRAN, 2015, iss. 38, pp. 183-203.

14. Osipov V., Vodyaho A., Zhukova N. About one approach to multilevel behavioral program synthesis for television devices. International journal of computers and communications. Vol. 11, 2017, pp. 17-25.

15. Osipov V., Lushnov M., Stankova E., Vodyaho A. Inductive Synthesis of the Models of Biological Systems According to Clinical Trials. International Conference on Computational Science and Its Applications (ICCSA 2017). Lecture Notes in Computer Science, vol. 10404. Springer, Cham. pp 103-115.

16. Osipov V.Yu. Avtomaticheskij sintez programm dejstvij intellektual'nyh robotov. Programmirovanie. Izdatel'stvo [Automatic synthesis of intelligent robot action programs. Programming]. FGUP "Akademicheskij nauchno-izdatel'skij, proizvodstven-no-poligraficheskij i knigorasprostranitel'skij centr "Nauka", Moscow, 2016, no. 3, pp. 47-54.

17. Osipov V.Yu. Sintez rezul'tativnyh programm upravleniya informacionno-vychislitel'nymi resursami [Synthesis of effective programs of information and computing resources management]. Pribory i sistemy upravleniya, 1998, no. 12, pp. 24-27.

ИНФОРМАЦИЯ ОБ АВТОРАХ

Жукова Наталия Александровна - Санкт-Петербургский институт информатики и автоматизации Российской академии наук; кандидат технических наук, старший научный сотрудник лаборатории информационно-вычислительных систем и технологий программирования; E-mail: nazhukova@mail.ru

Zhukova Natalia Alexandrovna - St. Petersburg Institute for Informatics and Automation of the Russian Academy of Sciences; PhD, Senior Researcher of the Laboratory of Computer-Information Systems and Software Engineering;

E-mail: nazhukova@mail.ru

Подкорытов Сергей Алексеевич - Санкт-Петербургский институт информатики и автоматизации Российской академии наук; кандидат технических наук, младший научный сотрудник лаборатории информационно-вычислительных систем и технологий программирования; E-mail: podkorytovs@gmail.com

Podkorytov Sergey Alexeevich - St. Petersburg Institute for Informatics and Automation

of the Russian Academy of Sciences; PhD, Researcher of the Laboratory of Computer-Information Systems and Software Engineering;

E-mail: podkorytovs@gmail.com

Водяхо Александр Иванович - Санкт-Петербургский государственный электротехнический университет; доктор технических наук, профессор кафедры вычислительной техники; E-mail: aivodyaho@mail.ru

Vodyakho Alexandr Ivanovich - St. Petersburg State Electrotechnical University; Doctor of Science (tech.), Professor of the Department of Computer Science and Engineering; E-mail: aivodyaho@mail.ru

Тристанов Александр Борисович - Калининградский государственный технический университет; кандидат технических наук, доцент; зав. кафедрой информатики и информационных технологий; E-mail: alexander.tristanov@klgtu.ru

Tristanov Alexandr Borisovich - Kaliningrad State Technical University; PhD, Associate Professor; Head of the Department of Informatics and Information Technology; E-mail: alexander.tristanov@klgtu.ru

Климов Николай Васильевич - Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики; аспирант; E-mail: hocico16@gmail.com

Klimov Nikolay Vasilyevich - St. Petersburg National Research University of Information Technologies, Mechanics and Optics; post-graduate student;

E-mail: hocico16@gmail.com