Експертні системи

На початку 80-х років у дослідженнях штучного інтелекту сформувався самостійний напрямок, що дістав назву «експертні системи» (ЕС) [27, 33, 48]. Мета досліджень з ЕС полягає, головно, в розробленні програм, за допомогою яких при розв’язанні задач, які виникають у слабко структурованій і такій, що важко формалізується, предметній галузі та є складними для експерта-людини, отримують результати за якістю та ефективністю не гірші, ніж рішення, що генеруються експертом. Дослідники в галузі ЕС для назви своєї дисципліни також часто використовують термін «інженерія знань», що був введений Е. Фейгенбаумом як «привнесення принципів та інструментарію досліджень проблем, що потребують знань експертів». Надалі терміни «експертні системи» та «інженерія знань» використовуватимемо як синоніми.

Як видно із вищезазначеного, поняття ЕС може бути тісно пов’язане з поняттям СППР. Тобто СППР як одну з методик формування та оцінювання рішень може використовувати методику експертних систем, беручи також до уваги те, що більшість підсистем цих двох програм мають можливість інтегрування. З другого боку, ЕС можна розглядати як подальший розвиток традиційних СППР.

Програмні засоби (ПЗ), що ґрунтуються на технології експертних систем, набули значного поширення у світі. Важливість ЕС полягає в такому:

— технологія експертних систем істотно розширює коло практично важливих задач, що можна розв’язати за допомогою комп’ю­тера та розв’язок яких може принести значний економічний ефект;

— технологія ЕС є надзвичайно важливим засобом розв’я­зання глобальних проблем традиційного програмування: тривалості і, як наслідок, високої вартості розроблення складних прикладних систем;

— висока вартість супроводження складних інформаційних систем, яка часто в кілька разів перевищує вартість їх розроблення, низький рівень повторного використання програм тощо;

— об’єднання технологій ЕС з технологією традиційного програмування додає нових якостей програмним продуктам через: забезпечення динамічного модифікування додатків користувачем, а не програмістом; більшу «прозорість» додатків (наприклад, знання зберігаються обмеженою економічною мовою, що не потребує коментарів до знань, полегшує навчання та супровід); кращу графіку; інтерфейс та взаємодію.

Експертні системи та системи штучного інтелекту відрізняються від систем оброблення даних тим, що в них використовується символьний (а не числовий) спосіб подання інформації, символьне виведення та евристичний пошук рішення (а не пошук за відомим алгоритмом).

ЕС застосовують для вирішення складних практичних завдань. За якістю та ефективністю рішення експертних систем не поступаються рішенням експерта-людини. Рішення експертних систем є «прозорими», тобто їх можна пояснити користувачу на якісному рівні. Ця властивість ЕС забезпечується їх здатністю аналізувати свої знання. Експертні системи здатні поповнювати свої знання в ході взаємодії з експертом. Необхідно зауважити, що технологія ЕС нині використовується для розв’язання різних типів завдань (інтерпретації, прогнозування, діагностики, планування, конструювання, контролю, наладки, інструктажу, управління) в різноманітних проблемних галузях, таких як фінанси, нафтова, газова та хімічна промисловість, гірнича справа, освіта, телекомунікації та зв’язок тощо.

Розглянемо структуру експертних систем. Типова статична ЕС складається з таких основних компонентів:

— розв’язувача (інтерпретатора);

— робочої пам’яті (РП), яку інколи називають базою даних (БД);

— бази знань (БЗ);

— компонент поповнення знань;

— пояснювального компонента;

— діалогового компонента.

База даних (робоча пам’ять) призначена для вхідних та проміжних даних задачі, що розв’язується в поточний момент. Цей термін збігається за назвою, але дещо розбігається за значенням із терміном, що використовується в інформаційно-пошукових системах (ІПС) та в системах управління базами даних (СУБД) для позначення всіх даних (в тому числі довготермінових), що зберігаються в системі.

База знань в ЕС призначена для зберігання довгострокових
(а не поточних) даних, що описують галузь, яка розглядається, та правил, що описують можливі перетворення її даних.

Розв’язувач, використовуючи вхідні дані із робочої пам’яті та знання із БЗ, формує таку послідовність правил, які при застосуванні до вхідних даних ведуть до розв’язання задачі.

Компонент поповнення знань автоматизує процес поповнення ЕС знаннями, що здійснюється користувачем-експертом.

Пояснювальний компонент розкриває, як система отримала розв’язок задачі (або чому його не отримала) та які знання вона при цьому використала, що полегшує експерту тестування системи та підвищує довір’я до отриманого результату.

Діалоговий компонент орієнтований на організацію дружнього спілкування з користувачем як під час розв’язання задач, так і в процесі набуття знань та пояснення результатів роботи.

У структуру динамічної ЕС додатково вводяться два компоненти:

— підсистема моделювання зовнішнього світу;

— підсистема зв’язків із навколишнім середовищем.

Остання здійснює зв’язок із зовнішнім середовищем через систему датчиків та контролерів. Крім того, традиційні компоненти статичної ЕС можна суттєво змінювати, щоб відображати часову логіку подій, які відбуваються в реальному світі.

У розробленні ЕС беруть участь представники таких спеціальностей:

— експерт у проблемній галузі, завдання якої буде розв’язу­вати ЕС;

— інженер із знань — спеціаліст із розроблення ЕС (методи та технології, що він використовує, називають методами та технологіями інженерії знань);

— програміст із розроблення інструментальних засобів (ІЗ), призначених для прискорення розроблення ЕС.

Необхідно зауважити, що відсутність будь-кого із зазначених учасників (наприклад, заміна інженера із знань програмістами) або призводить до невдачі у процесі створення ЕС, або значно подовжує його.

Експерт визначає знання (дані та правила), що характеризують проблемну галузь, забезпечує повноту та правильність введених в ЕС знань.

Інженер із знань допомагає експерту виявити та структурувати знання, необхідні для функціонування ЕС, здійснює вибір того ІЗ, який найнеобхідніший для роботи ЕС; здійснює вибір того ІЗ, який найбільш підходить для даної проблемної галузі, та визначає спосіб подання даних у цьому ІЗ; виділяє та програмує (традиційними засобами) стандартні функції (типові для даної проблемної галузі), які будуть використовуватись у правилах, що виводяться експертом.

Програміст розробляє ПЗ (якщо ПЗ розробляється спочатку), що містить в ідеалі всі основні компоненти ЕС, та здійснює його інтеграцію із середовищем, в якому воно буде використову-
ватись.

Також у процесі розроблення ЕС можуть бути задіяні за необхідності й інші учасники. Наприклад, інженер із знань може запросити інших експертів, щоб переконатись у правильності свого розуміння головного експерта, репрезентативності тестів, що де­монструють особливості задачі, яка розглядається, у єдності поглядів різних експертів на якість рішень, що пропонуються. Крім того, для складних систем вважається доцільним залучати до головного циклу розроблення кількох експертів. Однак у цьому разі, як правило, необхідно, щоб один із експертів відповідав за несуперечливість знань, що повідомляються колективом експертів.

Нині застосовується певна технологія розроблення ЕС, яка складається з таких шести етапів: ідентифікації, концептуалізації, формалізації, виконання, тестування та дослідної експлуатації.

Етап ідентифікації пов’язаний передусім із осмисленням тих задач, які потрібно розв’язувати майбутній ЕС, та формуванням вимог до неї. Результатом даного етапу має бути відповідь на запитання: «Що треба робити та які ресурси необхідно задіяти?» Для цього необхідно ідентифікувати задачу, визначити учасників процесу проектування та їх ролі, виявити ресурси та цілі).

Ідентифікація задачі полягає в складанні неформального (вербального) опису, в якому мають міститися: загальні характеристики задачі; підзадачі, які виділяються в даній задачі; ключові поняття (об’єкти), їх вхідні (вихідні) дані; ймовірний вид рішення, а також знання, що відносяться до задачі, яка розв’язується.

На етапі концептуалізації проводиться змістовний аналіз проблемної галузі, виявляються поняття, що використовуються, та їх взаємозв’язки, визначаються методи розв’язання задач. Цей етап закінчується створенням моделі проблемної галузі (ПГ), що містить головні концепти та відношення.

На етапі формалізації всі ключові поняття та відношення виражаються деякою формальною мовою, яка або вибирається із уже існуючих, або створюється спочатку. Інакше кажучи, на даному етапі визначаються склад засобів та способи подання декларативних та процедурних знань. Здійснюється це подання і в підсумку формується описання рішення задачі ЕС на запропонованій інженером із знань формальній мові.

Мета етапу виконання — створення одного або кількох прототипів ЕС, що розв’язують поставлені задачі. Потім, на даному етапі за результатами тестування та дослідної експлуатації створюється кінцевий продукт, придатний для промислового використання. Розроблення прототипу полягає в програмуванні його компонентів або виборі вже відомих інструментальних засобів та наповненні бази знань.

У процесі етапу тестування проводиться оцінювання способу представлення знань в ЕС у цілому. Для цього інженер із знань підбирає приклади, що забезпечують перевірку всіх можливостей розробленої ЕС.

На етапі дослідної експлуатації перевіряється придатність ЕС для кінцевого користувача. Придатність ЕС для користувача визначається переважно зручністю роботи з нею та її корисністю.

Під час розроблення ЕС завжди здійснюється її модифікація. Виокремлюють такі види модифікації системи: переформулювання понять та вимог, переконструювання подання знань у системі та удосконалення прототипів.

Використовувати ЕС варто лише тоді, коли її розробка можлива, виправдана та методи інженерії знань відповідають задачі.

Розглянемо промислові програмні комплекси, що реалізують технологію ЕС. З погляду експертів NASA, що проводили комплексне дослідження характеристик та можливостей деяких із перерахованих систем, нині найкращою є G2 (Gensym, США); наступні місця із суттєвим відставанням (реалізовано менше 50 % можливостей G2) займають RTWorks — фірма Talarian (США), COMDALE/C (Comdale Techn. — Канада), COGSYS (SC — США), ILOG Rules (ILOG — Франція).

7.3. Методи комп’ютерного моделювання
та проектування складних систем

Як зазначалось у попередніх підрозділах, розроблення та використання СППР та ЕС безпосередньо пов’язані з моделюванням у тих проблемних галузях, для яких створюються відповідні інформаційні системи. Крім того, моделювання є основним етапом системного аналізу. Тому, звичайно, існують сучасні інформаційні технології, які забезпечують автоматизацію цього процесу.

Традиційно під моделюванням на ЕОМ розумілося лише імітаційне моделювання. Але в останні роки завдяки розвитку графічного інтерфейсу і графічних пакетів широкий розвиток отримало комп’ютерне, структурно-функціональне моделювання та було покладено початок використанню комп’ютера при концептуальному моделюванні, де він використовується, наприклад, для побудови систем штучного інтелекту. Отже, поняття «комп’ю­терне моделювання» значно ширше за традиційне поняття «моделювання на ЕОМ».

Під комп’ютерною моделлю найчастіше розуміють:

· умовний образ об’єкта чи деякої системи об’єктів (або процесів), описаних за допомогою взаємозалежних комп’ютерних таблиць, блок-схем, діаграм, графіків, малюнків, анімаційних фрагментів, гіпертекстів тощо, які відображують структуру та взаємозв’язки між елементами об’єкта чи системи. Комп’ютерні моделі такого типу називають структурно-функціональними;

· окрему програму, сукупність програм, програмний комплекс, що дає змогу через певну послідовність обчислень та графічне відображення їх результатів, відтворювати (імітувати) процеси функціонування об’єкта чи системи об’єктів за умови впливу на них різних, як правило випадкових, факторів. Такі моделі називають імітаційними моделями.

Комп’ютерне моделювання — це метод розв’язання завдання аналізу або синтезу складної системи на засадах використання його комп’ютерної моделі. Суть комп’ютерного моделювання полягає в знаходженні кількісних і якісних результатів за допомогою наявної моделі. Якісні висновки, які отримують за результатами аналізу, дають змогу знайти невідомі раніше характеристики складної системи: її структуру, динаміку розвитку, стійкість, цілісність тощо. Кількісні висновки, головно, мають характер прогнозу майбутніх чи пояснення минулих значень змінних, що характеризують систему.

Предметом комп’ютерного моделювання можуть бути: економічна діяльність фірми, банку, виробничого підприємства; інформаційно-обчислювальна мережа; технологічний процес; будь-який інший реальний об’єкт чи процес, наприклад процес інфляції, і загалом, будь-яка складна система. Цілі комп’ютерного моделювання можуть бути різними, однак найчастіше моделювання є, як уже зазначалося раніше, головним етапом (процедурою) системного аналізу, тобто сукупності методологічних засобів, що використовуються для підготовки та прийняття рішень економічного, організаційного, соціального чи технічного характеру.

Комп’ютерна модель складної системи має за можливості відображати всі головні фактори і взаємозв’язки, що характеризують реальні ситуації, критерії та обмеження. Модель має бути досить універсальною, щоб за можливості була спроможною описувати близькі за призначенням об’єкти, і водночас досить простою, щоб уможливлювати виконання необхідних досліджень з мінімальними витратами.

Усе це підтверджує той факт, що моделювання систем, розглянуте загалом, є скоріш мистецтвом, ніж наукою, із самостійним набором засобів відображення явищ і процесів реального світу. Тому досить складно навести єдину, узагальнену класифікацію завдань комп’ютерного моделювання та створити достатньо універсальні його інструментальні засоби для об’єктів довільної природи. Однак, якщо звузити коло розглянутих об’єктів, обмеживши його, наприклад, завданнями комп’ютерного моделювання за системного аналізу об’єктів економіко-організацій­ного керування, то можна підібрати ряд досить універсальних підходів і програмних засобів.

Існує велике різноманіття засобів комп’ютерного моделювання, особливо структурно-функціонального, які з’являються мало не щодня. Однією із спроб подолати розбіжності між такими засобами є уніфікована мова моделювання.

Уніфікована мова моделювання (Unified modeling language, UML) є графічною мовою для візуалізації, специфікації, конструювання та документування систем, в яких більша роль належить програмному забезпеченню. За допомогою UML можна розробити детальний план системи, що відображує не тільки її концептуальні елементи, такі як системні функції та бізнес-процеси, а й конкретні особливості реалізації, в тому числі типи, написані спеціальними мовами програмування. Можна розробити також схеми баз даних та програмні компоненти багаторазового використання.

1996 року група управління об’єктами (Object Management Group, OMG) звернулась до об’єктно орієнтованої спільноти з пропозицією створити стандартний синтаксис для об’єктно орієнтованого аналізу та відповідну семантичну метамодель. Перша версія UML (UML 1.0) з’явилась у січні 1997 р. як відповідь на цю пропозицію. Після її обговорення та дороблення в листопаді 1997 р. версія UML 1.1 була успішно затверджена та прийнята до використання практично всіма найбільшими компаніями — виробниками програмного забезпечення (Microsoft, IBM, Hewlett-Packard, Oracle, Sybase та ін.). Крім того, практично всі світові виробники CASE-засобів, крім Rational Software, заявили про готовність підтримки UML у своїх продуктах.

Творці UML подають її як мову для визначення, подання, проектування та документування програмних систем, бізнес-систем та інших різних систем. UML виключає нотацію та метамодель. Нотація є сукупністю графічних об’єктів, які використовуються в моделях, вона є синтаксисом мови моделювання. Для детальнішого ознайомлення з ключовими поняттями, семантикою та процесом використання UML можна порекомендувати [43].