Експертні системи як прикладна галузь штучного інтелекту

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Курсова робота
Експертні системи як прикладна галузь штучного інтелекту

Зміст
Введення
1. Експертні системи, їх особливості
1.1. Визначення експертних систем, гідність і призначення
1.2. Класифікація експертних систем
1.3. Відмінність експертних систем від традиційних програм
1.4. Області застосування експертних систем
2. Структура, етапи розробки експертних систем
2.1.Основние компоненти експертних систем
2.2. Класифікація інструментальних засобів експертних систем
2.3. Організація знань в експертних системах
2.4. Технологія розробки експертних систем
Висновок
Література

Введення
Експертні системи виникли як значний практичний результат у застосуванні і розвитку методів штучного інтелекту - сукупності наукових дисциплін, що вивчають методи вирішення задач інтелектуального (творчого) характеру з використанням ЕОМ.
Область штучного інтелекту має більш ніж сорокарічну історію розвитку. З самого початку в ній розглядалася низка дуже складних задач, які, поряд з іншими, і до цих пір є предметом досліджень: автоматичні докази теорем, машинний переклад, розпізнавання зображень і аналіз сцен, планування дій роботів, алгоритми та стратегії ігор.
Експертна система - це набір програм, що виконує функції експерта при вирішенні завдань з деякої предметної області. Експертні системи видають поради, проводять аналіз, дають консультації, ставлять діагноз. Практичне застосування експертних систем на підприємствах сприяє ефективності роботи та підвищення кваліфікації фахівців.
Головним достоїнством експертних систем є можливість накопичення знань і збереження їх тривалий час. На відміну від людини до будь-якої інформації експертні системи підходять об'єктивно, що покращує якість проведеної експертизи.
При створенні експертних систем виникає ряд труднощів. Це, перш за все, пов'язано з тим, що замовник не завжди може точно сформулювати свої вимоги до розроблюваної системі. Також можливе виникнення труднощів чисто психологічного порядку: при створенні бази знань системи експерт може бути перешкодою для передачі своїх знань, побоюючись, що згодом його замінять «машиною». Але ці страхи не обгрунтовані, тому що експертні системи не здатні навчатися, вони не володіють здоровим глуздом, інтуїцією. Але в даний час ведуться розробки експертних систем, що реалізують ідею самонавчання. Також експертні системи застосовуються в великих предметних областях і в тих областях, де відсутні експерти.
Причиною підвищеного інтересу, який експертні системи викликають до себе протягом усього свого існування, є можливість їх застосування до розв'язання задач з самих різних областей людської діяльності.
Тому, для того щоб більш детально познайомитися з експертними системами, темою курсової роботи була вибрана - «Експертні системи як прикладна галузь штучного інтелекту». У курсовій роботі будуть розглянуті основні поняття і компоненти експертних систем, їх достоїнства і недоліки, різні класифікації, відмінності експертних систем від інших програм, етапи розробки і області застосування.

1. Експертні системи, їх особливості
1.1. Визначення експертних систем, гідність і призначення
Експертні системи - це яскраве і швидко прогресуюче напрямок в області штучного інтелекту.
Штучний інтелект - наймолодше науковий напрям. Поява його було підготовлено розвитком потужності обчислювальних машин.
Штучний інтелект займає виняткове становище. Це пов'язано з наступним:
частину функцій програмування в даний час виявилося можливим передати машині. При цьому спілкування з машиною відбувається на мові, близькою до розмовної. Для цього в ЕОМ закладають величезну базу знань, способи рішення, процедури синтезу, програми, а також засоби спілкування, що дозволяють користувачеві легко спілкуватися з ЕОМ.
· У зв'язку з впровадженням ЕОМ в усі сфери людського життя стає можливим перехід до безпаперової технології обробки інформації.
· Якщо раніше виробництво орієнтувалося на обов'язкову участь людини, то в даний час знаходять застосування безлюдні технології, засновані на роботизації і автоматизації системи управління.
· Інтелектуальні системи в даний час починають займати провідне положення в проектуванні зразків виробів. Частина виробів неможливо спроектувати без їх участі.
Системи, що відносяться до систем штучного інтелекту в даний час:
· Експертні системи. Перші системи, які знайшли широке застосування. Їх елементи використовуються в системах проектування, діагностики, управління та іграх. Засновані на вводі знань висококваліфікованих фахівців (експертів) в ЕОМ і розробці спеціальної системи щодо їх використання.
· Системи природно-мовного спілкування (мається на увазі письмова мова). Дані системи дозволяють проводити обробку пов'язаних текстів з якої-небудь тематики на природній мові.
· Системи мовного спілкування.
· Системи обробки візуальної інформації. Знаходять застосування в обробці аерокосмічних знімків, даних, що надходять з датчиків.
· Системи машинного перекладу. Маються на увазі природні мови людського спілкування.
Експертна система - це набір програм або програмне забезпечення, яке виконує функції експерта при вирішенні будь-які завдання в області його компетенції. Експертна система, як і експерт-людина, в процесі своєї роботи оперує зі знаннями. Знання про предметну область, необхідні для роботи експертних систем, певним чином формалізовані і представлені в пам'яті ЕОМ у вигляді бази знань, яка може змінюватися і доповнюватися в процесі розвитку системи.
Експертні системи видають поради, проводять аналіз, виконують класифікацію, дають консультації і ставлять діагноз. Вони орієнтовані на вирішення завдань, що зазвичай вимагають проведення експертизи людиною-спеціалістом. На відміну від машинних програм, що використовує процедурний аналіз, експертні системи вирішують завдання у вузькій предметній області (конкретної галузі експертизи) на основі дедуктивних міркувань. Такі системи часто виявляються нездатними знайти вирішення завдань, які неструктурованість і погано визначені. Вони справляються з відсутністю структурованості шляхом залучення евристик, тобто правил, взятих «зі стелі», що може бути корисним у тих системах, коли брак необхідних знань або часу виключає можливість проведення повного аналізу.
Головне достоїнство експертних систем - можливість накопичувати знання, зберігати їх тривалий час, оновлювати і тим самим забезпечувати відносну незалежність конкретної організації від наявності в ній кваліфікованих фахівців. Накопичення знань дозволяє підвищувати кваліфікацію фахівців, що працюють на підприємстві, використовуючи найкращі, перевірені рішення.
Практичне застосування штучного інтелекту на машинобудівних підприємствах і в економіці засноване на експертних системах, що дозволяють підвищити якість і зберегти час прийняття рішень, а також сприяють зростанню ефективності роботи та підвищення кваліфікації фахівців.
1.2. Класифікація експертних систем
Схема класифікації
Клас «експертні системи» сьогодні об'єднує декілька тисяч різних програмних комплексів, які можна класифікувати за різними критеріями.
Класифікація за розв'язуваної задачі
Інтерпретація даних. Це одна з традиційних завдань для експертних систем. Під інтерпретацією розуміється визначення змісту даних, результати якого мають бути погодженими і коректними. Зазвичай передбачається багатоваріантний аналіз даних.
Приклад:
· Виявлення та ідентифікація різних типів океанських суден - SIAP;
· Визначення основних властивостей особистості за результатами психодіагностичного тестування в системах авта-
ТЕСТ і МІКРОЛЮШЕР та інших.
Діагностика. Під діагностикою розуміється виявлення несправності в деякій системі. Несправність - це відхилення від норми. Таке трактування дозволяє з єдиних теоретичних позицій розглядати і несправність устаткування в технічних системах, і захворювання живих організмів, і всілякі природні аномалії. Важливою специфікою є необхідність розуміння функціональної структури («анатомії») діагностуючої системи.
Приклад:
· Діагностика і терапія звуження коронарних судин - ANGY;
· Діагностика помилок в апаратурі та математичному забезпеченні ЕОМ - система СRIB та інші.
Моніторинг. Основне завдання моніторингу - безперервна інтерпретація даних в I реальному масштабі часу і сигналізація про вихід тих або інших параметрів за допустимі межі. Головні проблеми - «пропуск» тривожної ситуації і інверсна завдання «помилкового» спрацьовування. Складність цих проблем в розмитості симптомів тривожних ситуацій і необхідність обліку тимчасового контексту.
Приклад:
· Контроль за роботою електростанцій СПРІНТ, допомога
диспетчерам атомного реактора - REACTOR;
· Контроль аварійних датчиків на хімічному заводі - FALCON та інші.
Проектування. Проектування полягає в підготовці специфікацій на створення «об'єктів» із заздалегідь визначеними властивостями. Під специфікацією розуміється весь набір необхідних документів - креслення, пояснювальна записка і так далі. Основні проблеми тут - здобуття чіткого структурного опису знань про об'єкт і проблема «сліду». Для організації ефективного проектування і, у ще більшому ступені, перепроектування необхідно формувати не лише самі проектні рішення, але і мотиви їх прийняття. Таким чином, в завданнях проектування тісно зв'язуються два основні процеси, виконуваних в рамках відповідної експертної системи: процес виведення і процес пояснення.
Приклад:
· Проектування конфігурацій ЕОМ VАХ - 11/780 в системі ХСОN (або R1), проектування БІС - САDHELР;
· Синтез електричних ланцюгів - SYN та інші.
Прогнозування. Прогнозуючі системи логічно виводять вірогідні наслідки з заданих ситуацій. У прогнозуючій системі зазвичай використовується параметрична динамічна модель, в якій значення параметрів «підганяються» під задану ситуацію. Виводяться з цієї моделі, складають основу для прогнозів з ймовірними оцінками.
Приклад:
· Передбачення погоди - система WILLARD;
· Оцінки майбутнього врожаю - РLANT;
· Прогнози в економіці - ЕСОN та інші.
Планування. Під плануванням розуміється знаходження планів дій, що відносяться до об'єктів, здатних виконувати деякі функції. У таких експертних системах використовуються моделі поведінки реальних об'єктів з тим, щоб логічно вивести наслідки планованої діяльності.
Приклад:
· Планування поведінки робота - STRIPS;
· Планування промислових замовлень - ISIS;
· Планування експерименту - МОLGЕN та інші.
Навчання. Системи вчення діагностують помилки при вивченні якої-небудь дисципліни за допомогою ЕОМ і підказують правильні рішення. Вони акумулюють знання про гіпотетичного «учня» і його характерних помилках, потім в роботі здатні діагностувати слабкості в знаннях учнів і знаходити відповідні засоби для їх ліквідації. Крім того, вони планують акт спілкування з учнем залежно від успіхів учня з метою передачі знань.
Приклад:
· Вивчення мови програмування Лісп в системі «Вчитель Ліспу»;
· Система РROUSТ - навчання мові Паскаль та інші.
У загальному випадку всі системи, засновані на знаннях, можна підрозділити на системи, що вирішують завдання аналізу, і на системи, які вирішують завдання синтезу. Основна відмінність завдань аналізу від завдань синтезу полягає в наступному: якщо в завданнях аналізу безліч рішень може бути перераховане і включене в систему, то в завданнях синтезу безліч рішень потенційно будується з рішень компонентів або подпроблем. Завдання аналізу - це інтерпретація даних, діагностика; до завдань синтезу відносяться проектування, планування. Комбіновані задачі: навчання, моніторинг, прогнозування.
Класифікація за зв'язку з реальним часом
Статичні експертні системи розробляються у предметних областях, у яких база знань й інтерпретовані дані не змінюються в часі. Вони стабільні.
Приклад.
Діагностика несправностей в автомобілі.
Квазідінаміческіе експертні системи інтерпретують ситуацію, яка змінюється з деяким фіксованим інтервалом часу.
Приклад. Мікробіологічні експертні системи, в яких знімаються лабораторні вимірювання з технологічного процесу один раз на 4-5 ч. (наприклад, виробництво лізину) та аналізується динаміка одержаних показників по відношенню до попереднього виміру.
Динамічні експертні системи працюють у сполученні з датчиками об'єктів у режимі реального часу з безперервною інтерпретацією даних, що надходять.
Приклад. Управління гнучкими виробничими комплексами, моніторинг у реанімаційних палатах і так далі.
Класифікація за типом ЕОМ
На сьогоднішній день існують:
· Експертні системи для унікальних стратегічно важливих завдань на суперЕОМ (Ельбрус, CRAY, CONVEX та інші.);
· Експертні системи на ЕОМ середньої продуктивності (типу mainfrave);
· Експертні системи на символьних процесорах і робочих станціях (SUN, АРОLLО);
· Експертні системи на міні-і суперміні-ЕОМ (VАХ, micro-VАХ та інші);
· Експертні системи на персональних комп'ютерах (IВМ РС, МАС II і подібні).
Класифікація за ступенем інтеграції з іншими програмами
Автономні експертні системи працюють безпосередньо в режимі консультацій з користувачем для специфічних «експертних» завдань, для вирішення яких не потрібно привертати традиційні методи обробки даних (розрахунки, моделювання і так далі.).
Гібридні експертні системи представляють програмний комплекс, агрегують стандартні пакети прикладних програм (наприклад, математичну статистику, лінійне програмування або системи управління базами даних) та засоби маніпулювання знаннями. Це може бути інтелектуальна надбудова над ППП або інтегроване середовище для вирішення складного завдання з елементами експертних знань.
Незважаючи на зовнішню привабливість гібридного підходу, слід зазначити, що розробка таких систем являє собою завдання, на порядок більш складну, ніж розробка автономної експертної системи. Стиковка не просто різних пакетів, а різних методологій (що відбувається в гібридних системах) породжує цілий комплекс теоретичних і практичних труднощів.
1.3. Відмінність експертних систем від традиційних програм
Один зі способів визначити експертні системи - це порівняти їх із звичайними програмами. Головна відмінність полягає в тому, що експертні системи маніпулюють знаннями, тоді як звичайні програми маніпулюють даними. Фірма Теknowledge, яка займається виробництвом комерційних експертних систем, описує ці відмінності, як показано в таблиці.
Обробка даних
Інженерія знань
Представлення і використання даних
Алгоритми
Повторний прогін
Ефективна обробка великих баз даних
Представлення і використання знань
Евристики
Процес логічного висновку
Ефективна обробка баз знань
Фахівці в галузі штучного інтелекту мають дещо вужче (і більш складне) уявлення про те, що таке експертна система. Під експертною системою розуміється програма для ЕОМ, що володіє наступними властивостями.
Компетентність. Експертна система повинна демонструвати компетентність, тобто досягати в конкретної предметної області того ж рівня професіоналізму, що й експерти-люди. Але просто вміти знаходити гарні рішення ще недостатньо. Справжні експерти не тільки знаходять гарні рішення, але часто знаходять їх дуже швидко, тоді як новачкам для знаходження тих же рішень, як правило, потрібно набагато більше часу. Отже, експертна система повинна бути вмілої - вона повинна застосовувати знання для отримання рішень ефективно і швидко, використовуючи прийоми і хитрощі, які застосовують експерти-люди, щоб уникнути громіздких або непотрібних обчислень. Для того щоб по-справжньому наслідувати поведінці експерта-людини, експертна система повинна володіти робастност'ю. Це має на увазі не тільки глибоке, а й досить широке розуміння предмета. А цього можна досягти, використовуючи загальні знання і методи знаходження рішень проблем, щоб вміти міркувати виходячи з фундаментальних принципів у разі некоректних даних або неповних наборів правил. Це один з найменш розроблених методів у сучасних експертних системах, але саме їм успішно користуються експерти-люди.
Символьні міркування. Експерти, вирішуючи якісь завдання (особливо
такого типу, для вирішення яких застосовуються експертні системи), обходяться без розв'язання систем рівнянь або інших трудомістких математичних обчислень. Замість цього вони за допомогою символів представляють поняття предметної області і застосовують різні стратегії та евристики в процесі маніпулювання цими поняттями. У експертній системі знання теж представляються у символьному вигляді, тобто наборами символів, що відповідають поняттям предметної області. У штучному інтелекті символ - це рядок знаків, стосується вмісту деякого поняття реального світу.
Приклади символів:
Продукт
відповідач
0.8
Ці символи можна об'єднати, щоб висловити відносини між ними. Коли ці відносини представлені в програмі штучного інтелекту, вони називаються символьними структурами.
Приклади символьних структур:
(Дефектний продукт)
(Випущеної відповідачем продукт)
(ОДНО (ВІДПОВІДАЛЬНІСТЬ відповідач) 0.8)
Ці структури можна інтерпретувати в такий спосіб: «продукт є дефектним», «продукт був випущений у продаж відповідачем» і «відповідальність відповідача дорівнює 0.8».
При вирішенні завдання експертна система замість виконання стандартних математичних маніпулює цими символами. Не можна сказати, що експертна система взагалі не виробляє математичних розрахунків, вона їх робить, але в основному вона пристосована для маніпулювання символами. Внаслідок такого підходу уявлення знань - вибір, форма та інтерпретація використовуваних символів - стає дуже важливим. Крім того, експерти можуть отримати завдання, сформульовану якимось довільним чином, і перетворити її до того виду, який найбільшою мірою відповідає швидкому отриманню рішення або гарантує його максимальну ефективність. Ця здатність переформулювання завдання - Якраз та властивість, яка має бути властиво експертної системи для того, щоб наблизити їх майстерність до рівня експертів-людей. На жаль, більшість існуючих в даний час експертних систем не мають цією властивістю.
Глибина. Експертна система повинна мати глибокі знання, це значить, що вона здатна працювати ефективно у вузькій предметній області, що містить важкі, нетривіальні завдання. Тому правила в експертній системі з необхідністю повинні бути складними або в сенсі складності кожного правила, або в сенсі їх великої кількості. Експертні системи, як правило, працюють з предметними областями реального світу, а не з тим, що фахівці в галузі штучного інтелекту називають іграшковими предметними областями. У предметної області реального світу той, хто вирішує завдання, застосовує фактичну інформацію до практичної проблеми і знаходить рішення, які є цінними з точки зору деякого критерію, що визначає співвідношення вартості та ефективності. У іграшкової предметної області або завдання піддається надзвичайного спрощення, або виробляється нереалістична адаптація деякої складної проблеми реального світу. Той, хто вирішує таку проблему, обробляє штучну інформацію, яка з метою полегшення вирішення спрощена і породжує рішення, що мають суто теоретичний інтерес.
У тих випадках, коли по відношенню до складної задачі або даними про неї зроблено суттєві спрощення, отримане рішення може виявитися непридатним в масштабах, які характерні для реальної проблеми. Рекомендації, методи представлення знань, організація знань, необхідні для застосування методів вирішення завдань до цих знань, часто пов'язані з обсягом і складністю простору пошуку, тобто безлічі можливих проміжних і остаточних рішень задачі. Якщо проблема сверхупрощена або нереалістична, то розмірність простору пошуку буде, швидше за все, різко зменшена, і не виникне проблем з швидкодією та ефективністю, таких характерних для реальних завдань. Ця проблема розмірності виникає так природно і невловимо, що фахівці в штучному інтелекті можуть не оцінити її справжні масштаби.
Самосвідомість. Експертні системи мають знання, що дозволяють міркувати про їх власних діях, і структуру, яка спрощує такі міркування. Наприклад, якщо експертна система заснована на правилах, то їй легко переглянути ланцюжка висновків, які вона породжує, щоб прийти до вирішення завдання. Якщо задані ще й спеціальні правила, з яких зрозуміло, що можна зробити з цими ланцюжками висновків, то можна використовувати ці знання для перевірки точності, стійкості і правдоподібності рішень задачі і навіть побудувати доводи, що виправдовують або пояснюють процес міркування. Це знання системи про те, як вона міркує, називається метазнаніе, що означає всього лише знання про знання.
У більшості нині існуючих експертних систем є так званий механізм пояснення. Це знання, необхідні для пояснення того, яким чином система прийшла до цих рішень. Більшість цих пояснень включають демонстрацію ланцюжків висновків і доказів, що пояснюють, на якій підставі було застосовано кожне правило в ланцюжку. Можливість перевіряти власні процеси міркування і пояснювати свої дії - це одне з найбільш новаторських і важливих властивостей експертних систем. Але чому це властивість так важливо?
«Самосвідомість» так важливо для експертних систем тому, що: користувачі починають більше довіряти результатам, відчувати більшу впевненість у системі;
прискорюється розвиток системи, оскільки систему легше налагоджувати;
припущення, покладені в основу роботи системи, стають явними, а не УЯВНОЮ;
легше передбачати і виявляти вплив змін на роботу системи.
Уміння пояснити - це всього лише один з аспектів самосвідомості. У майбутньому самосвідомість дозволить експертної системі робити навіть більше. Вони самі зможуть створювати обгрунтування окремих правил шляхом міркування, що виходить із основних принципів. Вони будуть пристосовувати свої пояснення до вимог користувача. Вони зможуть виміряти власну внутрішню структуру шляхом корекції правил, реорганізації бази знань та реконфігурації системи.
Перший крок у цьому напрямку - виділити метазнанія і зробити їх явними, точно так само як знання про предметну область виділені і зроблені явними. Нижче наведено приклад метазнанія - знання про те, як використовувати предметні знання.
ЯКЩО: до даної ситуації можна застосувати кілька правил,
ТО: використовувати спочатку правила, запропоновані експертами, перш ніж вдатися до правил, запропонованим новачками.
Це метаправіла говорить експертній системі, яким чином вона повинна вибирати ті правила, які треба виконати. Фахівці зі штучного інтелекту тільки починають експериментувати з формами подання метазнаній і їх організацією в експертних системах.
Експертні системи роблять помилки. Існує дуже важлива відмінність експертних систем від традиційних програм. Тоді як традиційні програми розробляються таким чином, щоб кожен раз породжувати правильний результат, експертні системи розроблені з тим, щоб вести себе як експерти, які, як правило, дають правильні відповіді, але іноді здатні помилятися.
На перший погляд здається, що в цьому відношенні програми мають явну перевагу. Проте ця перевага здається. Традиційні програми для рішення складних завдань, що нагадують ті, які підходять для експертних систем, теж можуть робити помилки. Але їх помилки надзвичайно важко виправляти, оскільки стратегії, евристики і принципи, що лежать в основі цих програм, явно не сформульовані в їх тексті. Отже, ці помилки нелегко визначити і виправити. Подібно до своїх двійникам-людям експертні системи можуть робити помилки. Але на відміну від звичайних програм вони мають потенційну здатність вчитися на своїх помилках. За допомогою компетентних користувачів можна змусити експертні системи удосконалювати своє вміння вирішувати завдання в ході практичної роботи.
1.4. Області застосування експертних систем
Області застосування систем, заснованих на знаннях, можуть бути згруповані в кілька основних класів: медична діагностика, контроль і управління, діагностика несправностей у механічних і електричних пристроях, навчання.
· Медична діагностика.
Діагностичні системи використовуються для встановлення зв'язку між порушеннями діяльності організму та їх можливими причинами. Найбільш відома діагностична система MYCIN, яка призначена для діагностики і спостереження за станом хворого при менінгіті і бактеріальних інфекціях. Її перша версія була розроблена в Стенфордському університеті в середині 70-х років. В даний час ця система ставить діагноз на рівні лікаря-спеціаліста. Вона має розширену базу знань, завдяки чому може застосовуватися і в інших областях медицини.
· Прогнозування.
Прогнозують системи передбачають можливі результати або події на основі даних про поточний стан об'єкта. Програмна система «Завоювання Уолл-стріта» може проаналізувати кон'юнктуру ринку і з допомогою статистичних методів алгоритмів розробити план капіталовкладень на перспективу. Вона не належить до систем, заснованих на знаннях, оскільки використовує процедури і алгоритми традиційного програмування. Хоча поки що відсутні експертні системи, які здатні за рахунок своєї інформації про кон'юнктуру ринку допомогти збільшити капітал, прогнозують системи вже сьогодні можуть передбачати погоду, врожайність і потік пасажирів. Навіть на персональному комп'ютері, встановивши просту систему, засновану на знаннях, можна отримати місцевий прогноз погоди.
· Планування.
Планують системи призначені для досягнення конкретних цілей під час вирішення завдань з великою кількістю змінних. Дамаська фірма Informat вперше в торговельній практиці надає в розпорядження покупців 13 робочих станцій, встановлених у холі свого офісу, на яких проводяться безкоштовні 15-хвилинні консультації з метою допомогти покупцям вибрати комп'ютер, найбільшою мірою відповідає їх потребам та бюджету. Крім того, компанія Boeing застосовує експертні системи для проектування космічних станцій, а також для виявлення причин відмов літакових двигунів і ремонту вертольотів. Експертна система XCON, створена фірмою DEC, служить для визначення або зміни конфігурації комп'ютерних систем типу VAX і відповідно до вимог покупця. Фірма DEC розробляє більш потужну систему XSEL, що включає базу знань системи XCON, з метою надання допомоги покупцям при виборі обчислювальних систем з потрібною конфігурацією. На відміну від XCON система XSEL є інтерактивною.
· Інтерпретація.
Інтерпретують системи мають здатність отримувати певні висновки на основі результатів спостереження. Система PROSPECTOR, одна з найбільш відомих систем інтерпретуючого типу, об'єднує знання дев'яти експертів. Використовуючи поєднання дев'яти методів експертизи, системі вдалося виявити поклади руди вартістю в мільйон доларів, причому наявність цих покладів не припускав жоден з дев'яти експертів. Інша інтерпретує система - HASP / SIAP. Вона визначає місце розташування і типи суден у тихому океані за даними акустичних систем стеження.
· Контроль і управління.
Системи, засновані на знаннях, можуть застосовуватися в якості інтелектуальних систем контролю і приймати рішення, аналізуючи дані, що надходять від декількох джерел. Такі системи вже працюють на атомних електростанціях, управляють повітряним рухом і здійснюють медичний контроль. Вони можуть бути також корисні при регулюванні фінансової діяльності підприємства і надавати допомогу при виробленні рішень у критичних ситуаціях.
· Діагностика несправностей у механічних і електричних пристроях.
У цій сфері системи, засновані на знаннях, незамінні як при ремонті механічних та електричних машин (автомобілів, дизельних локомотивів і т.д.), так і при усуненні несправностей і помилок в апаратному та програмному забезпеченні комп'ютерів.
· Навчання.
Експертні системи, що виконують навчання, піддають діагностиці, «налагодженні» і виправлення (корекції) поведінка учня. Прикладом є навчання студентів відшукання несправностей в електричних ланцюгах, навчання військових моряків поводження з двигуном на кораблі і навчання студентів-медиків вибору антимікробної терапії. Навчальні системи створюють модель того, що навчається знає і як він ці знання застосовує до вирішення проблеми. Системи діагностують і вказують навчається його помилки, аналізуючи модель і будуючи плани виправлень зазначених помилок. Вони виправляють поведінку учнів, виконуючи ці плани за допомогою безпосередніх вказівок, що навчаються.
Більшість експертних систем включають знання, за змістом яких їх можна віднести одночасно до декількох типів. Наприклад, навчальна система може також мати знання, що дозволяють виконувати діагностику і планування. Вона визначає здібності учня по основним напрямкам курсу, а потім з урахуванням отриманих даних складає навчальний план. Керуюча система може застосовуватися для цілей контролю, діагностики, прогнозування і планування.

2. Структура, етапи розробки експертних систем
2.1.Основние компоненти експертних систем
Типова експертна система складається з наступних основних компонентів: розв'язувача (інтерпретатора), робочої пам'яті (РП), званої також базою даних (БД), бази знань (БЗ), компонентів придбання знань, пояснювального та діалогового компонентів (рисунок 1).
Інтерфейс
користувача
База знань
Підсистема пояснень
Решатель
Інтелектуальний редактор бази знань






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

2.2. Класифікація інструментальних засобів експертних систем
У широкому тлумаченні в інструментарій включають і апаратуру, орієнтовану на розробку експертних систем (апаратурний інструментарій).
На проектування і створення однієї експертної системи раніше було потрібно 20-30 осіб-років. В даний час є ряд засобів, що прискорюють створення експертних систем. Ці кошти називаються інструментальними (ІС), або інструментарієм. Використання ІС скорочує час розробки експертних систем в 3 - 5 разів.
Експертні системи виконуються на ЕОМ наступних типів: загального призначення; ПЕОМ; інтелектуальні робочі станції (тобто робочі станції типу San, Арроlо та ін, забезпечені ефективними ІВ для створення експертної системи); послідовні символьні ЕОМ типу ЛИСП - машин (Symbolik-3670, А1рhа, Ехр1огег, Хегох 1100 і дугіе) і ПРОЛОГ - машин; паралельні символьні ЕОМ (Connection, Dado, Faun, Hyper Cube і інші).
Програмні ІС визначаються наступної сукупністю характеристик: призначення; стадія існування; тип ІС; тип використовуваних методів і знань; універсальність, основні властивості; середовище функціонування.
Призначення визначає, для роботи в яких проблемних областях і для створення якій стадії експертної системи призначене ІС.
За ступенем отработанности ІС зазвичай виділяють три стадії існування: експериментальна, дослідницька, комерційна. Експериментальні ІС створюються для вирішення вузьких специфічних завдань і рідко перевіряються на інших завданнях, зазвичай вони працюють повільно і неефективно. Наступною стадією є дослідницька. Кошти, які досягли цієї стадії, зазвичай ретельно перевірені, мають документацію і підтримуються розробником, проте вони ще можуть діяти повільно і неефективно. Дослідницькі ІС використовуються при розробці прототипів експертних систем. Вищою стадією існування ІВ є комерційна. Цій стадії досягають ті ІС, які всебічно і ретельно перевірені, добре документовані, супроводжуються розробником, є швидкими і володіють зручним інтерфейсом з користувачем.
За типом ІС класифікуються наступним чином:
· Символьні мови програмування, орієнтовані на створення експертних систем і систем штучного інтелекту (наприклад, LISP, INTRLISP, SMALLTALK);
· Мови інженерії знань, тобто мови високого рівня, орієнтовані на побудову експертних систем (наприклад, ОРS-5, LOOPS, КЕS, ПРОЛОГ);
· Системи, що автоматизують розробку (проектування) експертних систем, (наприклад, Кее, АRТ, ТЕIRЕSIAS, АGЕ, ТIММ), їх часто називають оточення (еnvironment) для розробки систем ШІ, орієнтованих на знання;
· Оболонки експертних систем (або порожні експертні) - експертні системи, що не містять знань ні про яку проблемної області (наприклад, ЕКСПЕРТИЗА, ЕМYСIN, ЕКО, ЕКСПЕРТ).
У наведеній класифікації ІС перераховані в порядку убування трудовитрат, необхідних на створення з їх допомогою конкретної експертної системи. Дійсно, при використанні ІС першого типу в задачу розробника входить програмування всіх компонентів експертної системи на мові досить низького рівня. Використання ІС другого типу дозволяє значно підвищити рівень мови, що, як правило, призводить до деякого зниження ефективності. Інструментальні кошти третього типу дозволяють розробнику не програмувати всі або частину компонентів експертної системи, а вибирати їх із заздалегідь складеного набору. При застосуванні ІС четвертого типу розробник ІС повністю звільняється від робіт зі створення програм, так як бере готову порожню експертну систему.
При використанні ІС третього і особливо четвертого типу можуть виникнути наступні проблеми: керуючі стратегії, вкладені в процедури виведення ІС, можуть не відповідати методам рішення, які використовує експерт, який взаємодіє з даною експертною системою, що може призводити до неефективних, а можливо, і до неправильних рішенням; мова представлення знань, прийнятий в ІС, може не підходити для цього додатка.
Розвиток систем, що автоматизують розробку експертних систем, призводить до появи ІС, які можна назвати налаштованим оболонками. Ці ІС дозволяють розробнику використовувати оболонку не як щось незмінне, а генерувати оболонку з безлічі механізмів, наявних в ІС. Типовими таймерами таких ІС є Кее, АRТ, ЕКСПЕРТИЗА, Глоба.
Інструментальні засоби можна класифікувати і по класах експертних систем на: ІВ для створення простих експертних систем, ІВ для створення складних експертних систем. В даний час, як правило, ІС першого типу розробляються на ПЕОМ, а другого - на символьних ЕОМ, ЕОМ загального призначення та інтелектуальних робочих станціях.
За типом використовуваних методів і знань ІС діляться, так само як і експертні системи, на традиційні, що використовують тільки методи і способи подання інженерії знань, і гібридні, поєднують підходи інженерії знань з підходами, розвинутими в традиційному програмуванні при поданні даних і використанні підпрограм.
Універсальність задається сукупністю двох параметрів: універсальністю подання знань та універсальністю функціонування. Універсальність подання характеризує спосіб; (модель) подання знань в ІС і приймає такі значення: єдине уявлення - ІС використовує одну модель; інтегральне уявлення - ІС допускає інтегральне використання декількох моделей; універсальне - ІС допускає інтегральне використання всіх основних моделей подання. До основних моделей подання відносяться: правила (продукції); фрейми або семантичні мережі; логічні моделі (обчислення предикатів). Прикладами ІС, в яких використовується єдине уявлення, є ПРОЛОГ, інтегральне подання - СENTAUR, а універсальне - Кее, АRТ.
Універсальність функціонування характеризує механізми (парадигми), що визначають, як в ІС задається поведінка (функціонування) системи, і приймає такі значення: єдиний механізм функціонування - ІС використовує один механізм функціонування; інтегральне функціонування - ІС допускає інтегральне використання декількох механізмів функціонування; універсальне функціонування - ІС допускає інтегральне використання всіх основних механізмів. До основних механізмів (парадигм програмування) відносяться: процедурне програмування; зворотне програмування; програмування, орієнтоване на дані; програмування, орієнтований на правила.
Процедурне програмування найбільш широко поширене серед існуючих сьогодні мов програмування (наприклад, Сі). Тут явно виділяють два види різних сутностей: процедури, які є тим, що задає поведінку (функціонування) програми і виконують активну роль; дані, що є тим, що обробляється спосіб, визначений процедурами, і виконують пасивну роль. Здатність складати процедури з команд (операторів) і викликати їх - ключ функціонування, що використовує дану парадигму. Особливістю її є бічні ефекти, що виникають у тих випадках, коли різні процедури, що використовують загальні дані, незалежно їх змінюють.
Парадигма об'єктного програмування на відміну від процедурної не розділяє програму на процедури і дані. Тут програма організується навколо сутностей (об'єктів), які включають локальні процедури (методи) і локальні дані (змінні). Поведінка (функціонування) у цій парадигмі організується шляхом пересилки повідомлень між об'єктами. Об'єкт, отримавши повідомлення, здійснює його локальну інтерпретацію, грунтуючись на локальних процедурах і даних. Об'єктна парадигма зручна в тих додатках, де взаємодія сутностей зведено до уніфікованих протоколів. Важливою властивістю мов, що використовують дану парадигму, є мережа наслідувань, яка суттєво спрощує визначення нових об'єктів, майже подібних відомим.
В обох розглянутих парадигмах активна роль в організації поведінки приділяється процедурам, а не даним. Причому процедура активізується або її викликом, або посилкою їй повідомлення. Подібні способи завдання поведінки зручні для опису детермінованої послідовності дій або одного процесу, або декількох, але строго взаємозалежних процесів.
У програмуванні, орієнтованому на дані, активну роль відіграють дані, а не процедури. Тут із структурами активних даних зв'язують деякі процедури (дії), які активізуються тоді, коли здійснюється доступ до цих даних. Описаний механізм у деякому сенсі зворотний механізму посилки повідомлень. Дійсно, повідомлення є явним способом вказати об'єкту, які дії слід виконувати (ці дії як бічного ефекту можуть змінити значення деяких даних (племінних), а віднесення даних до активних є явним способом вказівки на контроль за доступом до них, при цьому в якості бічного ефекту може бути надіслано повідомлення процедурою. Програмування, орієнтоване на дані, дозволяє організувати поведінку малозалежні процесів, що важко реалізувати в процедурній і об'єктної парадигмах. Мала залежність процесів означає, що вони можуть розглядатися і програмуватися окремо. Однак, при використань парадигми, керованої даними, ці незалежно запрограмовані процеси можуть взаємодіяти між собою без їх зміни, тобто без перепрограмування.
У програмуванні, орієнтованому на правила, поведінка визначається безліччю правил виду умова - дія. Умова задає образ даних, при виникненні якого дію правила може бути виконано. Правила в даній парадигмі відіграють таку ж роль, як і підпрограми в процедурній парадигмі. Однак, якщо в процедурній парадигмі поведінка задається детермінованою послідовністю процедур, що не залежить (для широкого класу оброблюваних даних) від значень цих даних, то в парадигмі, орієнтованої на правила, поведінка (послідовність дій) задається не заздалегідь визначеній послідовністю правил, а формується на основі тих даних і їх значень, які в поточний момент обробляються програмою (системою). Формування поведінки здійснюється за наступною схемою. Умови правил зіставляються з поточними даними, і ті правила, умови яких задовольняються значеннями поточних даних, стають претендентами на виконання. Потім за певним критерієм здійснюється вибір одного правила серед претендентів та виконання його (тобто виконання дії, зазначеного в правій частині правила). Якщо система (пристрій) допускає паралельну обробку, то всі правила-претенденти можуть виконуватися одночасно. Таким чином, правила виконуються в порядку, приписуваному тими зразками даних, які, як правило, малозалежні один від одного. Отже, підхід, орієнтований на правила, зручний для опису поведінки, гнучко і різноманітно реагує на велике різноманіття станів даних. Основні властивості визначають особливості ІС з точки зору реалізації компонентів експертних систем. Середовище функціонування визначає тип ЕОМ, на якій реалізовано ІС, тип операційної системи, в середовищі якої ІС працює, і який використовується мова програмування.
2.3. Організація знань в експертних системах
Для фахівців в області штучного інтелекту термін знання означає інформацію, яка необхідна програмі, щоб вона вела себе «інтелектуально». Ця інформація приймає форму фактів або правил.
Факти і правила в експертній системі не завжди або істинні, або хибні, іноді існує деяка ступінь непевності у достовірності факту або точності правила. Якщо цей сумнів виражено явно, то воно називається «коефіцієнтом впевненості».
Багато правил експертної системи є евристиками, тобто емпіричними правилами або спрощеннями, які ефективно обмежують пошук рішення. Експертна система використовує евристики, тому що завдання, які вона вирішує, будь то пошук нових родовищ або погодження позовів, як правило, важкі і не до кінця зрозумілі. Ці завдання не піддаються строгому математичному аналізу або алгоритмічному рішенню. Алгоритмічний метод гарантує коректне або оптимальне рішення задачі, тоді як евристичний метод дає прийнятне рішення в більшості випадків.
На малюнку 2 показано різницю між алгоритмічним і евристичним методами. Тут порівнюється алгоритм запобігання захоплення літаків на комерційних авіалініях з евристичним методом, призначеним для тієї ж мети.

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


Рис. 2. Алгоритмічні та евристичні моделі даних.
Алгоритм забезпечує повну гарантію запобігання захоплення літака, тому що в принципі повністю виключає можливість проникнення зброї на борт літака. На жаль, він вимагає занадто багато часу, занадто дорогий і, що ще важливіше; занадто непопулярний, щоб мати якусь практичну цінність. Наведений евристичний метод також може запобігти більшості спроб захоплення літаків, але не гарантує, що вони взагалі не виникнуть. Використання евристичних правил робить пошук рішення набагато легшим і більш практичним.
Знання в експертній системі організовані таким чином, щоб знання про предметну область відокремити від інших типів знань системи, таких, як загальні знання про те, як вирішувати завдання, або знання про те, як взаємодіяти з користувачем, наприклад як друкувати текст на терміналі користувача або як змінити текст у відповідності з командами користувача. Виділені знання про предметну область називаються базою знань, тоді як загальні знання про знаходження рішень завдань називаються механізмом виведення.
Програма, яка працює зі знаннями, організованими подібним чином, називається системою, заснованої на знаннях.
Програми штучного інтелекту
Системи, засновані на знаннях
Експертні системи
Демонструють інтелектуальну поведінку вмілим застосуванням евристик
Застосовують експертні знання до складних завдань реальному житті
Роблять знання предметної області явними і відокремлюють їх від решти касти системи


Рис. 3. Експертні системи як системи, засновані на знаннях.
Як показано на малюнку 3, по суті всі експертні системи є системами, заснованими на знаннях, але не навпаки. Програму штучного інтелекту для гри в «хрестики і нулики» не можна буде вважати експертною системою, навіть якщо в ній знання про предметну область відокремити від решти пунктів програми.
База знань експертної системи містить факти (дані) і правила (або інші уявлення знань), які використовують ці факти як основу для прийняття рішень. Механізм висновку містить інтерпретатор, що визначає, яким чином застосовувати правила для виводу нових знань, і диспетчер, що встановлює порядок застосування цих правил. Така структура експертної системи показана на малюнку 4.

Експертна система
База знань (знання предметної області)
Факти
Правила
Інтерпретатор
Диспетчер
Механізм виведення (загальні знання про рішення задач)



Рис. 4. Склад експертної системи.
Виділення знань про предметну область полегшує інженерові по знаннях розробку процедур для маніпулювання ними. Яким чином система використовує свої знання, має першорядне значення, оскільки експертна система повинна мати і адекватні знання, і кошти ефективно використовувати знання, щоб її можна було вважати вмілою в будь-якому вигляді діяльності. Отже, для того, щоб бути вмілою, експертна система повинна мати базу знань, яка містить високоякісні знання про предметну область, а її механізм виведення повинен містити знання про те, як ефективно використовувати знання про предметну область.
Концепція механізму виведення експертної системи часто викликає деяке здивування серед починаючих розроблювачів. Зазвичай ясно, як знання предметної області можуть бути записані у вигляді фактів і правил, але далеко не ясно, яким чином конструювати і використовувати так званий «механізм виведення». Це здивування походить від відсутності простого і загального методу організації логічного висновку. Його структура залежить і від специфіки предметної області і від того, як знання структуровані й організовані в експертній системі. Багато мови високого рівня, призначені для побудови експертних систем, наприклад ЕМYСIМ, мають механізм виведення, в деякому сенсі вбудований в мову як його частину.
Іншим прикладом може служити мова програмування Пролог з вбудованим в нього механізмом логічного висновку, який може бути безпосередньо використаний при створенні простих експертних систем.
Мови більш низького рівня, наприклад LISP, вимагають, щоб творець експертної системи спроектував і реалізував механізм виведення.
Обидва підходи мають свої переваги і недоліки. Мова високого рівня з вбудованим механізмом виведення полегшує роботу творця експертної системи. У той же час у нього, зрозуміло, менше можливостей визначати способи організації знань і доступу до них, і йому слід дуже уважно розглянути питання про те, годиться чи ні насправді пропонована схема управління процесом пошуку рішення для даної предметної області. Використання мови більш низького рівня без механізму виведення вимагає великих зусиль на розробку, але дозволяє розробити потрібні програмні блоки, які розробник може вбудувати в схему управління процесом вирішення, який буде адекватний даної предметної області.
Що стосується механізму виведення, то тут справа не обмежується вибором «все або нічого». Так, деякі інструменти побудови експертних систем мають набір вбудованих механізмів виведення, але дозволяють розробнику модифіковані або перевизначати їх для більшої відповідності з предметною областю.
Існує багато стандартних способів представлення знань, і при побудові експертних систем «може бути використаний будь-який з них, сам по собі або в поєднанні з іншими. Кожен спосіб дозволяє отримати програму з деякими перевагами - робить її більш ефективною, полегшує її розуміння і модифікацію. У сучасних експертних системах найчастіше використовуються три найважливіші методу представлення знань: правила (найпопулярніший), семантичні мережі і фрейми.
Представлення знань, засноване на правилах, побудовано на використанні виразів виду ЕСЛИ (умова) - ТО (дія). Наприклад:
(1) Якщо пацієнт був за професією ізолювальників до 1988 р ., То пацієнт безпосередньо працював з азбестом. (2) Якщо пацієнт безпосередньо працював з азбестом і пацієнт знаходився при цьому в закритому приміщенні, то пацієнт отримав велику дозу азбестового пилу. Коли поточна ситуація (факти) в задачі задовольняє або узгоджується з частиною правила ЯКЩО, то виконується дія, що визначається частиною ТО. Ця дія може виявитися впливом на навколишній світ (наприклад, викличе роздруківку тексту на терміналі користувача), або ж вплинути на управління програмою (наприклад, викликати перевірку і запуск деякого набору правил), або може зводитися до вказівки системі про отримання певного висновку (наприклад, необхідно додати новий факт або гіпотезу в базу даних).
Зіставлення частин ЯКЩО правил з фактами може породити так звану ланцюжок висновків. Ланцюжок висновків, утворена послідовним застосуванням правил 1 і 2, зображена на малюнку 5. Цей ланцюжок показує, як система використовує правила для висновку про те, наскільки серйозну дозу канцерогенної речовини пацієнт отримав під час роботи з азбестом.

Пацієнт був ізолювальників до 1988 р .
Пацієнт безпосередньо працював з азбестом
Пацієнт контактував з азбестом у закритих приміщеннях
Пацієнт отримав серйозну дозу азбестового пилу


Рис. 5. Ланцюжок виведення для одержання висновку про накопичену дозі азбестового пилу.
Правила забезпечують природній спосіб опису процесів, керованих складною і швидко мінливого зовнішнього середовищем. Через правила можна визначати, як програма повинна реагувати на зміну даних; при цьому не потрібно заздалегідь знати блок-схему управління обробкою даних. У програмі традиційного типу схема передачі управління і використання даних зумовлена ​​в самій програмі. Обробка тут здійснюється послідовними кроками, а розгалуження має місце тільки в заздалегідь вибраних точках. Цей спосіб управління добре працює у разі завдань, що допускають алгоритмічне рішення, якщо до того ж при цьому дані змінюються досить повільно, наприклад, при вирішенні систем лінійних рівнянь. Для задач, хід розв'язання яких управляється самими даними, де розгалуження швидше норма, ніж виняток, цей спосіб малоефективний. У завданнях такого роду правила дають можливість на кожному кроці оцінити ситуацію і вжити відповідні дії. Використання правил спрощує пояснення того, що і як зробила програма, тобто яким способом вона прийшла до конкретного висновку.
Представлення знань, засноване на фреймах, використовує мережу вузлів, пов'язаних відносинами і організованих ієрархічно. Кожен вузол представляє собою концепцію, яка може бути описана атрибутами і значеннями, пов'язаними з цим вузлом. Вузли, які займають більш низьке положення в ієрархії, автоматично успадковують властивості вузлів, що займають більш високе положення. Ці методи забезпечують природний та ефективний шлях класифікації та побудови таксономії, наприклад покладів руд або різних захворювань.
2.4. Технологія розробки експертних систем
Етапи розробки
Розробка програмних комплексів експертних систем як за кордоном, так і в нашій країні знаходиться на рівні швидше мистецтва, ніж науки. Це пов'язано з тим, що довгий час системи штучного інтелекту впроваджувалися в основному під час фази проектування, а найчастіше розроблялося декілька прототипну версій програм, перш ніж був отриманий кінцевий продукт. Такий підхід діє добре в дослідних умовах, проте в комерційних умовах він є занадто дорогим, щоб виправдати комерційно життєвий продукт.
Процес розробки промислової експертної системи, спираючись на традиційні технології, можна розділити на шість більш-менш незалежних етапів, практично не залежних від предметної області.
Послідовність етапів дана для загального уявлення про створення ідеального проекту. Звичайно, послідовність ця не цілком фіксована. У дійсності кожний наступний етап розробки експертної системи приносить нові ідеї, які можуть вплинути на попередні рішення і навіть призвести до їх переробки. Саме тому багато фахівців з інформатики дуже критично ставляться до методології експертних систем. Вони вважають, що витрати на розробку таких систем дуже великі, час розробки занадто тривалий, а отримані в результаті програми лягають важким тягарем на обчислювальні ресурси.
У цілому за розробку експертних систем доцільно братися організації, де накопичено досвід з автоматизації рутинних процедур обробки інформації, наприклад:
· Інформаційний пошук;
· Складні розрахунки;
· Графіка;
· Обробка текстів.
Вирішення таких завдань, по-перше, готує висококваліфікованих фахівців з інформатики, необхідних для створення інтелектуальних систем, по-друге, дозволяє відокремити від експертних систем нее
Етап 1: вибір підходящої проблеми
Цей етап включає діяльність, що передує рішення почати розробляти конкретну експертну систему. Він включає:
· Визначення проблемної області та завдання;
· Знаходження експерта, який бажає співпрацювати при вирішенні проблеми, і призначення колективу розробників;
· Визначення попереднього підходу до вирішення проблеми;
· Аналіз витрат і прибутку від розробки;
· Підготовку докладного плану розробки.
Правильний вибір проблеми представляє, мабуть, саму критичну частина розробки в цілому. Якщо вибрати невідповідну проблему, можна дуже довгий час шукати рішення спроектованих завдань. Невідповідна проблема може також призвести до створення експертної системи, яка коштує набагато більше, ніж економить. Справа буде ситуація ще гірше, якщо розробити систему, яка працює, але не прийнятна для користувачів. Навіть якщо розробка виконується самою організацією для власних цілей, ця фаза є відповідним моментом для отримання рекомендацій ззовні, щоб гарантувати вдало обраний і здійсненний з технічної точки зору початковий проект.
При виборі області застосування слід враховувати, що якщо знання, необхідне для вирішення завдань, постійне, чітко формулируемое і пов'язане з обчислювальною обробкою, то звичайні алгоритмічні програми, ймовірно, будуть найбільш доцільним способом вирішення проблем у цій галузі.
Експертна система в жодному разі не усуне потребу в реляційних базах даних, статистичному програмному забезпеченні, електронних таблицях і системах текстової обробки. Але якщо результативність завдання залежить від знання, яке є суб'єктивним, що змінюються, символьним або випливають частково з міркувань здорового глузду, тоді область може обгрунтовано виступати претендентом на експертну систему.
Розглянемо деякі факти, що свідчать про необхідність розробки і впровадження експертних систем:
· Брак фахівців, що витрачають значний час для надання допомоги іншим;
· Потреба у численному колективі фахівців, оскільки;
· Знижена продуктивність, оскільки завдання вимагає повного аналізу складного набору умов, а звичайний фахівець не в змозі переглянути (за відведений час) всі ці умови;
· Велика розбіжність між рішеннями найкращих і найгірших виконавців;
· Наявність конкурентів, що мають перевагу в тому, що вони краще справляються з поставленим завданням.
Відповідні завдання мають такі характеристики:
· Є вузькоспеціалізованими;
· Не залежать значною мірою від загальнолюдських знань або міркувань здорового глузду;
· Не є для експерта занадто легкими, ні занадто складними (час, необхідний експерту для вирішення проблеми, може становити від трьох годин до трьох тижнів);
· Умови виконання завдання визначаються самим користувачем системи;
· Має результати, які можна оцінити.
Зазвичай експертні системи розробляються шляхом отримання специфічних знань від експерта та введення їх в систему. Деякі системи можуть містити стратегії одного індивіда. Отже, знайти відповідного експерта - це ключовий крок у створенні експертних систем.
У процесі розробки і подальшого розширення системи інженер по знаннях та експерт зазвичай працюють разом. Інженер по знаннях допомагає експерту структурувати знання, визначати і формалізувати поняття і правила, необхідні для вирішення проблеми.
Під час первинних бесід вони вирішують, чи буде їхня співпраця успішним. Це важливо, оскільки обидві сторони будуть працювати разом щонайменше протягом одного року. Крім них у колектив розробників доцільно включити потенційних користувачів та професійних програмістів.
Попередній підхід до програмної реалізації задачі визначається виходячи з характеристик завдання і ресурсів, виділених на її рішення. Інженер по знаннях висуває зазвичай декілька варіантів, пов'язаних з використанням наявних на ринку програмних засобів. Остаточний вибір можливий лише на етапі розробки прототипу.
Після того як завдання визначено, необхідно підрахувати витрати та прибутки від розробки експертної системи. У витрати включаються витрати на оплату праці колективу розробників. У додаткові витрати включають вартість придбаного програмного інструментарію, за допомогою якого розробляється експертна система.
Прибуток можлива за рахунок зниження ціни продукції, підвищення продуктивності праці, розширення номенклатури продукції чи послуг або навіть розробки нових видів продукції чи послуг у цій галузі. Відповідні витрати та прибутки від системи визначаються щодо часу, протягом якого повертаються кошти, вкладені в розробку. На сучасному етапі велика частина фірм, що розвивають великі експертні системи, вважали за краще розробляти дорогі проекти, що приносять значні прибутки.
Намітилися тенденції розробки менш дорогих систем, хоча і з більш тривалим строком поверненні вкладених у них коштів, оскільки програмні засоби розробки експертних систем безперервно вдосконалюються.
Після того як інженер по знаннях переконався, що:
· Дана задача може бути вирішена за допомогою експертної системи;
· Експертну систему можна створити пропонованими на ринку засобами;
· Є відповідний експерт;
· Запропоновані критерії продуктивності є розумними;
· Витрати і термін їх поверненні прийнятні для замовника,
він складає план розробки. План визначає кроки процесу розробки необхідні витрати, а також очікувані результати.
Етап 2: розробка прототипну системи
Поняття прототипну системи
Прототипна система є урізаною версією експертної системи, спроектованої для перевірки правильності кодування фактів, зв'язків та стратегій міркування експерта. Вона також дає можливість інженерові по знаннях залучити експерта до активної участі в розробці експертної системи і, отже, до прийняття ним зобов'язання докласти всіх зусиль для створення системи в повному обсязі.
Обсяг прототипу - кілька десятків правил, фреймів або прикладів. Виділяють шість стадій розробки прототипу. Розглянемо коротку характеристику кожної з стадій.
Терміни наведені умовно, тому що залежать від кваліфікації фахівців та особливостей задачі.
Ідентифікація проблеми
Уточнюється завдання, планується хід розробки прототипу експертної системи, визначаються:
· Необхідні ресурси (час, люди, ЕОМ і так далі.);
· Джерела знань (книги, додаткові експерти, методики);
· Наявні аналогічні експертні системи;
· Цілі (поширення досвіду, автоматизація рутинних дій та інші);
· Класи розв'язуваних завдань і так далі.
Ідентифікація проблеми - знайомство та навчання колективу розробників, а також створення неформальної формулювання проблеми.
Середня тривалість 1 - 2 тижні.
Вилучення знань
Відбувається перенесення компетентності експертів на інженерів по знаннях з використанням різних методів:
· Аналіз текстів;
· Діалоги;
· Експертні гри;
· Лекції;
· Дискусії;
· Інтерв'ю;
· Спостереження та інші.
Вилучення знань - отримання інженером по знаннях найбільш повного уявлення предметної області та способи прийняття рішення в ній.
Середня тривалість 1 - 3 місяці.
Структурування або концептуалізація знань
Виявляється структура отриманих знань про предметну область, тобто визначаються:
· Термінологія;
· Список основних понять та їх властивостей;
· Відносини між поняттями;
· Структура вхідний і вихідний інформації;
· Стратегія прийняття рішень;
· Обмеження стратегій і так далі.
Концептуалізація знань - розробка неформального опису знань про предметну область у вигляді графа, таблиці, діаграми або тексту, що відбиває основні концепції і взаємозв'язки між поняттями предметної області.
Середня тривалість етапу 2 - 4 тижні.
Формалізація
Будується формалізоване подання концепцій предметної області на основі вибраної мови представлення знань (ЯПЗ). Традиційно на цьому етапі використовуються:
· Логічні методи (обчислення предикатів порядку та інші); продукційні моделі (з прямим і зворотним висновком); семантичні мережі;
· Фрейми;
· Об'єктно-орієнтовані мови, засновані на ієрархії класів, об'єктів та інші.
Формалізація знання - розробка бази знань на мові, яка, з одного боку, відповідає структурі поля знань, а з іншого - дозволяє реалізувати прототип системи на наступній стадії програмної реалізації.
Все частіше на цій стадії використовується симбіоз мов представлення знань, наприклад, в системі ОМЕГА фрейми + семантичні мережі + повний набір можливостей мови числення предикатів.
Середня тривалість 1 - 2 місяці.
Реалізація
Створюється прототип експертної системи, що включає базу знань і інші блоки, за допомогою одного з таких способів:
· Програмування на традиційних мовах типу Паскаль, Сі та інших; програмування на спеціалізованих мовах, застосовуваних у задачах штучного інтелекту: LISP, FRL, SmallTalk та інші;
· Використання інструментальних засобів розробки експертних систем типу СПЕІС, Пієси;
· Використання «порожніх» експертних систем або «оболонок» типу ЕКСПЕРТ, Фіакр та ін
Реалізація - розробка програмного комплексу, що демонструє життєздатність підходу в цілому. Найчастіше перший прототип відкидається на етапі реалізації діючої експертної системи.
Середня тривалість 1 - 2 місяці.
Тестування
Оцінюється і перевіряється робота програм прототипу з метою приведення у відповідність з реальними запитами користувачів. Прототип перевіряється на:
· Зручність і адекватність інтерфейсів вводу-виводу (характер питань у діалозі, зв'язність виведеного тексту результату та інше);
· Ефективність стратегії управління (порядок перебору, використання нечіткого висновку та інше);
· Якість перевірочних прикладів;
· Коректність бази знань (повнота і несуперечність правил).
Тестування - виявлення помилок в підході і реалізації прототипу і вироблення рекомендацій з доведення системи до промислового варіанту.
Середня тривалість 1 - 2 тижні.
Етап 3: розвиток прототипу до промислової експертної системи
При незадовільному функціонуванні прототипу експерт і інженер по знаннях мають можливість оцінити, що саме буде включено в розробку остаточного варіанту системи.
Якщо спочатку вибрані об'єкти або властивості виявляються невідповідними, їх необхідно змінити. Можна зробити оцінку загального числа евристичних правил, необхідних для створення остаточного варіанту експертної системи. Іноді при розробці промислової системи виділяють додаткові етапи для переходу: демонстраційний прототип - дослідницький прототип - діючий прототип - промислова система.
Однак частіше реалізується плавний перехід від демонстраційного прототипу до промислової системі, при цьому, якщо програмний інструментарій обрано вдало, необов'язкова перепис іншими програмними засобами.
Поняття ж комерційної системи в нашій країні входить в поняття промисловий програмний продукт, або промислової експертної системи в цій роботі (табл. 1).

Таблиця. 1. Перехід від прототипу до промислової експертній системі
Демонстраційний прототип ЕС
Система вирішує частину завдань, демонструючи життєздатність підходу (кілька десятків правил або понять).
Дослідницький прототип ЕС
Система вирішує більшість завдань, але не стійка в роботі і не повністю перевірена (кілька сотень правил або понять).
Діючий прототип ЕС
Система надійно вирішує всі завдання на реальних прикладах, але для складного завдання потребує багато часу і пам'яті.
Промислова система
Система забезпечує високу якість рішень при мінімізації необхідного періоду часу і пам'яті; переписується з використанням більш ефективних засобів представлення знань.
Комерційна система
Промислова система, придатна до продажу, то є добре документована і забезпечена сервісом.
Основне на третьому етапі полягає в додаванні великого числа додаткових евристик. Ці евристики зазвичай збільшують глибину системи, забезпечуючи більше число правил для важковловимий аспектів окремих випадків. У той же час експерт і інженер по знаннях можуть розширити обхват системи, включаючи правила, що керують додатковими підзадач або додатковими аспектами експертної завдання (метазнанія).
Після встановлення основної структури експертної системи інженер по знаннях приступає до розробки та адаптації інтерфейсів, за допомогою яких система буде спілкуватися з користувачем та експертом. Необхідно звернути особливу увагу на мовні можливості інтерфейсів, їх простоту та зручність для управління роботою експертної системою. Система повинна забезпечувати користувачеві можливість легким і природним чином запитувати незрозуміле, припиняти роботу і т.д. Зокрема, можуть виявитися корисними графічні уявлення.
На цьому етапі розробки більшість експертів дізнаються досить про введення правил і можуть самі вводити в систему нові правила. Таким чином починається процес, під час якого інженер по знаннях передає право власності та контролю за системою експерту для уточнення, детальної розробки та обслуговування.
Етап 4: оцінка системи
· Після завершення етапу розробки промислової експертної системи необхідно провести її тестування щодо критеріїв ефективності. До тестування широко залучаються інші експерти з метою апробування працездатності системи на різних прикладах. Експертні системи оцінюються головним чином для того, щоб перевірити точність роботи програми та її корисність. Оцінку можна проводити, виходячи з різних критеріїв: критерії користувачів (зрозумілість і «прозорість» роботи системи, зручність інтерфейсів та інші.);
· Критерії запрошених експертів (оцінка рад-рішень, пропонованих системою, порівняння її з власними рішеннями, оцінка підсистеми пояснень та інші.);
· Критерії колективу розробників (ефективність реалізації, продуктивність, час відгуку, дизайн, широта охоплення предметної області, несуперечність БЗ, кількість тупикових ситуацій, коли система не може прийняти рішення, аналіз чутливості програми до незначних змін у поданні знань, вагових коефіцієнтах, що застосовуються в механізмах логічного висновку, даних і так далі).
Етап 5: стиковка системи
На цьому етапі здійснюється стикування експертної системи з іншими програмними засобами у середовищі, в якій вона буде працювати, і навчання людей, яких вона буде обслуговувати. Іноді це означає внесення істотних змін. Така зміна потребує неодмінного втручання інженера по знаннях або якого-небудь іншого фахівця, який зможе модифікувати систему. Під стикуванням мається на увазі також розробка зв'язків між експертною системою та середовищем, в якій вона діє.
Коли експертна система вже готова, інженер по знаннях повинен переконатися в тому, що експерти, користувачі та персонал знають, як експлуатувати і обслуговувати її. Після передачі їм свого досвіду в галузі інформаційної технології інженер по знаннях може повністю надати її в розпорядження користувачів.
Для підтвердження корисності системи важливо надати кожному з користувачів можливість поставити перед експертною системою реальні завдання, а потім простежити, як вона виконує ці завдання. Щоб система була схвалена, необхідно представити її як помічника, що звільняє користувачів від обтяжливих завдань, а не як засіб їх заміщення.
Стиковка включає забезпечення зв'язку експертної системи з існуючими базами даних і іншими системами на підприємстві, а також поліпшення системних факторів, що залежать від часу, щоб можна було забезпечити її більш ефективну роботу і поліпшити характеристики її технічних засобів, якщо система працює в незвичайній середовищі (наприклад, зв'язок з вимірювальними пристроями).
Приклад. Успішно зістикований зі своїм оточенням система PUFF - експертна система для діагностики захворювань легенів. Після того, як PUFF була закінчена і всі були задоволені її роботою, систему перекодували з LISP на Бейсік. Потім систему перенесли на ПК, яка вже працювала в лікарні. У свою чергу, ця ПК була пов'язана з вимірювальними приладами. Дані з вимірювальних приладів відразу надходять в ПК. РUFF обробляє ці дані і друкує рекомендації для лікаря. Лікар в принципі не взаємодіє з РUFF. Система повністю інтегрована зі своїм оточенням - вона являє собою інтелектуальне розширення апарату дослідження легенів, який лікарі давно використовують.
Етап 6: підтримка системи
При перекодуванні системи на мову, подібний Сі, підвищується її швидкодія і збільшується переносимість, проте гнучкість при цьому зменшується. Це прийнятно лише в тому випадку, якщо система зберігає всі знання проблемної області і це знання не буде змінюватися в найближчому майбутньому. Однак якщо експертна система створена саме через те, що проблемна область змінюється, то необхідно підтримувати систему в інструментальному середовищі розробки.
Приклад. Прикладом експертної системи, запровадженої таким чином, є ХСON (R1) - експертна система, яку фірма DЕС використовує для комплектації ЕОМ сімейства VАХ. Одна з ключових проблем, з якою зіткнулася фірма DЕС, - необхідність постійного внесення змін для нових версій обладнання, нових специфікацій і так далі. Для цієї мети ХСON підтримується в програмному середовищі ОРS5.

Висновок
Експертні системи є найбільш відомим і поширеним видом інтелектуальних систем.
Як і будь-які інші системи, вони мають ряд своїх особливостей:
· Експертні системи орієнтовані на вирішення широкого кола завдань в неформалізованих областях, на додатки, які до недавнього часу вважалися малодоступними для обчислювальної техніки.
· За допомогою експертних систем фахівці, які не знають програмування, можуть самостійно розробляти цікавлять їх застосування, що дозволяє різко розширити сферу використання обчислювальної техніки.
· При вирішенні практичних завдань експертні системи досягають результатів, які не поступаються, а іноді і перевершують можливості людей-експертів, не оснащених ЕОМ.
Особливо широке застосування експертні системи отримали в медицині, математиці, машинобудуванні, хімії, геології, обчислювальної техніки, бізнесі, законодавстві, обороні.
А також в даний час особливо актуальне використання експертних систем в таких додатках, як освіта, психолого-педагогічна діагностика та тестування.
Експертні системи будуються для вирішення широкого кола проблем в таких областях, як:
· Прогнозування - проектування можливих наслідків даної ситуації.
· Діагностика - визначення причин несправностей у складних ситуаціях на основі спостережуваних симптомів.
· Проектування - знаходження конфігурації компонентів системи, яка задовольняє цільовим умов і безлічі проектних обмежень.
· Планування - розробка послідовності дій для досягнення множини цілей за даних початкових умовах і тимчасові обмеження.
· Моніторинг - порівняння спостережуваного поведінки системи з її очікуваним поведінкою.
· Інструктування - допомога в освітньому процесі з вивчення технічної області.
· Управління - управління поведінкою складного середовища.
Таким чином, проблема розробки і використання експертних систем є дуже актуальною в сучасному суспільстві.

Література
1. Гаскаров, Д. Б. Інтелектуальні інформаційні системи. - М.: Вища школа, 2003.
2. Долін, Г. Що таке ЕС. - М.: Комп'ютер Пресс, 1992.
3. Острейковскій, В. А. Інформатика. - М.: Вища школа, 1999.
4. Убейко, В. М. Експертні системи .- М.: МАІ, 1992.
5. Ясницький, Л. М. Введення в штучний інтелект. - М.: Академія, 2005.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
167.1кб. | скачати


Схожі роботи:
Системи і методи штучного інтелекту в економіці
Загальне поняття про системи штучного інтелекту
Проблеми штучного інтелекту
Створення штучного інтелекту
Проблематика штучного інтелекту
Парадокси штучного інтелекту
ЕС як різновид систем штучного інтелекту
Вступ до проблеми штучного інтелекту
Лінгвістичне забезпечення штучного інтелекту
© Усі права захищені
написати до нас