Ознайомлення з експертними системами. Створення власної простої бази знань для вирішення задачі класифікації

Лабораторні роботи

Ознайомлення з експертними системами

Створення власної простої бази знань для вирішення задачі класифікації

Поняття експертної системи

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

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

Приклади сфер застосування ЕС:

    інтерпретація даних експериментів,

    виявлення хімічних і біологічних структур,

    прогнозування подій після природних або техногенних катастроф,

    діагностика несправностей техніки або захворювань людини,

    планування цільових експериментів,

    пошук корисних копалин,

    керування наземним транспортом,

    тощо.

Метою досліджень в області експертних систем є розробка таких програм (пристроїв), що при вирішенні важких для експерта-людини завдань одержують не гірші за якістю та ефективністю результати, в порівнянні з експертними результатами. У більшості випадків ЕС вирішують важкоформалізовувані завдання або такі, що не мають алгоритмічного рішення.

Класифікація експертних систем:

Основні задачі, що ставляться для ЕС, описані нижче:

    Інтерпретація – аналіз спостережуваних даних чи ситуацій з метою визначення їх змісту чи опису. Прикладом ЕС такого типу є SIAP, що використовується для виявлення та ідентифікації різних типів океанських суден.

    Діагностика – класифікація та пошук несправностей у живих чи неживих системах, що базуються на результатах інтерпретації. Прикладом діагностичної ЕС є ANGY, що допомагає здійснювати діагностику та терапію звуження коронарних судин. Для діагностики помилок в апаратурі та математичному забезпеченні ЕОМ використовується ЕС GRIP.

    Моніторинг – порівняння спостережуваних величин чи ситуацій з опорними (критичними) точками плану та видача повідомлень при відхиленні від плану; інший вид моніторингу – неперервний процес інтерпретації сигналів і видача повідомлень у ситуаціях, що вимагають втручання системи вищого рівня або людини. Приклади: допомогу диспетчерам атомного реактора забезпечує ЕС REACTOR; контроль аварійних датчиків на хімічному заводі – FALCON.

    Проектування – знаходження такої конфігурації компонентів системи, що задовольняє цільовим умовам та множині проектних обмежень. Прикладом є ЕС SYN для синтезу електричних ланцюжків.

    Прогнозування – проектування можливих наслідків даної ситуації. Прикладами таких ЕС є: WILLARD для передбачення погоди, ECON для здійснення прогнозів в економіці, тощо.

    Планування – розробка послідовності дій для досягнення множини поставлених цілей при заданих початкових умовах і часових обмеженнях. Прикладами ЕС цього типу є система ISIS для планування промислових замовлень, MOLGEN для планування експериментів, тощо.

    Інструктування (навчання) – допомога в освітньому процесі для вивчення певної дисципліни. Системи навчання за допомогою ЕОМ діагностують помилки при вивченні певного предмету та підказують правильні рішення, а також – планують процес спілкування учителя з учнем, в залежності від успіхів учня з метою передачі знань. Приклад: система PROUST для вивчення мови програмування Паскаль.

    Керування – керування поведінкою складного середовища або системи.

    Тестування – перевірка якості роботи за допомогою спеціальних тестів.

    Ремонт – виконання плану організації виправлення деякого виявленого дефекту.

Класифікація ЕС за зв'язком з реальним часом:

    Квазідинамічні ЕС інтерпретують ситуацію, що змінюється з деяким фіксованим інтервалом часу. Приклад: мікробіологічні ЕС, що знімають лабораторні виміри та покази щодо певного процесу раз в 4–5 годин (например, при виробництві лізину) та аналізують динаміку одержаних показників по відношенню до попередніх результатів.

    Статичні ЕС розробляються для предметних областей, для яких база знань та інтерпретовані дані не змінюються в часі, а є повністю стабільними. Приклади: діагностика несправностей в автомобілях.

    Динамічні ЕС працюють разом із датчиками об'єктів у режимі реального часу з неперервною інтерпретацією даних, що надходять. Прикладами є керування гнучкими промисловими комплексами, моніторинг в палатах реанімації, тощо.

Згідно класифікації за типом ЕОМ, нині існують:

    ЕС для унікальних стратегічно важливих задач на суперкомп’ютерах (таких, як Ельбрус, CRAY, CONVEX та інші);

    ЕС на ЕОМ середньої потужності;

    ЕС на символьных процесорах та робочих станціях (SUN, APOLLO);

    ЕС на міні- та суперміні- ЕОМ (VAX, micro- VAX і т.д.);

    ЕС на персональних комп’ютерах (IBM PC, MAC II та ініш).

Класифікація за ступенем інтеграції з іншими програмами:

    Автономні ЕС працюють безпосередньо в режимі консультації з користувачем для вирішення специфічних «експертних» завдань, при чому немає необхідності залучати традиційні методи опрацювання даних, моделювання, тощо.

    Гібридні ЕС – це програмні комплекси, що мають у собі стандартні пакети прикладних програм (наприклад, математичну статистику, лінійне програмування або системи керування базами даних) і засоби маніпулювання знаннями.

Означення продукційної експертної системи

Продукційна система – це спосіб представлення знань у вигляді:

    невпорядкованого набору продукційних правил,

    робочої пам’яті,

    механізму логічного виведення типу «розпізнавання-дія».

Продукційні правила часто називають ще продукціями. Продукція – це пара типу «умова-дія», «ситуація-дія», «причина-наслідок», «умова-висновок» і т.д., що визначає одну порцію знань, необхідних для вирішення завдання. В умовній частині правила, природно, знаходяться умови, при яких виконується інша частина правила – частина дії.

Узагальнений запис правила-продукції такий:

,

де – ідентифікатор -продукції в -наборі продукцій; – пріоритет правила продукції; – передумова застосовності ядра продукції, що є предикатом, при виконанні якого активізується ядро продукції; – ядро продукції; – дії та процедури, що повинні бути виконані після виконання ядра продукції.

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

Детерміновані продукції можуть також бути однозначними або альтернативними. В другому випадку в правій частині ядра вказуються альтернативні можливості вибору, що оцінюються спеціальними вагами коефіцієнтами вибору. В якості таких ваг можуть бути ймовірнісні, лінгвістичні, експертні оцінки, тощо. Наприклад: «Якщо , то найчастіше реалізовується , а рідше – ».

У системі, що базується на продукційних правилах, їх кількість визначає розмір бази знань. Достатньо складні системи можуть використовувати бази знань, що містять більше, ніж 5000 продукційних правил. Тому при складанні правил необхідно:

    використовувати мінімально достатній набір умов для визначення продукційного правила,

    уникати суперечливих продукційних правил,

    конструювати правила, опираючись на структуру відповідної предметної області.

Робоча пам'ять містить опис поточного стану об’єкта в процесі міркувань, який співставляється з умовними частинами продукційних правил з метою вибору відповідних дій при рішенні завдання. Якщо умова деякого правила відповідає вмісту робочої пам'яті, то може виконуватися дія, пов'язана із цією умовою. Дії продукційних правил призначені для зміни вмісту робочої пам'яті.

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

Таким чином, процес логічного висновку, що базується на пошуку за зразком, складається із 4 кроків:

    вибір образу;

    співставлення образу з умовами продукцій та формування конфліктної множини правил;

    вирішення конфлікту;

    виконання правила.

Приклад продукційної ЕС «Оцінювання студентів»

Відповідності між студентами та їх характеристиками наведені у таблиці:

Студент

Характеристики

«Відмінник»

Рівень оцінок: «відмінно»

Інтереси: різноманітні

Спосіб життя: здоровий

Спорт: займається

Особисте життя: є

«Ударник»

Рівень оцінок: «добре»

Інтереси: різноманітні

Спосіб життя: здоровий

Спорт: займається

Особисте життя: є

«Трієчник»

Рівень оцінок: «задовільно»

Інтереси: різноманітні

Спосіб життя: не здоровий

Спорт: не займається

Особисте життя: немає

«Двієчник»

Рівень оцінок: «не задовільно»

Інтереси: немає

Спосіб життя: не здоровий

Спорт: не займається

Особисте життя: немає

Далі знання, зібрані у експертів, представлені у формі продукційних правил, яку буде розуміти комп’ютер, умовно це буде виглядати так:

Правило («Відмінник»):–

Так(Рівень оцінок: «відмінно»),

Так(Інтереси: різноманітні),

Так(Спосіб життя: здоровий),

Так(Спорт: займається).

Так(Особисте життя: є).

Правило(«Ударник»):–

Так(Рівень оцінок: «добре»),

Так(Інтереси: різноманітні),

Так(Спосіб життя: здоровий),

Так(Спорт: займається),

Так(Особисте життя: є).

Правило(«Трієчник»):–

Так(Рівень оцінок: «задовільно»),

Так(Інтереси: різноманітні),

Ні(Спосіб життя: здоровий),

Ні(Спорт: займається),

Ні(Особисте життя: є).

Правило(«Двієчник»):–

Так( Рівень оцінок: «не задовільно»),

Ні(Інтереси: є),

Ні(Спосіб життя: здоровий),

Ні(Спорт: займається),

Ні(Особисте життя: є).

В такому випадку приклад діалогу з користувачем:

Скажіть: Рівень оцінок: «відмінно». Це правда, чи ні?

Скажіть: Рівень оцінок: «добре». Це правда, чи ні?

Скажіть: Рівень оцінок: «задовільно». Це правда, чи ні?

Скажіть: Рівень оцінок: «не задовільно». Це правда, чи ні?

Скажіть: Має різноманітні інтереси. Це правда, чи ні?

Скажіть: Веде здоровий спосіб життя. Це правда, чи ні?

Скажіть: Займається спортом. Це правда, чи ні?

Скажіть: Має особисте життя. Це правда, чи ні?

Опис програми «Мала експертна система»

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

В якості прикладу розглянемо завдання визначення ймовірностей наявності різних захворювань у пацієнта. Програма в цьому випадку виступає в ролі лікаря (експерта), що ставить пацієнту запитання щодо симптомів та на основі одержаних відомостей ставить діагноз. При цьому бажано не мучити пацієнта зайвими запитаннями, а ставити лише найважливіші, від відповіді на які в більшій мірі залежить остаточне встановлення хвороби. Саме так і працює експертна система. Після відповіді на чергове запитання система сама визначає, які запитання з решти стають найбільш актуальними в даний момент. У такий спосіб досягається найшвидше одержання результату при мінімальній кількості запитань.

Використання байесівской системи логічного виведення означає, що інформація, яку опрацьовує НС, не є абсолютно точною, а носить ймовірнісний характер. Користувач може відповідати на запити системи з різним ступенем впевненості. В свою чергу, система видає результати консультації у вигляді ймовірностей настання тих чи інших наслідків (висновків).

Початок роботи

Для початку роботи необхідно завантажити з файлу базу знань (БЗ), що містить інформацію з тієї прикладної області, в якій потрібно одержати консультацію. Це можна зробити, натиснувши кнопку «Завантажити базу знань» або за допомогою одноіменного пункту меню «Файл» (для цього також призначена «гаряча» клавіша <F2>). База знань, що завантажується, може бути зашифрована та вимагати пароль на читання. У цьому випадку потрібно ввести пароль або скасувати завантаження БЗ. Якщо не виникло помилки при завантаженні, можна натиснути кнопку «Почати консультацію» («гаряча» клавіша <F3> або пункт меню «Консультація | Почати консультацію»).

Рис. 1. Робоче вікно програми «Мала експертна система» v2.0 після її відкриття.

Після початку консультації в правій частині вікна (область запитів) з'являється перше запитання системи (назва вислову чи умови, ступінь істинності якого система бажає довідатися). Користувач може давати відповіді за двома схемами. По-перше, можна задавати згідно певної шкали коефіцієнт впевненості (наприклад, від -5, що означає «точно ні», до +5 – «точно так»). По-друге, користувач може ввести ймовірність істинності вислову (число від нуля до одиниці). В обох випадках можна вибирати будь-які проміжні значення. Перемикання між варіантами відповіді здійснюється за допомогою кнопки , розташованої ліворуч від запрошення на введення відповіді, або «гарячою» клавішею <F8>.

Ці два варіанти багато в чому відрізняються. Значення коефіцієнта впевненості («КУ») вибирається практично інтуїтивно, в той час як ймовірність може бути одержана з досвідів або обчислена математично. У випадку вибору за шкалою коефіцієнта впевненості, є можливість відповісти «Не знаю», ввівши число, що відповідає середині шкали (наприклад, нуль, якщо шкала від -5 до +5). Така відповідь ніяк не вплине на результат консультації. Якщо ж вводити відповіді за допомогою ймовірностей, такої можливості сказати «не знаю» практично немає, адже значення ймовірності істинності вислову, що не впливає на результат консультації, в кожному випадку буде інше. Це дуже важливе розходження між двома способами відповіді.

Більш докладно про вибір значення коефіцієнта впевненості.

Діапазон зміни коефіцієнта впевненості задається у вікні налаштувань, що дозволяє змінити деякі параметри інтерфейсу та відкривається після натискування відповідної кнопки , через пункт меню «Наалштування» або за допомогою гарячої клавіші <F7>. Нехай встановлені такі значення: -5 (Ні), 0 (Не знаю), +5 (Так). Тоді користувачеві потрібно відповісти за шкалою від -5 до +5, оцінюючи правдоподібність істинності вислову: ввести +5, якщо твердо впевнений в істинності, та -5, якщо переконаний в хибності вислову, і т.д. Також можна вводити будь-які проміжні значення, наприклад, +4.5 (знак «+» вводити не обов'язково) або -0.1.

Вплив відповіді на результати консультації буде тим більшим, чим більш визначеною була відповідь (тобто чим ближче значення, введене користувачем, до однієї із границь діапазону зміни коефіцієнта впевненості). В загальному випадку діапазон зміни «КУ» може бути іншим, що не обов'язково проходить через нуль, але принцип вибору відповіді такий самий.

Більш докладно про введення ймовірності істинності вислову

Можливо, перший спосіб введення відповіді є простішим для більшості людей, проте в деяких випадках більше виправданим є використання ймовірності істинності вислову. Приклад такого випадку: необхідно оцінити істинність того, що бутерброд завжди падає маслом вниз. Проводимо 100 випробувань із підкиданням бутерброда і підраховуємо кількість випробувань, коли він падав маслом вниз. Потім ділимо отримане число (наприклад, 63) на кількість всіх випробувань (100). Одержаний результат можна вводити у відповідь на запит системи (0.63).

Ймовірність істинності вислову може бути одержана з певних таблиць, за результатами статистичних досліджень, обчислена математично. Зрештою, користувач може просто робити припущення про її значення (хоча у цьому випадку більше виправданим буде використання коефіцієнта впевненості).

Після натискання клавіші <Enter> (або кнопки «Введення» праворуч від вікна введення відповіді) оброблений вислів міститься в список, розташований вище області запиту, і виділяється сірим кольором. Користувач може виділити будь-які вислови в цьому списку й скасувати їх обробку, натиснувши кнопку «Скасувати обрані відповіді» (пункт меню «Консультація | Скасувати обрані відповіді» або «гаряча» клавіша <Ctrl + Z>). Одержуючи від користувача відповіді, система коректує ймовірності можливих наслідків консультації, що відображаються в лівій частині верхньої половини вікна. Консультацію можна припинити в будь-який момент часу, натиснувши кнопку «Скидання результатів» (на яку заміняється кнопка «Почати консультацію») або вибравши відповідний пункт меню «Консультація» («гаряча» клавіша <F3>).

Рис. 1. Робоче вікно програми «Мала експертна система» v2.0 після початку консультації.

Результати консультації.

Метою консультації є визначення ймовірностей можливих результатів (наслідків) (наприклад, наявності у пацієнта грипу при використанні медичної бази знань). Список результатів із вказанням поточних значень ймовірностей показаний у лівій частині верхньої половини вікна програми. Ширину цієї області можна збільшити або зменшити, пересунувши роздільник, що відокремлює її від області оброблених свідчень. Для більше зручного подання результатів їх можна впорядкувати або за назвами результатів (за алфавітом), або ж у відповідності до значень їх поточних ймовірностей. Це робиться за допомогою радіокнопок внизу під областю виведення результатів.

Ймовірності результатів можуть бути виражені у відсотках. Перемикання формату показу результатів здійснюється у вікні налашутвань, де також можна зробити вибір щодо класифікації результатів на достовірні й недостовірні (це впливає тільки на показ результатів у вікні: достовірні виділяються темно-червоним кольором, недостовірні – сірим, а інші залишаються чорними).

Після того, як буде оброблений останній значущий вислів (умова), система підіб'є підсумок – видасть число оброблених свідчень, а ймовірності результатів у списку набудуть остаточних значень. Тепер можна зробити висновок про можливість настання того чи іншого результату (наслідку) або дізнатись про найбільш ймовірний висновок після консультації.

Після завершення консультації або ще в процесі можна зберегти інформацію про її проходження у текстовому файлі, натиснувши кнопку «Зберегти протокол» або вибравши одноіменний пункт меню «Файл» («гаряча» клавіша <F4>). До протоколу буде записаний поточний час, опис бази знань, список опрацьованих свідчень та результати консультації в тому порядку, в якому вони представлені у вікні перегляду результатів.

Вилучення деяких питань в ході консультації.

У деяких випадках може бути заздалегідь відомо, що немає відомостей щодо тих чи інших свідчень (запитань системи). Тому корисно відключати їх опрацювання на певний час (можна, звичайно, відповідати «Не знаю», на відповідні запити, що приведе до того ж результату).

У нижній половині головного вікна програми є два списки свідчень (запитань): ліворуч – активних, праворуч – відключених. Між списками розташована панель керування, що дозволяє переміщати вислови з одного списку в інший, виділяти елементи в кожному списку, вибирати спосіб сортування. Відключати й робити активними висловами можна в будь-який момент (навіть під час консультації).

Опис програми «Редактор баз знань».

Важливою перевагою програми «Мала Експертна Система» є можливість створення та використання власної бази знань. Щоб полегшити це завдання, був написаний спеціальний редактор, за допомогою якого можна створити власну або модифікувати існуючу базу знань.

Формат бази знань.

База знань є текстовим файлом (який також може бути зашифрованим), що включає три секції з такою структурою:

Опис бази знань, ім'я автора, коментар і т.д.

(можна в декілька рядків, загальна довжина яких не повинна перевищувати 10000 символів; ця секція закінчується після першого порожнього рядка)

Вислів № 0 (будь-який текст (не більше 1000 символів), що закінчується переносом рядка)

Вислів № 1

Вислів № 2

...

Вислів № n (після останнього вислову міститься один порожній рядок, закінчуючи другу секцію)

Результат № 0,

Результат № 1,

Результат № 2,

...

Результат № m,

Зміст перших двох секцій зрозумілий з наведеної схеми. Остання секція вимагає більше докладного розгляду: в ній перераховуються правила виведення, кожне з яких міститься в окремому рядку.

    На початку опису правила виведення задається кінцевий результат консультації (текст, що включає будь-які символи, крім ком).

    Після коми вказується апріорна ймовірність вказаного результату (), тобто ймовірність такого результату ще до початку відповідей на питання консультації, тобто у випадку відсутності додаткової інформації. (Примітка: значення вважається рівним нулю, а – рівним одиниці, тому не варто вказувтаи такі значення – результат з такою апріорною ймовірністю оброблятися не буде.)

    Далі через кому йде ряд повторюваних полів із трьох елементів: перший елемент () – номер відповідного питання (симптому, вислову, умови); наступні два елементи – це, відповідно, ймовірності одержання відповіді «Так» на це запитання, якщо вказаний на початку правила результат є вірний () чи невірний (). Такі трійки чисел вказуються для кожного запитання (вислову), пов'язаного з даним результатом. (Примітка: не варто вказувати та рівними одне одному, тому що це буде означати, що відповідь на дане запитання не вплине на результат).

Приклад:

Грип, 0.01, 1,0.9,0.01, 2,1,0.01, 3,0,0.01

В цьому правилі сказано: існує апріорна ймовірність того, що будь-яка випадково обрана людина хворіє на грип.

Припустимо, що ЕС ставить запитання 1 (або симптом 1). В цьому випадку вказані значення та означають, що якщо в пацієнта грип, то він у дев'яти випадках з десяти відповість «Так» на це питання, а якщо в нього немає грипу, він відповість «Так» лише в одному випадку зі ста (тобто даний симптом зустрічається досить рідко при інших хворобах (результатах)). Очевидно, що відповідь «Так» на це запитання підтверджує гіпотезу про те, що в нього грип, а відповідь «Ні» дозволяє припустити, що людина грипом не хворіє.

Для другого симптому маємо запис «2,1,0.01». У цьому випадку , тобто якщо в людини грип, то цей симптом обов'язково повинен бути присутнім. Відповідний симптом може мати місце і при відсутності грипу , але ця ймовірність складає 1%.

Третє запитання виключає грип при відповіді «Так», тому що . Це, наприклад, може бути питання типу: «чи спостерігається у Вас такий стан протягом більшої частини життя?».

З прикладу видно, що вказані значення ймовірностей є важливі для кінцевого результату, тому вони повинні бути добре продуманими або й грунтуватись на певних дослідженнях. Значення та , використані для виразу за теоремою Байеса, дозволяють обчислити апостеріорну ймовірність результату, тобто ймовірність, скоректовану відповідно до відповіді користувача на дане запитання:

.

Далі наведено декілька прикладів простих баз знань.

Побудова бази знань із чіткою логікою, що вирішує завдання класифікації

«Ти геймер?»

Автор: Олексій Бухнин.

Питання:

Ти граєш у комп'ютерні ігри по 6 і більше годин на добу?

Ти кидаєш всі справи заради нової гри?

Від 3D-action ігор у тебе крутиться голова?

Ти нізащо не потягнеш свій комп'ютер до друга для організації змагань по мережі?

Ти в основному витрачаєш гроші або на новий ігровий диск або на апгрейд комп'ютера?

Ти не користуєшся «мишкою» в 3D-action іграх?

Геймер, 0.5, 1,1,0, 2,1,0, 3,0,1, 4,0,1, 5,1,0, 6,0,1

Не геймер, 0.5, 1,0,1, 2,0,1, 3,1,0, 4,1,0, 5,0,1, 6,1,0

У цій базі знань 6 запитань (згідно формату бази знань їх сім, але питання «Питання:» не згадується в жодному правилі) та всього два результати. Апріорні ймовірності обох результатів рівні 0.5, тобто гіпотези, що випадково обрана людина є або не є геймером, є рівноймовірні (при цьому сума апріорних імовірностей дорівнює 1, тобто в базі знань наведені всі можливі результати).

Можна помітити, що та для кожного запитання рівні 1 або 0. При цьому в другому правилі ці значення інвертуються відносно першого правила. Це приводить до того, що максимально впевнена відповідь («Точно так» або «Точно ні») на будь-яке запитання однозначно класифікує користувача як геймера або не геймера.

експертний база класифікація програма

Побудова бази знань із нечіткою логікою, що вирішує завдання класифікації

Отже, завдання класифікації вирішується дуже просто у випадку двох можливих результатів. Проте якщо можливих результатів є більше, то значно простішим вирішенням є присвоєння для кожного запитання. Це означає, що якщо гіпотеза про настання даного результату невірна, то відповідь на дане запитання не визнача. Звичайно, цей спрощений метод дає менш точні результати, але заощаджує час при створенні бази знань. Порівняйте результати застосування попередньої бази знань із результатами використання зміненої бази, наведеної нижче. Можна помітити, що однозначні відповіді вже не приводять до абсолютно чітких результатів.

«Ти геймер?»

Автор: Олексій Бухнин.

Питання:

Ти граєш у комп'ютерні ігри по 6 і більше годин на добу?

Ти кидаєш всі справи заради нової гри?

Від 3D-action ігор у тебе крутиться голова?

Ти нізащо не потягнеш свій комп'ютер до друга для організації змагань по мережі?

Ти в основному витрачаєш гроші або на новий ігровий диск або на апгрейд комп'ютера?

Ти не користуєшся «мишкою» в 3D-action іграх?

Геймер, 0.5, 1,1,0.5, 2,1,0.5, 3,0,0.5, 4,0,0.5, 5,1,0.5, 6,0,0.5

Не геймер, 0.5, 1,0,0.5, 2,0,0.5, 3,1,0.5, 4,1,0.5, 5,0,0.5, 6,1,0.5

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

Нижче приводиться приклад бази знань, реалізованої за цим принципом. Ще більш яскравим прикладом є медична база, що розповсюджується разом із програмою.

"Визначення домашнього вихованця за ознаками."

Автор: Олексій Бухнин.

Питання:

Морда витягнута?

Крила є?

На погладжування по спині відповідає задоволеним воркотанням?

Живе в акваріумі (або іншому резервуарі з водою)?

Є лапи?

При зустрічі з хазяїном крутить хвостом?

Собака, 0.4, 1,0.7,0.5, 2,0,0.5, 3,0.01,0.5, 4,0,0.5, 6,0.9,0.05

Кішка, 0.4, 1,0.1,0.5, 2,0,0.5, 3,0.95,0, 4,0,0.5

Папуга, 0.2, 2,1,0.3, 4,0,0.5

Рибка, 0.1, 2,0,0.5, 4,1,0.1, 5,0,0.5

Тритон, 0.1, 2,0,0.5, 4,1,0.2, 5,1,0.5

Збереження бази знань

Щоб зберегти БЗ у файлі, потрібно натиснути кнопку «Зберегти базу знань» , або скористатися одноіменним пунктом меню «Файл» (для цього також призначена «гаряча» клавіша <F4>). Для збереження БЗ у зашифрованому вигляді потрібно задати як мінімум пароль на редагування, що запитується при завантаженні бази в редактор (при цьому для використання БЗ у Малій Експертній Системі пароль вимагатися не буде). Якщо був заданий також пароль на читання, то він буде запуватись при завантаженні БЗ в експертну систему. При заданні пароля на читання обов'язково повинен бути заданий і пароль на редагування, інакше при збереженні БЗ буде видане повідомлення про помилку. При відсутності обох паролів база знань зберігається у вигляді простого текстового файлу.

Перевірка бази знань

Щоб перевірити БЗ на помилки, можна скористатися кнопкою , або пунктом меню «Правка | Перевірити базу знань» (для цього також призначена «гаряча» клавіша <F3>). В результаті перевірки можуть бути видані такі повідомлення про помилку:

    Синтаксична помилка ( рядок, стовпець) – означає, що формат тексту у вікні введення не відповідає синтаксису бази знань.

    У правилі виведення посилання на неіснуюче свідчення (умову) ( рядок, стовпець) – таке повідомлення виникає, якщо в якомусь із правил виведення (третя секція файлу бази знань) зустрілося посилання на свідчення (умову), номер якого виходить за межі довжини списку свідчень (умов).

Після видачі повідомлення курсор автоматично переміщається в позицію (). Якщо помилок немає, то видається відповідне повідомлення про це із вказівкою кількості свідчень (умов) та можливих результатів.