Optimization of auto-tuning of programs using neural networks

Auto-tuning of programs is a method of self-tuning of internal parameters of the program, affecting its speed, in order to achieve high performance indicators, but it can take a lot of time for testing. In this paper, we propose to improve the method of auto-tuning of programs using neural network a...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2018
Автори: Doroshenko, А.Yu., Ivanenko, P.A., Novak, O.S.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2018
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/318
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-318
record_format ojs
resource_txt_mv ppisoftskievua/ed/00a69d16f4b758e2ff7a6126556a55ed.pdf
spelling pp_isofts_kiev_ua-article-3182024-04-28T11:52:03Z Optimization of auto-tuning of programs using neural networks Оптимизация автотьюнинга программ с использованием нейросетей Оптимізація автотьюнінгу програм з використанням нейромереж Doroshenko, А.Yu. Ivanenko, P.A. Novak, O.S. auto-tuning; statistical modeling; automation of software developmen; neural networks UDC 681.5 автотьюнинг; статистическое моделирование; автоматизация разработки программного обеспечения; нейросети УДК 681.5 автотьюнінг; статистичне моделювання; автоматизація розробки програмного забезпечення; нейромережі УДК 681.5 Auto-tuning of programs is a method of self-tuning of internal parameters of the program, affecting its speed, in order to achieve high performance indicators, but it can take a lot of time for testing. In this paper, we propose to improve the method of auto-tuning of programs using neural network algorithms and statistical simulation. The automatic learning of the program model on the results of the "traditional" tuning cycles with the subsequent replacement of some auto-tuner calls with an evaluation from the approximation model allows to significantly accelerate the search for the optimal program variant. Problems in programming 2017; 2: 40-47 Автотьюнинг программ – это метод самонастройка внутренних параметров программы, влияющие на ее быстродействие, с целью достижения высоких показателей производительности, однако он может потребовать много времени на испытания. В работе предложено совершенствование метода автотьюнинга программ с использованием нейросетевых алгоритмов и статистического моделирования. Автоматическое обучение модели программы на результатах "традиционных" циклов тьюнинга с последующей заменой части запусков авто­тьюнера оценкой из аппроксимационной модели позволяет значительно ускорить поиск оптимального варианта программы.Problems in programming 2017; 2: 40-39 Автотьюнінг програм – це метод самоналаштування внутрішніх параметрів програми, що мають вплив на її швидкодію, з метою досягнення найвищих показників продуктивності, проте він може вимагати багато часу на випробування. В роботі запропоновано вдосконалення методу автотьюнінгу програм з використанням нейромережевих алгоритмів та статистичного моделювання. Автоматичне навчання моделі програми на результатах “традиційних” циклів тьюнінгу з подальшою підміною частини запусків автотьюнера оцінкою з апроксимаційної моделі дозволяє значно прискорити пошук оптимального варіантуа програми. Problems in programming 2017; 2: 40-47 Інститут програмних систем НАН України 2018-11-19 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/318 10.15407/pp2017.02.040 PROBLEMS IN PROGRAMMING; No 2 (2017); 40-47 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2 (2017); 40-47 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2 (2017); 40-47 1727-4907 10.15407/pp2017.02 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/318/313 Copyright (c) 2018 PROBLEMS OF PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2024-04-28T11:52:03Z
collection OJS
language Ukrainian
topic auto-tuning
statistical modeling
automation of software developmen
neural networks
UDC 681.5
spellingShingle auto-tuning
statistical modeling
automation of software developmen
neural networks
UDC 681.5
Doroshenko, А.Yu.
Ivanenko, P.A.
Novak, O.S.
Optimization of auto-tuning of programs using neural networks
topic_facet auto-tuning
statistical modeling
automation of software developmen
neural networks
UDC 681.5
автотьюнинг
статистическое моделирование
автоматизация разработки программного обеспечения
нейросети
УДК 681.5
автотьюнінг
статистичне моделювання
автоматизація розробки програмного забезпечення
нейромережі
УДК 681.5
format Article
author Doroshenko, А.Yu.
Ivanenko, P.A.
Novak, O.S.
author_facet Doroshenko, А.Yu.
Ivanenko, P.A.
Novak, O.S.
author_sort Doroshenko, А.Yu.
title Optimization of auto-tuning of programs using neural networks
title_short Optimization of auto-tuning of programs using neural networks
title_full Optimization of auto-tuning of programs using neural networks
title_fullStr Optimization of auto-tuning of programs using neural networks
title_full_unstemmed Optimization of auto-tuning of programs using neural networks
title_sort optimization of auto-tuning of programs using neural networks
title_alt Оптимизация автотьюнинга программ с использованием нейросетей
Оптимізація автотьюнінгу програм з використанням нейромереж
description Auto-tuning of programs is a method of self-tuning of internal parameters of the program, affecting its speed, in order to achieve high performance indicators, but it can take a lot of time for testing. In this paper, we propose to improve the method of auto-tuning of programs using neural network algorithms and statistical simulation. The automatic learning of the program model on the results of the "traditional" tuning cycles with the subsequent replacement of some auto-tuner calls with an evaluation from the approximation model allows to significantly accelerate the search for the optimal program variant. Problems in programming 2017; 2: 40-47
publisher Інститут програмних систем НАН України
publishDate 2018
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/318
work_keys_str_mv AT doroshenkoayu optimizationofautotuningofprogramsusingneuralnetworks
AT ivanenkopa optimizationofautotuningofprogramsusingneuralnetworks
AT novakos optimizationofautotuningofprogramsusingneuralnetworks
AT doroshenkoayu optimizaciâavtotʹûningaprogrammsispolʹzovaniemnejrosetej
AT ivanenkopa optimizaciâavtotʹûningaprogrammsispolʹzovaniemnejrosetej
AT novakos optimizaciâavtotʹûningaprogrammsispolʹzovaniemnejrosetej
AT doroshenkoayu optimízacíâavtotʹûnínguprogramzvikoristannâmnejromerež
AT ivanenkopa optimízacíâavtotʹûnínguprogramzvikoristannâmnejromerež
AT novakos optimízacíâavtotʹûnínguprogramzvikoristannâmnejromerež
first_indexed 2024-09-25T04:02:56Z
last_indexed 2024-09-25T04:02:56Z
_version_ 1818527417948438528
fulltext Інструментальні засоби та середовища програмування © А.Ю. Дорошенко, П.А. Іваненко, О.C. Новак, 2017 40 ISSN 1727-4907. Проблеми програмування. 2017. № 2 УДК 681.5 А.Ю. Дорошенко, П.А. Іваненко, О.C. Новак ОПТИМІЗАЦІЯ АВТОТЬЮНІНГУ ПРОГРАМ З ВИКОРИСТАННЯМ НЕЙРОМЕРЕЖ Автотьюнінг програм – це метод самоналаштування внутрішніх параметрів програми, що мають вплив на її швидкодію, з метою досягнення найвищих показників продуктивності, проте він може вимагати багато часу на випробування. В роботі запропоновано вдосконалення методу автотьюнінгу програм з використанням нейромережевих алгоритмів та статистичного моделювання. Автоматичне навчання моделі програми на результатах “традиційних” циклів тьюнінгу з подальшою підміною частини запус- ків автотьюнера оцінкою з апроксимаційної моделі дозволяє значно прискорити пошук оптимального варіанта програми. Ключові слова: автотьюнінг, статистичне моделювання, автоматизація розробки програмного забезпе- чення, нейромережі. Вступ У попередній роботі авторів [1] за- пропоновано гібридизацію відомого мето- ду самоналаштування (автотьюнінгу) про- грам [2], що поєднує реальне випробуван- ня програми з використанням статистич- ного моделювання для звуження простору пошуку оптимального варіанту програми. Головною метою методу при цьому зали- шається підвищення ефективності викори- стання наявних обчислювальних ресурсів. Питання оптимального використання та- ких ресурсів є одним із основних для будь- якого програмного забезпечення. Воно є важливим як для невеликих застосунків, так і для складних високонавантажених програмних комплексів. Така проблема оптимізації програмних систем нині вирі- шується, зокрема, за допомогою методу автотьюнінгу [2], який може успішно ви- користовуватись незалежно від особливос- тей обчислювального середовища. Харак- теристичною рисою автотьюнінгу є емпі- ричне оцінювання якості оптимізованої програми (під якістю зазвичай розуміють швидкодію й точність результату). Тим самим, розробник програми може оцінити результат без моделювання усіх етапів виконання програми та отримати досить точні дані щодо цього виконання у конк- ретному обчислювальному середовищі. Проте, застосування автотьюнінгу для складних і нетривіальних програмних систем зазвичай вимагає багато часу. В даній роботі розглядається вдосконалення вищезгаданого гібридного підходу до ав- тотьюнінгу з використанням техніки ней- ромереж і машинного навчання. В резуль- таті запропонований підхід дозволяє авто- матичне навчання моделі на результатах “традиційних” циклів тьюнінгу й подаль- шу підміну частини запусків автотьюнера оцінкою з апроксимаційної моделі, що значно пришвидшує пошук оптимального варіанта програми. Метод автотьюнінгу Максимальна ефективність програ- ми досягається шляхом її налаштування (тьюнінгу) під обчислювальне середовище (ОС), у якому вона буде виконуватися. Як зазначено [2], метод дозволяє автоматизу- вати це налаштування. Основою для авто- тьюнінгу є ідея емпіричної оцінки декіль- кох варіантів програми й вибору найкра- щого. Програма-тюнер може бути як час- тиною оптимізовуваної програми, так і окремим додатком. Для повноти переліку часто ще вказують тюнер, інтегрований у операційну систему. Проте, досі не було створено універсальної імплементації та- кого варіанта. Хоча методологія автотьюнінгу вже виправдала свою універсальність й ефекти- вність, у процесі її використання доводить- ся враховувати значний час роботи авто- тьюнера й необхідність його написання. Роботу програми-тюнера можна на- звати досить шаблонною: обрати/створити Інструментальні засоби та середовища програмування 41 нову версію програми й отримати емпіри- чну оцінку її швидкодії. Потреба написан- ня коду самого автотьюнера усувається автоматичним генеруванням його коду з вихідного коду оптимізованої програми (наприклад, як це робиться в програмній системі автотьюнінгу TuningGenie [3–4]). Завдяки цьому вихідна програма займаєть- ся тільки розв’язанням її основної задачі й абстрагована від кількісних характеристик ОС, що значно спрощує її розробку. Така абстракція також дозволяє створювати програмні додатки, що будуть автоматич- но оптимізуватися для виконання на апа- ратних засобах наступних поколінь (при- наймні доки не зміниться багатоядерна архітектура обчислювачів). Далі в цій публікації під тьюнером будемо розуміти окрему програму, а точ- ніше універсальну систему генерації авто- тьюнерів TuningGenie. Отже, головним недоліком авто- тьюнінгу залишаються істотні часові і обчи- слювальні витрати, зумовлені необхідністю емпіричного оцінювання у цільовому сере- довищі великої множини варіантів вихідної програми. Для скорочення цих витрат гібри- дний підхід [1] застосовує машинне навчан- ня. А саме – емпіричне оцінювання частини варіацій підміняється оцінкою з апроксима- ційної моделі програми. Використання статистичного моделювання та нейромереж Усі статистичні алгоритми (у тому числі й алгоритми машинного навчання) потребують значної кількості статистичних даних для аналізу та побудови моделі [5]. В контексті задач автотьюнінгу збір великої кількості статистичних даних може бути доволі тривалим процесом. Тому досить гостро стає проблема алгоритмів, які дозво- лять максимально звузити область пошуку при мінімальній кількості реальних запус- ків автотюнера. Щоб частково вирішити цю проблему, в даній роботі запропоновано використовувати нейромережу для екстра- поляції даних. В такому випадку необхідна буде відносно невелика кількість реальних запусків для побудови наближеної моделі, після чого нейромережева модель може бути використана іншими алгоритмами за принципом «чорної скрині». Як правило, задачі машинного нав- чання (в тому числі побудови нейромереж) в залежності від природи «сигналу» поді- ляють на такі категорії [6]: навчання з учителем. Системі на- даються приклади входів та їхніх бажаних виходів, задані «вчителем», і метою є нав- чання загального правила, яке відображає входи на виходи; навчання без учителя. Алгоритму навчання не надається жодних міток, залишаючи його самому знаходити струк- туру на своєму вході. Навчання без учите- ля може бути метою саме по собі (вияв- лення прихованих закономірностей у да- них), або засобом досягнення мети (нав- чання ознакам); навчання з підкріпленням. Комп'ю- терна програма взаємодіє з динамічним середовищем, у якому вона має виконува- ти певну мету (наприклад, таку як водіння авто) без учителя, який явно казав би їй, чи підійшла вона близько до мети. Іншим прикладом є навчання грі через гру із су- перником. Загалом, можна описати загальний підхід до вирішення такого типу задач [7]:  аналіз записів і підготовка «си- рих» даних до завантаження. Оскільки дані можуть приходити з різних джерел і в різних форматах, то потрібно все привести до єдиного вигляду;  підготовка даних. На цьому етапі вирішуються проблеми неповноти даних, шумів, суперечності в даних і т. п. Основні задачі цього етапу – очищення (заповнення відсутніх значень, видалення спотворених даних та випадкових викидів), перетво- рення (нормалізація для зниження спотво- рень), ущільнення (створення вибірок да- них для окремих атрибутів/груп атрибутів та дискретизація (перетворення неперерв- них атрибутів у категоріальні);  аналіз даних та побудова моделі;  перевірка моделі на тестовій ви- борці даних. Для перевірки точності моделі мож- на використовувати декілька методів, один з них – матриця похибок (confussion matrix) з різними відтінками позитивного чи нега- тивного прогнозу [8] (див. таблицю). Інструментальні засоби та середовища програмування 42 Таблиця Позитивний прогноз Негативний прогноз Позитивне значення Позитивний результат Псевдонегативний результат (статистична похибка 2-го роду) Негативне значення Псевдопозитивний результат (статистична похибка 1-го роду) Негативний результат Тут позитивний чи негативний ре- зультат – це ситуації, коли прогноз моделі співпадає чи, відповідно, не співпадає з реальним результатом. Статистична похи- бка 1-го роду – ситуація коли модель дає позитивний прогноз для негативного ре- зультату. А статистична похибка 2-го роду – дзеркальна ситуація (негативний прогноз до позитивного результату). В цьому випадку, для оцінки якості моделі можна використовувати точність NP TNTP Acc     , де TP – кількість позитивних результатів, TN – кількість негативних результатів, P – дзеркальна кількість позитивних зна- чень, N – загальна кількість негативних значень. Практичний експеримент Для практичного експерименту в якості об’єкта тьюнінгу було використано розширену версію алгоритму з поперед- ньої роботи авторів [1] (алгоритм сорту- вання злиттям чи вставками, в залежності від розміру блоку числового масиву да- них). Сам алгоритм був реалізований на мові Java. Первинний аналіз даних виконував- ся на мові Python з використанням бібліо- теки Sckikit learn [9]. Подальший аналіз виконувався за допомогою мови R. Експеримент складався з декількох стандартних етапів: підготовка та заванта- ження записів роботи автотьюнера, підго- товка даних (в тому числі нормалізація), побудова нейромережевої моделі на на- вчальній виборці даних та перевірка моде- лі на контрольній виборці даних. Сам процес, за яким проходив ана- ліз даних, показано на рис. 1. Спочатку автотьюнер проводить N експериментів та зберігає дані для нейромережі в окремий файл. Ці дані використовува- лись нейромережею для навчання. Після навчання, нейромережа екстраполювала дані генеруючи новий набір даних (в ок- ремий файл). І в кінці, обидва набори даних аналізувались і порівнювались вже людиною. В якості нейромережі обрано бага- тошаровий перцептрон з трьома вхідними нейронами, трьома прихованими шарами (по 20-10-5 нейронів відповідно) та одним вихідним. Як активатор у нейронів вико- ристовувалась випрямлена лінійна функ- ція ( ),0(max)( xxf  ). Як метод навчання використовувався метод зворотного по- ширення помилки (та алгоритм Бройдена– Флетчера–Гольдфарба–Шанно для опти- мізації вагових коефіцієнтів). Приклад вхідних даних показано на рис. 2, де (V1 – номер запуску авто- тьюнера, вилучено з рисунка), V2,V3,V4 – вхідні параметри, V5 – результат, V6 – якісна оцінка результату. Інструментальні засоби та середовища програмування 43 Рис. 1. Процес аналізу Рис. 2. Вхідні дані На основі результатів декількох ти- сяч запусків (3300) побудовано нейро- мережу, яку було використано для пода- льшої генерації даних (рис. 3, 4). Крім того, як буде видно з рис. 5 – це не міні- мальна кількість даних які потрібні для побудови моделі, і кількість замірів мож- ливо буде зменшити при незначній втраті в точності. Варто ще зазначити, що дані первісних замірів виявились не зовсім рівномірно розподіленими, що пояснює білі області для залежності V2 ~ V3 на рис. 2 і далі). З рис. 4 можна побачити, що ком- бінація параметрів X0 та X2 мають знач- ний вплив на результат роботи алгоритму, що збігається з результатами ручного аналізу даних у минулій публікації [1]. Тут біла область – комбінація параметрів при якій відсутні «неякісні» результати. В контексті даного експерименту використання нейромережі для початко- вого приближення дозволило звузити область пошуку на 58 % (з 610 до 5 4.2 10 ). обробка даних обробка даних автотьюнер Інструментальні засоби та середовища програмування 44 Рис. 3. Вхідні дані (3300 запусків автотьюнера) Рис. 4. Результати прогнозування (125 мільйонів емуляцій запуска автотьюнера) Інструментальні засоби та середовища програмування 45 Аналіз результатів експерименту Для перевірки якості отриманих ре- зультатів було зроблено більше 30 тисяч реальних запусків автотьюнера (рівномір- но розподілених по всій множині варіан- тів) та проаналізовані результати роботи. (рис. 4). Хід роботи тут був аналогічний тому, що був описаний в експерименталь- ній частині окрім кількості реальних запу- сків автотьюнера. Після чого було порів- няно результат прогнозу нейромережі (на основі 3 тисяч запусків) з реальними результатами. Для оцінки якості моделі використо- вувалась матриця похибок (confussion matrix). На рис. 6 показано залежність точ- ності моделі від частки даних яку було ви- користано для навчання. Тут по осі Y – кількість відсотків від всіх наявних даних яка використовувалась для навчання моде- лі, по осі X – середня точність (ACC) від 10 нейромереж що були навчені на цих даних. У випадку використання 10 % від усіх замірів (тобто, 3300 замірів) матриця мала вигляд, де TP – позитивний прогноз, PN – негати- вний прогноз, CP – позитивне значення, CN – негативне значення. Тоді ACC = 96 %. Оскільки мета цього етапу – відсія- ти очевидно неякісні варіанти, то питання точності тут менш критичне (так як ці дані будуть ще раз оброблені на наступному етапі вже іншим алгоритмом). Більш кри- тичним тут є зменшення кількості похибок 2-го роду. З цього можна зробити висновок, що для звуження області пошуку авто- тьюнера, за умови збереження високої то- чності результатів, розглянутій системі достатньо відносно невеликої частини за- мірів. Рис. 5. Вхідні дані (33 тисячі запусків автотьюнера) TP PN CP 19978 570 CN 488 9506 Інструментальні засоби та середовища програмування 46 Рис. 6. Залежність точності моделі від кількості даних для навчання Висновки При всіх недоліках, притаманних нейромережам (необхідність у великій кількості даних для навчання, можлива велика обчислювальна складність), їх ви- користання все-ж таки уможливлює помі- тне звуження області пошуку конфігурацій й підходить як перший етап роботи авто- тьюнера. Крім того, завдяки можливостям пер- цептронів у задачах класифікації, викорис- тання такого типу нейромережі як перший фільтр дозволяє легко виділити найбільш вагомі вхідні параметри (тобто ті, що мають найбільший вплив на кінцевий результат). З негативних сторін слід виділити, що на сьогодні нейромережі – це досить скла- дна прикладна область, яка сама по собі потребує налаштування метапараметрів, що впливають на швидкодію і якість робо- ти системи, починаючи від кількості ней- ронів і конфігурації нейромережі та заве- ршуючи різноманітними коефіцієнтами. 1. Дорошенко А.Ю., Іваненко П.А., Новак О.С. Гібридна модель автотьюнінгу з ви- користанням статистичного моделювання. Проблеми програмування. 2016. № 4. С. 27–32. 2. Naono K., Teranishi K., Cavazos J., Suda R. Software Automatic Tuning From Concepts to State-of-the-Art Results. Springer; 1st Edition. Edition, 2010. 3. Ivanenko P.A, Doroshenko A.Y., Zhereb K.A. TuningGenie: Auto-Tuning Framework Based on Rewriting Rules. 10th International Conference, ICTERI 2014, Kherson, Ukraine, June 9–12, 2014. Revised Selected Papers. P. 139–158. 4. Ivanenko P.A, Doroshenko A.Y. Method for automated generation of autotuners for parallel applications. Cybernetics and system analisys. 2014. N 3. P. 75–83. 5. Tom M. Mitchell. Machine learning. mcGraw-Hill Science/Engineering/Math., 1997. 6. Russell, Stuart, Norvig, Peter. Artificial Intelligence: A Modern Approach (2nd edition). Prentice Hall. 7. Jiawei Han, Micheline Kamber, Jian Pei. Data mining: Cencepts and Techniques, 3rd edition. Morgan Kaufmann, 2011. 8. Tom Fawcett. An indroduction to ROC analysis. Elsevier B.V., 2005. 9. Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu Blondel, Peter Prettenhofer, Ron Weiss, Vincent Dubourg, Jake Vanderplas, Alexandre Passos, David Cournapeau, Matthieu Brucher, Matthieu Perrot, Édouard Duchesnay. Scikit-learn: Machine learning in Python. 2011. JMLR 12. P. 2825–2830. References 1. Doroshenko A., Ivanenko P., Novak O. Hybrid auto tuning model with the use of a static modelling. Scientific journal “Problems of programming”. 2016, N 4. P. 27–32. 2. Naono K., Teranishi K., Cavazos J., Suda R. Software Automatic Tuning From Concepts to State-of-the-Art Results. Springer; 1st Edition. Edition, 2010 3. Ivanenko P.A., Doroshenko A.Y., Zhereb K.A. TuningGenie: Auto-Tuning Framework Based on Rewriting Rules. 10th International Conference, ICTERI 2014, Kherson, Ukraine, June 9–12, 2014. Revised Selected Papers. P. 139–158. 4. Ivanenko P.A., Doroshenko A.Y. Method for automated generation of autotuners for parallel applications. Cybernetics and system analisys. 2014. N 3. P. 75–83. Інструментальні засоби та середовища програмування 47 5. Tom M. Mitchell. Machine learning. mcGraw-Hill Science/Engineering/Math., 1997. 6. Russell, Stuart, Norvig, Peter. Artificial Intelligence: A Modern Approach (2nd edition). Prentice Hall. 7. Jiawei Han, Micheline Kamber, Jian Pei. Data mining: Cencepts and Techniques, 3rd edition. Morgan Kaufmann, 2011. 8. Tom Fawcett. An indroduction to ROC analysis. Elsevier B.V. 2005. 9. Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu Blondel, Peter Prettenhofer, Ron Weiss, Vincent Dubourg, Jake Vanderplas, Alexandre Passos, David Cournapeau, Matthieu Brucher, Matthieu Perrot, Édouard Duchesnay. Scikit-learn: Machine learning in Python. 2011. JMLR 12, P. 2825–2830. Одержано 03.05.2017 Про авторів: Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділу теорії комп’ютерних обчислень, професор кафедри автоматики та управління в технічних системах НТУ України “КПІ”. Кількість наукових публікацій в українських виданнях – понад 200. Кількість наукових публікацій в зарубіжних виданнях – понад 50. Індекс Хірша – 5. http://orcid.org/0000-0002-8435-1451, Іваненко Павло Андрійович, молодший науковий співробітник. orcid.org/0000-0001-5437-9763, Новак Олександр Сергійович, аспірант. orcid.org/0000-0002-1665-7360. Місце роботи авторів: Інститут програмних систем НАН України. проспект Академіка Глушкова, 40. 03187, Київ, НТУ України «КПІ». Тел.: (044) 526 3559. E-mail: a-y-doroshenko@ukr.net, paiv@ukr.net, novak.as@i.ua mailto:a-y-doroshenko@ukr.net mailto:paiv@ukr.net mailto:novak.as@i.ua