Використання експертних технологій прийняття рішень
Етап ідентифікації: визначаються задачі, що підлягають вирішенню, складаються їхні неформальні описи (загальні характеристики задачі; підзадачі, що виділяються усередині даної задачі: ключові поняття, характеристики і відношення; вхідні і вихідні дані; можливий вид рішення; знання, релевантні розв’язуваній задачі: ситуації, що перешкоджають вирішенню задачі: приклади рішення задачі; критерії… Читати ще >
Використання експертних технологій прийняття рішень (реферат, курсова, диплом, контрольна)
Міністерство освіти і науки України Криворізький інститут Кременчуцького університету економіки, інформаційних технологій і управління Кафедра технічної кібернетики Дипломна робота зі спеціальності 7.91 402 Гнучкі комп’ютеризовані системи та робототехніка Використання експертних технологій прийняття рішень Кривий Ріг
Анотація
Метою дипломної роботи є дослідження особливостей використання експертних технологій прийняття рішень. Розроблена в результаті виконання дипломної роботи медична експертна система призначена для первинного визначення характеру захворювання, коли ще немає можливості проконсультуватися з фахівцем.
У дослідницькій частині дипломної роботи був зроблений аналіз теоретичних аспектів проектування інтелектуальних систем, заснованих на знаннях.
Аннотация
Целью дипломной работы является исследование особенностей использования экспертных технологий принятия решений. Разработанная в результате выполнения дипломной работы медицинская экспертная система предназначена для первичного определения характера заболевания, когда еще нет возможности проконсультироваться со специалистом.
В исследовательской части дипломной работы был сделан анализ теоретических аспектов проектирования интеллектуальных систем, основанных на знаниях.
The summary
The purpose of the diploma work is research of the use of decision-making expert technologies features. The medical consulting model developed as a result of diploma work implementation is intended for primary determination of disease character, when yet there is no possibility to be consulted with a specialist.
The analysis of theoretical aspects of the intellectual systems based on knowledges planning was done in research part of diploma work.
Вступ
Постійне збільшення обсягів наявної інформації робить майже неможливою її ручну обробку й освоєння людиною та висуває вимоги щодо створення комп’ютерних засобів для автоматизації подання, збереження, систематизації, пошуку та іншої обробки інформації. При цьому особлива потреба виникає у створенні систем, що здатні узагальнювати та аналізувати інформацію, адаптуватися до її змін, спілкуватися з людиною-користувачем природною мовою, приймати рішення в умовах неповної, ненадійної та суперечливої інформації. Такими системами є інтелектуальні системи, засновані на знаннях.
Метою виконання дипломної роботи є розробка медичної експертної системи «Домашній доктор». Розроблена система визначає характер захворювання, ґрунтуючись на відповідях, одержаних на поставлені питання. База знань включає близько 100 поширених захворювань і була створена на основі класичного посібника К. Нейлора «Як побудувати свою експертну систему».
Експертна система — це інтелектуальна комп’ютерна програма, що містить знання та аналітичні здібності одного або кількох експертів по відношенню до деякої галузі застосування і здатна робити логічні висновки на основі цих знань, тим самим забезпечуючи вирішення специфічних завдань (консультування, навчання, діагностика, тестування, проектування тощо) без присутності експерта (спеціаліста в конкретній проблемній галузі). Також визначається як система, яка використовує базу знань для вирішення завдань (видачі рекомендацій) в деякій предметній галузі. Цей клас програмного забезпечення спочатку розроблявся дослідниками штучного інтелекту в 1960;ті та 1970;ті та здобув комерційне застосування, починаючи з 1980;их. Часто термін система, заснована на знаннях використовується в якості синоніма експертної системи, однак, можливості експертних систем ширші за можливості систем, заснованих на знаннях.
Експертні системи досить давно використовуються у діагностиці, зокрема у медичній та автомобільній.
Також експертні системи можна використовувати в прогнозуванні, плануванні, контролі, управлінні та навчанні. Наприклад, експертні системи вже застосовуються в банківській справі в таких напрямках:
· програмах аналізу інвестиційних проектів;
· програмах аналізу стану валютного, грошового та фондового ринку;
· програмах аналізу кредитоспроможності чи фінансового стану підприємств і банків.
Процес створення експертних систем значно змінився за останні роки. Завдяки появі спеціальних інструментальних засобів побудови експертних систем значно скоротились терміни та зменшилась трудомісткість їх розробки. Інструментальні засоби, що використовуються при створенні експертних систем, можна розбити на три класи:
· мови програмування, орієнтовані на створення експертних систем (Лісп, Пролог, Smalltalk, FRL, InterLisp та такі загальновживані, як: Сі, Асемблер, Паскаль, Фортран, Бейсик);
· середовища програмування (Delphi, Java);
· порожні експертні системи (наприклад, оболонка EXSYS Professional 5.0 for Windows).
На американському і західноєвропейських ринках систем штучного інтелекту організаціям, які бажають створити експертну систему, фірми-розробники пропонують сотні інструментальних засобів для їх побудови. Нараховуються тисячі розроблених вузькоспеціалізованих експертних систем. Це свідчить про те, що експертні системи складають дуже вагому частину програмних засобів.
Експертна система відрізняється від інших прикладних програм наявністю таких ознак:
1. Моделює механізм мислення людини при застосуванні для розв’язання задач в цій предметній області. Це істотно відрізняє експертні системи від систем математичного моделювання або комп’ютерної анімації. Однак, експертні системи не повинні повністю відтворювати психологічну модель фахівця в цій області, а повинні лише відтворювати за допомогою комп’ютера деякі методики розв’язання проблем, що використовуються експертом.
2. Система, окрім виконання обчислювальних операцій, формує певні висновки, базуючись на тих знаннях, якими вона володіє. Знання в системі, зазвичай, описані деякою спеціалізованою мовою і зберігаються окремо від програмного коду, що формує висновки. Компонент збереження знань прийнято називати базою знань.
3. Під час розв’язання задач основну роль відіграють евристичні і наближені методи, що, на відміну від алгоритмічних, не завжди гарантують успіх. Евристика, в принципі, є правилом впливу, що в машинному вигляді відображає деяке знання, набуте людиною разом із накопичуванням практичного досвіду розв’язання аналогічних проблем. Такі методи є наближеними в тому сенсі, що, по-перше, вони не потребують вичерпної вихідної інформації, а, по-друге, існує певний ступінь впевненості (або невпевненості) в тому, що запропонований розв’язок є правильним.
Експертні системи відрізняються і від інших видів програм із галузі штучного інтелекту за наступними ознаками:
1. Експертні системи застосовуються для предметів реального світу, операції з якими зазвичай вимагають великого досвіду, накопиченого людиною. Експертні системи мають яскраво виражену практичну направленість для застосування в науковій або комерційній сфері. 2. Однією з основних характеристик експертної системи є її швидкодія, тобто швидкість отримання результату та його достовірність (надійність). Дослідницькі програми штучного інтелекту можуть бути і не дуже швидкими, натомість, експертна система повинна за прийнятний час знайти розв’язок, що був би не гіршим та розв’язок, що може запропонувати фахівець в цій предметній області.
3. Експертна система повинна мати можливість пояснити, чому запропоновано саме цей розв’язок і довести його обґрунтованість. Користувач повинен отримати всю інформацію, необхідну йому для того, аби переконатись в обґрунтованості запропонованого розв’язку.
1. Постановка завдання
1.1 Найменування та галузь використання
Найменування розробки: медична експертна система «Домашній доктор». Розроблена система визначає характер захворювання, ґрунтуючись на відповідях, одержаних на поставлені питання. База знань включає близько 100 поширених захворювань. База знань для експертної системи була створена на основі класичного посібника К. Нейлора «Як побудувати свою експертну систему».
1.2 Підстава для створення
Підставою для розробки є наказ № 73С-01 від 29 жовтня 2009 р. по Криворізькому інституту КУЕІТУ.
Початок робіт: 01.11.09. Закінчення робіт: 25.05.10.
1.3 Характеристика розробленого програмного забезпечення
Розроблена система була реалізована в середовищі Delphi. Вхідна інформація зберігається в зовнішніх текстових файлах.
Склад розробленої системи:
· Medic. exe виконавчий файл, розробленої системи;
· descript — каталог, що містить файли в форматі rtf опису захворювання та рекомендації щодо лікування, назва файлу відповідає номеру хвороби в файлі hypothes. win;
· hypothes. win — текстовий файл, що містить списки хвороб і вірогідності їх присутності;
· symptoms. win — текстовий файл, що містить список симптомів.
1.4 Мета й призначення
Метою дипломної роботи є дослідження особливостей використання експертних технологій прийняття рішень. Розроблена в результаті виконання дипломної роботи медична експертна система призначена для первинного визначення характеру захворювання, коли ще немає можливості проконсультуватися з фахівцем. У дослідницькій частині дипломної роботи був зроблений аналіз теоретичних аспектів проектування інтелектуальних систем, заснованих на знаннях.
1.5 Загальні вимоги до розробки
Вимоги до програмного забезпечення:
· Робота в середовищі операційних систем Windows 2000/XP/Vista/7, а також операційних системах сімейства Unix;
· Відсутність додаткових вимог до розміщення здійсненних файлів;
· Простота й зрозумілість інтерфейсу.
Мінімальні вимоги до апаратного забезпечення:
· IBM-Сумісний комп’ютер, не нижче Pentium III, RAM-256Mb, SVGA-800*600*16bit, вільний простір на жорсткому диску — біля 3 Мб.
1.6 Джерела розробки
Джерелами розробки дипломної роботи є:
· загальні вимоги до програмного продукту;
· довідкова література;
· наукова література;
· технічна література;
· програмна документація.
2. Інтелектуальні системи, засновані на знаннях
2.1 Загальна характеристика інтелектуальних систем
Штучний інтелект — це галузь комп’ютерних наук, що займається автоматизацією розумного поводження агентів, які одержують у результаті актів сприйняття інформації про навколишнє середовище і виконують дії, що реалізують функцію від результатів сприйняття і попередніх дій.
Метою штучного інтелекту є розробка комп’ютерних систем, що мають можливості, які традиційно пов’язуються з людським розумом: розуміння мови, навчання, здатність міркувати, вирішувати проблеми, планувати і т. д.
Основні напрями досліджень в галузі штучного інтелекту виділяють такі:
— Подання знань і робота з ними — створення спеціалізованих моделей і мов для подання знань в ЕОМ, а також програмних і апаратних засобів для їхнього перетворення (поповнення, логічної обробки 1 т. д.).
— Планування доцільного поводження — дослідження зі створення методів формування цілей і вирішення задач планування дій агента, що функціонує в складному зовнішньому середовищі.
— Спілкування людини з ЕОМ — задачі створення мовних засобів, що до зволяють ефективно взаємодіяти з ЕОМ непрограмуючому користувачу. Ведуться дослідження в області синтаксису і семантики природних мов, способів збереження знань про мову в пам’яті машини і побудови спеціальних процесорів, що здійснюють переклад текстової інформації у внутрішнє машинне подання.
— Розпізнавання образів і навчання — дослідження сприйняття зорової, слухової і інших видів інформації, методів її обробки, формування відповідних реакцій на впливи зовнішнього середовища і способів адаптації штучних систем до середовища шляхом навчання.
Інтелектуальною системою називають кібернетичну систему, призначену для вирішення інтелектуальних задач.
Інтелектуальна задача — це задача, точний алгоритмізований метод вирішення якої апріорі є невідомий. При цьому під рішенням задачі розуміється будь-яка діяльність, пов’язана з розробкою планів і виконанням дій, необхідних для досягнення визначеної мети.
Властивість інтелектуальності, що істотно відрізняє інтелектуальні системи від інших кібернетичних систем, характеризується набором таких ознак.
1. Наявність у системі власної внутрішньої моделі зовнішнього світу, що забезпечує індивідуальність, самостійність системи в оцінці вхідного загалу, можливість значеннєвої (семантичної) і прагматичної інтерпретації загалу відповідно до власних знань і вироблення відповіді (реакції), семантично і прагматично правильної з точністю до адекватного моделювання зовнішнього світу (предметної області).
2. Здатність системи поповнювати наявні знання, засвоювати нові знання, навчатися, здійснюючи вбудовування нової інформації в систему подання знань.
3. Здатність системи виділяти значні якісні характеристики ситуації.
4. Здатність до дедуктивного виведення, генерації рішення, що у явному і готовому вигляді не міститься в самій системі.
5. Здатність до прийняття рішень на основі нечіткої, неточної, недостатньої або погано визначеної інформації і застосування формалізмів подань, що допомагають програмісту справлятися з цими недоліками.
6. Еволюційність і адаптивність моделей штучного інтелекту: набуття знань системою здійснюється за допомогою навчання, заснованого на адаптації (пристосуванні) її структури і параметрів у процесі еволюційного розвитку до умов зовнішнього середовища, що змінюються.
У залежності від сфери застосування інтелектуальні системи можна поділити на системи загального призначення і спеціалізовані системи.
Інтелектуальні системи загального призначення — системи, що не тільки виконують задані процедури, але на основі метапроцедур пошуку генерують і виконують процедури рішення нових конкретних задач. Технологія використання таких систем полягає в наступному. Користувач (експерт) формує знання (дані і правила), що описують обране застосування. Потім на підставі цих знань, заданої мети і вихідних даних метапроцедур системи генерують і виконують процедуру вирішення конкретної задачі. Дану технологію називають технологією систем, заснованих на знаннях, або технологією інженерії знань. Вона дозволяє фахівцю, що не знає програмування, розробляти гнучкі прикладні системи. Найбільше широко використовуваним типом інтелектуальних систем загального призначення є оболонки експертних систем.
Спеціалізовані інтелектуальні системи — вирішують фіксований набір задач, визначений при проектуванні системи. Для використання таких систем потрібно наповнити їх даними, що відповідають обраному застосуванню.
2.2 Проблемні області та їхні властивості
Проблемна область (предметна область) — сукупність взаємозалежних відомостей, необхідних і достатніх для вирішення даної інтелектуальної задачі. Знання про предметну область включають описи об'єктів, явиш, фактів, подій, а також відношень між ними.
Уявно предметна область складається з реальних або абстрактних об'єктів, що звуться сутностями. Сутності предметної області знаходяться у визначених відношеннях (асоціаціях) одна до одної, які також можна розглядати як сутності і включати в предметну область. Між сутностями спостерігаються різні відношення подоби. Сукупність подібних сутностей складає клас сутностей, що є новою сутністю предметної області.
Для вирішення інтелектуальних задач необхідно використовувати знання з конкретної предметної області, подані в певній стандартній формі і скласти програму їхньої обробки.
Класифікація проблемних середовищ може бути зроблена за такими вимірами.
— Середовище, яке повністю або частково спостерігається.
Повністю спостережне — середовище, у якому датчики агента надають йому доступ до повної інформації про стан середовища в кожний момент часу, необхідної для вибору агентом дії.
Частково спостережне — середовище, у якому через датчики, що створюють шум і є неточними, або через те, що окремі характеристики його стану просто відсутні в інформації, отриманій від датчиків, агент не може мати доступ до повної інформації про стан середовища в кожний момент часу.
— Детерміноване або стохастичне середовище.
Детерміноване — середовище, наступний стан якого цілком визначається поточним станом і дією, виконаною агентом.
Стохастичне — середовище, наступний стан якого цілком не визначається поточним станом і дією, виконаною агентом.
— Епізодичне або послідовне середовище.
В епізодичному середовищі досвід агента складається з нерозривних епізодів, кожний з яких містить у собі сприйняття середовища агентом, а потім виконання однієї дії при цьому наступний епізод не залежить від дій, виконаних у попередніх епізодах.
У послідовному середовищі поточне рішення може вплинути на всі майбутні рішення.
— Статичне або динамічне середовище.
Динамічне середовище для агента — середовище, що може змінитися в ході того, як агент обирає чергову дію.
Статичне середовище для агента — середовище, що не може змінитися в ході того, як агент обирає чергову дію. Статичність області означає незмінність вихідних даних, що її описують. При цьому похідні дані (виведені з вихідних) можуть і з’являтися заново, і змінюватися (не змінюючи, однак, вихідних даних).
Напівдинамічне середовище для агента — середовище, що з часом не змінюються, а змінюються тільки показники продуктивності агента в середовищі.
— Дискретне або неперервне середовище.
Розходження між дискретними і неперервними варіантами середовища може відноситися до стану середовища, способу обліку часу, а також сприйняттям і діям агента.
— Одноагентне середовище (коли в середовищі діє тільки один агент) або мультиагентне середовище (коли діють два агенти і більше).
Крім того, предметні області можна характеризувати такими аспектами: числом і складністю сутностей; їхніх атрибутів і значень атрибутів; зв’язністю сутностей та їхніх атрибутів; повнотою знань; точністю знань (знання точні або правдоподібні; правдоподібність знань подається певним числом або висловленням).
Задачі, що вирішуються інтелектуальними системами у проблемній області, класифікують:
— за ступенем зв’язності правил: зв’язні (задачі, що не вдається розбити на незалежні задачі) та малозв’язні (задачі, що вдається розбита на деяку кількість незалежних підзадач):
— з точки зору розробника: апатичні (якщо процес вирішення задачі не змінює вихідні дані про поточний стан предметної області) і динамічні (якщо процес вирішення задачі змінює вихідні дані про поточний стан предметної області):
— за класом вирішуваних задач: розширення, довизначення, перетворення.
1. Задачі розширення — задачі, у процесі вирішення яких здійснюється тільки збільшення інформації про предметну область, що не призводить ні до зміни раніше виведених даних, ані до вибору іншого стану області. Типовою задачею цього класу є задача класифікації.
2. Задачі довизначення — задачі з неповною або неточною інформацією про реальну предметну область, мета вирішення яких — вибір з множини альтернативних поточних станів предметної області того, що є адекватний вихідним даним. У випадку неточних даних альтернативні поточні стани виникають як результат ненадійності даних І правил, шо призводить до різноманіття різних доступних висновків з тих самих вихідних даних. У випадку неповних даних альтернативні стани є результатом довизначення області, тобто результатом припущень про можливі значення відсутніх даних.
3. Задачі перетворення — задачі, які здійснюють зміни вихідної або виведеної раніше інформації про предметну область, що є наслідком змін або реального світу, або його моделі.
Задачі розширення і довизначення є статичними, а задачі перетворення — динамічними.
2.3 Системи, засновані на знаннях
При використанні традиційних структурних мов програмування необхідні знання вміщувалися безпосередньо в прикладну програму й утворювали з нею одне ціле. Однак такий підхід ускладнює розуміння того, яким чином використовуються знання і яку роль вони виконують, тобто знання, закладені в програму, і сама програма їхньої обробки виявляються жорстко пов’язаними між собою і дозволяють одержувати тільки ті висновки з наявних знань, що передбачені програмою їхньої обробки. Для вирішення цієї проблеми використовують системи, засновані на знаннях.
Система, заснована на знаннях — система програмного забезпечення, основними структурними елементами якої є бази знань і механізм (машина) логічних виведень. У системи, засновані на знаннях, також входять як модулі: підсистема набуття знань, підсистема пояснень та інтерфейсна підсистема.
У системі, заснованій на знаннях, знання полаються в конкретній формі в базі знань, що дозволяє їх легко визначати, модифікувати і поповнювати; функції вирішення задач реалізуються автономним механізмом логічних виведень, що робляться на знаннях, які зберігаються в базі. Саме вибір методів подання й одержання знань визначає архітектуру системи знань і на практиці виражається у відповідній організації бази знань і схеми керування машиною виведення.
Невід'ємними характеристиками систем, заснованих на знаннях, із практичної точки зору вважаються їхня здатність пояснювати лінію суджень та можливість набуття і нарощування знань.
Система, заснована на знаннях, може бути описана такою ієрархією рівнів (у порядку зменшення рівнів ієрархії).
1. Рівень знань — пов’язаний зі змістом інформації, а також способами її використання і визначає можливості інтелектуальної системи.
Самі знання не залежать від формалізмів, використовуваних для їхнього подання, а також виразності обраної мови програмування. На рівні знань зважуються питання про те, які запити є припустимими в системі, які об'єкти і відношення відіграють важливу роль у даній предметній області, як додати в систему нові знання, чи будуть факти згодом змінюватися, як у системі будуть реалізовані розсуди про знання, чи має дана предметна область добре зрозумілу систематику, чи є в ній незрозуміла або неповна інформація.
2. Рівень символів — пов’язаний з конкретними формалізмами, застосовуваними для подання знань у процесі вирішення задач.
На цьому рівні здійснюється вибір конкретного способу подання знань і визначається мова подання для бази знань, зокрема, логічні або продукційні правила. Відділення рівня символів від рівня знань дозволяє програмісту вирішувати проблеми виразності, ефективності і простоти програмування, що не відносяться до більш високих рівнів поводження системи.
3. Рівень алгоритмів і структур даних — визначає структури даних для подання знань і алгоритми їхньої обробки.
4. Рівень мов програмування — визначає використовуваний стиль програмування. Хоча гарний стиль програмування припускає поділ конкретних властивостей мови програмування і вищестоящих рівнів, специфіка задач штучного інтелекту вимагає їхнього глибокого взаємозв'язку.
5. Рівень компонування — визначає архітектуру і функціональність операційної системи.
6. Рівень апаратних засобів — визначає архітектуру апаратних засобів, обсяг пам’яті і швидкодію процесора. Багаторівневий підхід дозволяє програмісту відволіктися від складності, що відноситься до нижніх рівнів, і сконцентрувати свої зусилля на питаннях, що відповідають даному рівню абстракції. Такий підхід дозволяє виділити теоретичні основи штучного інтелекту й абстрагуватися від деталей конкретної реалізації або мови програмування. Він дозволяє модифікувати реалізацію, підвищуючи її ефективність, або виконати портирування на іншу платформу, не торкаючись поводження системи на більш високих рівнях.
2.4. Експертні системи
Експертна система — це програмний засіб, що використовує експертні знання у певній предметній області з метою ефективного вирішення задач у предметній області, яка цікавить користувача, на рівні середнього професіонала (експерта).
Всі експертні системи с системами, заснованими на знаннях і програмами штучного інтелекту, але не навпаки. Інтелектуальні системи — найбільш загальний клас систем, які демонструють інтелектуальне поводження вмілим застосуванням евристик; системи, засновані на знаннях — підклас інтелектуальних систем, що роблять знання предметної області явними і відокремлюють їх від іншої частини системи; експертні системи — підклас систем, заснованих на знаннях, що застосовують експертні знання до складних задач реального життя.
Експертні системи використовуються для вирішення так званих неформалізованих задач, загальним для яких є те, що: задачі недостатньо добре розуміються або вивчені; задачі не можуть бути задані в числовій формі, але можуть бути досліджені за допомогою механізму символічних суджень; цілі не можна виразити в термінах точно визначеної цільової функції; не існує відомого алгоритмічного рішення задачі; якщо алгоритмічне рішення є, то його не можна використовувати через обмеженість ресурсів (час, пам’ять). Крім того, неформалізовані задачі мають помилковість, неповноту, неоднозначність і суперечливість як вихідних даних, так і знань про розв’язувану задачу.
2.4.1 Властивості експертних систем
Властивості експертних систем, що вирізняють їх від звичайних програм:
— накопичення й організація знань про предметну область у процесі побудови й експлуатації експертної системи;
— явність і доступність знань;
— застосування для вирішення проблем високоякісного досвіду, що подає рівень мислення найбільш кваліфікованих експертів у даній області, який веде до творчих, точних і ефективних рішень;
— моделювання не стільки фізичної (чи іншої) природи визначеної проблемної області, скільки механізму мислення людини стосовно до вирішення задач у цій проблемній області;
— наявність прогностичних можливостей, за яких експертна система видає відповіді не тільки для конкретної ситуації, але і показує, як змінюються ці відповіді в нових ситуаціях, з можливістю докладного пояснення яким чином нова ситуація призвела до змін;
— забезпечення такої нової якості, як інституціональна пам’ять, за рахунок бази знань, що входить до складу експертної системи та розроблена в ході взаємодій з фахівцями організації, і являє собою поточну політику цієї групи людей. Цей набір знань стає зведенням кваліфікованих думок і постійно поновлюваним довідником найкращих стратегій І методів, використовуваних персоналом. Провідні спеціалісти ідуть, але їхній досвід залишається;
— можливість використання для навчання і тренування керівників, забезпечуючи нових службовців великим багажем досвіду І стратегій, за якими можна вивчати політику, що рекомендується, і методи;
— явний поділ засобів керування і даних;
— слабка детермінованість керування;
— використання при вирішенні задач евристичних і наближених методів, які, на відміну від алгоритмічних, не завжди гарантують успіх. Евристика є правилом вплив, що у машинному вигляді подає деяке знання, набуте людиною в міру: накопичення практичного досвіду вирішення аналогічних проблем. Такі методи є приблизними в тому: змісті, що, по-перше, вони не вимагають вичерпної вихідної інформації, і, по-друге, існує визначений ступінь упевненості (чи непевності) у: тому, що пропоноване рішення є вірним;
— здатність до символьних суджень: здатність подавати знання в символьному вигляді і переформулювати символьні знання;
— прийняття рішень на основі правил і логічного виведення;
— організація способу керування ходом виконання з використанням машини логічного виведення;
— самосвідомість — здатність досліджувати свої судження (тобто перевіряти їхню правильність) і пояснювати свої дії;
— здатність до навчання на своїх помилках;
— можливість застосування неповні чи неправильні вхідні дані;
— компетентність — здатність досягати експертного рівня рішень (в конкретній предметній області мати той же рівень професіоналізму, що й експерти-люди), бути вмілою (застосовувати знання ефективно і швидко, уникаючи, як і люди, непотрібних обчислень), мати адекватну робастність (здатність лише поступово знижувати якість роботи у міру наближення до меж діапазону або компетентності припустимої надійності даних);
— логічна адекватність — здатність подання знань експертної системи розпізнавати усі відмінності, що закладаються у вихідні сутності;
— евристична потужність — наявність поряд з виразною мовою подання деякого засобу використання подань, сконструйованих і інтерпретованих таким чином, щоб з їхньою допомогою можна було вирішити проблему;
— природність нотації — зручність і простота виразів, якими формально описуються знання в експертній системі, зрозумілість їхнього змісту навіть тим, хто не знає, яким чином комп’ютер інтерпретує ці вирази;
— логічна прозорість — здатність експертної системи пояснити методику прийняття рішення, яка обумовлює те, наскільки просто персоналу з’ясувати, що робить програма і чому;
— глибина здатність експертної системи працювати в предметній області, що містить важкі задачі, і використовувати складні правила (використовувати складні конструкції правил або велику їхню кількість);
— корисність здатність експертної системи в ході діалогу визначати потреби користувача, виявляти й усувати причини невдач у роботі, а також вирішувати поставлені задачі;
— гнучкість — здатність системи налагоджуватися на різних користувачів, а також враховувати зміни в кваліфікації одного й того ж самого користувача;
— зручність роботи — природність взаємодії з експертною системою (спілкування в звичному виді, що втомлює користувача), її гнучкість і стійкість системи до помилок (здатність не виходити з ладу при помилкових діях недосвідченого користувача).
2.4.2 Класифікація експертних систем
Виділяють такі види експертних систем.
1. За метою створення: для навчання фахівців, для вирішення задач, для автоматизації рутинних робіт, для тиражування знань експертів.
2. За основним користувачем: для не фахівців в галузі експертизи, для фахівців, для учнів.
3. За типами розв'язуваних задач:
— інтерпретуючі системи — призначені для формування опису ситуацій за результатами спостережень або даними, одержуваними від різного роду сенсорів. Приклади: розпізнавання образів і визначення хімічної структури речовини;
— прогнозуючі системи — призначені для логічного аналізу можливих наслідків заданих ситуацій або подій. Приклади: прогнозування погоди і ситуацій на фінансових ринках;
— діагностичні системи — призначені для виявлення джерел несправностей за результатами спостережень за поведінкою контрольованої системи (технічної або біологічної). У цю категорію входить широкий спектр задач у всіляких предметних областях — медицині, механіці, електроніці і т. д.;
— системи проектування — призначені для структурного синтезу конфігурації об'єктів (компонентів проектованої системи) при заданих обмеженнях. Приклади: синтез електронних схем, компонування архітектурних планів, оптимальне розміщення об'єктів в обмеженому просторі;
— системи планування — призначені для підготовки планів проведення послідовності операцій, що призводить до заданої мети. Приклади: задачі планування поведінки роботів і складання маршрутів пересування транспорту;
— системи моніторингу — аналізують поведінку контрольованої системи і, порівнюючи отримані дані з критичними точками заздалегідь складеного плану, прогнозують імовірність досягнення поставленої мети. Приклади: контроль руху повітряного транспорту і спостереження за станом енергетичних об'єктів;
— налагоджувальні системи — призначені для вироблення рекомендацій з усунення несправностей у контрольованій системі. До цього класу відносяться системи, що допомагають програмістам у налагодженні програмного забезпечення, і консультуючі системи:
— системи надання допомоги при ремонті устаткування — виконують планування процесу усунення несправностей у складних об'єктах, наприклад, у мережах інженерних комунікацій;
— навчальні системи — проводять аналіз знань студентів за визначеним предметом, відшукують пробіли в знаннях і пропонують засоби для їхньої ліквідації;
— системи контролю — забезпечують адаптивне керування поведінкою складних людино-машинних систем, прогнозуючи появу можливих збоїв і плануючи дії, необхідні для їхнього попередження. Приклади: керування повітряним транспортом, воєнними діями і діловою активністю в сфері бізнесу.
4. За ступенем складності структури:
— поверхневі системи — подають знання про область експертизи у вигляді правил (умова — дія). Умова кожного правила визначає зразок деякої ситуації, при дотриманні якої правило може бути виконано. Пошук рішення полягає у виконанні тих правил, зразки яких зіставляються з поточними даними. При цьому передбачається, що в процесі пошуку рішення послідовність формованих у такий спосіб ситуацій не обірветься до одержання рішення, тобто не виникне невідомої ситуації, що не зіставиться з жодним правилом;
— глибинні системи — крім можливостей поверхневих систем, мають здатність при виникненні невідомої ситуації визначати за допомогою деяких загальних принципів, справедливих для області експертизи, які дії варто виконати.
5. За типом використовуваних методів і знань:
— традиційні системи — використовують в основному неформалізовані методи інженерії знань і неформалізовані знання, отримані від експертів;
— гібридні системи — використовують методи інженерії знань і формалізовані методи, а також дані традиційного програмування та математики.
6. За видами використовуваних даних і знань: з детермінованими і невизначеними знаннями. Під невизначеністю знань і даних розуміються їхня неповнота, ненадійність, нечіткість.
7. За способом формування рішення:
— аналізуючи системи — вибір рішення здійснюється з множини відомих рішень на основі аналізу знань;
— синтезуючі системи — рішення синтезується з окремих фрагментів знань.
8. За способом урахування часової ознаки:
— статичні системи — призначені для вирішення задач і незмінними в процесі рішення даними і знаннями;
— динамічні системи — допускають зміни даних і знань у процесі рішення.
9. За рівнем складності:
— прості системи: поверхневі, традиційні (рідше гібридні) системи, виконані на персональних ЕОМ, з комерційною вартістю від 100 до 25 тисяч доларів, з вартістю розробки від 50 до 300 тисяч доларів, з часом розробки від 3 міс. до одного року, що містять від 200 до 1000 правил;
— складні системи: глибинні, гібридні системи, виконані або на символьних ЕОМ, або на потужній універсальній ЕОМ, або на інтелектуальній робочій станції, з комерційною вартістю від 50 тисяч до 1 мільйона доларів, Із середньою вартістю розробки 5—10 мільйонів доларів, часом розробки від 1 до 5 років, що містять від 1,5 до 10 тисяч правил.
10. За стадією існування (ступенем пропрацьованності і налагодженості):
— демонстраційний прототип — система, що вирішує частину необхідних задач, демонструючи життєздатність методу інженерії знань. При наявності розвитих інструментальних засобів для розробки демонстраційного прототипу потрібно в середньому приблизно 1—2 міс, а при відсутності — 12— 18 міс. Демонстраційний прототип працює, маючи 50−100 правил;
— дослідницький прототип — система, що вирішує всі необхідні задачі, але хитлива в роботі та не є цілком перевіреною. На доведення системи до стадії дослідницького прототипу йде 3−6 міс. Дослідницький прототип звичайно має 200—500 правил, що описують проблемну область;
— діючий прототип — надійно вирішує всі задачі, але для вирішення складних задач може знадобитися занадто багато часу та (або) пам’яті. Для доведення системи до стадії діючого прототипу потрібно 6−12 міс, при цьому кількість правил збільшується до 500—1000.
— система промислової стадії — забезпечує високу якість вирішення всіх задач при мінімумі часу і пам’яті. Звичайно процес перетворення діючого прототипу в промислову систему полягає в розширенні бази знань до 1000−1500 правил і переписуванні програм з використанням більш ефективних інструментальних засобів. Для доведення системи від початку розробки до стадії промислової системи потрібно 1—1,5 року;
— комерційна система — система, придатна не тільки для власного використання, але і для продажу різним споживачам. Для доведення системи до комерційної стадії потрібно 1,5—3 роки та 0,3—5 мли. доларів. При цьому в базі знань системи — 1500−3000 правил.
11. За поколінням:
— системи першого покоління — статичні поверхневі системи;
— системи другого покоління — статичні глибинні системи (іноді до другого покоління відносять також гібридні системи);
— системи третього покоління — динамічні системи, що, як правило, є глибинними і гібридними.
12. За узагальненим показником — класом:
— класифікуючі системи — вирішують задачі розпізнавання ситуацій. Основним методом формування рішень у таких системах € дедуктивне логічне виведення;
— довизначальні системи — використовуються для вирішення задач з не цілком визначеними даними і знаннями. У таких системах виникають задачі інтерпретації нечітких знань і вибору альтернативних напрямків пошуку в просторі можливих рішень. Як методи обробки невизначених знань можуть використовуватися байєсівський імовірнісний підхід коефіцієнти впевненості, нечітка логіка;
— трансформуючи системи — відносяться до синтезуючих динамічних експертних систем, у яких передбачається повторюване перетворення знань у процесі вирішення задач. У системах даного класу використовуються різні способи обробки знань: генерація і перевірка гіпотез, логіка припущень І умовчань (коли за неповними даними формуються подання про об'єкти визначеного класу, що згодом адаптуються до конкретних умов ситуацій, що змінюються), використання метазнань (більш загальних закономірностей) для усунення невизначеностей у ситуаціях;
— мультиагентні системи — динамічні системи, засновані на інтеграції декількох різнорідних джерел знань, що обмінюються між собою одержуваними результатами в ході вирішення задач. Системи даного класу мають можливості реалізації альтернативних міркувань на основі використання різних джерел знань і механізму усунення протиріч, розподіленого вирішення проблем, що декомпозуються на паралельно розв’язувані підзадачі із самостійними джерелами знань, застосування різних стратегій виведення рішень у залежності від типу розв’язуваної проблеми, обробки великих масивів Інформації з баз даних, використання математичних моделей і зовнішніх процедур для імітації розвитку ситуацій.
2.4.3 Життєвий цикл та методологія розробки експертних систем
У розробці й експлуатації експертної системи беруть участь такі фахівці.
— Експерт — висококваліфікований фахівець у проблемній області, задачі якої повинна вирішувати експертна система, який визначає знання, що характеризують проблемну область, забезпечує повноту і правильність введених в систему знань.
— Інженер зі знань (когнітолог) — фахівець з розробки експертних систем, який виступає в ролі проміжного буфера між експертом і базою знань. Він допомагає експерту виявити і структурувати знання, необхідні для роботи експертної системи, здійснює вибір того інструментального засобу, що найбільше підходить для даної проблемної області, визначає спосіб подання знань у цьому інструментальному засобі, виділяє і програмує (традиційними засобами) стандартні функції (типові для даної проблемної області), що будуть використовуватися в знаннях, які вводяться експертом.
— Програміст фахівець з розробки інструментальних засобів, що здійснює їхнє створення і сполучення з тим середовищем, у якому вони будуть використовуватися.
— Користувач людина, що використовує вже побудовану експертну систему. Термін користувач є трохи неоднозначним. Звичайно він позначає кінцевого користувача. Однак користувачем може бути програміст, що відлагоджує засіб побудови експертної системи, інженер зі знань, що уточнює існуючі в системі знання, експерт, що додає в систему нові знання, оператор, що заносить у систему поточну інформацію.
Склад і взаємодію учасників побудови й експлуатації експертних систем зображено на рис. 2.1.
Рис. 2.1 Взаємозв'язки основних учасників побудови та експлуатації експертних систем Засіб побудови експертної системи — це програмний засіб, використовуваний інженером зі знань або програмістом для побудови експертної системи. Цей інструмент відрізняється від звичайних мов програмування тим. що забезпечує зручні способи подання складних високорівневих понять. Важливо розрізняти інструмент, що використовується для побудови експертної системи, і саму експертну систему. Інструмент побудови включає як мову, використовувану для доступу до знань, що містяться в системі, і їхнього подання, так і підтримуючі засоби програми, що допомагають користувачам взаємодіяти з компонентом експертної системи, яка вирішує проблему.
Концепція «швидкого прототипу» використовується для розробки експертних систем і полягає в тому, що розробники не намагаються відразу створити кінцевий продукт. На початковому етапі вони створюють прототип (прототипи) експертної системи, що повинний задовольняти двом суперечливим вимогам:
з одного боку, вирішувати типові задачі конкретного застосування, а з іншого боку час і трудомісткість його розробки повинні бути дуже незначними, щоб можна було максимально запаралелити процес накопичення і відлагодження знань (здійснюваний експертом) із процесом вибору (розробки) програмних засобів (здійснюваним інженером зі знань і програмістом). Для задоволення зазначених вимог при створенні прототипу, як правило, використовуються різноманітні інструментальні засоби, що прискорюють процес проектування.
Прототип повинний продемонструвати придатність методів інженерії знань для даного застосування. У випадку успіху експерт за допомогою інженера зі знань розширює знання прототипу про проблемну область. При невдачі може знадобитися розробка нового прототипу або розробники можуть прийти до висновку про непридатність методів інженерії знань для даного застосування. В міру збільшення знань прототип може досягти такого стану, коли він успішно вирішує всі задачі даного застосування. Перетворення прототипу в кінцевий продукт звичайно приводить до перепрограмування експертної системи на мовах низького рівня, що забезпечують як підвищення її швидкодії, так і зменшення необхідної пам’яті. Методологія розробки експертних систем включає такі етапи (див. рис. 2.2).
1. Етап ідентифікації: визначаються задачі, що підлягають вирішенню, складаються їхні неформальні описи (загальні характеристики задачі; підзадачі, що виділяються усередині даної задачі: ключові поняття, характеристики і відношення; вхідні і вихідні дані; можливий вид рішення; знання, релевантні розв’язуваній задачі: ситуації, що перешкоджають вирішенню задачі: приклади рішення задачі; критерії оцінки якості рішень), виявляються цілі розробки (формалізація неформальних знань експертів; поліпшення якості рішень, прийнятих експертом; автоматизація рутинних аспектів роботи експерта або користувача: тиражування знань експерта), ресурси (джерела знань, трудомісткість, час розробки, обчислювальні засоби й обсяг фінансування), експерти, інженери зі знань і категорії користувачів, визначаються форми взаємин учасників розробки.
Рис. 2.2 Етапи розробки експертних систем
2. Етап концептуалізації: експерт та інженер зі знань виконують змістовний аналіз проблемної області, виявляють використовувані поняття і їхні взаємозв'язки (типи використовуваних відношень: ієрархія, причина наслідок, частина ціле і т. п.). визначають гранулярність (рівень деталізації) знань, визначають особливості задачі (типи доступних даних; вихідні і вихідні дані, підзадачі загальної задачі), визначають методи вирішення задач (використовувані стратегії і гіпотези; процеси, використовувані в ході рішення задачі: типи обмежень, шо накладаються на процеси, використовувані в ході рішення; склад знань, використовуваних для рішення задачі; склад знань, використовуваних для пояснення рішення).
3. Етап формалізації: визначаються способи подання й інтерпретації усіх видів знань, формалізуються (подаються формальною мовою) основні поняття і відношення, подається структура простору станів і характер методів пошуку в ньому, моделюється робота системи, вибираються програмні засоби розробки, оцінюється адекватність цілям і повнота системи зафіксованих понять, методів рішення, засобів подання і маніпулювання знаннями.
4. Етап виконання (реалізація): здійснюється набуття знань системою, яке розділяють на витяг знань з експерта, організацію знань, шо забезпечує ефективну роботу системи, і подання знань у вигляді, зрозумілому експертній системі. Мета цього етапу створення одного або декількох прототипів, що вирішують необхідні задачі.
5. Етап тестування: експерт (та інженер зі знань) в інтерактивному режимі, використовуючи діалогові та пояснювальні засоби, перевіряє компетентність експертної системи на великій кількості репрезентативних задач. Процес тестування продовжується доти, поки експерт не вирішить, що система досягла необхідного рівня компетентності.
6. Етап дослідної експлуатації: перевіряється придатність експертної системи для кінцевих користувачів, яка визначається в основному зручністю роботи із системою та її корисністю. За результатами цього етапу може знадобитися істотна модифікація експертної системи. Після успішного завершення етапу дослідної експлуатації і використання різними користувачами експертна система може класифікуватися як комерційна.
Модифікація експертної системи здійснюється майже постійно в ході її створення. Виділяють такі види модифікації системи:
Удосконалення прототипу здійснюється в процесі циклічного проходження через етапи виконання і тестування для налагодження правил і процедур виведення. Цикли повторюються доти, поки система не буде поводитися очікуваним чином. Зміни, здійснювані при удосконаленні, залежать від обраного способу подання і класу задач, розв’язуваних системою. Якщо в процесі удосконалення бажане поводження не досягається, то необхідно здійснити більш серйозні модифікації архітектури системи і бази знань:
Переконструювання подання перегляд обраного раніше способу подання знань, здійснюваний у результаті повернення від етапу тестування до етапу формалізації:
Переформулювання понять, використовуваних у системі проектування всієї системи практично заново, здійснюване в результаті повернення на етапи концептуалізації й ідентифікації після невдачі на етапі тестування.
2.4.4 Структура та функціонування експертної системи
Ідеальна статична експертна система (рис. 2.3) містить такі основні компоненти, як: машина логічного виведення (вирішувач, інтерпретатор правил), база знань, підсистема набуття знань, підсистема пояснення рішень, інтерфейсна підсистема (діалоговий компонент), робоча пам’ять (база даних). Такі експертні системи використовуються в тих застосуваннях, де можна не враховувати зміни навколишнього світу за час рішення задачі.
База знань частина експертної системи, що містить подання знань, яке стосується визначеної предметної області. У статичній частині бази знань зберігаються довгострокові знання, що описують розглянуту предметну область у вигляді загальних фактів (фраз без умов, що містять твердження, які завжди є абсолютно вірними) і правил (тверджень, істинність яких залежить від деяких умов, що утворюють тіло правила), які описують доцільні перетворення фактів цієї області з метою породження нових фактів або гіпотез.
Робоча пам’ять (база даних) динамічна частина бази знань, що змінює свій стан під впливом правил, призначена для збереження вихідних даних (фактів, що описують поточну ситуацію) і проміжних даних розв’язуваної в поточний момент задачі (фактів, що були встановлені до визначеного моменту в результаті виведення, яке полягає в застосуванні правил до наявних фактів).
Рис. 2.3 Схема ідеальної статичної експертної системи Машина логічного виведення (механізм логічного виведення, виріишувач) основна частина експертної системи, яка. використовуючи інформацію з бази знань, на основі стратегії, тісно пов’язаної зі способом подання знань в експертній системі і характером розв’язуваних задач, генерує рекомендації з вирішення задачі та містить:
інтерпретатор компонент, який, вишиковуючи правила в ланцюжок для досягнення поставленої користувачем мети, послідовно визначає, які правила можуть бути активовані в залежності від умов, що у них містяться, вибирає одне з застосовних у даній ситуації правил і виконує його:
диспетчер компонент, що установлює порядок застосування активованих правил:
робочий список правил створений машиною логічного виведення і впорядкований за пріоритетами список правил, шаблони яких задовольняють фактам або об'єктам, що знаходяться в робочій пам’яті.
Оболонка експертної системи програма, що забезпечує взаємодію між базою знань та машиною логічного виведення. Кінцевий користувач взаємодіє з оболонкою через інтерфейсну підсистему, передаючи їй запити. Остання активізує машину логічного виведення, яка звертається до бази знань, витягає з неї і генерує в процесі логічного виведення знання, необхідні для відповіді на конкретне питання, і передає сформовану відповідь користувачу або як рішення проблеми, або у формі рекомендації чи поради.
Інтерфейсна підсистема (діалоговий компонент) розподіляє ролі користувачів і експертної системи, а також організує їхню взаємодію в процесі кооперативного вирішення задачі за допомогою перетворення запитів користувачів у внутрішню мову подання знань експертної системи і перетворення повідомлень системи, поданих внутрішньою мовою, у повідомлення мовою, звичною для користувача (обмеженою природною мовою або мовою графіки).
Підсистема набуття знань автоматизує процес наповнення експертної системи знаннями експертом або інженером зі знань через редактор бази знань без залучення інженера зі знань до вирішення задачі явного кодування знань або автоматично витягає знання з наборів даних у процесі навчання на основі дерев рішень, методів виділення асоціативних правил, штучних нейронних або нейро-нечітких мереж.
Редактор бази знань складова частина підсистеми набуття знань, шо являє собою транслятор з деякої підмножини природної мови, використовуваної інженером зі знань і експертом, у спеціальний код. орієнтований на роботу механізму логічного виведення.
Підсистема пояснень дозволяє контролювати хід суджень експертної системи і пояснювати її рішення або їхню відсутність з указівкою використаних знань, а також виявляти неоднозначності і протиріччя в базі знань експертної системи, що полегшує експерту тестування системи і підвищує довіру користувача до отриманого результату, а також дозволяє навчати користувача рішенню відповідних задач.