Лабораторні роботи
Ознайомлення з експертними системами
Створення власної простої бази знань для вирішення задачікласифікації
Поняттяекспертної системи
Експертна система(ЕС) – це прикладна система штучного інтелекту, що використовує формалізованіемпіричні знання фахівців з деякої вузько спеціалізованої предметної області таздатна в межах цієї області приймати рішення на рівні експерта-професіонала.
Експертнимисистемами зазвичай заміняють експертів у небезпечних чи шкідливих умовах(наприклад, в умовах радіоактивного зараження) або для оперативної оцінкиситуації та ухвалення рішень, коли особиста участь експерта утруднена абонеможлива (наприклад, на кораблях далекого плавання).
Приклади сферзастосування ЕС:
— інтерпретаціяданих експериментів,
— виявленняхімічних і біологічних структур,
— прогнозуванняподій після природних або техногенних катастроф,
— діагностиканесправностей техніки або захворювань людини,
— плануванняцільових експериментів,
— пошуккорисних копалин,
— керуванняназемним транспортом,
— тощо.
Метою досліджень в області експертних систем єрозробка таких програм (пристроїв), що при вирішенні важких для експерта-людинизавдань одержують не гірші за якістю та ефективністю результати, в порівнянні зекспертними результатами. У більшості випадків ЕС вирішуютьважкоформалізовувані завдання або такі, що не мають алгоритмічного рішення.
Класифікаціяекспертних систем:
/>
Основні задачі,що ставляться для ЕС, описані нижче:
— Інтерпретація – аналіз спостережуванихданих чи ситуацій з метою визначення їх змісту чи опису. Прикладом ЕС такоготипу є SIAP, що використовується длявиявлення та ідентифікації різних типів океанських суден.
— Діагностика – класифікація та пошукнесправностей у живих чи неживих системах, що базуються на результатахінтерпретації. Прикладом діагностичної ЕС є ANGY, що допомагає здійснюватидіагностику та терапію звуження коронарних судин. Для діагностики помилок вапаратурі та математичному забезпеченні ЕОМ використовується ЕС GRIP.
— Моніторинг – порівняння спостережуванихвеличин чи ситуацій з опорними (критичними) точками плану та видача повідомленьпри відхиленні від плану; інший вид моніторингу – неперервний процес інтерпретаціїсигналів і видача повідомлень у ситуаціях, що вимагають втручання системи вищогорівня або людини. Приклади: допомогу диспетчерам атомного реактора забезпечуєЕС REACTOR; контроль аварійних датчиків на хімічному заводі – FALCON.
— Проектування – знаходження такої конфігураціїкомпонентів системи, що задовольняє цільовим умовам та множині проектнихобмежень. Прикладом є ЕС SYN для синтезу електричних ланцюжків.
— Прогнозування – проектування можливихнаслідків даної ситуації. Прикладами таких ЕС є: WILLARD для передбаченняпогоди, ECON для здійснення прогнозів в економіці, тощо.
— Планування – розробка послідовності дійдля досягнення множини поставлених цілей при заданих початкових умовах і часовихобмеженнях. Прикладами ЕС цього типу є система ISIS для планування промисловихзамовлень, MOLGEN для планування експериментів, тощо.
— Інструктування(навчання) –допомога в освітньому процесі для вивчення певної дисципліни. Системи навчання задопомогою ЕОМ діагностують помилки при вивченні певного предмету та підказуютьправильні рішення, а також – планують процес спілкування учителя з учнем, в залежностівід успіхів учня з метою передачі знань. Приклад: система PROUST для вивчення мовипрограмування Паскаль.
— Керування – керування поведінкоюскладного середовища або системи.
— Тестування – перевірка якості роботи задопомогою спеціальних тестів.
— Ремонт – виконання плануорганізації виправлення деякого виявленого дефекту.
Класифікація ЕСза зв'язком з реальним часом:
— Квазідинамічні ЕС інтерпретують ситуацію,що змінюється з деяким фіксованим інтервалом часу. Приклад: мікробіологічні ЕС,що знімають лабораторні виміри та покази щодо певного процесу раз в 4–5 годин (например,при виробництві лізину) та аналізують динаміку одержаних показників по відношеннюдо попередніх результатів.
— Статичні ЕС розробляються для предметнихобластей, для яких база знань та інтерпретовані дані не змінюються в часі, а єповністю стабільними. Приклади: діагностика несправностей в автомобілях.
— Динамічні ЕС працюють разом іздатчиками об'єктів у режимі реального часу з неперервною інтерпретацією даних,що надходять. Прикладами є керування гнучкими промисловими комплексами, моніторингв палатах реанімації, тощо.
Згіднокласифікації за типом ЕОМ, нині існують:
— ЕС для унікальнихстратегічно важливих задач на суперкомп’ютерах (таких, як Ельбрус, CRAY, CONVEXта інші);
— ЕС на ЕОМсередньої потужності;
— ЕС насимвольных процесорах та робочих станціях (SUN, APOLLO);
— ЕС наміні- та суперміні- ЕОМ (VAX, micro- VAX і т.д.);
— ЕС наперсональних комп’ютерах (IBM PC, MAC II та ініш).
Класифікація заступенем інтеграції з іншими програмами:
— АвтономніЕС працюють безпосередньо в режимі консультації з користувачем для вирішення специфічних«експертних» завдань, при чому немає необхідності залучати традиційні методи опрацюванняданих, моделювання, тощо.
— Гібридні ЕС– це програмні комплекси, що мають у собі стандартні пакети прикладних програм(наприклад, математичну статистику, лінійне програмування або системи керуваннябазами даних) і засоби маніпулювання знаннями.
Означенняпродукційної експертної системи
Продукційнасистема – це спосіб представлення знань у вигляді:
1. невпорядкованогонабору продукційних правил,
2. робочоїпам’яті,
3. механізмулогічного виведення типу «розпізнавання-дія».
Продукційніправилачасто називають ще продукціями. Продукція – це пара типу «умова-дія»,«ситуація-дія», «причина-наслідок», «умова-висновок» і т.д., що визначає однупорцію знань, необхідних для вирішення завдання. В умовній частині правила,природно, знаходяться умови, при яких виконується інша частина правила –частина дії.
Узагальненийзапис правила-продукції такий:
/>,
де /> – ідентифікатор />-продукції в />-наборі продукцій;/> – пріоритетправила продукції; /> – передумова застосовності ядрапродукції, що є предикатом, при виконанні якого активізується ядро продукції; /> – ядропродукції; />–дії та процедури, що повинні бути виконані після виконання ядра продукції.
Ядро продукціїможе бути детермінованим або недетермінованим, в залежності від того, чи вонозвучить як «Якщо />, то />» (детерміноване), чи як «Якщо />, то, можливо,/>»(недетерміноване). Тобто в деяких випадках при виконанні умови друга частинавиконується обов’язково, а в інших випадках – з певною ймовірністю. При чомувелиина цієї ймовірності може бути також визначена. Тоді ядро правила будезвучати як «Якщо />, то з ймовірністю /> реалізувати />».
Детермінованіпродукції можуть також бути однозначними або альтернативними. В другому випадкув правій частині ядра вказуються альтернативні можливості вибору, що оцінюютьсяспеціальними вагами коефіцієнтами вибору. В якості таких ваг можуть бутиймовірнісні, лінгвістичні, експертні оцінки, тощо. Наприклад: «Якщо />, то найчастішереалізовується />, а рідше – />».
У системі, щобазується на продукційних правилах, їх кількість визначає розмір бази знань. Достатньоскладні системи можуть використовувати бази знань, що містять більше, ніж 5000продукційних правил. Тому при складанні правил необхідно:
1. використовуватимінімально достатній набір умов для визначення продукційного правила,
2. уникатисуперечливих продукційних правил,
3. конструюватиправила, опираючись на структуру відповідної предметної області.
Робочапам'ятьмістить опис поточного стану об’єкта впроцесі міркувань, який співставляється з умовними частинами продукційнихправил з метою вибору відповідних дій при рішенні завдання. Якщо умова деякогоправила відповідає вмісту робочої пам'яті, то може виконуватися дія, пов'язанаіз цією умовою. Дії продукційних правил призначені для зміни вмісту робочоїпам'яті.
Механізм«розпізнавання-дія» (пошук за зразком). Поточний стан досліджуваної предметноїобласті відображений в робочій пам'яті у вигляді сукупності образів, кожен зяких представляється за допомогою фактів. Факти співставляються з умовнимичастинами продукцій та вибираються відповідні правила. Якщо факти співпали зумовами більше, ніж одного правила, то такі правила утворюють так звануконфліктну множину і називаються допустимими. Відповідно до обраного механізму вирішенняконфлікту вибирається та активізується одна із продукций конфліктної множини.Активація правила означає виконання його дії. При цьому змінюється вмістробочої пам'яті і далі все повторюється. Процес закінчується, якщо вмістробочої пам'яті не відповідає жодній з умов наявних продукційних правил.
Таким чином,процес логічного висновку, що базується на пошуку за зразком, складається із 4 кроків:
1. вибіробразу;
2. співставленняобразу з умовами продукцій та формування конфліктної множини правил;
3. вирішенняконфлікту;
4. виконанняправила.
Прикладпродукційної ЕС «Оцінювання студентів»
Відповідності міжстудентами та їх характеристиками наведені у таблиці:
Студент
Характеристики «Відмінник»
Рівень оцінок: «відмінно»
Інтереси: різноманітні
Спосіб життя: здоровий
Спорт: займається
Особисте життя: є «Ударник»
Рівень оцінок: «добре»
Інтереси: різноманітні
Спосіб життя: здоровий
Спорт: займається
Особисте життя: є «Трієчник»
Рівень оцінок: «задовільно»
Інтереси: різноманітні
Спосіб життя: не здоровий
Спорт: не займається
Особисте життя: немає «Двієчник»
Рівень оцінок: «не задовільно»
Інтереси: немає
Спосіб життя: не здоровий
Спорт: не займається
Особисте життя: немає
Далі знання,зібрані у експертів, представлені у формі продукційних правил, яку будерозуміти комп’ютер, умовно це буде виглядати так:
Правило(«Відмінник»):–
Так(Рівеньоцінок: «відмінно»),
Так(Інтереси:різноманітні),
Так(Спосіб життя:здоровий),
Так(Спорт:займається).
Так(Особистежиття: є).
Правило(«Ударник»):–
Так(Рівеньоцінок: «добре»),
Так(Інтереси:різноманітні),
Так(Спосіб життя:здоровий),
Так(Спорт:займається),
Так(Особистежиття: є).
Правило(«Трієчник»):–
Так(Рівеньоцінок: «задовільно»),
Так(Інтереси:різноманітні),
Ні(Спосіб життя:здоровий),
Ні(Спорт:займається),
Ні(Особистежиття: є).
Правило(«Двієчник»):–
Так( Рівеньоцінок: «не задовільно»),
Ні(Інтереси: є),
Ні(Спосіб життя:здоровий),
Ні(Спорт:займається),
Ні(Особистежиття: є).
В такому випадкуприклад діалогу з користувачем:
Скажіть: Рівеньоцінок: «відмінно». Це правда, чи ні?
Скажіть: Рівеньоцінок: «добре». Це правда, чи ні?
Скажіть: Рівеньоцінок: «задовільно». Це правда, чи ні?
Скажіть: Рівеньоцінок: «не задовільно». Це правда, чи ні?
Скажіть: Маєрізноманітні інтереси. Це правда, чи ні?
Скажіть: Ведездоровий спосіб життя. Це правда, чи ні?
Скажіть:Займається спортом. Це правда, чи ні?
Скажіть: Маєособисте життя. Це правда, чи ні?
Описпрограми «Мала експертна система»
Програма єприкладом простої експертної системи, що використовує байесівскую системулогічного виведення. Вона призначена для проведення консультації з користувачему певній прикладній області (на яку налаштована завантажена база знань) з метоювизначення ймовірностей можливих наслідків, використовуючи для цього оцінкиправдоподібності деяких передумов, одержані від користувача.
В якості прикладурозглянемо завдання визначення ймовірностей наявності різних захворювань упацієнта. Програма в цьому випадку виступає в ролі лікаря (експерта), що ставитьпацієнту запитання щодо симптомів та на основі одержаних відомостей ставитьдіагноз. При цьому бажано не мучити пацієнта зайвими запитаннями, а ставитилише найважливіші, від відповіді на які в більшій мірі залежить остаточневстановлення хвороби. Саме так і працює експертна система. Після відповіді начергове запитання система сама визначає, які запитання з решти стають найбільшактуальними в даний момент. У такий спосіб досягається найшвидше одержаннярезультату при мінімальній кількості запитань.
Використаннябайесівской системи логічного виведення означає, що інформація, яку опрацьовуєНС, не є абсолютно точною, а носить ймовірнісний характер. Користувач можевідповідати на запити системи з різним ступенем впевненості. В свою чергу,система видає результати консультації у вигляді ймовірностей настання тих чиінших наслідків (висновків).
Початок роботи
Для початкуроботи необхідно завантажити з файлу базу знань (БЗ), що містить інформацію з тієїприкладної області, в якій потрібно одержати консультацію. Це можна зробити, натиснувшикнопку «Завантажити базу знань» /> або за допомогою одноіменногопункту меню «Файл» (для цього також призначена «гаряча» клавіша ).База знань, що завантажується, може бути зашифрована та вимагати пароль начитання. У цьому випадку потрібно ввести пароль або скасувати завантаження БЗ.Якщо не виникло помилки при завантаженні, можна натиснути кнопку «Початиконсультацію» («гаряча» клавіша або пункт меню «Консультація |Почати консультацію»).
/>
Рис. 1.Робоче вікно програми «Мала експертна система» v2.0після її відкриття.
Після початкуконсультації в правій частині вікна (область запитів) з'являється першезапитання системи (назва вислову чи умови, ступінь істинності якого системабажає довідатися). Користувач може давати відповіді за двома схемами. По-перше,можна задавати згідно певної шкали коефіцієнт впевненості (наприклад, від -5,що означає «точно ні», до +5 – «точно так»). По-друге, користувач може ввестиймовірність істинності вислову (число від нуля до одиниці). В обох випадках можнавибирати будь-які проміжні значення. Перемикання між варіантами відповідіздійснюється за допомогою кнопки />, розташованої ліворуч відзапрошення на введення відповіді, або «гарячою» клавішею .
Ці два варіантибагато в чому відрізняються. Значення коефіцієнта впевненості («КУ») вибираєтьсяпрактично інтуїтивно, в той час як ймовірність може бути одержана з досвідівабо обчислена математично. У випадку вибору за шкалою коефіцієнта впевненості,є можливість відповісти «Не знаю», ввівши число, що відповідає середині шкали(наприклад, нуль, якщо шкала від -5 до +5). Така відповідь ніяк не вплине нарезультат консультації. Якщо ж вводити відповіді за допомогою ймовірностей,такої можливості сказати «не знаю» практично немає, адже значення ймовірностіістинності вислову, що не впливає на результат консультації, в кожному випадкубуде інше. Це дуже важливе розходження між двома способами відповіді.
Більш докладно про вибірзначення коефіцієнта впевненості.
Діапазон зміни коефіцієнтавпевненості задається у вікні налаштувань, що дозволяє змінити деякі параметриінтерфейсу та відкривається після натискування відповідної кнопки />, через пунктменю «Наалштування» або за допомогою гарячої клавіші . Нехай встановлені такі значення: -5 (Ні), 0 (Не знаю), +5(Так). Тоді користувачеві потрібно відповісти за шкалою від -5 до +5, оцінюючиправдоподібність істинності вислову: ввести +5, якщо твердо впевнений вістинності, та -5, якщо переконаний в хибності вислову, і т.д. Також можнавводити будь-які проміжні значення, наприклад, +4.5 (знак «+» вводити необов'язково) або -0.1.
Вплив відповідіна результати консультації буде тим більшим, чим більш визначеною булавідповідь (тобто чим ближче значення, введене користувачем, до однієї ізграниць діапазону зміни коефіцієнта впевненості). В загальному випадку діапазонзміни «КУ» може бути іншим, що не обов'язково проходить через нуль, але принципвибору відповіді такий самий.
Більш докладно про введенняймовірності істинності вислову
Можливо, першийспосіб введення відповіді є простішим для більшості людей, проте в деякихвипадках більше виправданим є використання ймовірності істинності вислову.Приклад такого випадку: необхідно оцінити істинність того, що бутерброд завждипадає маслом вниз. Проводимо 100 випробувань із підкиданням бутерброда і підраховуємокількість випробувань, коли він падав маслом вниз. Потім ділимо отримане число(наприклад, 63) на кількість всіх випробувань (100). Одержаний результат можнавводити у відповідь на запит системи (0.63).
Ймовірністьістинності вислову може бути одержана з певних таблиць, за результатамистатистичних досліджень, обчислена математично. Зрештою, користувач може просторобити припущення про її значення (хоча у цьому випадку більше виправданим будевикористання коефіцієнта впевненості).
Після натисканняклавіші (або кнопки «Введення» праворуч від вікна введеннявідповіді) оброблений вислів міститься в список, розташований вище областізапиту, і виділяється сірим кольором. Користувач може виділити будь-які висловив цьому списку й скасувати їх обробку, натиснувши кнопку «Скасувати обранівідповіді» (пункт меню «Консультація | Скасувати обрані відповіді» або«гаряча» клавіша ). Одержуючи від користувача відповіді,система коректує ймовірності можливих наслідків консультації, що відображаютьсяв лівій частині верхньої половини вікна. Консультацію можна припинити вбудь-який момент часу, натиснувши кнопку «Скидання результатів» />(на яку заміняєтьсякнопка «Почати консультацію») або вибравши відповідний пункт меню«Консультація» («гаряча» клавіша ).
/>
Рис. 1.Робоче вікно програми «Мала експертна система» v2.0після початку консультації.
Результатиконсультації.
Метоюконсультації є визначення ймовірностей можливих результатів(наслідків) (наприклад,наявності у пацієнта грипу при використанні медичної бази знань). Списокрезультатів із вказанням поточних значень ймовірностей показаний у лівійчастині верхньої половини вікна програми. Ширину цієї області можна збільшитиабо зменшити, пересунувши роздільник, що відокремлює її від області обробленихсвідчень. Для більше зручного подання результатів їх можна впорядкувати або заназвами результатів (за алфавітом), або ж у відповідності до значень їхпоточних ймовірностей. Це робиться за допомогою радіокнопок внизу під областювиведення результатів.
Ймовірності результатівможуть бути виражені у відсотках. Перемикання формату показу результатівздійснюється у вікні налашутвань, де також можна зробити вибір щодокласифікації результатів на достовірні й недостовірні (це впливає тільки напоказ результатів у вікні: достовірні виділяються темно-червоним кольором,недостовірні – сірим, а інші залишаються чорними).
Після того, якбуде оброблений останній значущий вислів (умова), система підіб'є підсумок – видастьчисло оброблених свідчень, а ймовірності результатів у списку набудуть остаточнихзначень. Тепер можна зробити висновок про можливість настання того чи іншого результату(наслідку) або дізнатись про найбільш ймовірний висновок після консультації.
Після завершенняконсультації або ще в процесі можна зберегти інформацію про її проходження утекстовому файлі, натиснувши кнопку «Зберегти протокол» або вибравшиодноіменний пункт меню «Файл» («гаряча» клавіша ). До протоколу будезаписаний поточний час, опис бази знань, список опрацьованих свідчень тарезультати консультації в тому порядку, в якому вони представлені у вікніперегляду результатів.
Вилучення деяких питань вході консультації.
У деяких випадкахможе бути заздалегідь відомо, що немає відомостей щодо тих чи інших свідчень(запитань системи). Тому корисно відключати їх опрацювання на певний час(можна, звичайно, відповідати «Не знаю», на відповідні запити, що приведе дотого ж результату).
У нижній половиніголовного вікна програми є два списки свідчень (запитань): ліворуч – активних,праворуч – відключених. Між списками розташована панель керування, що дозволяєпереміщати вислови з одного списку в інший, виділяти елементи в кожному списку,вибирати спосіб сортування. Відключати й робити активними висловами можна вбудь-який момент (навіть під час консультації).
Опис програми«Редактор баз знань».
Важливоюперевагою програми «Мала Експертна Система» є можливість створення тавикористання власної бази знань. Щоб полегшити це завдання, був написанийспеціальний редактор, за допомогою якого можна створити власну або модифікуватиіснуючу базу знань.
Формат бази знань.
База знань є текстовимфайлом (який також може бути зашифрованим), що включає три секції з такою структурою:
Опис бази знань,ім'я автора, коментар і т.д.
(можна в декількарядків, загальна довжина яких не повинна перевищувати 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
Збереженнябази знань
Щоб зберегти БЗ уфайлі, потрібно натиснути кнопку «Зберегти базу знань» />, або скористатися одноіменнимпунктом меню «Файл» (для цього також призначена «гаряча» клавіша ).Для збереження БЗ у зашифрованому вигляді потрібно задати як мінімум пароль наредагування, що запитується при завантаженні бази в редактор (при цьому длявикористання БЗ у Малій Експертній Системі пароль вимагатися не буде). Якщо бувзаданий також пароль на читання, то він буде запуватись при завантаженні БЗ векспертну систему. При заданні пароля на читання обов'язково повинен бутизаданий і пароль на редагування, інакше при збереженні БЗ буде видане повідомленняпро помилку. При відсутності обох паролів база знань зберігається у виглядіпростого текстового файлу.
Перевіркабази знань
Щоб перевірити БЗна помилки, можна скористатися кнопкою />, або пунктом меню «Правка |Перевірити базу знань» (для цього також призначена «гаряча» клавіша). В результаті перевірки можуть бути видані такі повідомлення пропомилку:
1. Синтаксичнапомилка (/>рядок,/> стовпець)– означає, що формат тексту у вікні введення не відповідає синтаксису базизнань.
2. У правилівиведення посилання на неіснуюче свідчення (умову) (/>рядок, /> стовпець) – таке повідомленнявиникає, якщо в якомусь із правил виведення (третя секція файлу бази знань)зустрілося посилання на свідчення (умову), номер якого виходить за межі довжинисписку свідчень (умов).
Після видачіповідомлення курсор автоматично переміщається в позицію (/>). Якщо помилок немає, товидається відповідне повідомлення про це із вказівкою кількості свідчень (умов)та можливих результатів.