систему поступили факти - "людина активна" і "любить сонце".
Прямий вивід - виходячи з фактичних даних, отримати рекомендацію.
1-й прохід.
Крок 1. Пробуємо П1, не працює (не вистачає дані "відпочинок - літом").
Крок 2. Пробуємо П2, працює, в базу поступає факт "відпочинок - літом". 2-й прохід.
Крок 3. Пробуємо П1, працює, активується мета "їхати в гори", яка і виступає як рада, яка дає ЕС.
Зворотний вивід - підтвердити вибрану мету за допомогою наявних правил і даних.
1-й прохід.
Крок 1. Мета - "їхати в гори": пробуємо П1 - даних "відпочинок - літом" немає, вони стають новою метою і шукається правило, де мета в лівій частині.
Крок 2. Мета "відпочинок - літом": правило П2 підтверджує мету і активує її.
2-й прохід.
Крок 3. Пробуємо П1, підтверджується шукана мета.
Методи пошуку в глибину і ширину. У системах, база знань яких налічує сотні правил, бажаним є використання стратегії управління виводом, що дозволяє мінімізувати час пошуку рішення і тим самим підвищити ефективність виводу. До таких стратегій належать: пошук в глибину, пошук в ширину, розбиття на підзадачі і альфа-бета алгоритм [9].
При пошуку в глибину як чергової підцілі вибирається та, яка відповідає наступному, детальнішому рівню опису завдання. Наприклад, діагностуюча система, зробивши на основі відомих симптомів припущення про наявність певного захворювання, продовжуватиме запрошувати уточнюючі ознаки і симптоми цієї хвороби до тих пір, поки повністю не спростує висунуту гіпотезу.
При пошуку в ширину, навпаки, система спочатку проаналізує всі симптоми, що знаходяться на одному рівні простору станів, навіть якщо вони відносяться до різних захворювань, і лише потім перейде до симптомів наступного рівня детальної.
Під розбиттям на підзадачі - розуміють виділення підзадач, рішення яких розглядається як досягнення проміжної мети на шляху до кінцевої мети. Прикладом, що підтверджує ефективність розбиття на підзадачі, є пошук несправностей в комп'ютері - спочатку виявляється підсистема (живлення, пам'ять і т. д.), що відмовила, що значно звужує простір пошуку. Якщо вдається правильно зрозуміти суть завдання і оптимально розбити її на систему ієрархічно зв'язаних цілей-підцілей, то можна добитися того, що шлях до її рішення в просторі пошуку буде мінімальний.
Альфа-бета алгоритм дозволяє зменшити простір станів шляхом видалення гілок, неперспективних для успішного пошуку. Тому розглядаються тільки ті вершини, в які можна потрапити в результаті наступного кроку, після чого неперспективні напрями виключаються. Альфа-бета алгоритм знайшов широке застосування в основному в системах, орієнтованих на різні ігри, наприклад в шахових програмах.
2 ТЕОРЕТИЧНІ АСПЕКТИ ІНЖЕНЕРІЇ ЗНАНЬ
2.1 Поле знань
Інженерія знань - достатньо молодий напрям штучного інтелекту, що з'явився тоді, коли практичні розробники зіткнулися з вельми нетривіальними проблемами трудності "здобуття" і формалізації знань. У перших книгах по ШІ ці факти зазвичай тільки постулювались, надалі почалися серйозні дослідження по виявленню оптимальних стратегій виявлення знань [Boose, 1990; Wielinga, Schreiber, Breuker, 1992; Tuthill, 1994; Adeli, 1994}.
Поле знань - це умовний неформальний опис основних понять і взаємозв'язків між поняттями наочної області, виявлених з системи знань експерта, у вигляді графа, діаграми, таблиці або тексту.
2.1.1 Мова опису поля знань
Поле знань Pz формується на третій стадії розробки ЕС (див. п. 2.4) - стадії структуризації.
Поле знань, як перший крок до формалізації, являє модель знань про предметну область, в тому вигляді, в якому її зумів виразити аналітик на деякому "своїй" мові. Відомо, що словник мови конкретної науки формується шляхом поповнення загальновживаної мови спеціальними термінами і знаками, які або запозичуються з повсякденної мови, або винаходяться. Назвемо цю мову L і розглянемо її властивості, враховуючи, що стандарту цієї мови поки не існує, а кожен інженер по знаннях вимушений сам його винаходити.
По-перше, як і в мові будь-якої науки, в ній повинно бути якомога менше неточностей, властивих буденним мовам. Частково точність досягається більш строгим визначенням понять. Ідеалом точності, звичайно, є мова математики. Мова L, мабуть, займає проміжне положення між природною мовою і мовою математики.
По-друге, бажано не використовувати в ній термінів інших наук в іншому, тобто новому сенсі. Це викликає непорозуміння.
По-третє, мова L, мабуть, буде або символьною мовою, або графічною мовою (схеми, малюнки, піктограми).
При виборі мови опису поля знань не слід забувати, що на стадії формалізації необхідно її замінити на машинно-реалізовувану мову представлення знань (МПЗ), вибір якої залежить від структури поля знань.
Існує ряд мов, достатньо універсальних, щоб претендувати на роль мови інженерії знань, - це структурно-логічна мова SLL, що включає апарат лямбда-конверсії [1], мову К-систем, УСК і ін. Проте вони не знайшли широкого застосування. В деякому розумінні створення мови L дуже близько до ідей розробки універсальних мов науки. До XVII століття склалися два підходи в розробці універсальних мов: створення мов-класифікацій і логіко-конструктивних мов. До першого приписують проекти, висхідні до ідеї Ф. Бекона, - це мови Вілкинса і Далгарно. Другий підхід пов'язаний з дослідженнями в рамках пошуку універсального методу пізнання, найчіткіше висловленого Р. Декартом, а потім в проекті універсальної характеристики Р. Лейбніца. Саме Лейбніц намітив основні контури вчення про символи, які відповідно до його задумів в XVIII столітті розвивав Р. Ламберт, який дав ім'я науці "семіотика". Семіотика в основному знайшла своїх адептів у сфері гуманітарних наук. Останнім часом склалася також нова гілка семіотики - прикладна семіотика [ Pospelov, 1995].
Представники природних наук ще не до кінця усвідомили достоїнства семіотики тільки через те, що мають справу з достатньо простими і "жорсткими" предметними областями. Їм вистачає апарату традиційної