– статичні поверхневі системи;
системи другого покоління – статичні глибинні системи (іноді до другого покоління відносять також гібридні системи);
системи третього покоління – динамічні системи, що, як правило, є глибинними і гібридними.
За узагальненим показником – класом:
класифікуючі системи – вирішують задачі розпізнавання ситуацій. Основним методом формування рішень у таких системах є дедуктивне логічне виведення;
довизначальні системи – використовуються для вирішення задач з не цілком визначеними даними і знаннями. У таких системах виникають задачі інтерпретації нечітких знань і вибору альтернативних напрямків пошуку в просторі можливих рішень. Як методи обробки невизначених знань можуть використовуватися байєсівський імовірнісний підхід, коефіцієнти впевненості, нечітка логіка;
трансформуючі системи – відносяться до синтезуючих динамічних експертних систем, у яких передбачається повторюване перетворення знань у процесі вирішення задач. У системах даного класу використовуються різні способи обробки знань: генерація і перевірка гіпотез, логіка припущень і умовчань (коли за неповними даними формуються подання про об’єкти визначеного класу, що згодом адаптуються до конкретних умов ситуацій, що змінюються), використання метазнань (більш загальних закономірностей) для усунення невизначеностей у ситуаціях;
мультиагентні системи – динамічні системи, засновані на інтеграції декількох різнорідних джерел знань, що обмінюються між собою одержуваними результатами в ході вирішення задач. Системи даного класу мають можливості реалізації альтернативних міркувань на основі використання різних джерел знань і механізму усунення протиріч, розподіленого вирішення проблем, що декомпозуються на паралельно розв’язувані підзадачі із самостійними джерелами знань, застосування різних стратегій виведення рішень у залежності від типу розв’язуваної проблеми, обробки великих масивів інформації з баз даних, використання математичних моделей і зовнішніх процедур для імітації розвитку ситуацій.
Життєвий цикл та методологія розробки експертних систем
У розробці й експлуатації експертної системи беруть участь такі фахівці.
Експерт – висококваліфікований фахівець у проблемній області, задачі якої повинна вирішувати експертна система, який визначає знання, що характеризують проблемну область, забезпечує повноту і правильність введених в систему знань.
Інженер зі знань (когнітолог) – фахівець з розробки експертних систем, який виступає в ролі проміжного буфера між експертом і базою знань. Він допомагає експерту виявити і структурувати знання, необхідні для роботи експертної системи, здійснює вибір того інструментального засобу, що найбільше підходить для даної проблемної області, визначає спосіб подання знань у цьому інструментальному засобі, виділяє і програмує (традиційними засобами) стандартні функції (типові для даної проблемної області), що будуть використовуватися в знаннях, які вводяться експертом.
Програміст - фахівець з розробки інструментальних засобів, що здійснює їхнє створення і сполучення з тим середовищем, у якому вони будуть використовуватися.
Користувач - людина, що використовує вже побудовану експертну систему. Термін користувач є трохи неоднозначним. Звичайно він позначає кінцевого користувача. Однак користувачем може бути програміст, що відлагоджує засіб побудови експертної системи, інженер зі знань, що уточнює існуючі в системі знання, експерт, що додає в систему нові знання, оператор, що заносить у систему поточну інформацію.
Склад і взаємодію учасників побудови й експлуатації експертних систем зображено на рис. 2.1.
Засіб побудови експертної системи - це програмний засіб, використовуваний інженером зі знань або програмістом для побудови експертної системи. Цей інструмент відрізняється від звичайних мов програмування тим, що забезпечує зручні способи подання складних високорівневих понять. Важливо розрізняти інструмент, що використовується для побудови експертної системи, і саму експертну систему.
Рисунок . – Взаємозв’язки учасників побудови та
експлуатації експертних систем
Інструмент побудови включає як мову, використовувану для доступу до знань, що містяться в системі, і їхнього подання, так і підтримуючі засоби - програми, що допомагають користувачам взаємодіяти з компонентом експертної системи, яка вирішує проблему.
Концепція «швидкого прототипу» використовується для розробки експертних систем і полягає в тому, що розробники не намагаються відразу створити кінцевий продукт. На початковому етапі вони створюють прототип (прототипи) експертної системи, що повинний задовольняти двом суперечливим вимогам: з одного боку, вирішувати типові задачі конкретного застосування, а з іншого боку – час і трудомісткість його розробки повинні бути дуже незначними, щоб можна було максимально запаралелити процес накопичення і відлагодження знань (здійснюваний експертом) із процесом вибору (розробки) програмних засобів (здійснюваним інженером зі знань і програмістом). Для задоволення зазначених вимог при створенні прототипу, як правило, використовуються різноманітні інструментальні засоби, що прискорюють процес проектування.
Прототип повинний продемонструвати придатність методів інженерії знань для даного застосування. У випадку успіху експерт за допомогою інженера зі знань розширює знання прототипу про проблемну область. При невдачі може знадобитися розробка нового прототипу або розробники можуть прийти до висновку про непридатність методів інженерії знань для даного застосування. В міру збільшення знань прототип може досягти такого стану, коли він успішно вирішує всі задачі даного застосування. Перетворення прототипу в кінцевий продукт звичайно приводить до перепрограмування експертної системи на мовах низького рівня, що забезпечують як підвищення її швидкодії, так і зменшення необхідної пам’яті.
Методологія розробки експертних систем включає такі етапи (див. рис. 2.2).
Рисунок . – Етапи розробки експертних систем
Етап ідентифікації: визначаються задачі, що підлягають вирішенню, складаються їхні неформальні описи (загальні характеристики задачі; підзадачі, що виділяються усередині даної задачі; ключові поняття, характеристики і відношення; вхідні і вихідні дані; можливий вид рішення; знання, релевантні розв’язуваній задачі; ситуації, що перешкоджають вирішенню задачі; приклади рішення задачі; критерії оцінки якості рішень), виявляються цілі розробки (формалізація неформальних знань експертів; поліпшення якості рішень, прийнятих експертом; автоматизація рутинних аспектів роботи експерта або користувача; тиражування знань експерта), ресурси (джерела знань, трудомісткість, час розробки, обчислювальні засоби й обсяг фінансування), експерти, інженери зі знань і категорії