Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компютерні системи штучного інтелекту.pdf
Скачиваний:
103
Добавлен:
23.02.2016
Размер:
585.35 Кб
Скачать

Приклад ЕС, що базується на продукційних правилах (Лабараторна робота 1 – 4)

Завдання: побудувати ЕС в області медичної діагностики.

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

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

Ідеальною буде така ситуація, при якій можливо в тій, чи іншій області надати ЕОМ у прийнятному для неї вигляді множину визначень, які вона зможе використовувати приблизно так само, як людина-експерт. Саме це і намагаються робити такі програми, як PUFF, DENDRAL, PROSPECTOR.

Потрібно мати на увазі, що більша частина інформації не є абсолютно точною, а носить ймовірнісний характер.

Складемо список можливих симптомів хвороби:

Симптоми

1

Симптом_1

2

Симптом_2

N

Симптом_N

Отриманий формат даних будемо використовувати для зберігання симптомів. Отже, система матиме змогу задати множину питань, що містяться у вигляді символьних рядків <Симптом_1>, <Симптом_2> і т.д.

Наприклад, Симптом_1 може означати рядок «чи Багато ви кашляєте?».

Тепер оформимо хвороби:

57

Хвороба

p

[j, py, pn]

1

Хвороба_1

p1

[j, py, pn]1

2

Хвороба_2

p2

[j, py, pn]2

N

Хвороба_N

pn

[j, py, pn]n

У такому вигляді ми будемо зберігати інформацію про хвороби.

Поле «хвороба» характеризує назву можливого результату, наприклад «Грип». Наступне поле — p — це апріорна імовірність такого результату P(H), тобто імовірність результату у випадку відсутності додаткової інформації. Після цього йде ряд повторюваних полів із трьох елементів. Перший елемент — j — це номер відповідного симптому. Наступні два елементи — P(E : H) і P(E : не H)

— відповідно імовірності одержання відповіді «Так» на це питання, якщо можливий результат вірний і невірний. Наприклад:

2010

Грип

0.01

(1, 0.9, 0.01); (2, 1, 0.01); (3, 0, 0.01)

Тут сказано: існує апріорна імовірність P(H)=0.01, що будь-яка навмання узята людина хворіє на грип.

Припустимо, програма ставить запитання 1 (симптом 1). Тоді ми маємо P(E : H)=0.9 і P(E : не H)=0.01, а це означає, що, якщо в пацієнта грип, то він у дев'ятьох випадках з десяти відповість «так» на це питання, а якщо в нього немає грипу, він відповість «так» лише в одному випадку зі ста. Очевидно, відповідь «так» підтверджує гіпотези про те, що в нього грип. Відповідь «ні» дозволяє припустити, що людина грипом не хворіє.

Так само і в другій групі симптомів (2, 1, 0.01). У цьому випадку P(E : H)=0.9, тобто, якщо в людини грип, то цей симптом повинен бути присутнім. Відповідний симптом може мати місце і при відсутності грипу (P(E : не H)=0.01), але це малоймовірно.

Питання 3 виключає грип при відповіді «так», тому що P(E : H)=0. Це може бути питання: «чи спостерігаєте ви такий симптом протягом більшої частини життя?».

Для того, щоб одержати гарні результати, необхідно провести дослідження, щоб встановити обґрунтовані значення для цих імовірностей. Одержання такої інформації — задача, у розв’язку якої комп'ютер також зможе істотно допомогти. Необхідно написати програму загального призначення, її основою буде теорема Байеса, що стверджує:

P(H : E) = P(E : H) * P(H) / (P(E : H) * P(H) +P(E : не H) * P(не H)).

58

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

Тому, повертаючись до хвороб, виявляється: P(H : E) = py * p / (py * p + pn * (1 - p)) .

У даному випадку ми починаємо з того, що Р(Н) = р для усіх хвороб. Програма ставить відповідне запитання і в залежності від відповіді обчислює P(H : E). Відповідь «так» підтверджує вищевказані розрахунки, відповідь «ні» теж, але з (1 – py) замість py і (1 – pn) замість pn. Зробивши так, ми забуваємо про це, за винятком того, що апріорна імовірність P(H) заміняється на P(H : E). Потім продовжується виконання програми, але з урахуванням постійного корегування значення P(H) у міру надходження нової інформації.

Описуючи алгоритм, ми можемо розділити програму на кілька частин.

Частина 1

Введення даних.

Частина 2

Перегляд даних на предмет апріорної імовірності P(H). Програма генерує деякі значення масиву правил і розміщує їх у масиві RULEVALUE. Це робиться для того, щоб визначити, які питання (симптоми) є найважливішими, і з'ясувати, про що запитувати в першу чергу. Якщо обчислимо для кожного питання RULEVALUE[I] = RULEVALUE[I] + ABS (P(H : E) – P(H : не E)), то одержимо значення можливих змін імовірностей усіх хвороб, до яких вони відносяться.

Частина 3

Програма знаходить саме важливе питання і задає його. Існує ряд варіантів, що робити з відповіддю: ви можете просто сказати: «так» чи «ні». Можете спробувати сказати «не знаю», — змін при цьому не відбудеться. Набагато складніше використовувати шкалу від –5 до +5, щоб виразити ступінь впевненості у відповіді.

Частина 4

Апріорні імовірності заміняються новими значеннями при одержанні нових підтверджуючих свідчень.

Частина 5

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

59

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

Література

1.Локазюк В. М., Поморова О. В., Домінов А. О. Інтелектуальне

діагностування мікропроцесорних пристроїв та систем: Навч. посібник для вузів. – Київ: “Такі справи”, 2001. – 286 с.

2.Архангельский В. И. и др. Нейронные сети в системах

автоматизации / В. И. Архангельский, И. Н. Богаенко, Г. Г. Грабовский, Н. А. Рюмшин. – К.: «Техніка», 1999. – 364с.

3.Д.Дюбуа, А.Прад. Теория возможностей. Приложения к представлению знаний в информатике. - М.: Радио и связь, 1990.

4.Л.Заде. Понятие о лингвистической переменной и его применение к принятию решений. - М.: Мир, 1976.

5.Интеллектуализация ЭВМ - // В уч. пос. Перспективы развития вычислительной техники в 11 кн. Кн. 2. - М.: Высшая школа, 1989.

6.Искусственный интеллект. Применение в интегрированных производственных системах. Под ред. Э.Кьюсиака. - М.: Машиностроение, 1991.

7.Искусственный интеллект. Справочник в 3-х томах. - М.: Радио и связь, 1990.

8.Е.Ю.Кандрашина, А.В.Литвинцева, Д.А.Поспелов. Представление знаний о времени и пространстве в интеллектуальных системах. - М.: Наука, 1989.

9.Р.Левин, Д.Дранг, Б.Эдельсон. Практическое введение в

технологию искусственного интеллекта и экспертных систем с иллюстрациями на Бейсике. - М.: Финансы и статистика, 1990.

10.Ж.-Л. Лорьер. Системы искусственного интеллекта. - М: Мир, 1991.

11.Ю.Я. Любарский. Интеллектуальные информационные системы. - М.: Наука, 1990.

12.Н.Г. Малышев, Л.С. Берштейн, А.В. Боженюк. Нечеткие модели для экспертных систем в САПР. - М.: Энергоатомиздат, 1991.

13.Д.Марселлус. Программирование экспертных систем на ТурбоПрологе. - М.: Финансы и статистика, 1994.

14.А.Н.Мелихов, Л.С.Бернштейн, С.Я.Коровин. Ситуационные советующие системы с нечеткой логикой. - М.: Наука, 1990.

60

15.Н.Нильсон. Принципы искусственного интеллекта. - М.: Радио и связь, 1985.

16.Э.В.Попов. Экспертные системы. - М:, Наука, 1987.

17.Э.В.Попов. Общение с ЭВМ на естественном языке. - М:, Наука, 1986.

18.Д.А.Поспелов. Моделирование рассуждений. - М.: Радио и связь, 1989.

19.Построение экспертных систем. Под ред. Ф.Хейес-Рота, Д.Уотермена, Д.Лената. - М.: Мир, 1987.

20.Системы управления базами данных и знаний. Справочное издание под ред. А.Н.Наумова. - М.: Финансы и статистика, 1991.

21.Б.Сойер, Д.Л.Фостер. Программирование экспертных систем на Паскале. - М.: Финансы и статистика, 1990.

22.К.Таунсенд, Д.Фохт. Проектирование и программная реализация экспертных систем на персональных ЭВМ. - М.: Финансы и статистика, 1990.

23.Техническая имитация интеллекта. - // В уч. пос. Робототехника и гибкие автоматизированные производства в 9 кн. Кн. 6. - М.: Высшая школа, 1986.

24.П.Уинстон. Искусственный интеллект. М.: Мир, 1980.

25.Уоссермен Ф. Нейрокомпьютерная техника : Теория и практика.М.: Мир. 1992.

26.Д.Уотерман. Руководство по экспертным системам. - М.: Мир, 1989.

27.Р.Шенк. Обработка концептуальной информации. - М.: Энергия, 1980.

28.Экспертные системы. Принципы работы и примеры. Под ред. Р.Форсайта.- М.: Радио и связь, 1987.

29.Дж. Элти, М. Кумбс. Экспертные системы. Концепции и примеры.

– М.: Финансы и статистика, 1987.

30.А.Н. Горбань, Д.А. Россиев. Нейронные сети на персональном компьютере. -Новосибирск, Наука, 1996.

61