МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
Створення оболонки експертної системи з використанням продукційної моделі представлення знань
Методичні вказівки
до лабораторної роботи № 1 з курсу:
“Системи штучного інтелекту”
для студентів
Затверджено
на засіданні кафедри
“Електронних обчислювальних машин”
Протокол №
Від 2003 р.
Львів 2003
Створення оболонки експертної системи з використанням продукційної моделі представлення знань. Методичні вказівки до лабораторної роботи № 1 з курсу: “Системи штучного інтелекту” для студентів , 12 с.
Укладач:
Ємець В.Ф., професор, д.т.н.
Сокіл В.М., асистент
Юрчак І.Ю, доцент, к.т.н.
Відповідальний за випуск:
Кремінь В.Т., ст. викладач кафедри ЕОМ
Рецензенти:
Березко Л.О., доцент кафедри ЕОМ, к.т.н.
Каркульовський В.І., доцент кафедри АСУ, к.т.н.
1. Мета роботи
Створення оболонки експертної системи з продукційною моделлю представлення знань.
2. Теоретичні відомості
Класичні програми - це спосіб зберігання і передачі знань. В програмах у вигляді коду, зрозумілому для ЕОМ, задаються дії, які необхідно виконати для досягнення поставленої цілі (можна сказати, що програма - це "know how"). Позитивною рисою такого способу зберігання знань на ЕОМ є швидкодія: алгоритм пошуку розв'язку задачі заданий чітко і недвозначно, не виконується ні яких лишніх операцій. Але він має суттєві вади:
По самій програмі практично неможливо відновити алгоритм, вкладений у програму. Для ілюстрації цього положення достатньо взяти любу програму у вигляді ЕХЕ файлу, відновити з неї відповідний асемблерний код (програму), а потім з нього відновити алгоритм, вкладений в цю програму. Навіть з тексту програми на мові високого рівня не просто це зробити.
В програми, написані на алгоритмічних мовах тяжко вносити зміни. Забувається навіть власна програма, з якою не працював 3- 4- 5 місяців.
Лише невелика, мізерна доля задач, які розв'язуються людьми, мають алгоритм свого розв'язку. Переважна більшість задач пов'язана з пошуком розв'язку. Приклад: медицина (діагноз), прийняття рішень (управління), пошук поламок в різних механізмах і т.д. Таким чином, переважна більшість складених алгоритмічних програм мають справу з так званим "іграшковим" світом, а не з реальними задачами.
Для спілкування з ЕОМ за допомогою програм людині треба мати навички роботи з ЕОМ, тобто поруч з основною професією вивчити ще одну (що таке "миша", "гаряча клавіша", клавіша ESC і т.д.).
Іншим альтернативним підходом до зберігання знань на ЕОМ, є так звані експертні системи, частина великого розділу науки "Штучний інтелект".
Експертні системи - складні програмні комплекси, що збирають знання спеціалістів в конкретних предметних областях і застосовують отриманий досвід для некваліфікованих користувачів.
Рішення експертних систем володіють "прозорістю", тобто можуть бути пояснені користувачеві на якісному рівні. Експертні системи здатні поповнювати свої знання в ході взаємодії з експертом. Технології експертних систем можуть з успіхом застосовуватись в різноманітних проблемних областях, таких, як фінанси, нафтова і газова промисловість, енергетика, медицина, освіта тощо.
ЕС здатні розв'язувати неформалізовані задачі, що представляють великий і складний клас задач, яким притаманні особливості:
помилковість, неоднозначність, неповнота і суперечність початкових даних, знань про предметну область і задачу, що вирішується;
велика розмірність простору пошуку рішення;
дані і знання, що динамічно змінюються .
Експертні системи відрізняються від систем обробки даних тим, що в них в основному використовуються символьний спосіб представлення, символьний вивід і евристичний пошук рішення.
Структура експертних систем
Типова статична ЕС складається з наступних основних компонентів (мал. 1.):
EMBED Word.Picture.8
Рис.1. Структура статичної ЕС
Інтерпретатора(машини виводу);
робочої пам'яті (РП), так званою базою даних (БД);
бази знань (БЗ);
компонентів придбання знань;
пояснювальної компоненти;
діалогової компоненти.
База даних (робоча пам'ять) призначена для зберігання початкових і проміжних даних задачі.
База знань (БЗ) уявляє сукупність знань предметної області, записана у вигляді правил на мові, зрозумілій користувачеві і експерту.
Інтерпретатор (машина виводу) - програма, що моделює процес роздумів експерта на основі знань з БЗ.
Компонента придбання знань автоматизує процес наповнення ЕС знаннями, здійснюваний в діалоговому режимі з експертом або інженером знань.
Пояснювальна компонента дозволяє прослідкувати процес отримання висновку, виводячи довідкову інформацію про використані фрагменти БЗ. Це полегшує експерту тестування системи і підвищує довір'я користувача до отриманого результату.
Діалогова компонента орієнтована на організацію спілкування з користувачем як в ході рішення задач, так і в процесі придбання знань та пояснення результатів роботи.
В розробці ЕС беруть участь представники наступних спеціальностей:
Експерт в предметній області, задачі якої буде вирішувати ЕС. Він визначає знання (дані і правила), що характеризують проблемну область, забезпечує повноту і правильність введених в ЕС знань.
Інженер по знаннях - фахівець з розробки ЕС. Він допомагає експерту виявити і структурувати знання, необхідні для роботи ЕС і визначає спосіб представлення знань.
Програміст з розробки інструментальних засобів (ІЗ), призначених для роботи ЕС. Програміст розробляє інструментальні засоби, що містить всі основні компоненти ЕС, і створює зручний інтерфейс з користувачем.
Експертна система працює в двох режимах: режимі придбання знань і в режимі використання.
У режимі придбання знань спілкування з ЕС здійснює інженер по знаннях, який використовуючи компоненту придбання знань, наповнює систему знаннями, які дозволяють ЕС в режимі використання самостійно вирішувати задачі з предметної області. Експерт описує предметну область у вигляді сукупності даних і правил. Дані визначають об'єкти, їх характеристики і значення. Правила визначають способи маніпулювання з даними, характерні для предметної області. На відміну від традиційного підходу розробку експертної системи здійснює не програміст, а інженер по знаннях, який не вміє програмувати.
У режимі використання спілкування з ЕС здійснює користувач, якого цікавить результат і спосіб його отримання. В залежності від призначення ЕС користувач може не бути фахівцем в даній предметній області (він звертається до ЕС за результатом, не вміючи отримати його сам), або бути фахівцем (користувач може сам отримати результат, але він хоче прискорити процес отримання результату або покласти на ЕС рутинну роботу). У режимі використання дані про задачу після обробки їх діалоговою компонентою поступають в робочу пам'ять. Інтерпретатор на основі вхідних даних з робочої пам'яті, загальних даних про предметну область і правил з БЗ формує рішення задачі. ЕС при рішенні задачі не тільки виконує наказану послідовність операції, але і заздалегідь формує її. Якщо реакція системи не зрозуміла користувачеві, то він може отримати довідкову інформацію про кроки логічного виводу.
В самому найпростішому випадку, який ми будемо розглядати, експертна система складається з 3-х частин.
1. База знань. В символьному виді зберігаються (задаються) знання людини. В нашому випадку база знань - це текстовий файл, який можна проглядати і редагувати звичайним текстовим редактором. Правила мають таку структуру:
EMBED Equation.3
Приклад
if пропуски=багато and викладач=злий
then екзамен=2
Це продукційна модель представлення знань
2. Програма інтерфейсу з користувачем - оболонка експертної системи. Тут користувач задає ім'я файлу (файлів) бази знань, задає цільове запитання, відповідає на запитання, які задає експертна система, отримує (не отримує) відповідь на цільове запитання.
3. Машина виводу. На основі бази знань здійснює пошук відповіді на поставлене запитання. В різних експертних системах пошук здійснюється за різними алгоритмами. В розглядуваних експертних системах пошук триває за принципом "спочатку вниз".
Приклад "КУХНЯ"
(1) if спека = так
and буряк = є
and морква = є
then зупа = холодний борщ
(2) if спека = ні
and помідори = так
and капуста = так
then зупа = український борщ
(3) if вартість буряка 15
and зарплата 100
then буряк = є
(4) if вартість помідорів 30
then помідори = є
(5) if вартість буряка =5
then буряк = є
За приклад береться тестова навчальна експертна система ESIE (The Expert System Inference Engine) (Експертна Система Виводу Висновку).
Для роботи з експертною системою необхідно два файла: ESIE.COM (власне експертна система) та текстовий файл, який не має розширення і в якому зберігається база знань. Другий файл створюється за допомогою текстового редактору. Структура бази знань така:
legalanswers is/are <слово1><слово2> ... *
(на початку файлу)
"/" - або. Задає всі можливі варіанти відповідей на запитання, які буде задавати експертна система.
Приклад
legalanswers are так ні *
Якщо цього рядка в базі знань нема, то дозволяється люба відповідь.
goal is <змінна>
Задає мету, тобто задається ім'я змінної, знаходження значення якої є кінцевою метою роботи експертної системи.
Правила мають вигляд:
if <змінна> is/are <значення>
and <змінна> is/are <значення>
...
then <змінна> is/are <значення>
<змінна>, <значення> - це послідовність букв, цифр і спецсимволів, довжиною до 40 символів (без пробілів) до 256 символів.
question <змінна> is/are <текст>
Коли необхідно знайти значення якоїсь змінної, система:
Якщо є рядок із "question" з параметром необхідна змінна. Тоді система задає запитання, текст якого заданий в "question". Далі система чекає вводу значення необхідної змінної.
Якщо є правило if ... then ..., в якому у висновку "then" необхідній змінній присвоюється значення.
Приклад
if спека is так
and буряк is є
and морква is є
then зупа is холодний борщ
question буряк is "Скільки коштує буряк"
УВАГА. В цій системі є тільки порівняння рівне/нерівне (тобто немає або ).
answer is/are <текст> змінна
Роздруковується відповідь.
Після запуску системи необхідно ввести ім'я файлу. Далі висвітлюється запрошення:
Далі можна вводити одну з чотирьох команд:
GO - почати пошук відповіді на запитання;
EXIT - завершити роботу експертної системи;
TRACE ON - на екрані в процесі роботи експертної системи висвітлюються правила, з якими працює експертна система;
TRACE OFF - відключити трасування.
В якості прикладу на ЕОМ є дві бази знань: ANIMAL (тварини) і DOCTOR (хвороби малих дітей).
3. Контрольні запитання
Структура експертної системи.
Області застосування експертних систем.
Продукційна модель представлення знань.
Колектив розробників експертної системи.
Базові режими, що реалізуються для експертної системи.
Режим придбання знань.
Режим використання.
Особливості формування бази знань.
Особливості програмної реалізації.
4. Лабораторне завдання
Створити оболонку експертної системи з продукційною моделлю представлення знань.
Мова програмування вибирається за бажанням студента.
До створеної оболонки можна застосувати тестову базу знань ANIMAL
Отримати індивідуальне завдання відносно предметної області.
Скласти базу знань.
Виконати завдання.
Оцінити отримані результати.
5. Зміст звіту
Мета роботи.
Основні теоретичні відомості.
Результат виконання індивідуального завдання.
Висновок.
6. Список літератури
Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интелектуальных систем – СПб: Питер, 2000. - 384 с.
Глибовець М.М., Олецький О.В. Штучний інтелект – Київ: Видавничий дім “КМ Академія”, 2002. – 366 с.
Попов Э.В. Экспертные системы – М.: Наука, 1998. – 388 с.