Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системи штучного інтелекту.doc
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
2.56 Mб
Скачать

9. Як працює Пролог

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

(1)Для будь-якогоХ, якщо X в Чернігівській області, тоді X в Україні (2) Остер в ЧернІгІвськІй_ області

Такі набори називають базою знань. Будемо називати елемент (1) правилом, оскільки він дає нам можливість логічно вивести з однієї порції інформації іншу, а елемент (2) — фактом, оскільки він не залежить від іншої інформації. Вверніть увагу, що правило містить "якщо", а факт — нІ. Факти I правила — два типи речень. Факт не обов'язково має бути істиною з реального життя. Якщо ви скажете, що місто Остер є на Полтавщині, Пролог вам повірить.

Припустимо, ми хочемо знати, чи знаходиться місто Остер в Україні. Зрозуміло, що (1) і (2) можна зв'язати і відповісти на це запитання. Але як це зробити на комп'ютері? Треба виразити (1) і (2) як визначення процедур:

  1. Щоб довести, що X в Україні, треба довести, що X в Чернігівській області.

і

  1. Щоб довести, що Остер в Чернігівській області, нмого не треба робити.

Поставимо запитання у вигляді такої команди:

Довести, що Остер в Україні.

Це викликає процедуру (Ґ), яка, в свою чергу, викликає процедуру (2'). Остання повертає відповідь "так".

Сиогемн штучшого іпсжпу. Gjpoea НЛ1

Пролог ми власні позначення для представлення знань. Наша проста база знань може бртм представлена у ПролозІ таким чином:

а унраїм( W-- в_чврмІг1всьнІЙ_о6ласті (А) а_чарнМасьиій_області (ocrep) тут а.украМ та а_чвриІгівськІЙ_області — предикати, якІ визначають окремі особливості. Предикат може маги будь^ку фіксовану кількість аргументів (параметрів). Одномісний предикат показус властивість одного поняття, тоді як двомісні описукггь взаємоза'яаокмІждвома поняттями.

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

На сьогоднішній день є багато різних реалізацій Прологу. Прикладом можуть служити Турбо Пролог, Мікро Пролог, Arity Prolog і ALS Prolog на IBM PC та Quintus Prolog на робочих станціях Sun, SWI Prolog, LPA Prolog, Cogent (Amzl) Prolog та Expert Systems Llmltedb Public Domain Prolog-2.

Протягом багатьох років стандартом дечракто для Прологу була мова, описана Нлоксіном (Clocksln) та МеллІшом (Mellish) в їх популярному підручнику "Програмування на ПролозГ ("Programming In Prolog"^ Це, практично, мова, яку вживав ще на DEC-10 Уорен та його колеги наприкінці 70-х років, яку часто називають единбурзькою, або Edinburg Prolog, або DEC-10 Prolog. Більшість комерційних версій Прологу розробляються так, щоб бути сумісними з цією версією.

У 1995 p. Міжнародна організація стандартизації (ISO) опублікувала міжнародний стандарт для мови Пролог (Scowen 1995). ISO Пролог дещо схожий на Edlnburg Prolog, алездещо розширеними можливостями.

Нагадаємо також, що такІ версії, як Turbo Prolog (PDC Prolog), Colmerauer's Prolog-l| та Prolog III, Turbo Prolog мають можливість декларувати типи даних. Як результат - програми можуть виконуватись швидше, але це дуже заважає їм перевіряти та модифікувати себе. ColmeraueYs Prolog-ll та Prolog-lll — мови обмеженого логічного програмування, тобто вони дозволяють накладати обмеження на значення змінних перед тим, як присвоювати їм якІсь значення. Це робить доступним використання ноюї техніки.

ТЕМА: ПРОДУКШЙНІ МОДЕЛІ

  1. Характеристика продуїщійних моделей

ПродукцШною називається модель знань, в якій база знань складається із сукупносгілродукцІй, тобто правил "Якщо А, тоді В".

Термін "продукція" був введений американським математиком E. Постом. Як і логічні, продукційні моделі насамперед концентруються на дедуктивному виведенні, але e менш формалізованими і тому більш наочними, гнучкими і зручними. На сучасному етапі найбільш вживаним формалізмом для задання знань в експертних системах є саме продукційні моделі.наведемо кілька типових прикладів продукцій

Приклад 8.1. Уявіть інформаційну акспсртну систему для зоологічного парку. Ця система повинна на основі заданого опису деякої тварини відповідати на запитання, що цв за тварина. Продукції такої системи можуть мати вигляд:

Якщо тварина e хижаком, має жовто-коричневий колір та темнІ смуги, то це —

тигр.

Якщо тварина e птахом, вона не лІтає, воно плаває, мав чорно-білий колір, то це пІнгвІн.

Наведені продукції описують імплікації (з істинності А випливає істинність 8).

Приклад 8.2, Нехай ідеться про систему керування деяким гехнологічиим процесом. Продукції можуть мати такий вигляд: Якщо температура перевищує 200 градусів, ввімкнути систему охолодження. Такі продукції задають умовні операції (якщо справедлива умова А, виконати дію в).

Приклад 8.3. Типовими продукціями e правила підстановки (замінити А на В). Прикладом можуть послугувати правила підстановки формальним граматик.

База знань, організована як сукупність продукцІй, разом з механізмом керування продукціями, утворює продукцІОну систему.

Дамо формалізованіше визначення продукції (129]:

П родукцІйною моделлю називається подання знань у вигляді сукупності

продукцій. Продукція визначається як вираз такого вигляду.

і. (0 QiP;A*>B.N.

і де (I) — Ім 'я продукції, за допомогою якого вона виокремлюється серед ycki множини продукцІО; Qсфера застосування продукції; предмет-

н а область, до якої вона належить; P —умова застосування продукції,' А *>

В — ядро продукції; інтерпретація залежить вІд конкретної ситуації; N — постумова продукції, постулює процедури, якІ необхідно виконати після реалізації ядра.

Як приклад можна навести таку продукцію:

(БС-29) Банківська сфера; клієнт має рахунок у банку на достатню суму; якщо клієнт бажає зняти певну суму грошей, то вІн повинен написати ордер; внести зміни до бази даних.

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

Популярність продукційних моделей зумовлена такими їх позитивними рисами

[129]:

  1. Більшість людських знань може бути записана у вигляді продукцій.

  2. Модульність; продукції, за рідким винятком, є незалежними, і внесення або

Системи штучного штслскту. Сурова R^

вилучення окремих продукцій, як правило, не приводить до змін в інших продукціях.

  1. У разI необхідності продукційнІ системи можуть реалізувати будь-якІ алгоритми

  2. ПродукцГі можуть бути порівняно легко розподілені за сферами застосування,5 Дуже перспективним є об'єднання продукційних систем і мережних завдань.

  1. Продукції можуть працювати паралельно та асинхронно, тому їх зруцНо реалізовувати на основі багатопроцесорних комплексів.

До основних проблем, пов'язаних з використанням продукційних си< гем, можна вЩнести складність перевірки несуперечливостІ та коректності функціонування.

.2. Продукції та мережі виведення

Системи продукцій часто буває зручно зображати у вигляді графів, якІ дістали назву мереж виведення.

Мережі виведення будуються так. Вершини графу відповЩаютьумо- вам I дІям, що входять до лІвих I правих частин продукцій. Якщо в продук- цІннІй системі є продукція А —> В, то від вершини А до вершини В йде орієн­тована дуга. Якщо ж є продукція А, В —> C, то дуги (АС) та (BC) зв'язані підношенням I (кон'юнкції).

Так, для продукційної системи

A ~) C

B-^C

B,F^L

F^Q

D-c~*G I мережа виведення має такий вигляд:

f

Рис. 8.1. Приклад мережі виведення Детальніші правила побудови мереж виведення можна знайти в [175]. На основі аналізу мереж виведення стає наочнішим і очевиднішим те, що відповідь на запит користувача можна отримати шляхом зведення задачі до підзадач. Так, щоб вирішити задачу G, необхідно вирішити I задачу I), I задачу C; вирішення задачі C, в свою чергу, потребує вирішення або або В. Таким чином, мережа виведення для кожної задачі є структурою, близькоюдо традиційних 1-АБО-графів.

3. Типова схема роботи експертної системи на базі продукцій На рис. 8.2 показана узагальнена схема типової експертної системи, побудованої на основІ продукційних правил:

Рис. 8.2. Типова схема роботи продукційної системи

До робочої пам'яті заносяться факти, що задаються користувачем, а також його запити. Логічний блок зіставляє цю інформацію з правилами, що зберігаються в базі знань, і застосовує ті правила, які можуть бути зіставлені із вмістом робочої пам'яті. Наприклад, якщо в базі знань є продукції л^впв^с, т0 вони можугь бути виконані, коли користувач ввів дані про Істинність фактуА

4 Пряме та зворотне виведення

Існують дві основні стратегії логічного виведення в продукційних системах:

  • пряме;

  • зворотне.

Пряме виведення на основі наявних правил передбачає аналіз: 1) усІх наслідків з фактів, 2) наслідків з наслідків і т. д. Процес продовжується, поки не буде встановлено істинність або хибнкггь запиту користувача.

Наприклад, нехай є продукції* в8 ** с; користувач оголо

сив про Істинність факту A I спитав про Істинність C. Ланцюжок прямо го виведення матиме вигляд: з А виводиться В, з В виводиться C, отже, С—Істинне.

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

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

У нашому прикладі ланцюжок зворотного виведення матиме вигляд: "C виводиться з В, В виводиться з А, А Істинне, отже, і C істинне".

Як і у випадку прямого виведення, зворотне виведення може вимагати повторень у разі невдалої спроби, і тому є стратегією перебору

.Системи штучмио інтелекту Cypo*e|n

Зворотне виведення тІсно пов'язано з резолюцією, зокрема лінійною, | прологівським механізмом виконання програм.

.5. Типові дисципліни виконання продукцІй

Передусім ядра продукцІй прийнято поділяти на детерміновані ( небетермІнованІ. У детермінованих продукціях при виконанні лівої частини заожди виконується і права. У недетермінованих продунцІях права частина при виконанні лів0і виконується необов'язково. Можливі, наприклад, такі інтерпретації недетермІнойаних продукцІй: "Якщо А то можливе 8“; або "Якщо А то В з певною вірогідністю".

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

Можна виокремити такІ режими:

  • режим негайного виконання;

  • режим формування конфліктного набору.

У режимі негайного виконання, якщо знайдена перша-лІпша продукція, саме вон виконується невідкладно.

У режимі формування конфліктного набору знайдені готові продукції Не виконуються відразу, а включаються до конфліктного набору — списку продукЩй готових до виконання. Лише після завершення формування конфліктного набору відбувається вирішення конфлікту, тобто вибір зі списку готових продукцІй ЯКОЇСЬ OflHfej Інша назва конфліктного набору "фронтготовихпродукцІй ".

Розглянемо деякі проблеми, пов'язані з конфліктними наборами.

Нехай маємо продукції:

1)4=ȣ

» 2)A=*C,

І А істинне.

ТодІ обидві продукції готові до виконання і утворюють конфліктний набір.

Якщо ядра продукцІй Інтерпретуються як Імплікації, проблема є менш гострою, Продукційна система є чистодекларативною. Після застосування 1),тобто виеедення5,д залишається Істинним, I ми завжди можемо використати продукцію 2). Таким чином порядок застосування продукцІйних правил може впливати лише на час роботи системи але не на істинність висновків.

Зовсім інша ситуація виникає, якщо ядра продукцІй інтерпретуються як "виконати таку-то дію". Тоді після виконання 1) ситуація може змінитися: А може перестати буги істинним, і тоді продукція 2) може стати недосяжною. Тому, якщо насправдІтреба було вибирати C, вибір встає помилкою, яку не завжди можна виправити.

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

Розрізняють також централізоване I децентралізоване керування про-дукціями,

За централізованого керування продукційна система має центр керування, який вирішує, коли має спрацювати та чи інша продукція.

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

74

( WMMH M іуЧИОМ? OTMM' ТЧ. C>*M* )tH різних продукцій. На ній продукції, що працюють парвлельно, знаходять іітформацяо. ще може Ініціювати fX запуск. Туди ж вони пишуть інформацію, що мож* вияеитжь корисною для інших продукціЙ,

Зрозуміло, що "класних дошок" може бути кілька; можуть бути введені леемі Ієрархії "класних дошок" I т. n. Огляд різних архітектур "класних дошок" можна зиаДти в (305).

%. Основні стратегії вирішення конфліктів у продукіцйиих системах

Очевидно, що найзагальнішим способом керування системою продукцій c комплексне планування її роботи, тобто прийняття рішень на основі аналізу scix Можливих дій та їх наслідків з погляду мети, що стоїть перед системою. Але зрозуміло, що вказаний принцип рІдко може бути застосований у повному обсязі, насамперед через експоненційне зростання можливих варіантів розвитку подій.

Існують стратегІЇ керування вирішенням конфліктів, мета яких — намагатися уникнути експоненційного вибуху. Подібні стратегії здебільшого можуть бути охарактеризовані як евристичні. В [129] описані деякі стратегії керування виконанням продукцій.

Принцип "стосу книг". Ґрунтується на Ідеї, що найкориснішою • та продукція, яка використовується найчастіше (так само, як у стосІ книг ті, якІ найчастіше користуються попитом, як правило, опиняються зверху). Відповідно, з фронту готових продукцій вибирається продукція з максимальною частотою використання. У (129) відмічено, що керування за принципом "стосу книг” доцільно застосовувати, якщо продукції відносно незалежні одна від одної, наприклад, коли кожна з них являє собою правило "ситуація А *> ДІя В".

Принцип найдовшої умови. 3 фронту готових продукцій вибирається та, для якої стала справедливою наЙдовша умова виконання. ІдеологКжою основою цього принципу є таке міркування, що часткові правила, застосовані до вузького класу ситуацій, є важливішими, ніж загальні правила для широкого класу ситуацій. Наприклад нехай єдві продукцІЇ:

  1. Якщо А — nmax, mo А лІтае.

  2. Якщо А — птах і А — пІнгвІн, то А нелІтае.

Якщо відомо, що А — пІнгвІн, то за принципом найдовшої умови слід вибирати (2),

У [129] відмічається, що принцип найдовшої умови доцільно застосувати, якщо продукції прив'язані до типових ситуацій, зв'язаних відношенням "часткове — загальне". До цього можна додати, що цей принцип заслуговує на особливу увагу при аналізі винятків. Так, у нашому прикладі правило (2) є винятком з правила (1); якби ми були впевнені, що (1) не має винятків, ми могли б застосувати це загальне правило у будь-якій ситуації. Легко бачити очевидні аналогії принципу найдовшої умови з принципом блокування наслідування, описаним у п. 5.6.

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

.Системи штучного інтелекту: Cypo*aHi Принцип "класноїдошки". Конфлікти вирішуються на основі обміну Інформаціє^ використанням "класної дошки". Застосування "класної дошки" часто комбінується 3 застосуванням метапродукцІй.

Принцип вибору за пріоритетом. Кожній продукції надається пріоритет, щ0 вЩображаєїїважливІсть. ЦІ пріоритети можуть бути різними для кожного типу ситуац^ а також статичними і динамічними. Динамічні пріоритети змінюються з часом I можуте відображати, наприклад, ефективність використання продукцій у минулому або Час перебування продукції у фронті готових продукцій. Аналіз часу знаходження продукцц фронті готових продукцій цікавий тим, що на його основі можна дІйти дІаметральц0 протилежних висновків. 3 одного боку, система керування продукці-ями може з часом підвищувати динамічний пріоритет, щоб будь^жа продукція колись була обов'язком виконана. 3 Іншого боку, система керування може дійти висновку, що, якщо продущя досі не виконувалась, то вона взагалі не потрібна, і, відповідно, не підвищити ft пріоритет, а, навпаки, знизити.

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

ТЕМА; ЛОГІЧНЕ ВИВЕДЕННЯ ЗА НЕДОСТОВІРНИХ ЗНАНЬ