Способи логічного виводу

          Машини виводу виконують власне вивід і управління виводом. Для цього використовуються факти і правила, які наповнюють базу знань, а також з'являються в процесі логічного виводу і заносяться в базу даних. Власне вивід заснований на одному з 2-х простих принципів:

modus-ponens X-->y (принцип міркувань): “з істинності Х слідує істинність затвердження Y”;

modus-tollens  (логічний принцип): “якщо висновок істинний, то істинно і умова X”. 

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

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

При управлінні виводом повинен бути реалізований хоч один спосіб управління виводом. Спосіб управління виводом визначається 2-мя ознаками:

1.   звідки починається процес міркувань;

2.   як поступати в точках галуження рішень.

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

У ЕС і прямому і зворотному ланцюжках міркувань можуть міняти свій напрям. 

Зворотний ланцюжок міркувань простіше реалізувати (реалізована в інтерпретаторі Prolog). 

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

Розглянемо задачу:

1.   Людина (M), вовк (W), коза (G) і капуста (C) знаходяться на лівому березі - початковий стан.

2.   Вовк (W), коза (G) і капуста (C) знаходяться на правом бережу - кінцевий стан.

 Треба перебратися на інший берег на човні.

1.         Човен перевозить тільки двох.

2.         Не можна залишати на одному березі козу і капусту, козу і вовка.

 

             

Простір рішень складається з безлічі станів і набору операторів: 

 

 

Л

А

П

ОП

Л

В

П

1

W|G|C|M

 

M|G—>

W|C

M|G

2

W|C

M|G

<—M

W|C|M

G

3

W|C|M

G

M|C—>

W

M|G|C

4

W

M|G|C

<—M|G

W|G|M

C

5

W|G|M

C

M|W—>

G

M|W|C

6

G

M|W|C

<—M

G|M

W|C

7

G|M

W|C

M|G—>

 

W|G|M|C

8

W|C|M

G

M|W—>

C

W|G|M

9

C

W|G|M

<—M|G

C|G|M

W

10

C|G|M

W

M|C—>

G

C|W|M

 

 

 

 

 

 

 

 

 

 

Л - лівий берег, П - правий берег.

Ліва частина правила А називається підціллю або поточною метою. Ланцюжок міркувань закінчується там, де підціль співпадає з початковим станом. 

Алгоритм зворотного ланцюжка:

1.         Зробити кінцевий стан поточною підціллю;

2.         Відшукати правила, висновок яких співпадає з поточною підціллю;

3.         Якщо знайдене правило приводить до початкового стану, то знайдено рішення;

4.         Інакше умову правила робимо поточною підціллю і переходимо до пункту 2.

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

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

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

Всі відповіді на питання залишаються в базі даних

Таким чином питання задаються експертною системою у міру просування по ланцюжку міркувань. 

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

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

    

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

 

При пошуку завширшки - немає послідовності, перескакують з однієї теми на іншу. 

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

Прямий ланцюжок міркувань

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

З правил в базі знань вибираються ті, умови яких співпадають з поточною підціллю. Виконання цих правил приводить до нової підцілі. 

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

  

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

Часто ситуація виникає в ЕС, призначених для оптимального планування рішень. В цьому випадку мета не визначена, а є частиною проблеми. 

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

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