Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/8928| Назва: | Агентно-орієнтована інформаційна система на основі алгоритмів штучного інтелекту |
| Автори: | Немченко, Вадим В'ячеславович Горабнь, Вадим Вячеславович |
| Ключові слова: | АГЕНТНО-ОРІЄНТОВАНІ СИСТЕМИ;АГЕНТИ;ГЕНЕРАТИВНИЙ ШТУЧНИЙ ІНТЕЛЕКТ;МАШИННЕ НАВЧАННЯ;AGENT-BASED SYSTEMS;AGENTS;GENERATIVE ARTIFICIAL INTELLIGENCE;MACHINE LEARNING |
| Дата публікації: | 19-гру-2023 |
| Короткий огляд (реферат): | АНОТАЦІЯ Горбань В.В. Агентно-орієнтована інформаційна системи на основі алгоритмів штучного інтелекту
121 «Інженерія програмного забезпечення»
Черкаський державний технологічний університет
Черкаси 2023
Ця робота присвячена розробці агентно-орієнтованої інформаційної системи на базі алгоритмів штучного інтелекту. Вона охоплює необхідність ефективних алгоритмів ШІ, що інтегруються в інформаційні системи для підвищення якості прийняття рішень на основі аналізу великих даних. Робота включає огляд існуючих методів та засобів у сфері ШІ, теоретичне та експериментальне вивчення алгоритмів ШІ та їх застосування у розробці та тестуванні систем. Особливість полягає в створенні інтегрованого підходу для агентно-орієнтованих інформаційних систем з використанням передових алгоритмів ШІ, що підвищує їхню ефективність та адаптивність. ANNOTATION Horban V.V Agent-based information system based on artificial intelligence algorithms 121 «Software engineering» Cherkasy State Technological University Cherkasy 2023 This paper is devoted to the development of an agent-based information system based on artificial intelligence algorithms. It covers the need for effective AI algorithms that integrate into information systems to improve the quality of decision-making based on big data analysis. The work includes an overview of existing methods and tools in the field of AI, theoretical and experimental study of AI algorithms and their application in system development and testing. A special feature is the creation of an integrated approach for agent-based information systems using advanced AI algorithms, which increases their efficiency and adaptability. |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/8928 |
| Розташовується у зібраннях: | 121 Інженерія програмного забезпечення (Інженерія програмного забезпечення) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| Кваліфікаційна робота магістра Горбань Вадим Вячеславович.pdf Restricted Access | 956.97 kB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
«магістра»
освітній рівень
на тему: Агентно-орієнтована інформаційна системи на основі
алгоритмів штучного інтелекту
Виконав: студент 2 курсу, групи МПЗ-2204
Напряму підготовки
121 «Інженерія програмного забезпечення»
(шифр і назва напряму підготовки)
Студент Горбань В.В.
(прізвище та ініціали)
К ерівник Немченко В.В.
(прізвище та ініціали)
Р ецензент Деньга О.В.
(прізвище та ініціали)
Черкаси 2023
АНОТАЦІЯ
Горбань В.В.
Агентно-орієнтована інформаційна системи на основі алгоритмів штучного
інтелекту
121 «Інженерія програмного забезпечення»
Черкаський державний технологічний університет
Черкаси 2023
Ця робота присвячена розробці агентно-орієнтованої інформаційної
системи на базі алгоритмів штучного інтелекту. Вона охоплює необхідність
ефективних алгоритмів ШІ, що інтегруються в інформаційні системи для
підвищення якості прийняття рішень на основі аналізу великих даних. Робота
включає огляд існуючих методів та засобів у сфері ШІ, теоретичне та
експериментальне вивчення алгоритмів ШІ та їх застосування у розробці та
тестуванні систем. Особливість полягає в створенні інтегрованого підходу для
агентно-орієнтованих інформаційних систем з використанням передових
алгоритмів ШІ, що підвищує їхню ефективність та адаптивність.
Ключові слова: АГЕНТНО-ОРІЄНТОВАНІ СИСТЕМИ, АГЕНТИ,
ГЕНЕРАТИВНИЙ ШТУЧНИЙ ІНТЕЛЕКТ, МАШИННЕ НАВЧАННЯ
2
ANNOTATION
Horban V.V
Agent-based information system based on artificial intelligence algorithms
121 «Software engineering»
Cherkasy State Technological University
Cherkasy 2023
This paper is devoted to the development of an agent-based information system
based on artificial intelligence algorithms. It covers the need for effective AI
algorithms that integrate into information systems to improve the quality of decision-
making based on big data analysis. The work includes an overview of existing methods
and tools in the field of AI, theoretical and experimental study of AI algorithms and
their application in system development and testing. A special feature is the creation
of an integrated approach for agent-based information systems using advanced AI
algorithms, which increases their efficiency and adaptability.
Keywords: AGENT-BASED SYSTEMS, AGENTS, GENERATIVE
ARTIFICIAL INTELLIGENCE, MACHINE LEARNING
3
ЧДТУ.232227.06 ПЗ
ЗМІСТ
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ ....................................................................... 6
ВСТУП ......................................................................................................................... 7
РОЗДІЛ 1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ .................................................................................................................. 10
1.1 Огляд існуючих методів та засобів ............................................................... 11
1.2 Аналіз існуючих в світі аналогів інформаційних технологій ..................... 18
Висновки до розділу ............................................................................................. 20
РОЗДІЛ 2 ТЕОРЕТИЧНІ ТА ЕКСПЕРИМЕНТАЛЬНІ ДОСЛІДЖЕННЯ .......... 21
2.1 Теоретичні дослідження ................................................................................. 21
2.2 Експериментальні дослідження ..................................................................... 25
Висновки до розділу ............................................................................................. 32
РОЗДІЛ 3 АНАЛІЗ І ПРОЄКТУВАННЯ СИСТЕМИ ........................................... 33
3.1 Моделювання предметної області ................................................................. 33
3.1.1 Елементи моделювання предметної області .......................................... 36
3.1.2 Словник предметної області .................................................................... 37
3.2 Формулювання та аналіз вимог ..................................................................... 37
3.2.1 Формування та аналіз вимог за допомогою діаграм прецедентів ........ 38
3.3 Проєктування логічної структури системи................................................... 39
3.3.1 Діаграма класів.......................................................................................... 39
3.3.2 Діаграма пакетів ........................................................................................ 41
3.4 Архітектурне проєктування ........................................................................... 41
3.4.1 Діаграма компонентів ............................................................................... 42
3.4.2 Розгортання програмної системи на апаратних засобах ....................... 43
3.5 Моделювання поведінки системи .................................................................. 44
3.5.1 Діаграма діяльності ................................................................................... 44
3.5.2 Діаграма послідовності ............................................................................ 46
3.5.3 Діаграма комунікації ................................................................................ 47
3.5.4 Діаграма кінцевого автомату ................................................................... 47
4
ЧДТУ.232227.06 ПЗ
Висновки до розділу ............................................................................................. 49
РОЗДІЛ 4 РОЗРОБКА І ТЕСТУВАННЯ СИСТЕМИ ............................................ 50
4.1 Розробка системи ............................................................................................ 50
4.1.1 Обґрунтування вибору засобів реалізації ............................................... 51
4.1.2 Опис структурної схеми ........................................................................... 56
4.1.3 Опис логічної схеми ................................................................................. 57
4.1.4 Розробка бази даних ................................................................................. 59
4.1.5 Розробка інтерфейсу користувача ........................................................... 59
4.2 Тестування системи ........................................................................................ 59
4.2.1 Модульне тестування ............................................................................... 60
4.2.2 Інтеграційне тестування ........................................................................... 61
4.2.3 Системне тестування ................................................................................ 62
4.2.4 Приймальне тестування ........................................................................... 63
4.3 Приклади впровадження програмного комплексу ....................................... 63
Висновки до розділу ............................................................................................. 64
ВИСНОВКИ .............................................................................................................. 65
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ................................................................. 67
ДОДАТОК А ............................................................................................................. 69
ДОДАТОК Б .............................................................................................................. 71
5
ЧДТУ.232227.06 ПЗ
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ
АОІС агентно-орієнтована інформаційна система
ШІ штучний інтелект
ГА генетичні алгоритми
ІоТ інтернет речей
6
ЧДТУ.232227.06 ПЗ
ВСТУП
У сучасному світі інформаційні технології еволюціонували до ступеня,
коли штучний інтелект (ШІ) не просто асистує людині, але й активно змінює
парадигми в багатьох сферах життя. Центральним аспектом цього процесу є
розробка та інтеграція інформаційних систем на основі алгоритмів ШІ, які здатні
адаптуватися до змінних умов, вчитися та приймати оптимальні рішення.
Сфера інформаційних систем, зокрема ті, що базуються на ШІ, є надзвичайно
важливою та актуальною. Основна мета таких систем – забезпечення
ефективного збору, обробки, зберігання та аналізу даних. Завдяки постійному
розвитку методів машинного навчання та глибинного навчання, інформаційні
системи на основі ШІ здатні забезпечувати не тільки високий рівень точності
обробки даних, але й адаптивність та гнучкість в різноманітних умовах.
Актуальність даної магістерської роботи полягає у необхідності розробки
та дослідження ефективних алгоритмів штучного інтелекту, що можуть бути
інтегровані в інформаційні системи. Це дозволить підвищити якість та
ефективність рішень, що приймаються на основі аналізу великих обсягів даних.
Головна мета роботи – аналіз існуючих методів і засобів інтеграції
штучного інтелекту в інформаційні системи, а також розробка та тестування
нових алгоритмів, що оптимізують роботу таких систем. Робота також
передбачає теоретичне та експериментальне дослідження впливу цих алгоритмів
на ефективність інформаційних систем.
Завдання дослідження:
– дослідити та розробити архітектуру агентно-орієнтованої системи, яка
використовує алгоритми штучного інтелекту для оптимізації обробки та аналізу
даних. До цього завдання входить визначення компонентів системи, їх взаємодії
та методів інтеграції з іншими системами;
– провести дослідження наявних алгоритмів штучного інтелекту, їхньої
придатності та ефективності для використання в контексті агентно-орієнтованих
7
ЧДТУ.232227.06 ПЗ
систем. До завдання входить адаптація або розробка нових алгоритмів для
специфічних потреб системи.
– провести експериментальне тестування розробленої системи та її
компонентів для оцінки ефективності, надійності та масштабованості. Включити
визначення критеріїв успішності, збір та аналіз даних, і на основі отриманих
результатів зробити висновки про придатність та ефективність системи.
Об'єктом дослідження у даній роботі є агентно-орієнтовані інформаційні
системи, інтегровані з алгоритмами штучного інтелекту. Такі системи
відкривають нові можливості для аналізу даних, прогнозування та автоматизації
багатьох процесів.
Предметом дослідження є розробка та впровадження алгоритмів ШІ, які
можуть ефективно інтегруватися в інформаційні системи, підвищуючи їхню
продуктивність та адаптивність.
Методи досліджень. У рамках досягнення визначеної цілі було
застосовано наступний набір методологічних підходів: методи порівняння та
спостереження були використані для аналізу існуючих алгоритмів штучного
інтелекту; моделювання, системний аналіз та формалізація застосовувались у
процесі розробки моделі проектованої системи.
Наукова новизна роботи полягає у розробці інтегрованого підходу до
створення агентно-орієнтованих інформаційних систем з використанням
передових алгоритмів штучного інтелекту, що дозволяє підвищити їх
ефективність та адаптивність.
Практичне значення отриманих результатів полягає у можливості
використання розробленої системи у різних областях, де необхідне швидке та
ефективне прийняття рішень на основі обробки великих обсягів інформації.
Особистий внесок автора включає у себе розробку концепції агентно-
орієнтованої системи, вибір та адаптацію алгоритмів штучного інтелекту для її
потреб, а також проведення експериментального тестування розробленого
прототипу.
8
ЧДТУ.232227.06 ПЗ
Публікації. Участь у «IV Всеукраїнської науково-практичної інтернет
конференції Інформаційні технології: моделі, алгоритми, системи» 5 листопада
2023 року на тему «Огляд ролі системи керування дронів» (результати
конференції у формі тез), участь в I Міжнародній науково-практичній
конференція “SCIENCE AND SOCIETY: MODERN TRENDS IN A CHANGING
WORLD”, 18-20.12.2023 на тему: "Aгентно-орієнтована інформаційна система на
основі генеративних нейронних мереж" (результати конференції у формі тез).
У першому розділі буде проведено огляд існуючих методів і засобів у сфері
штучного інтелекту, які застосовуються в інформаційних системах. Другий
розділ присвячений теоретичним та експериментальним дослідженням
алгоритмів ШІ. У третьому розділі буде розглянуто практичне впровадження
результатів досліджень у проєктування програмного забезпечення
інформаційних систем. Четвертий розділ включає розробку та тестування
програмного забезпечення, використовуючи розроблені алгоритми.
Завершується робота висновками, в яких будуть підсумовані основні результати
дослідження та їхнє значення для розвитку інформаційних систем на основі
штучного інтелекту.
Кваліфікаційна робота складається з вступу, чотирьох розділів, висновків,
списку використаних джерел в кількості 16. Робота містить 18 рисунків, 3
таблиці та 2 додатки. Загальний обсяг роботи викладено на 72 сторінках.
9
ЧДТУ.232227.06 ПЗ
РОЗДІЛ 1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ
ПОСТАВЛЕНИХ ЗАВДАНЬ
Історія штучного інтелекту (ШІ) починається з середини 20-го століття,
коли ця концепція вперше була сформульована як наукова ідея. Алан Тьюрінг,
британський математик і логік, у 1950 році опублікував свою відому статтю
"Computing Machinery and Intelligence", де вперше було запропоновано поняття
тесту Тьюрінга як методу оцінки інтелектуальних здібностей машин. Це
відкрило шлях для розвитку теоретичних основ ШІ [1].
На початку 1956 року Джон Маккарті, Марвін Мінськи, Натан Рочестер та
Клод Шеннон організували Дартмутську конференцію, де термін "штучний
інтелект" було використано вперше. Ця подія вважається офіційним
народженням ШІ як окремої галузі наукових досліджень.
У 1960-х роках науковці зосередилися на розробці базових алгоритмів
машинного навчання та розумінні мовних структур, що сприяло створенню
перших програм, здатних імітувати елементарне мислення. Наприклад, програма
ELIZA, створена Джозефом Вайценбаумом у 1966 році, була однією з перших,
що демонструвала можливість машини вести "діалог" з людиною.
Протягом 1970-х років увага дослідників змістилася до розробки
експертних систем, які використовували правила для вирішення специфічних
завдань у певних областях. Експертні системи, такі як MYCIN, розроблена у
Стенфордському університеті для діагностики захворювань та призначення
антибіотиків, показали значний потенціал ШІ у медицині. Ці системи могли
імітувати процес прийняття рішень експертів у вузькоспеціалізованих областях,
що стало важливим кроком у розвитку штучного інтелекту [16].
В 1980-х роках відбувся значний розвиток у сфері нейронних мереж, що
сприяло створенню фундаменту для сучасних алгоритмів глибинного навчання.
Дослідження в цій області, такі як робота Джона Хопфілда та Девіда
Румельхарта, допомогли зрозуміти, як мозок може бути імітований для
розв'язання складних задач.
10
ЧДТУ.232227.06 ПЗ
1990-ті роки принесли розширення можливостей ШІ завдяки зростанню
обчислювальної потужності та розвитку інтернету. Були розроблені алгоритми
машинного навчання, такі як випадкові ліси та підсилювальне навчання, які
знайшли широке застосування у різних галузях.
На початку 21-го століття відбувся стрімкий розвиток глибинного
навчання та нейронних мереж, що стало можливим завдяки появі великих
наборів даних і значно підвищеній обчислювальній потужності. Це сприяло
створенню таких систем, як Google Brain і DeepMind, які здійснили прорив у
розумінні мови, обробці природної мови та комп'ютерному зорі [2].
Сучасний етап розвитку ШІ характеризується інтеграцією штучного
інтелекту у широкий спектр інформаційних систем, від автоматизованих систем
управління до особистих асистентів і систем обробки природної мови. Інновації
в області машинного навчання та глибинного навчання продовжують відкривати
нові можливості для підвищення ефективності, автоматизації процесів та
покращення прийняття рішень у різних секторах.
1.1 Огляд існуючих методів та засобів
Розробка та впровадження алгоритмів штучного інтелекту (ШІ) є
ключовим елементом сучасних інформаційних систем. Для глибшого розуміння
цієї теми необхідно спочатку визначити основні поняття та класифікувати типи
алгоритмів ШІ, що використовуються сьогодні.
Штучний інтелект – це галузь комп'ютерних наук, яка займається
створенням машин, здатних виконувати завдання, що традиційно вимагають
людського інтелекту. Вона охоплює різноманітні техніки та підходи, спрямовані
на імітацію людського розуму, зокрема розуміння мови, вирішення проблем,
навчання та сприйняття [15].
Алгоритми ШІ можна класифікувати за кількома критеріями, включаючи
тип навчання, спосіб використання та область застосування.
За типом навчання:
11
ЧДТУ.232227.06 ПЗ
1 Кероване навчання (Supervised Learning): Алгоритми, що навчаються
на основі попередньо розмічених даних. Приклади включають класифікацію
зображень та прогнозування.
2 Некероване навчання (Unsupervised Learning): Алгоритми, що
аналізують нерозмічені дані для виявлення шаблонів та залежностей. Приклади
включають кластеризацію та зниження розмірності.
3 Частково кероване навчання (Semi-supervised Learning): Комбінація
керованого та некерованого навчання, де використовуються обмежені розмічені
дані та велика кількість нерозмічених даних.
4 Підсилювальне навчання (Reinforcement Learning): Алгоритми, що
навчаються на основі взаємодії з навколишнім середовищем, отримуючи
нагороди за вдалі дії.
За способом використання:
1 Детерміновані алгоритми: Застосовують чітко визначені правила та
логіку для прийняття рішень.
2 Статистичні алгоритми: Використовують статистичні методи для
аналізу даних та прийняття рішень.
За областю застосування:
1 Алгоритми обробки природної мови (Natural Language Processing,
NLP): Використовуються для аналізу, розуміння та генерації людської мови.
2 Алгоритми комп'ютерного зору (Computer Vision): Дозволяють
машинам "бачити" та розуміти візуальну інформацію.
3 Рекомендаційні системи: Використовують алгоритми ШІ для надання
персоналізованих рекомендацій користувачам.
4 Робототехнічні системи: Включають алгоритми для автоматизації та
контролю роботів.
Різноманітність алгоритмів ШІ відіграє важливу роль у розробці та
впровадженні ефективних інформаційних систем. Вибір правильного алгоритму
залежить від специфіки задачі, доступних даних та очікуваних результатів.
12
ЧДТУ.232227.06 ПЗ
Наприклад, алгоритми керованого навчання ефективні у випадках, коли доступні
розмічені дані, тоді як некероване навчання використовується для аналізу
нерозмічених даних без попередньо визначених категорій.
Машинне навчання (МН) є однією з найважливіших підгалузей штучного
інтелекту (ШІ), яка відіграє ключову роль у розвитку сучасних інформаційних
систем. Цей розділ розглядає основні методи та підходи машинного навчання,
їхнє застосування у сфері ШІ, а також основні виклики та перспективи, пов'язані
з цими технологіями [3].
Машинне навчання - це галузь комп'ютерних наук, що займається
розробкою алгоритмів, які можуть вчитися з даних та вдосконалюватися з часом.
Воно включає в себе різні методи, які можна застосувати для рішення широкого
спектру задач, від простого аналізу даних до складних задач прогнозування та
автоматичного прийняття рішень.
Машинне навчання класифікується на кілька основних типів, в залежності
від способу навчання та використовуваних даних:
Кероване навчання (Supervised Learning): Алгоритми, які навчаються на
основі попередньо розмічених даних, де для кожного прикладу відомий
відповідний результат. Ці алгоритми використовуються для класифікації та
регресії.
Некероване навчання (Unsupervised Learning): Алгоритми, які працюють з
нерозміченими даними, намагаючись виявити в них шаблони та структури.
Прикладами застосування є кластеризація та зниження розмірності.
Підсилювальне навчання (Reinforcement Learning): Метод, що базується на
ідеї навчання через взаємодію з навколишнім середовищем та отримання
нагород за вдалі дії.
Машинне навчання охоплює широкий спектр алгоритмів, кожен з яких має
свої унікальні характеристики та області застосування. До найбільш поширених
алгоритмів належать:
Лінійна регресія: Використ овується для прогнозування числових значень,
базуючись на лінійній залежності між змінними.
13
ЧДТУ.232227.06 ПЗ
Логістична регресія: Застосовується для бінарної класифікації,
дозволяючи оцінити ймовірність належності до певної категорії.
Дерева рішень (Decision Trees): Використовуються для класифікації та
регресії. Вони моделюють рішення та їхні можливі наслідки у формі дерева.
Випадкові ліси (Random Forests): Покращена версія дерев рішень, що
використовує ансамбль дерев для зменшення перенавчання та підвищення
точності [14].
Градієнтний бустінг (Gradient Boosting): Метод, що поєднує прості моделі
для створення більш точної та стабільної прогнозуючої моделі.
Нейронні мережі: Складаються з великої кількості взаємопов'язаних
вузлів, які імітують роботу людського мозку для вирішення складних задач.
Основними викликами в машинному навчанні є перенавчання (overfitting),
недостатньо якісні або не достат ьо представлені дані та потреба в інтерпретації
результатів моделей.
Перенавчання (Overfitting): Відбувається, коли модель занадто точно
відтворює навчальні дані, втрачаючи здатність узагальнювати та ефективно
працювати з новими даними. Це часто виникає через занадто складні моделі або
обмежені навчальні дані.
Якість та представлення даних: Ефективність алгоритмів МН значною
мірою залежить від якості та різноманітності навчальних даних.
Нерепрезентативні або некоректні дані можуть призвести до помилкових
висновків або упереджень у моделях [12].
Інтерпретація моделей: Багато алгоритмів МН, особливо глибоке
навчання, часто критикуються за відсутність прозорості у своїх рішеннях. Це
створює потребу в методах інтерпретації та пояснення роботи складних моделей.
Агентно-орієнтовані системи (АОС) представляють собою ключовий
напрямок у галузі штучного інтелекту (ШІ), відзначаючись своєю здатністю до
автономної поведінки та взаємодії з іншими агентами. Генеративний штучний
інтелект та генетичні алгоритми відіграють значущу роль у розвитку цих систем,
14
ЧДТУ.232227.06 ПЗ
забезпечуючи ефективне вирішення складних задач та адаптацію до змінних
умов.
Агентно-орієнтовані системи зазвичай складаються з великої кількості
взаємодіючих агентів, які можуть бути як простими (з обмеженими
можливостями та поведінковими шаблонами), так і складними (з розвиненими
можливостями прийняття рішень та навчання). Ключовою особливістю АОС є
їхня модульна структура, що дозволяє агентам виконувати специфічні ролі та
задачі, а також адаптуватися до змін у середовищі [4].
В агентно-орієнтованих системах використовуються різноманітні
алгоритми ШІ. Одні з основних напрямків – це генетичні алгоритми та
генеративний ШІ. Генетичні алгоритми (ГА) – це еволюційні алгоритми, що
наслідують принципи природного відбору та генетичної спадковості. Вони були
розроблені як методи оптимізації та пошуку рішень у складних просторах задач.
Основна ідея ГА полягає у створенні популяції потенційних рішень (індивідів)
та використанні еволюційних операторів – таких як схрещування, мутація та
відбір – для генерування нових поколінь рішень, які краще адаптовані до заданих
умов. Структура ГА включає кілька ключових компонентів:
1 Ініціалізація: Створення початкової популяції індивідів, які часто
генеруються випадково.
2 Функція пристосованості: Оцінка кожного індивіда з популяції за
допомогою функції пристосованості, яка визначає, наскільки добре індивід
відповідає цільовим критеріям.
3 Селекція: Вибір кращих індивідів для участі у подальшому процесі
розмноження.
4 Схрещування (кросовер): Комбінація частин генетичного матеріалу від
обраних індивідів для створення нащадків.
5 Мутація: Випадкові зміни у генетичному матеріалі нових індивідів для
внесення різноманітності.
6 Нове покоління: Створення нового покоління індивідів, що замінює
старе.
15
ЧДТУ.232227.06 ПЗ
7 Термінація: Процес продовжується до досягнення певного критерію
завершення, наприклад, фіксованої кількості поколінь або задовільного рівня
пристосованості.
Генетичні алгоритми широко використовуються в агентно-орієнтованих
системах для різноманітних цілей:
1 Оптимізація рішень: ГА допомагають агентам знаходити оптимальні
рішення в умовах, де можливі тисячі комбінацій.
2 Адаптація до змін: У динамічних середовищах, де умови постійно
змінюються, ГА дозволяють агентам швидко адаптуватися, знаходячи нові
рішення.
3 Розподіл ресурсів: Вони можуть бути використані для ефективного
розподілу ресурсів між агентами, забезпечуючи баланс між різними потребами
та обмеженнями.
До переваг можна віднести:
1 Різноманітність рішень. ГА можуть виявляти неочікувані та
інноваційні рішення, які можуть бути неочевидними для традиційних підходів.
2 Гнучкість та адаптивність. Вони ефективні у вирішенні задач у
динамічних та складних середовищах.
3 Паралельна обробка. ГА природним чином підходять для паралельної
обробки, що підвищує їхню ефективність.
ГА продовжують залишатися важливим інструментом в арсеналі агентно-
орієнтованих систем. Їх постійний розвиток і вдосконалення, включаючи
інтеграцію з іншими методами ШІ, відкривають нові можливості для їх
застосування у складних та динамічних середовищах. Наприклад, поєднання ГА
з машинним навчанням може допомогти в поліпшенні адаптивності та
ефективності агентно-орієнтованих систем [11].
Генеративний штучний інтелект відноситься до підкласу алгоритмів
машинного навчання, що здатні генерувати нові дані, схожі на навчальні дані. Ці
алгоритми здійснюють генерацію нових зразків даних, що можуть включати
текст, зображення, музику або навіть поведінкові відгуки, які відтворюють певні
16
ЧДТУ.232227.06 ПЗ
закономірності та характеристики оригінального набору даних. Нижче наведено
основні технології генеративного ШІ.
Генеративні змагальні мережі (ГЗМ): ГЗМ складаються з двох частин:
генератора, який створює дані, та дискримінатора, який оцінює їх. Генератор
намагається створити достатньо переконливі дані, щоб обдурити дискримінатор,
тоді як дискримінатор намагається відрізнити справжні дані від генерованих.
Цей процес приводить до покращення якості генерованих даних.
Варіаційні автоенкодери (VAE): VAE - це тип нейронних мереж, що
використовуються для створення складних розподілів даних. Вони кодують
вхідні дані в латентний простір та відтворюють їх, забезпечуючи генерацію
нових даних, що мають характеристики початкового набору даних [10].
Авторегресійні моделі: Ці моделі використовуються для генерації
послідовних даних, наприклад тексту або музики. Вони прогнозують наступний
елемент у послідовності, враховуючи попередні елементи.
Генеративний ШІ має широкий спектр застосувань у різних областях:
1 Синтез та аналіз даних. Генеративні моделі можуть створювати
реалістичні набори даних для тренування інших машинних моделей або для
аналізу патернів у даних.
2 Підвищення креативності. Використовуються для генерації
мистецьких творів, музики, літературних текстів, що може знайти застосування
у дизайні, рекламі, розвагах.
3 Поведінкове моделювання. У агентно-орієнтованих системах
генеративний ШІ може моделювати різноманітну поведінку, що дозволяє
агентам краще адаптуватися до зовнішнього середовища та взаємодіяти з ним.
До переваг можна віднести: інноваційність та творчість, висока
адаптивність та поліпшення даних.
Генеративний ШІ продовжує розвиватися, пропонуючи все більш складні
та вдосконалені можливості. Це включає інтеграцію з іншими технологіями ШІ,
покращення алгоритмів для більш ефективного вирішення конкретних завдань,
а також вирішення етичних та правових питань, пов'язаних з генерацією даних.
17
ЧДТУ.232227.06 ПЗ
У майбутньому очікується, що генеративний ШІ буде грати ще більшу роль у
створенні інноваційних продуктів та рішень у всіх сферах життя.
1.2 Аналіз існуючих в світі аналогів інформаційних технологій
Агентно-орієнтовані інформаційні системи (АОІС) знаходять широке
застосування у світовому масштабі, від промисловості та логістики до
управління ризиками та екологічного моніторингу. Міжнародні дослідження та
розробки у цій сфері фокусуються на збільшенні автономності, надійності та
масштабованості АОІС. Особливу увагу приділяють інтеграції генеративного
ШІ, що відкриває нові можливості для створення гнучких та адаптивних систем.
Різні галузі використовують АОІС для вирішення специфічних задач.
Наприклад, в логістиці такі системи дозволяють оптимізувати маршрути
доставки, забезпечуючи ефективність та зниження витрат. У сфері здоров'я АОІС
використовуються для моніторингу пацієнтів та підтримки клінічних рішень,
використовуючи генеративні моделі для аналізу медичних даних. Це демонструє
універсальність та адаптивність агентно-орієнтованих систем, здатних
вирішувати різноманітні задачі в залежності від потреб користувачів.
Інновації в АОІС часто пов'язані з розвитком нових генеративних
алгоритмів ШІ, які можуть самостійно генерувати рішення, засновані на великих
масивах даних. Це включає в себе вдосконалення нейронних мереж, що можуть
імітувати складні процеси прийняття рішень. Такі інновації значно підвищують
ефективність АОІС, роблячи їх більш гнучкими та ефективними у вирішенні
завдань.
Нижче наведено ключові випадки використання агентно-орієнтовані
інформаційні системи.
Система управління трафіком «Smart Traffic»: Використовує агентно-
орієнтовані підходи для оптимізації руху транспорту в містах. Ця система
інтегрує дані з датчиків руху та використовує алгоритми машинного навчання
для прогнозування трафічних патернів та керування світлофорами.
18
ЧДТУ.232227.06 ПЗ
Медична діагностична система «HealthAgent»: Ця система використовує
генетичні алгоритми для аналізу медичних даних, дозволяючи виявляти
патології на ранніх стадіях. Вона інтегрує дані з різних джерел та аналізує їх за
допомогою складних алгоритмів для надання точних медичних висновків.
Система розумного будинку «EcoSmart Home»: Застосовує агентно-
орієнтовані методи для оптимізації використання енергії. Використовуючи
датчики та Інтернет речей (IoT), система аналізує поведінку мешканців та
автоматично регулює освітлення, опалення та інші системи для зниження витрат
на енергію.
Логістична система «OptiRoute»: Використовує алгоритми машинного
навчання для оптимізації логістичних ланцюгів. Система здатна аналізувати
величезні обсяги даних про вантажоперевезення, запаси та попит, для
ефективного планування та розподілу ресурсів.
Фінансова аналітична система «FinAnalyser»: Використовує агентно-
орієнтовані підходи та генетичні алгоритми для прогнозування фінансових
ринків. Система здійснює глибокий аналіз ринкових даних, історії транзакцій та
економічних індикаторів для надання рекомендацій щодо інвестицій.
Ці приклади демонструють широкий спектр застосувань агентно-
орієнтованих систем у різних галузях і підкреслюють їх важливість у сучасному
світі. Кожна з цих систем використовує унікальні алгоритми ШІ для вирішення
специфічних задач, що свідчить про гнучкість та адаптивність агентно-
орієнтованих підходів.
19
ЧДТУ.232227.06 ПЗ
Висновки до розділу
У першому розділі цього дослідження було здійснено глибокий аналіз
актуальності обраної тематики, вивчено існуючі підходи та методики, що
застосовуються для вирішення визначених проблемних питань. Детально було
розглянуто переваги та недоліки наявних методів, а також зроблено всебічний
огляд ключових аспектів. Особлива увага була приділена вивченню теоретичних
та практичних основ нейронних мереж, їхніх різновидів та методологій
навчання. На підставі цієї інформації було здійснено аналітичне дослідження
типів нейронних мереж, вивчено та проаналізовано різні методи їхнього
навчання та адаптації. В результаті проведеної роботи у першому розділі було
сформульовано чітку мету розробки - створення агентно-орієнтованої
інформаційної системи, яка базується на алгоритмах штучного інтелекту, що
представляє собою важливий крок на шляху до реалізації цілей дослідження.
20
ЧДТУ.232227.06 ПЗ
РОЗДІЛ 2 ТЕОРЕТИЧНІ ТА ЕКСПЕРИМЕНТАЛЬНІ ДОСЛІДЖЕННЯ
2.1 Теоретичні дослідження
Агентно-орієнтовані інформаційні системи (АОІС), які використовують
алгоритми штучного інтелекту (ШІ), стають все більш актуальними у сучасному
світі автоматизації та інтелектуалізації технологій. Основна концепція АОІС
полягає у створенні систем, складених з автономних агентів, кожен з яких має
здатність до самостійного прийняття рішень та взаємодії з іншими агентами для
виконання загальних завдань.
Ключовою характеристикою агентів у таких системах є їхня автономність,
що означає здатність діяти без безпосереднього втручання людини та мати
контроль над своїми діями та внутрішнім станом. Агенти можуть бути
спроектовані таким чином, що вони здатні сприймати середовище через сенсори
та реагувати на зміни за допомогою ефекторів. Така здатність до сприйняття та
реакції описується формулою:
() → (2.1)
де () представляє сприйняття стану середовища , а – дію, яку вибирає агент
[5].
Використання алгоритмів ШІ, таких як генеративні нейронні мережі, в
АОІС дозволяє значно розширити можливості таких систем. ГНМ особливо
ефективні для обробки послідовних даних, що робить їх ідеальними для
моделювання поведінки агентів, особливо в умовах, де необхідно враховувати
часові залежності та контекст.
Алгоритми навчання, що використовуються у ГНМ, можна представити
такою формулою:
(, ) ← (, ) + [ + ′(′, ′) − (, )] (2.2)
де (, ) - – це цінність дії у стані , – швидкість навчання, - винагорода за
дію, - коефіцієнт зниження, а ′ – новий стан після виконання дії [9].
Ключовим аспектом АОІС є взаємодія між агентами. Координація дій між
агентами забезпечується через механізми переговорів та обміну інформацією, що
21
ЧДТУ.232227.06 ПЗ
дозволяє системі бути адаптивною та ефективно реагувати на зміни у
середовищі. Взаємодія може бути представлена формулою:
= (, ) (2.3)
де – корисність угоди для агента , - його вимоги, а - ресурси, які він
готовий запропонувати.
ГНМ дозволяють агентам в АОІС вчитися з досвіду, адаптуватися до
змінних умов та оптимізувати свої рішення. Це досягається завдяки здатності
ГНМ моделювати складні взаємодії та послідовності подій, що робить їх
надзвичайно цінними для вирішення завдань, пов'язаних з прогнозуванням та
плануванням.
Використання генеративних нейронних мереж (ГНМ) для моделювання
поведінки агентів у агентно-орієнтованих інформаційних системах (АОІС) є
новаторським підходом, який відкриває значні можливості для покращення
інтелектуальних властивостей та ефективності таких систем. ГНМ, які належать
до передових технологій в галузі штучного інтелекту, мають унікальну здатність
генерувати нові дані, що мімікрують реальні, на основі навчання на великому
наборі даних. Ця властивість робить їх ідеально підходящими для моделювання
поведінки агентів у АОІС, де потрібно відтворювати складні взаємодії та
поведінкові патерни.
Одним із ключових аспектів використання ГНМ у АОІС є їхня здатність до
глибокого навчання, яке включає аналіз та засвоєння складних взаємодій та
залежностей між різними елементами системи. Це дозволяє агентам, які
базуються на ГНМ, ефективно взаємодіяти зі складними середовищами та
адаптуватися до нових умов без необхідності предварительного програмування
всіх можливих сценаріїв поведінки. Наприклад, у реальних сценаріях, таких як
автоматизоване управління транспортними потоками або розумні енергетичні
системи, ГНМ можуть допомогти агентам аналізувати великі обсяги даних про
стан середовища та приймати оптимізовані рішення щодо управління ресурсами
або рухом.
22
ЧДТУ.232227.06 ПЗ
Крім цього, ГНМ сприяють підвищенню автономності агентів. Завдяки
своїй здатності самонавчання на основі зібраних даних, агенти, які
використовують ГНМ, можуть постійно вдосконалювати свої навички та
поведінкові стратегії. Це особливо важливо у сценаріях, де агенти повинні
швидко адаптуватися до змін у зовнішніх умовах або до дій інших агентів.
Наприклад, у комплексних промислових процесах, де агенти повинні реагувати
на непередбачені збої або зміни у виробничих лініях, здатність до швидкої
адаптації та оптимізації рішень є критично важливою [8].
Також, ГНМ відіграють ключову роль у підвищенні гнучкості АОІС.
Традиційні підходи до моделювання поведінки агентів часто вимагають
жорсткого програмування поведінкових правил, що може обмежувати
адаптивність системи. Натомість, ГНМ дозволяють агентам генерувати нові
поведінкові варіанти на основі наявних даних, що робить систему більш гнучкою
та здатною до самоорганізації. Це може бути особливо корисно у складних
середовищах, де потрібно швидко адаптувати стратегії поведінки до змінних
умов.
Іншим важливим аспектом використання ГНМ у АОІС є покращення
спроможності системи до прогнозування та планування. Завдяки глибокому
аналізу даних та виявленню прихованих взаємозалежностей між різними
параметрами, ГНМ можуть допомагати агентам більш точно прогнозувати
наслідки своїх дій та планувати майбутні дії. Це особливо важливо в динамічних
та непередбачуваних середовищах, де швидке та точне прогнозування є
ключовим для успішного виконання завдань.
Генеративні нейронні мережі (ГНМ) інтегрують різноманітні алгоритми
штучного інтелекту (ШІ), кожен з яких відіграє свою роль у навчанні та генерації
даних. Основними алгоритмами, що використовуються в ГНМ, є нейронні
мережі прямого поширення, зворотнього поширення помилки, генеративні
змагальні мережі (GANs), варіаційні автоенкодери (VAEs) та інші. Ці алгоритми
разом формують фундамент для генерації нових, реалістичних даних, що
мімікрують вхідний набір даних.
23
ЧДТУ.232227.06 ПЗ
Нейронні мережі прямого поширення є основою для більшості ГНМ. Вони
складаються з послідовних шарів нейронів, де кожен нейрон в одному шарі
з'єднаний з усіма нейронами наступного шару. Ці мережі навчаються передавати
сигнал від входу до виходу, здійснюючи вагові обчислення та активації, що
дозволяє їм вивчати складні взаємозв'язки в даних.
Алгоритм зворотнього поширення помилки використовується для
оптимізації вагів у нейронних мережах. Під час навчання мережі обчислюється
помилка між фактичним виходом і очікуваним результатом, а потім ця помилка
"поширюється назад" через мережу для корекції вагів. Це ключовий механізм для
точного навчання ГНМ, оскільки він дозволяє мережі постійно
вдосконалюватися, зменшуючи розбіжність між генерованим та реальними
даними [6].
Генеративні змагальні мережі (GANs) є одним з найбільш відомих типів
ГНМ. Вони складаються з двох основних компонентів: генератора, який створює
дані, і дискримінатора, який оцінює, наскільки добре генеровані дані
відповідають реальним даним. Ці дві частини змагаються одна з одною:
генератор намагається створювати все більш реалістичні дані, а дискримінатор -
краще розрізняти реальні дані від синтезованих. Цей процес змагання сприяє
підвищенню якості генерованих даних.
Варіаційні автоенкодери (VAEs) є іншим важливим типом ГНМ. Вони
працюють шляхом створення кодованого представлення вхідних даних у
зниженому вимірі, а потім генерують нові дані з цього представлення. VAEs
відрізняються тим, що вони використовують принципи ймовірності для
моделювання даних, що дозволяє їм генерувати більш різноманітні результати.
Крім цих, існують й інші типи алгоритмів, які застосовуються у ГНМ.
Наприклад, рекурентні нейронні мережі (РНМ), які особливо ефективні для
роботи з послідовними даними, такими як текст або часові ряди. РНМ здатні
пам'ятати попередні дані у послідовності, що дозволяє їм моделювати часові
залежності та контекст у даних.
24
ЧДТУ.232227.06 ПЗ
Також важливо відзначити прогрес у розробці глибоких згорткових
нейронних мереж (ЗНМ), які виявилися надзвичайно ефективними у зоровому
сприйнятті та аналізі зображень. ЗНМ можуть застосовуватися у ГНМ для більш
ефективного аналізу та генерації зображень.
Використання цих алгоритмів у ГНМ відкриває широкі можливості для їх
застосування в різних сферах, від обробки природної мови до автоматичної
генерації зображень. Їх унікальна здатність до генерації реалістичних даних,
заснована на глибокому аналізі великих наборів даних, робить їх незамінними у
сучасному світі штучного інтелекту.
Інтеграція ГНМ у АОІС відкриває нові можливості для створення більш
інтелектуальних, гнучких та ефективних систем. Використання генеративних
мереж дозволяє агентам не тільки реагувати на поточні умови середовища, але й
антиципувати майбутні зміни та адаптуватися до них, що робить їх надзвичайно
важливими для широкого спектра застосувань, від промисловості до розумних
міст.
2.2 Експериментальні дослідження
В ході детального аналізу сучасних моделей штучних нейронних мереж,
особлива увага була приділена вивченню різних типів таких мереж з метою
виявлення найефективніших для реалізації задачі апроксимації складних
функцій. В результаті цього аналізу, генеративні нейронні мережі (ГНМ) були
визначені як найбільш відповідні для цієї цілі, завдяки їх здатності до збереження
інформації про попередні стани в процесі обчислень.
Для встановлення оптимальної конфігурації вказаної нейронної мережі,
що сприятиме найбільш точному рішенню поставленої задачі, було заплановано
проведення серії експериментів із тренування моделі. Ці експерименти
включають застосування різноманітних функцій активації та оптимізації, на
основі чого буде визначено найбільш ефективні комбінації для нашої задачі.
Серед розглянутих функцій активації особливу увагу було приділено
таким: лінійна (linear), прямокутна лінійна одиниця (ReLU), гіперболічний
25
ЧДТУ.232227.06 ПЗ
тангенс (tanh) та сигмоїдна (sigmoid) функції. Ці функції були вибрані з огляду
на їх здатність до ефективного перетворення вхідних сигналів у нейронній
мережі, що може суттєво вплинути на точність апроксимації.
Щодо функцій оптимізації, то в ході дослідження планується випробувати
такі методи, як Adam, RMSprop, SGD (стохастичний градієнтний спуск) та
Adagrad. Ці методи були обрані з міркувань їх широкого використання в
сучасних дослідженнях і потенціалу до оптимізації процесу навчання нейронних
мереж [7].
Нарешті, для оцінки ефективності тренування моделі будуть застосовані
функції втрат: середньоквадратична помилка (mean_squared_error) та середня
абсолютна помилка (mean_absolute_error), що дозволять точно оцінити рівень
апроксимації функції нейронною мережею.
Створимо тестову нейронну мережу
function createModel() {
const model = tf.sequential();
model.add(
tf.layers.dense({ units: 50, activation: "relu",
inputShape: [7] })
); // 7 features
model.add(tf.layers.dense({ units: 1, activation: "linear"
})); // Output layer for regression
return model;
}
async function run() {
// Load and prepare data
const filePath = path.join(__dirname, "11.csv"); // Update
with actual file path
const { features, labels } = await loadData(filePath);
// Create the model
const model = createModel();
// Compile the model
model.compile({ loss: "meanSquaredError", optimizer: "adam"
});
// Train the model
await model.fit(features, labels, {
epochs: 30, // Adjust as necessary
batchSize: 32, // Adjust as necessary
});
26
ЧДТУ.232227.06 ПЗ
const newInputDataArray = [[4, 1999, 2654.8, 2676.7, 1404.2,
437.1, 138.4]]; // Replace with your actual new input data array
const newInputShape = [newInputDataArray.length, 7]; //
Replace 7 with number of features per sample
const newInputData = tf.tensor2d(newInputDataArray,
newInputShape);
const predictions = model.predict(newInputData);
const res = predictions.dataSync();
console.log(`Predictions: ${res}`);
return res;
}
Експеримент №1
Функція активації: sigmoid
Функція оптимізації: adagrad
Функція втрат: mean_absolute_error
Рисунок 2.1 – Результати першого експерименту
27
ЧДТУ.232227.06 ПЗ
Експеримент №2
Функція активації: relu
Функція оптимізації: sgd
Функція втрат: mean_absolute_error
Рисунок 2.2 – Результати другого експерименту
Експеримент №3
Функція активації: linear
Функція оптимізації: rmsprop
Функція втрат: mean_squared_error
28
ЧДТУ.232227.06 ПЗ
Рисунок 2.3 – Результати третього експерименту
Експеримент №4
Функція активації: tahn
Функція оптимізації: adam
Функція втрат: mean_squared_error
29
ЧДТУ.232227.06 ПЗ
Рисунок 2.4 – Результати четвертого експерименту
Після проведення чотирьох комплексних експериментів, в ході яких було
ретельно проаналізовано та порівняно результати, вдалося сформувати
обґрунтований висновок щодо ідеальної конфігурації нейронної мережі для
задачі апроксимації функцій. На основі зібраних даних та ретельного аналізу
було встановлено, що наступна конфігурація є найбільш ефективною:
Функція активації: гіперболічний тангенс (tanh). Ця функція була обрана
завдяки її здатності до ефективного перетворення вхідних сигналів у нейронній
мережі, що сприяє підвищенню точності апроксимації.
30
ЧДТУ.232227.06 ПЗ
Функція оптимізації: Adam. Вибір цієї функції обумовлений її високою
ефективністю у забезпеченні швидкого та стабільного процесу навчання,
зокрема, завдяки адаптивному регулюванню швидкості навчання.
Функція втрат: середньоквадратична помилка (mean_squared_error). Ця
функція була визначена як оптимальна для оцінки точності апроксимації, що
дозволяє точно оцінювати розбіжності між прогнозованими та фактичними
значеннями.
За результатами цих експериментів та на основі визначеної оптимальної
конфігурації, планується розробка та реалізація спеціалізованого сервісу. Цей
сервіс надасть можливість не тільки тренувати та зберігати моделі нейронних
мереж, але й виконувати функції передбачення та апроксимації. Такий підхід
відкриває шлях до ефективної роботи з нейронними мережами, сприяючи їх
ширшому впровадженню у практичні задачі, пов'язані з обробкою даних та
машинним навчанням.
31
ЧДТУ.232227.06 ПЗ
Висновки до розділу
У рамках наукової роботи було проведено детальне дослідження
принципів функціонування генеративного ШІ, який був вибраний як основний
інструментальний засіб для ефективного розв'язання задачі апроксимації
функцій. В контексті цього дослідження здійснено ретельний аналіз та
експериментальні випробування різних конфігурацій нейронних мереж, з метою
ідентифікації оптимальної структури, яка найефективніше сприяє досягненню
цілей задачі апроксимації.
Експериментальні дослідження охоплювали ряд варіацій у структурі та
параметрах ШІ, включаючи аналіз різних функцій активації, архітектурних
особливостей та методів тренування. За результатами цих досліджень було
виявлено, що певні конфігурації ШІ проявляють вищу ефективність у точній
апроксимації функцій, демонструючи кращі показники у відповідності
передбачених результатів з даними реальної функції.
Таким чином, результати цих експериментальних досліджень дозволяють
зробити висновок про значимість вибору відповідної конфігурації ШІ для задач
апроксимації функцій, а також надають наукову основу для подальшого
розвитку та оптимізації алгоритмів машинного навчання у цій сфері. Вказані
висновки мають важливе теоретичне та практичне значення, сприяючи
підвищенню точності та ефективності обчислювальних систем у області
апроксимації функцій.
32
ЧДТУ.232227.06 ПЗ
РОЗДІЛ 3 АНАЛІЗ І ПРОЄКТУВАННЯ СИСТЕМИ
3.1 Моделювання предметної області
Одним із найважливіших етапів у підготовці до розробки інформаційної
системи – є проведення аналізу та формулювання вимог до моделі, структури,
реалізації та власне програмного продукту. Опис функціональних можливостей
та обмежень, що накладаються на функціонування інформаційної системи,
допоможе у виявленні конфліктності, проблематики, потреб та небажаних
моментів. Загальна діаграма класів зображена на рисунку 3.1.
Рисунок 3.2 – Загальна діаграма класів
Вибір технології проєктування варіювався між структурно-орієнтованою
та об’єктно-орієнтованою технологіями проєктування інформаційної
системи(ІС).
Первинні вимоги документують бажання і потреби замовника і
відображаються діаграмою прецедентів (варіантів використання, Use Case).
Перед побудовою діаграми вони описуються мовою, що є зрозумілою
замовнику.
33
ЧДТУ.232227.06 ПЗ
Детальні вимоги документують вимоги спеціально структурованою мовою
за допомогою діаграм діяльності та діаграм взаємодій. Вони деталізують
первинні вимоги [6].
Зараз у програмній інженерії є два основних підходи до розробки ПЗ ІС,
принципова різниця між якими зумовлена різними способами декомпозиції
систем: функціонально-модульний (структурний) підхід, в основу якого
покладений принцип функціональної декомпозиції, при якій структура системи
описується в термінах ієрархії її функцій і передачі інформації між окремими
функціональними елементами, та об’єктно-орієнтований підхід, що
використовує об’єктну декомпозицію, описує структуру ІС у термінах об’єктів і
зв’язків між ними, а поведінку системи ‒ в термінах обміну повідомленнями між
об’єктами.
Отже, сутність структурного підходу до розроблення ПЗ ІС полягає у його
декомпозиції на автоматизовані функції: система розбивається на функціональні
підсистеми, що у свою чергу поділяються на підфункції, вони ‒ на задачі і так до
конкретних процедур. При цьому ІС зберігає цілісність подання, де всі складові
є взаємопов’язаними. При розробці системи «знизу нагору», від окремих задач
до всієї системи, цілісність втрачається, виникають проблеми при описі
інформаційної взаємодії окремих компонентів.
Виділення двох базових принципів не означає, що інші принципи
другорядні, оскільки ігнорування кожного з них може призвести до
непередбачених наслідків.
У структурному аналізі використовуються в основному дві групи засобів,
що ілюструють функції, виконувані системою і відносини між даними.
Кожній групі засобів відповідають певні види моделей (діаграм), найбільш
поширеними серед яких є наступні:
– SADT (Structured Analysis and Design Technique) моделі і відповідні
функціональні діаграми;
– DFD (Data Flow Diagrams) діаграми потоків даних;
– ERD (Entity–Relationship Diagrams) діаграми «сутність-зв’язок».
34
ЧДТУ.232227.06 ПЗ
Перераховані моделі в сукупності дають повний опис ІС незалежно від
того, чи є вона існуючою чи знову розробляється. Склад діаграм в кожному
конкретному випадку залежить від необхідної повноти опису системи.
Об’єктно-орієнтоване проєктування програмного забезпечення зводиться
насамперед до розробки моделі реальної системи, для вирішення завдання якої
вона створюється.
Метод об’єктно-орієнтованого проєктування ґрунтується на:
– моделі побудови системи, як сукупності об’єктів абстрактного типу
даних;
– модульній структурі програм;
– спадному проектуванні, використовуваному при виділенні
об’єктів [11].
При використанні об’єктно-орієнтованого підходу проєктування в якості
будівельних блоків використовуються об’єкти, що містять свої власні коди і дані.
На відміну від структурного проєктування, де структура програм
представляється деревом ієрархій, структура програм у об’єктно-орієнтованому
підході представляється графом взаємодії об’єктів.
Основними переваги об’єктно-орієнтованого проєктування є:
– активне використання абстракції предметної області;
– підвищення стабільності в представленні змін;
– існування різнопланових модельних поглядів;
– на базі модельних поглядів покращуються можливості для повторного
використання;
– з’являється можливість управління масштабованістю;
Спираючись на перелічені вище факти, для проєктування розроблюваної
системи було обрано об’єктно-орієнтовану технологію проєктування. Вона
дозволить краще і простіше спроектувати додаток.
Для моделювання предметної області використовують різні технології
візуалізації інформаційних потоків та їх обробників. Однією з таких технологій
35
ЧДТУ.232227.06 ПЗ
є UML діаграми. UML-діаграма класів дозволить приблиaзно зрозуміти, яким
чином повинна працювати майбутня система [10].
3.1.1 Елементи моделювання предметної області
Для відтворення предметної області та при розробці всієї системи в цьому
дослідженні буде використовуватися мова моделювання UML. У подальших
частинах роботи будуть представлені основні складові моделювання (див.
Таблицю 3.1 та Таблицю 3.2), які будуть відображені на UML-діаграмах.
Таблиця 3.1
Елементи моделювання предметної області
Графічний символ Назва елемента
Дійова особа (Actor): Представляє користувача
або зовнішню систему, яка взаємодіє з системою.
Варіант використання (Use Case): Представляє
конкретну функціональність або можливість
системи.
Пакет (Package): Контейнер, який групує
пов'язані елементи моделі разом для забезпечення
більшої організації та зрозумілості.
Kомпонент (Component): Eлемент, який
представляє фізичний або логічний модуль або
підсистему системи. Він може включати в себе
класи, інтерфейси, бібліотеки та інші елементи
системи.
Стан (State): Показує конкретний стан об'єкта або
системи.
Лінія життя (Lifeline): Представляє життєвий
цикл об'єкта або компонента системи.
36
ЧДТУ.232227.06 ПЗ
Початковий і кінцевий стан
Логічний з’єднувач, розгалужувач (Logical
Connector): Логічний з'єднувач представляє
зв'язок між елементами моделі та вказує на
взаємодію між ними.
Таблиця 3.2
З’єднувальні елементи моделювання предметної області
Графічний символ Назва елемента
Відношення асоціації (Association): З'єднує класи, але
не має стрілок чи напрямку. Використовується для
моделювання взаємодій, коли важливий сам факт
з'єднання.
Відношення залежності (Dependency): Показує, що
один елемент моделі впливає на інший. Зміни в
залежному елементі можуть впливати на залежний
елемент.
Межа (Boundary): Використовується для виділення
меж системи, підсистеми чи контексту, щоб визначити,
які елементи знаходяться всередині, а які знаходяться
ззовні цих меж.
Простий потік управління
3.1.2 Словник предметної області
Поліагентний функціонал: Система, яка має агенти - автономні
обчислювальні сутності, що діють в інтересах користувача або системи в
цілому.
Агент: Автономний суб'єкт, обладнаний власною логікою прийняття
рішень і можливістю взаємодії з іншими агентами та компонентами системи.
3.2 Формулювання та аналіз вимог
У процесі аналізу вимог має бути перевірено правдивість та відповідність
їх інтересам замовника, висловленим усіма носіями інтересів цього замовника.
37
ЧДТУ.232227.06 ПЗ
Продуктом процесу аналізу є побудована модель проблеми, орієнтована на її
розуміння, якого має досягнути виконавець до початку проєктування системи.
Аналіз вимог починається після обговорення проблематики проекту [9].
Серед обговорюваних вимог можуть виявитися:
– неочевидні або не однаково важливі, які були взяті з застарілих джерел
і документів замовника;
– різні типи умов, що відповідають різним рівням деталізації проекту і
потребують застосування методів керування ними;
– постійно змінювані або уточнювані, залежно від унікальних
властивостей або значень;
– складні за формою і змістом, тяжкі для узгодження їх із замовником.
Зовнішні і внутрішні аспекти вимог пов’язують з характеристиками якості
і відносяться до властивостей створюваного продукту, а саме, функцій системи,
її призначення і виконання в заданому середовищі. Наприкінці користувач очікує
досягнення максимального ефекту від застосування вихідного продукту та
орієнтується на його кінцеву експлуатаційну якість.
Для агентно-орієнтованої інформаційної система на основі алгоритмів
штучного інтелекту було сформовано наступні первинні вимоги:
– реалізація системи у вигляді Web-серверу;
– додавання даних;
– навчання на доданих даних;
– прогнозування
3.2.1 Формування та аналіз вимог за допомогою діаграм прецедентів
Діаграма прецедентів є графом, що складається з множини акторів,
прецедентів обмежених границею системи (прямокутник), асоціацій між
акторами та прецедентами, відношень серед прецедентів, та відношень
узагальнення між акторами. Діаграми прецедентів відображають елементи
моделі варіантів використання.
38
ЧДТУ.232227.06 ПЗ
Суть даної діаграми полягає в наступному: проектована система
представляється у вигляді безлічі сутностей чи акторів, що взаємодіють із
системою за допомогою так званих варіантів використання. Варіант
використання використовують для описання послуг, які система надає актору.
Іншими словами, кожен варіант використання визначає деякий набір дій, який
виконує система при діалозі з актором. При цьому нічого не говориться про те,
яким чином буде реалізована взаємодія акторів із системою.
На основі раніше сформованих вимог було побудовано діаграму
прецедентів, зображену на рисунку 3.2, яка дозволить представити проектовану
систему у вигляді безлічі сутностей або акторів, що взаємодіють з системою.
Рисунок 3.2 – Діаграма прецедентів
3.3 Проєктування логічної структури системи
Проєктування логічної структури системи – це розроблення логічної
моделі системи у вигляді моделі класів і пакетів, які вказують з чого складається
система. Логічне проєктування ще називають детальним проєктуванням класів.
3.3.1 Діаграма класів
Діаграма класів відображає статичні (декларативні) елементи, такі як:
класи та типи даних, їх зміст та відношення. Діаграма класів, також, може
містити позначення для пакетів та може містити позначення для вкладених
пакетів. Також, діаграма класів може містити позначення деяких елементів
поведінки, однак їх динаміка розкривається в інших типах діаграм. Діаграма
класів служить для представлення статичної структури моделі системи в
39
ЧДТУ.232227.06 ПЗ
термінології класів об'єктно-орієнтованого програмування. На цій діаграмі
показують класи, інтерфейси, об'єкти й кооперації, а також їхні відносини.
Рисунок 3.3 – Діаграма класів
Розглянемо діаграми класів. Для цього створимо діаграму для кожного
класу окремо та розглянемо призначення кожного класу в цілому та сформуємо
кінцеву діаграму.
Загальна діаграма класів ІС пошуку новин зображена на рисунку 3.3.
Після представлення загальної діаграми класів розглянемо класи окремо.
Клас «UploadData» – використовується для завантаження даних на сервер.
Клас «ProcessingData» – слугує для обробки раніше завантажених даних.
Клас «TrainModel» – використовується для тренування моделі.
Клас «SaveData» – слугує для зберігання даних в базу даних.
Клас «Predict» – слугує для прогнозування.
Клас «SaveModel» – слугує для збереження натренованої моделі.
40
ЧДТУ.232227.06 ПЗ
3.3.2 Діаграма пакетів
Діаграми пакетів уніфікованої мови моделювання (UML) відображають
залежності між пакетами, з яких і складається модель.
Пакет (package) – елемент моделі, який використовують для групування
інших елементів моделі. Елементи моделі, які входять у склад певного пакету,
називаються членами пакету. Пакет володіє усіма своїми членами. Про членів
пакету кажуть, що вони є у власності пакету, тобто належать йому. Якщо певний
пакет видаляється з моделі, то з неї також видаляються усі члени, що знаходяться
у власності цього пакету.
Окрім стандартних відношень залежності в UML існує два спеціальних
види залежності, які визначено між пакетами:
– імпорт пакету;
– злиття(суміщення, об'єднання) пакету.
Імпорт пакету – це відношення між тим простором імен(неймспейс –
namespace), який здійснює імпорт, і пакетом, який вказує на те, що простір імен
додає назви членів пакету до їхнього власного простору імен. За-замовчуванням,
незауважена залежність між двома пакетами інтерпретується як відношення
«імпорт пакету». Злиття пакету – направлене відношення між двома пакетами,
яке показує, що вміст двох пакетів має бути об'єднано. Це дуже схоже на
«узагальнення» у тому значенні, що первинний елемент ніби додає
характеристики цільового елементу до своїх власних, з чого випливає елемент,
який містить у собі характеристики обох елементів.
Діаграма пакетів зображена на рисунку 3.4.
3.4 Архітектурне проєктування
Створення архітектури – це проєктування на найвищому рівні. Логічна
архітектура описує систему в термінах її принципової організації у вигляді
пакетів, програмних класів і підсистем. Вона називається логічною, оскільки не
визначає способи розгортання цих елементів у різних операційних системах або
на фізичних комп’ютерах у мережі (це відноситься до архітектури розгортання).
41
ЧДТУ.232227.06 ПЗ
Етап архітектурного проєктування ІС повинен бути відображений шляхом
опису процесу об’єктно-орієнтованої декомпозиції системи до рівня переліку
підсистем та їх зв’язків, опису її логічної структури у вигляді пакетів
компонентів (діаграма компонентів) [7].
Рисунок 3.4 – Діаграма пакетів
3.4.1 Діаграма компонентів
Діаграма компонентів – в UML, діаграма, на якій відображаються
компоненти, залежності та зв'язки між ними.[13] Діаграма компонент відображає
залежності між компонентами програмного забезпечення, включаючи
компоненти вихідних кодів, бінарні компоненти, та компоненти, що можуть
виконуватись. Модуль програмного забезпечення може бути представлено як
компоненту. Деякі компоненти існують під час компіляції, деякі – під час
компонування, а деякі під час роботи програми. Діаграма компонент відображає
лише структурні характеристики, для відображення окремих екземплярів
компонент слід використовувати діаграму розгортання.
Діаграма компонентів зображена на рисунку 3.5.
42
ЧДТУ.232227.06 ПЗ
Рисунок 3.5 – Діаграма компонентів
3.4.2 Розгортання програмної системи на апаратних засобах
Загалом процес розгортання складається з кількох взаємопов'язаних дій із
можливими переходами між ними. Ця активність може відбуватися як з боку
виробника, так і з боку споживача. Оскільки кожна програмна система є
унікальною, то усі процеси та процедури під час розгортання важко передбачити.
Тому, «розгортання» можна трактувати як загальний процес відповідно до
певних вимог та характеристик. Розгортання може здійснюватись програмістом
і в процесі розробки програмного забезпечення.
Діаграми розгортання використовуються для візуалізації топології
фізичних компонентів системи, де розгорнуті програмні компоненти.
Діаграми розгортання використовуються для опису статичного виду
розгортання системи. Діаграми розгортання складаються з вузлів і їх відносин.
Діаграма розгортання зображена на рисунку 3.6.
43
ЧДТУ.232227.06 ПЗ
Рисунок 3.6 – Основний фрагмент діаграми розгортання
3.5 Моделювання поведінки системи
Для моделювання поведінки системи в UML існує декілька типів діаграм,
такі як:
– діаграми діяльності;
– діаграми послідовності;
– діаграми комунікацій;
– діаграма кінцевого автомату.
3.5.1 Діаграма діяльності
Діаграма діяльності – візуальне представлення графу діяльностей. Граф
діяльностей є різновидом графу станів скінченного автомату, вершинами якого
є певні дії, а переходи відбуваються по завершенню дій.
Дія (англ. action) є фундаментальною одиницею визначення поведінки в
специфікації. Дія отримує множину вхідних сигналів, та перетворює їх на
множину вихідних сигналів. Одна із цих множин, або обидві водночас, можуть
бути порожніми. Виконання дії відповідає виконанню окремої дії. Подібно до
цього, виконання діяльності є виконанням окремої діяльності, буквально,
включно із виконанням тих дій, що містяться в діяльності. Кожна дія в діяльності
44
ЧДТУ.232227.06 ПЗ
може виконуватись один, два, або більше разів під час одного виконання
діяльності. Щонайменше, дії мають отримувати дані, перетворювати їх та
тестувати, деякі дії можуть вимагати певної послідовності. Специфікація
діяльності (на вищих рівнях сумісності) може дозволяти виконання декількох
(логічних) потоків, та існування механізмів синхронізації для гарантування
виконання дій у правильному порядку.
Діаграма діяльності для алгоритму ідентифікації особи зображена на
рисунку 3.7.
Рисунок 3.7 – Діаграма діяльності алгоритму ідентифікації особи
45
ЧДТУ.232227.06 ПЗ
3.5.2 Діаграма послідовності
Діаграми послідовностей – це відмінний засіб документування поведінки
системи, деталізації логіки сценаріїв використання, але є ще один спосіб –
використовувати діаграми взаємодії. Діаграма взаємодії показує потік
повідомлень між об'єктами системи і основні асоціації між ними і по суті, як вже
було сказано вище, є альтернативою діаграми послідовностей. Слід зазначити,
що використання діаграми послідовностей або діаграми взаємодії - особистий
вибір кожного проектувальника і залежить від індивідуального стилю
проєктування. На позначеннях, що застосовуються на діаграмі взаємодії,
думаємо, не варто зупинятися детально. Тут все стандартно: об'єкти
позначаються прямокутниками з підкресленими іменами (щоб відрізнити їх від
класів), асоціації між об'єктами вказуються у вигляді з'єднувальних ліній, над
ними може бути зображена стрілка із зазначенням назви повідомлення та його
порядкового номера. Необхідність номеру повідомлення пояснюється дуже
просто - на відміну від діаграми послідовностей, час на діаграмі взаємодії не
показується у вигляді окремого вимірювання. Діаграма послідовності зображена
на рисунку 3.6.
Рисунок 3.6 – Діаграма послідовності
46
ЧДТУ.232227.06 ПЗ
3.5.3 Діаграма комунікації
Діаграма комунікації – одна з моделей опису поведінки взаємодіючих груп
об'єктів в UML. Як правило, кожна окрема діаграма взаємодії описує поведінку
тільки в межах одного варіанта використання. На такій діаграмі прийнято
відображати екземпляри об'єктів та повідомлення, якими ці об'єкти обмінюються
один з одним в рамках даного варіанта використання. Діаграма комунікації
зображена на рисунку 3.7.
Рисунок 3.7 – Діаграма комунікації
3.5.4 Діаграма кінцевого автомату
Діаграма кінцевого автомата – є графом, який представляє певний кінцевий
автомат. Кінцевий автомат (state machine) являє собою деякий формалізм для
моделювання поведінки окремих елементів моделі або системи в цілому.
Поведінка (behavior) є специфікацією того, як екземпляр класифікатора змінює
значення окремих характеристик протягом свого часу життя. Стан (state) –
елемент моделі поведінки, призначений для подання ситуації, в ході якої
підтримується деякий умова інваріанта. Перехід (transition) є спрямованим
ставленням між двома станами, одне з яких є вершиною джерелом (source vertex),
а інше - цільової вершиною (target vertex)
Діаграма кінцевого автомату зображена на рисунку 3.8.
47
ЧДТУ.232227.06 ПЗ
Рисунок 3.8 – Діаграма кінцевого автомату ІС
48
ЧДТУ.232227.06 ПЗ
Висновки до розділу
У рамках цієї роботи було зроблено вагомий акцент на детальний аналіз
вимог як фундаментальний етап для адекватної реалізації поставленого
завдання. Після детального вивчення вимог, процес переходить до фази
проєктування самої інформаційної системи. Особливу увагу приділено
документуванню вимог за допомогою спеціалізованих мов моделювання,
зокрема, використання діаграм, які є ефективним засобом для візуалізації та
структурування інформації. Наступна фаза процесу включає об’єктний аналіз, на
якому здійснюється ідентифікація та категоризація об’єктів системи з
допомогою діаграм прецедентів.
В даному розділі роботи були сформульовані основні вимоги та критерії
для ефективного створення агентно-орієнтованої інформаційної системи, яка
ґрунтується на принципах та алгоритмах штучного інтелекту. Після цього було
проведено ретельне архітектурне проєктування системи та розроблено
комплексну діаграму пакетів.
Крім того, в ході виконання роботи були закріплені та поглиблені
теоретичні знання, здобуті в процесі навчання, щодо експлуатації систем
обробки інформації та прийняття рішень. Набуті навички професійного
застосування різних методів та засобів обробки інформації та розробки сучасних
програмно-інформаційних систем будуть використані для вирішення
конкретних практичних задач. Всі ці навички та знання будуть застосовані при
розробці зазначеної агентно-орієнтованої інформаційної системи на основі
алгоритмів штучного інтелекту.
49
ЧДТУ.232227.06 ПЗ
РОЗДІЛ 4 РОЗРОБКА І ТЕСТУВАННЯ СИСТЕМИ
Етап розробки в контексті створення програмного забезпечення є одним із
ключових і фундаментальних елементів процесу, що сприяє трансформації
теоретичної моделі системи у її конкретне, функціональне втілення. Протягом
даного етапу відбувається процес перетворення концептуальних та теоретичних
рішень, розроблених у попередніх стадіях, у практично застосовні рішення, котрі
безпосередньо втілюються в системі. Важливим є усвідомлення того, що під час
процесу розробки можуть відбуватися певні зміни або адаптації раніше
прийнятих рішень, що може привести до модифікації їх первісної сутності.
Тим не менш, суттєве відхилення від початкової концепції системи не
може вважатися прийнятним, оскільки це може негативно вплинути на загальну
структуру і архітектуру розробленого програмного забезпечення, потенційно
призводячи до втрати її цілісності та послідовності. Відповідно, необхідно
забезпечити, щоб процес розробки відбувався з високим рівнем уважності та
точності, оскільки саме цей етап має критичне значення для забезпечення якості
кінцевого продукту. Він вимагає ретельного врахування технічних деталей,
збереження відповідності до вихідних вимог та забезпечення, що кінцеве
рішення ефективно відповідає поставленим цілям і очікуванням.
4.1 Розробка системи
Концепція людино-машинної взаємодії охоплює комплекс інженерних
рішень, спрямованих на оптимізацію взаємодії між оператором та машинами,
якими він керує. Цей процес включає в себе дизайн елементів робочого простору,
таких як крісла, столи, пульти управління, а також ергономічне розташування
контрольних панелей, інструментів і органів управління. Особлива увага
приділяється параметрам освітлення, а також оптимізації мікроклімату в робочій
зоні.
У процесі проєктування людино-машинної взаємодії враховуються
фактори, які впливають на ефективність виконання оператором своїх обов'язків.
Це включає аналіз доступності органів управління, необхідності фізичних зусиль
50
ЧДТУ.232227.06 ПЗ
для їх використання, а також ступеня узгодженості та інтуїтивності реакцій
системи на дії оператора. Крім того, важливим аспектом є розробка заходів
безпеки, зокрема систем, що запобігають помилковим діям (так званий "захист
від дурня"), а також оптимізація розташування дисплеїв і читабельності
інформації на них.
У контексті промислових умов людино-машинна взаємодія часто
імплементується через використання стандартних інтерфейсних рішень, таких як
операторські панелі, комп'ютери та спеціалізоване програмне забезпечення.
Особливо важливим це стає в системах SCADA, де ключовим завданням є
забезпечення зручності та інтуїтивної зрозумілості інформації, що
відображається на екрані комп'ютера, щоб полегшити роботу оператора і
забезпечити ефективний контроль за роботою устаткування.
4.1.1 Обґрунтування вибору засобів реалізації
Процес вибору відповідних програмних та апаратних засобів для
ефективного розв'язання конкретизованої задачі здійснюється на основі
детальної постановки задачі, а також з урахуванням розроблених структурних
компонентів та алгоритмів, які визначають функціонування проєктованного
об'єкта. Цей підхід передбачає аналіз вимог до системи, специфічних
характеристик задачі, а також потенційних можливостей та обмежень обраного
програмного та апаратного забезпечення.
У контексті аналізу програмних мов, що використовуються для реалізації
проекту, в таблиці 4.1 представлено детальне порівняння між двома
популярними мовами програмування: JavaScript [11] та PHP [13]. Порівняння
включає оцінку таких аспектів, як ефективність виконання коду, легкість
вивчення та реалізації, можливості для розширення та інтеграції, а також
підтримка спільнотою та доступність ресурсів для розробників. Це дозволяє
отримати глибше розуміння переваг та недоліків кожної з мов у контексті
поставленої задачі, а також сприяє об'єктивному вибору найбільш підходящої
мови програмування для конкретного проекту.
51
ЧДТУ.232227.06 ПЗ
Таблиця 4.1
Порівняння мов програмування
Критерій оцінювання JavaScript PHP Java Python Ruby
Паралельність Ні Ні Ні Ні Ні
Функціональність Так Так Ні Ні Так
Імперативність Так Так Так Так Так
Візуальність Ні Ні Ні Ні Ні
Об’єктно-орієнтовна Так Так Так Так Так
Розподілена Ні Ні Ні Ні Ні
Логічна Ні Ні Ні Ні Ні
Декларативна Ні Ні Ні Ні Ні
На основі приведеного порівняння для розробки даного проекту було
обрано мову програмування JavaScript та Node.js. Також будуть використані
бібліотеки Tensorflow та BullMQ для спрощення процесу розробки.
JavaScript є динамічною, об'єктно-орієнтованою мовою програмування,
яка втілює стандарт ECMAScript. Ця мова є широко відомою і широко
використовуваною, особливо в контексті веб-розробки, де вона
використовується як ключовий компонент в браузерах для забезпечення
інтерактивності та динамічності веб-сторінок. JavaScript дозволяє коду на
стороні клієнта (який виконується на пристрої кінцевого користувача)
взаємодіяти з користувачем, керувати браузером, виконувати асинхронний обмін
даними з сервером, а також змінювати структуру та візуальну презентацію веб-
сторінок.
Окрім використання в сфері веб-розробки, JavaScript також знайшов
застосування в програмуванні на стороні сервера, що розширює його можливості
аналогічно до таких мов програмування, як Java та C#. Його функціональність
поширюється на розробку ігор, стаціонарних та мобільних додатків, а також
сценаріїв у прикладному програмному забезпеченні, як-от Adobe Creative Suite.
JavaScript також активно використовується у скриптах всередині PDF-
документів, демонструючи свою універсальність та широкий спектр
застосувань.
52
ЧДТУ.232227.06 ПЗ
В аспекті програмування, JavaScript класифікують як прототипну мову
програмування, що є підмножиною об'єктно-орієнтованої парадигми, з
характерною особливістю скриптової мови з динамічною типізацією. Ця мова
поєднує в собі риси різних парадигм програмування, включаючи імперативну та
частково функціональну, а також володіє різноманітними архітектурними
особливостями. До таких особливостей належать динамічна та слабка типізація,
автоматичне керування пам'яттю, прототипне наслідування, а також концепція
функцій як об'єктів першого класу, що дозволяє їх використання в різноманітних
контекстах програмування.
Платформа Node.js розроблена як інструментарій для створення
високопродуктивних мережевих додатків, що програмуються на мові JavaScript,
з акцентом на ефективність та оптимізацію ресурсів. Ця платформа
використовується не лише для реалізації серверних скриптів, що обробляють
веб-запити, але й для розробки як клієнтських, так і серверних програм,
забезпечуючи гнучкість та широкий спектр можливостей застосування.
Однією з ключових особливостей Node.js є використання потужного рушія
V8, розробленого компанією Google, що забезпечує швидке виконання
JavaScript-коду. Для оптимізації обробки великої кількості паралельних запитів,
Node.js впроваджує асинхронну модель виконання коду, що базується на
неблокуючому обробленні подій і використанні механізмів зворотних викликів
(callback). Такий підхід дозволяє підвищити ефективність виконання коду та
забезпечити більшу масштабованість додатків.
Node.js підтримує різні методи мультиплексування з'єднань, включаючи
epoll, kqueue, /dev/poll і select, що забезпечує гнучке управління мережевими
з'єднаннями. Для реалізації мультиплексування з'єднань використовується
бібліотека libuv, а для створення пулу потоків застосовується бібліотека libeio.
Крім того, Node.js інтегрує c-ares для виконання DNS-запитів у неблокуючому
режимі. Системні виклики, які можуть призвести до блокування, виконуються
всередині пула потоків і результати їх роботи передаються через неіменовані
канали (pipe).
53
ЧДТУ.232227.06 ПЗ
Node.js має спільні риси з такими фреймворками, як Perl AnyEvent, Ruby
Event Machine і Python Twisted, зокрема щодо циклу обробки подій (event loop).
Однак, важливою особливістю Node.js є те, що цикл обробки подій залишається
прихованим від розробника, нагадуючи обробку подій у веб-застосунках, що
працюють у браузері. При розробці програм для Node.js необхідно враховувати
специфіку подієво-орієнтованого програмування, наприклад, зосереджуючись
на асинхронних операціях замість традиційного послідовного виконання коду,
що відкриває нові можливості для створення швидких та ефективних додатків.
TensorFlow – це відкрита програмна бібліотека для чисельних обчислень,
яка використовує графи потоків даних. Бібліотека була розроблена
дослідницькою групою "Google Brain" компанії Google для виконання завдань
машинного навчання та глибокого навчання. Ця бібліотека надає великий спектр
інструментів, які дозволяють дослідникам та розробникам легко реалізовувати
моделі машинного навчання, а також забезпечує підтримку паралельних
обчислень, що значно прискорює процес тренування моделей.
Основною особливістю TensorFlow є її гнучкість, оскільки вона дозволяє
легко розробляти дослідницькі прототипи та масштабувати їх до великих
додатків без зміни коду. TensorFlow підтримує ряд мов програмування,
включаючи Python та C++, що робить її доступною для широкого кола
розробників.
TensorFlow особливо ефективна для завдань глибокого навчання завдяки
своїй здатності автоматично визначати градієнти – це ключова функція для
алгоритмів, що використовують градієнтний спуск, таких як нейронні мережі.
Бібліотека також підтримує розподілені обчислення, дозволяючи
використовувати як CPU, так і GPU, що є важливим для обробки великих наборів
даних та складних обчислювальних моделей.
Крім основних можливостей, TensorFlow пропонує інтегровані
інструменти для візуалізації, зокрема TensorBoard, який дозволяє відображати
різні аспекти моделей та обчислень, спрощуючи аналіз та налагодження моделей
машинного навчання.
54
ЧДТУ.232227.06 ПЗ
Таким чином, TensorFlow є важливим інструментом у сфері машинного
навчання і глибокого навчання, що надає широкі можливості для створення,
експериментування та впровадження різноманітних моделей, від простих до
високо складних, в промислових масштабах.
BullMQ є високопродуктивною, надійною та гнучкою бібліотекою для
керування чергами завдань у Node.js. Ця бібліотека, що базується на Redis,
дозволяє розробникам створювати, моніторити та управляти потоками робочих
процесів з високим ступенем контролю над виконанням завдань. Основними
характеристиками BullMQ є її здатність до обробки великої кількості завдань та
підтримка різних патернів робочих процесів.
Однією з ключових особливостей BullMQ є її масштабованість, що робить
її придатною для застосування у великих розподілених системах. Бібліотека
забезпечує розширений набір функцій для управління чергами, включаючи
планування завдань, повтор спроб, пріоритетизацію завдань, а також обробку
затримок і часових обмежень.
Завдяки використанню Redis як основи для зберігання та обробки даних,
BullMQ володіє високою швидкістю та ефективністю в обробці завдань. Redis
використовується для забезпечення довгострокової надійності та стійкості до
збоїв, а також дозволяє легко відновити стан черги після перезапуску системи.
Крім того, BullMQ надає розширені можливості для моніторингу та
візуалізації стану черги завдань, що включають інструменти для відстеження
прогресу завдань, діагностики збоїв та аналізу продуктивності системи. Це
значно спрощує управління робочими процесами та дозволяє оперативно
виявляти та усувати проблеми.
У сукупності, BullMQ представляє собою міцний інструмент для роботи з
чергами завдань у Node.js, що забезпечує високу пропускну здатність,
надійність, гнучкість та зручність в управлінні складними робочими процесами.
55
ЧДТУ.232227.06 ПЗ
4.1.2 Опис структурної схеми
Структурна схема є ключовим інструментом у візуалізації та аналізі
загальної структури технічного пристрою або системи, надаючи детальне
уявлення про основні компоненти, такі як блоки, вузли, частини, та важливі
зв'язки між цими елементами. Ця схема має за мету надати ясне та зрозуміле
розуміння функціональності об'єкта, його основних режимів роботи та
механізмів взаємодії між різними компонентами системи. Вона відіграє важливу
роль у демонстрації загальної концепції, принципів роботи та інтеграції різних
частин у єдину функціональну систему.
При створенні структурної схеми можуть бути використані різноманітні
символи та позначення для представлення різних елементів і зв'язків. Вибір
конкретних символів для позначення елементів схеми може варіюватися в
залежності від потреб розробника або специфіки проекту, хоча існують
загальноприйняті правила та стандарти виконання таких схем, які мають бути
дотримані для забезпечення їх зрозумілості та уніфікованості. Дотримання цих
стандартів є критично важливим для забезпечення чіткості комунікації та
ефективності використання схеми у технічних документаціях, навчальних
матеріалах, аналітичних звітах та інженерних дослідженнях.
Структурна схема, як правило, включає в себе детальну візуалізацію
ключових функціональних блоків, їх взаємозалежностей, а також шляхів
передачі сигналів або даних між ними. Це дозволяє інженерам та розробникам
не тільки розуміти загальну логіку роботи системи, але й аналізувати потенційні
точки збоїв, планувати модернізацію та впроваджувати нові технічні рішення. В
цілому, структурна схема відіграє важливу роль у процесі проєктування,
діагностики, а також у розробці та впровадженні технічних систем і обладнання.
56
ЧДТУ.232227.06 ПЗ
Рисунок 4.1 – Структурна схема АОІС на основі алгоритмів штучного інтелекту
Блоки цієї схеми складаються з декількох компонентів, які об’єднанні
виконуваною функцією разом. У реальній архітектурі ці компоненти можуть
належати різним пакетам і класам. Структурна схема відображає взаємодію
програмних та апаратних модулів системи.
4.1.3 Опис логічної схеми
Опираючись на аналіз діаграм пакетів та класів, наданих раніше, можна
отримати уявлення про маршрутизацію інформаційних потоків у межах класів
системи. Однак, ці діаграми не надають достатньо інформації щодо конкретних
механізмів взаємодії та обробки даних у системі. Тому існує потреба у
детальному описі логічної структури системи для повного розуміння її
функціонування.
Для наглядного представлення процесів, що відбуваються на найнижчому
рівні функціонування програми, застосовуються блок-схеми алгоритмів. Ці
схеми спрямовані на візуалізацію ключових алгоритмічних процесів, які лежать
в основі роботи системи. Важливо підкреслити, що у цих блок-схемах будуть
розглянуті лише ті алгоритми, які є фундаментальними для основних принципів
функціонування системи, виключаючи алгоритми, що виконують допоміжні або
вторинні функції.
57
ЧДТУ.232227.06 ПЗ
Для ілюстрації та зрозумілості робочих процесів системи була створена
докладна блок-схема, яка відображає використання АОІС, базуючись на
алгоритмах штучного інтелекту. Ця блок-схема, представлена на рисунку 4.2,
демонструє як алгоритми штучного інтелекту взаємодіють у рамках системи,
сприяючи її ефективності та адаптивності. Через це така візуалізація відіграє
ключову роль у забезпеченні глибокого розуміння внутрішньої логіки та
динаміки системи.
Рисунок 4.2 – Логічна схема АОІС на основі алгоритмів штучного інтелекту
58
ЧДТУ.232227.06 ПЗ
4.1.4 Розробка бази даних
У даній роботі відсутня база даних, так як додаток є частиною більшої
системи виконаної в рамках магістерської роботи
4.1.5 Розробка інтерфейсу користувача
Цей програмний продукт представляє собою серверну частину, яка відіграє
роль важливого компонента в більшій інформаційній системі. Сервер оснащений
функціонально спрощеним інтерфейсом, що дозволяє зручно взаємодіяти з
основними функціями та процесами системи. В момент активації сервера
користувач має змогу спостерігати за поточними процесами та операціями, що
відбуваються на сервері через консольний інтерфейс. Ця можливість
моніторингу надає детальний огляд діяльності сервера, (див. рис. 4.3), поточний
статус та виконання операцій у реальному часі.
Рисунок 4.3 – Консольний інтерфейс серверу
4.2 Тестування системи
Тестування програмного забезпечення представляє собою систематичний
процес, спрямований на аналіз та верифікацію відповідності функціональності
програмного продукту заздалегідь визначеним вимогам, а також на
ідентифікацію та усунення потенційних дефектів. Цей процес охоплює
застосування як ручних, так і автоматизованих технік тестування для оцінки
специфічних характеристик програмних та системних компонентів. Фаза
тестування в контексті розробки нового програмного забезпечення має
59
ЧДТУ.232227.06 ПЗ
вирішальне значення, оскільки вона забезпечує перевірку якості продукту та
його готовності до впровадження.
4.2.1 Модульне тестування
Модульне тестування представляє собою методику в інженерії
програмного забезпечення, яка передбачає ізольовану верифікацію
функціональності окремих програмних компонентів - модулів або підпрограм.
Такий підхід дозволяє розробникам проводити детальний аналіз і валідацію
внутрішніх структур, алгоритмів та потоків даних кожного модуля незалежно від
інших частин системи. Нижче представлено приклад модульного тестування
системи.
const request = require('supertest');
const app = require('./app');
test('returns a list of users', async () => {
const response = await request(app).post('/build');
expect(response.status).toBe(200);
expect(response.body).toEqual({status: "Added to queue" });
});
Цей фрагмент коду є прикладом використання модуля supertest для
написання тесту в середовищі Node.js. Він реалізовано з метою автоматизації
тестування HTTP-запитів до веб-додатку, зокрема, для перевірки відповіді
сервера на певний запит.
У коді використовуються два основних модуля - supertest і app. Модуль
supertest забезпечує засоби для тестування HTTP-запитів, тоді як app містить
екземпляр сервера веб-додатку, який буде тестуватися.
За допомогою функції test описано тестовий випадок, який має назву
'returns a list of users'. Ця функція асинхронна, що дозволяє виконувати HTTP-
запити та обробляти відповіді в асинхронному режимі.
60
ЧДТУ.232227.06 ПЗ
У середині тесту виконується POST-запит на шлях '/build' сервера веб-
додатку. Для цього використовується метод post об'єкта, що повертається
функцією request(app).
Після відправки запиту, код асинхронно очікує на відповідь сервера, що
зберігається у змінній response. Далі, за допомогою функції expect, проводяться
перевірки: чи статус відповіді є 200 (що свідчить про успішне виконання запиту)
та чи тіло відповіді відповідає очікуваному об'єкту {status: "Added to queue"}.
4.2.2 Інтеграційне тестування
Інтеграційне тестування є процесом у контексті розробки програмного
забезпечення, який здійснюється з метою оцінки взаємодії та сумісності між
окремими модулями системи перед проведенням комплексного тестування всієї
системи як єдиної сукупності. Цей етап тестування акцентує увагу на аналізі
інтерфейсів між модулями, оцінюючи їх здатність ефективно взаємодіяти та
коректно функціонувати в об'єднаному контексті. Такий підхід дозволяє
ідентифікувати та усунути проблеми інтеграції та забезпечити надійність роботи
програмного продукту на стадії його розробки.
describe('[POST] /build', () => {
it('should return model status', async () => {
return request(app.getHttpServer())
.post(`/build`)
.expect(HttpStatus.OK)
.then((response) => {
expect(response.body).toEqual({status: "Added to
queue" });
});
});
});
61
ЧДТУ.232227.06 ПЗ
Цей фрагмент коду представляє собою тест, написаний з використанням
фреймворку для тестування в середовищі Node.js. Конкретно, він описує
тестування веб-ендпоінту (кінцевої точки) [POST] /build. Структура тесту
включає в себе визначення очікуваної поведінки ендпоінту та перевірку
відповідності реальної поведінки цим очікуванням.
За допомогою функції describe визначається тестовий сценарій для
ендпоінту [POST] /build.
Всередині блоку describe, функція it описує конкретне очікування - що
ендпоінт повинен повертати статус моделі.
Код виконує асинхронний POST-запит до ендпоінту /build сервера. Він
використовує метод expect для перевірки того, що статус HTTP-відповіді має
бути 200 (HttpStatus.OK), що вказує на успішне оброблення запиту.
Використовуючи метод then, код аналізує тіло отриманої відповіді,
переконуючись, що воно відповідає очікуваному результату ({status: "Added to
queue"}).
4.2.3 Системне тестування
Системне тестування є комплексним процесом оцінки програмної системи,
який здійснюється з метою верифікації її загальної структури, функціональності
та відповідності встановленим специфікаціям та вимогам замовника. Цей процес
охоплює загальну архітектуру системи, включаючи її компоненти та взаємодію
між ними, та зосереджений на забезпеченні її ефективного та коректного
функціонування відповідно до заданих параметрів.
У процесі верифікації функціональності розробленої системи
застосовувалась програма Postman, яка виступає ефективним інструментом для
тестування та аналізу роботи API сервісів. Цей інструмент дозволяє здійснювати
тестування з високим рівнем зручності та гнучкості, що сприяє оптимізації
процесу перевірки
62
ЧДТУ.232227.06 ПЗ
Рисунок 4.3 – Результат запиту на перевірку статусу сервера
Згідно з рисунком 4.3, можна зробити висновок про ефективне
функціонування всіх систем.
4.2.4 Приймальне тестування
Даний вид тестування на даний момент провести не можливо, так як
приймальне тестування проводиться організацією, яка приймає в роботу
розроблений програмний продукт, а система ще знаходиться на активному етапі
розробки.
4.3 Приклади впровадження програмного комплексу
На даний момент відбувається інтенсивний етап розробки всіх складових
підсистем, у зв'язку з чим неможливо надати приклади практичного
впровадження зазначеного комплексу. Повноцінне впровадження системи
передбачається після завершення її активної фази розробки.
63
ЧДТУ.232227.06 ПЗ
Висновки до розділу
Четвертий розділ даної дипломної роботи займається детальним
моделюванням та реалізацією агентно-орієнтованої інформаційної системи. На
цьому етапі був здійснений обґрунтований вибір програмного середовища та
мови програмування, що відіграють ключову роль у розробці ефективної
системи. Специфічно, для розробки було обрано мову програмування JavaScript
та платформу Node.js, зважаючи на їхні технічні переваги та гнучкість у
використанні.
В рамках цього розділу також була проведена робота над створенням
структурної схеми інформаційної системи, яка ілюструє загальну архітектуру та
взаємозв’язки між її компонентами. Далі, для забезпечення логічної консистенції
та зрозумілості системи, була розроблена блок-схема алгоритмів роботи
основних модулів системи, демонструючи їх функціональність та взаємодію.
Цей етап включав також розробку та демонстрацію інтерфейсу користувача
програми, що є критичним для забезпечення зручності та інтуїтивності
використання системи.
На завершальному етапі четвертого розділу було проведено ретельне
тестування системи. Цей процес дозволив оцінити функціональну придатність
розробленої системи та її відповідність встановленим вимогам, а також виявити
та усунути потенційні недоліки, забезпечуючи високий рівень готовності
системи до практичного використання.
64
ЧДТУ.232227.06 ПЗ
ВИСНОВКИ
Результатом виконання магістерської роботи є розроблена агентно-
орієнтована інформаційна система. Дана система може бути застосована будь
яким користувачем.
Метою магістерської роботи було проаналізувати існуючи методи і засоби
інтеграції штучного інтелекту в інформаційні системи, а також розробка та
тестування нових алгоритмів, що оптимізують роботу таких систем.
Було проведено детальне дослідження принципів функціонування
генеративного ШІ, який був вибраний як основний інструментальний засіб. В
контексті цього дослідження здійснено ретельний аналіз та експериментальні
випробування різних конфігурацій ШІ. За результатами досліджень було
виявлено, що певні конфігурації ШІ проявляють вищу ефективність у точній
апроксимації функцій, демонструючи кращі показники у відповідності
передбачених результатів з даними реальної функції. Також було проведено
експериментальне тестування розробленої системи та її компонентів для оцінки
ефективності, надійності та масштабованості. В результаті експериментального
дослідження було визначено оптимальну конфігурацію системи, а саме функція
активації – tanh, функція оптимізації – Adam функція втрат – mean_squared_error.
На етапі проєктування я зосередився на детальному вивченні та аналізі
вимог, що є фундаментом для створення ефективної системи. Було використано
спеціалізовані мови моделювання для документування вимог та візуалізації
структури інформації, що сприяло кращому розумінню та структуруванню
проекту. Об’єктний аналіз, проведений на основі діаграм прецедентів, допоміг
ідентифікувати та категоризувати об’єкти системи. Робота включала
формулювання основних вимог та критеріїв для створення інформаційної
системи, заснованої на принципах штучного інтелекту.
При розробці ІС було побудовано такі діаграми:
– діаграма класів;
– діаграма пакетів;
65
ЧДТУ.232227.06 ПЗ
– діаграма компонентів;
– діаграма розгортання;
– діаграма діяльності;
– діаграма послідовності;
– діаграма комунікацій;
– діаграма кінцевого автомату.
При тестування ІС показала себе відмінно на тесті всі тести були пройдені
успішно і тому розроблена агентно-орієнтована інформаційна система повністю
готова до впровадження.
66
ЧДТУ.232227.06 ПЗ
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Minami, K., H. Nakajima, and T. Yoyoshima, “Real Time Discrimination of the
Ventricular Tachyarrhythmia with Fourier-Transform Neural Network,” IEEE
Trans. Biomed. Eng., Vol. 46, 1999, pp. 179–185.
2. Osowski, S., L. Tran Hoai, and T. Markiewicz, “Support Vector Machine Based
Expert System for Reliable Heart Beat Recognition,” IEEE Trans. Biomed. Eng.,
Vol. 51, 2004, pp. 582–589.
3. Schalkoff, R., Pattern Recognition: Statistical, Structural, and Neural
Approaches, New York: Wiley, 1992.
4. Osowski, S., and L. Tran Hoai, “On-Line Heart Beat Recognition Using Hermite
Polynomials and Neuro-Fuzzy Network,” IEEE Trans. Instrum. and Measur.,
Vol. 52, 2003, pp. 1224–1231.
5. Mark, R., and G. Moody, MIT-BIH Arrhythmia Database Directory, Cambridge,
MA: MIT Press, 1988.
6. Nikias, C., and A. Petropulu, Higher-Order Spectra Analysis, Englewood Cliffs,
NJ: Prentice-Hall, 1993.
7. Haykin, S., Neural Networks: A Comprehensive Foundation, Englewood Cliffs,
NJ: Prentice-Hall, 1999.
8. Vapnik, V., Statistical Learning Theory, New York: Wiley, 1998.
9. Jang, J. S., C. T. Sun, and E. Mizutani, Neuro-Fuzzy and Soft Computing,
Englewood Cliffs, NJ: Prentice-Hall, 1997.
10. Hassoun, M. H., Fundamentals of Artificial Neural Networks, Cambridge, MA:
MIT Press, 1995.
11. Smola, A., and B. Scholkopf, A Tutorial on Support Vector Regression,
NeuroColt Technical Report NV2-TR-1998-030, Royal Holloway College,
University of London, U.K., 1998.
12. Burges, C., “A Tutorial on Support Vector Machines for Pattern Recognition,”
in U. Fayyad, (ed.), Knowledge Discovery and Data Mining, Amsterdam:
Kluwer, 2000, pp. 1–43.
67
ЧДТУ.232227.06 ПЗ
13. Platt, J., “Fast Training of SVM Using Sequential Optimization,” in B.
Scholkopf, C. Burges, and A. Smola, (eds.), Advances in Kernel Methods:
Support Vector Learning, Cambridge, MA: MIT Press, 1998, pp. 185–208.
14. Hsu, C. W., and C. J. Lin, “A Comparison Methods for Multi Class Support
Vector Machines,” IEEE Trans. Neural Networks, Vol. 13, 2002, pp. 415–425.
15. Hashem, S., “Optimal Linear Combinations of Neural Networks,” Neural
Networks, Vol. 10, 1997, pp. 599–614.
16. Xu, L., A. Krzyzak, and C.Y. Suen, “Methods of Combining Multiple Classifiers
and Their Applications to Handwriting Recognition,” IEEE Trans. Systems,
Man and Cybernetics, Vol. 22, 1991, pp. 418–434.
68
ЧДТУ.232227.06 ПЗ
ДОДАТОК А
ЗАТВЕРДЖЕНО:
Зав. кафедрою ПЗАС, професор
_____________ Голуб С.В.
„____” _________________ 2023 р.
Агентно-орієнтована інформаційна системи на основі алгоритмів штучного
інтелекту
Специфікація
482.ЧДТУ. 232227.06
Листів 2
Розробник ________________ Горбань В.В
Керівник ________________ Немченко В.В.
Контроль ________________ Півень О.Б.
2023
69
ЧДТУ.232227.06 ПЗ
Позначення Найменування Примітка
482.ЧДТУ.232230.06 34 01 Інструкція користувача
70
ЧДТУ.232227.06 ПЗ
ДОДАТОК Б
Агентно-орієнтована інформаційна системи на основі алгоритмів штучного
інтелекту
Інструкція користувача
482.ЧДТУ. 232227.06 34 01
Листів 2
Розробник ________________ Горбань В.В
2023
71
ЧДТУ.232227.06 ПЗ
Для початку потрібно виконати команду в yarn install.
Команда yarn install використовується в контексті управління
залежностями у програмуванні, зокрема в JavaScript проектах, що
використовують Yarn як менеджер пакетів. Ця команда ініціює процес
встановлення залежностей, визначених у файлі package.json, який є стандартним
для Node.js проектів. yarn install читає визначення пакетів у package.json, а потім
завантажує їх з віддаленого сховища пакетів, такого як npm registry.
Ключовим елементом цього процесу є створення або оновлення файлу
yarn.lock, який містить точну інформацію про версії всіх встановлених пакетів та
їх залежностей. Це гарантує консистентність залежностей між різними
середовищами розробки і запобігає проблемам, пов'язаним із варіативністю
версій.
Основна мета yarn install - забезпечити наявність усіх необхідних
залежностей для роботи проекту, відповідно до визначених вимог. Це дозволяє
розробникам швидко налаштувати робоче середовище для розробки або запуску
проекту, оскільки усі необхідні залежності автоматично встановлюються в
локальний проект.
Далі потрібно виконати команду yarn start. Ця команда запускає сам
сервер. Після виконання цих команд додаток готовий до роботи з ним.
72