Представяне и използване на знания с помощта на продукционни правила в системата guru



Дата24.07.2016
Размер90.04 Kb.
#4325
ПРЕДСТАВЯНЕ И ИЗПОЛЗВАНЕ НА ЗНАНИЯ С ПОМОЩТА НА ПРОДУКЦИОННИ ПРАВИЛА В СИСТЕМАТА GURU



  1. ОБЩИ СВЕДЕНИЯ ЗА GURU/ИНТЕР-ЕКСПЕРТ

GURU е среда за създаване на експертни системи, предназначени предимно за бизнес приложения. Прототипът й е създаден около 1985 г. от Micro Data Base Systems, Inc. Тя позволява интегриране на стандартното ПИЗ с помощта на продукционни правила със софтуер, ориентиран към бизнеса (релационни СУБД, електронни таблици, статистически анализ, генериране на отчети, построяване на диаграми и др.). Поддържа четири нива на потребителски интерфейс (процедурно програмиране; директен команден език; общуване с помощта на система от менюта; ОЕЕ, предназначен за формиране на заявки на SQL). За правилата и променливите могат да се задават фактори на достоверност, като системата предлага 16 различни алгебри за пресмятане на тези фактори.

Системата GURU е програмирана на езика C. Интер-Експерт е българска адаптация на GURU, разработена в БСНИПИ "Интерпрограма" и регистрирана в НППФ през 1989 г.



  1. СТРУКТУРА НА ПРАВИЛАТА В СИСТЕМАТА GURU/ИНТЕР-ЕКСПЕРТ

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

Когато се определя (формулира) ново правило, най-напред трябва да му се определи име. Името на правилото трябва да е идентификатор, който съдържа не повече от 8 знака.
2.1. Условие (предпоставка) на правилото

Предпоставката на правилото може да бъде произволен логически израз.

Примери:

SALES > QUOTA ("просто" сравнение)

SALES>QUOTA*1.2 & REGION="EAST" & CLIENTS<40 (съставен логически израз)

По-точно, освен константи предпоставката на правилото може да включва още: променливи (работни променливи - точни, елементи на масиви, размити; променливи на полета; променливи на клетки; помощни променливи; променливи на средата), функции (числови, символни, логически), оператори, съпоставяния по образец (еталон).


2.2. Заключение на правилото

Заключението на дадено правило съдържа желаните действия, които системата трябва да извърши, ако предпоставката е вярна. Тези желани действия могат да бъдат поредица от една или няколко команди на GURU (предшествани от THEN). Най-често това са команди за присвояване или вход/изход.

Примери за действия, съдържащи команди за присвояване:

LET TARGET = QUOTA*1.08 (действието съдържа само една команда за присвояване)

LET TARGET = 25782; LET COMRATE = 0.028;

LET BASE = BASE + TARGET*1.08 (действието съдържа три команди за присвояване)


2.3. Незадължителни елементи (параметри) на правилото

Освен име, предпоставка и заключение всяко правило може да има още и следните незадължителни характеристики:

- приоритет;

- стойност (цена);

- коментар;

- действия за готовност (подготовка);

- списък на необходимите променливи;

- списък на променящите се променливи;

- аргументация (обосновка);

- стратегия за проверка;

- максимален брой активирания.

2.3.1. Приоритет - Priority

Това е цяло число между 1 (най-нисък приоритет) и 100 (най-висок приоритет), което означава (определя) приоритета на правилото. Относителните приоритети на правилата могат да бъдат използвани за управление на процеса на вземане на решения на системата.

2.3.2. Стойност (цена) - Cost

Това е цяло число между 1 (най-ниска цена) и 100 (най-висока цена), което определя стойността (цената) на действието (заключението) на правилото. Относителните стойности на действията на правилата могат да бъдат използвани за управление на процеса на вземане на решения от системата.

2.3.3. Коментар - Comment

Коментарът съдържа текст до 255 знака, който се появява, когато правилото е изведено с помощта на командата BUILD. Коментарът се показва на разработчика на експертната система, основана на правила, по време на работа с набора от правила.

2.3.4. Действия за готовност (подготовка) - Ready

Действията за готовност представляват поредица от команди на GURU. Когато по време на работа на интерпретатора на правилата се премине към разглеждане на дадено правило, най-напред се извършват действията, описани в тези команди. След това се проверява дали е вярна предпоставката на правилото.

2.3.5. Списък на необходимите променливи - Needs

Ако в предпоставката на правилото има косвени (индиректни) обръщения към някои променливи, то всички променливи, към които има обръщения (преки или косвени), трябва да бъдат включени в т. нар. списък на необходимите променливи.

2.3.6. Списък на променящите се променливи - Changes

Този списък съдържа имената на променливите, които могат да бъдат променяни (чиито стойности могат да бъдат променяни) в действията на правилото.

Ако този списък е пропуснат, се предполага, че могат да бъдат променяни стойностите на всички променливи, към които има пряко обръщение в заключението на правилото. Ако обаче в заключението има косвени обръщения към променливи, които могат да се променят, тогава задължително трябва да се включи списък на изменящите се променливи.

2.3.7. Аргументация (обосновка) - Reason

Тук се задава подходящ текст, който служи за отговор от страна на системата на въпроса WHY?, зададен от потребителя. Такъв въпрос потребителят може да зададе например когато получи от системата промпт за въвеждане на данни в резултат на изпълнение на командата за въвеждане на данни INPUT. Тогава той може да натисне ^Y (функционалния клавиш FWHY) и ще получи отговор от вида:



This information is needed for rule :

2.3.8. Стратегия на проверка - Test

Това е код, състоящ се от една буква, който показва каква стратегия за проверка трябва да използва GURU, когато оценява предпоставката на правилото. Има три възможни стратегии на проверка:

S - допустима (проверява (оценява) предпоставката само ако всички неизвестни променливи са намерени);

P - точна (прави опит да намери всички неизвестни променливи и след това проверява (оценява) предпоставката);

E - еталонна (проверява (оценява) предпоставката всеки път, когато се намери стойност на неизвестна променлива).

Ако стратегията на тестване за дадено правило не е специфицирана явно, валидна е тази стратегия, която е текуща стойност на променливата на средата E.TRYP.

2.3.9. Максимален брой активирания - Cap

Това е цяло число между 0 и 255, което определя максималния брой активирания на правилото по време на работа на интерпретатора (по време на консултация). Ако е определена стойност 0, то това правило няма никога да бъде активирано. Ако не е определена конкретна стойност на Cap за даденото правило, тогава се използва стойността на променливата на средата E.CAP.



  1. СЪЩНОСТ И СТРУКТУРА НА НАБОРИТЕ ОТ ПРАВИЛА В СИСТЕМАТА GURU/ИНТЕР-ЕКСПЕРТ

Наборът от правила представлява съвкупност от правила, към които може да се обръща потребителят на експертната система за получаване на съвет при решаване на различни задачи. Тогава наборът от правила по същество играе ролята на "експерт" в тази ЕС (по-точно, представлява базата от знания на тази ЕС).

Всеки набор от правила има собствено име, което е идентификатор, съдържащ най-много 8 знака. Името, което е избрано за набора от правила, трябва да бъде уникално (и в частност да не съвпада с никоя от служебните думи на GURU, както и с имената на използваните таблици, полета, променливи и т.н.).

Когато се създава даден набор от правила, е необходимо да се определи неговата цел (целева променлива) - това е тази променлива, чиято стойност GURU се опитва да определи по време на консултацията.

Освен името, правилата и целта един набор от правила може да съдържа още следните незадължителни параметри (компоненти):

- последователност за инициализация;

- списък за управление на достъпа;

- описание на прозорец "why";

- последователност за завършване;

- описания на променливи.


3.1. Инициализация - Initialization

Последователността за инициализация представлява поредица от команди на GURU, които GURU изпълнява по време на консултация с набора от правила преди разглеждането на кое да е правило от него.


3.2. Списък за управление на достъпа - Access

Това е списък от потребителите на GURU, които могат да използват дадения набор от правила.


3.3. Описание на прозорец "why" - Window

Прозорецът "why" определя участъка от екрана, на който ще се извеждат отговорите на системата GURU, когато потребителят зададе въпрос "Why?". В тези отговори се обяснява защо системата иска от потребителя допълнителни данни.

Тук може да се специфицират местоположението, размерът и цветовете на прозореца. Минималният размер е 5 реда с 40 колони. Размерът на прозорец по премълчаване е 5 реда с 80 колони.

В прозореца "why" се появяват също и резултатите от автоматичната трасировка, ако същата е активна (включена) по време на консултацията с набора от правила.


3.4. Последователност за завършване - Completion

Това е поредица от команди на системата GURU, които тя изпълнява след завършване на процеса на използване на (аргументация с) набора от правила.


3.5. Описания на променливи в наборите от правила

Във всеки набор от правила могат да участват много променливи, като голяма част от тях могат да бъдат работни. Всяка от променливите, която не се отнася към поле, може да бъде описана подробно в набора от правила. Това описание не е задължително, но ако е включено в набора от правила, то описва различните аспекти на използване и обработка на тази променлива по време на консултация.

Описанието на една променлива може да включва следните елементи:

- етикет;

- команди за намиране;

- код за време;

- код за тип;

- индикатор за граница;

- код за точност;

- възможност за смесен извод.

3.5.1. Етикет - Label

Етикетът е текст, съдържащ до 48 знака, който системата GURU извежда на екрана при обръщение към тази променлива по време на процеса на аргументация (на работа на интерпретатора, на логически извод).

3.5.2. Команди за намиране - Find

Това е поредица от команди на GURU, които GURU изпълнява с цел намиране на стойността на променливата, ако тя е UNKNOWN. Например това може да бъде командата INPUT, чрез която потребителят въвежда търсената стойност.

3.5.3. Код за тип - Type

Кодовете за тип се състоят от два знака, които управляват (определят) алгебрата, използвана от GURU за изчисляване на коефициента на достоверност на дадената променлива.

Ако кодът за тип не е специфициран, стойността на променливата на средата E.CFVA (след завършване на инициализацията) управлява изчисляването на коефициента на достоверност на дадената променлива.

3.5.4. Индикатор за граница - Limit

Границата е цяло число, което показва максималния брой стойности, които дадената (размита) променлива може да приема едновременно.

Ако не е специфицирана граница, тогава стойността на E.NUMV (след като е завършила инициализацията) управлява броя на стойностите, които могат да приемат размитите променливи.

3.5.5. Код за точност - Rigor

Кодът за точност се състои от един знак, който определя каква точност да има системата GURU при извеждане (намиране) на стойността на променлива, когато тази стойност е непозната:

- A (абсолютна): активира всички съответни (т.е. водещи до получаването на съответната стойност) правила, които могат да бъдат активирани, дори и променливата вече да е получила стойност. Добре е такъв код за точност да се използва при размитите променливи;

- M (минимална): активира подходящи правила, докато достоверността на стойността на променливата превиши E.UNKN;

- C (щателна): извършва същото, както при код "M", след което активира всички останали правила, които имат предпоставка TRUE (които не изискват извършването на обратен извод).

Ако кодът на точност не е специфициран, стойността на E.RIGR (след завършване на инициализацията) управлява точността на GURU по отношение на променливите.

3.5.6. Код за време - When

Кодът за време се състои от един знак, който определя кога да се изпълняват действията за намиране на стойността на променливата:

- F (първи): клаузата FIND се изпълнява първа (преди активирането на кое да е правило, чието изпълнение може да доведе до получаване на стойност за тази променлива);

- L (последен): клаузата FIND се изпълнява последна (след проверката на всички правила);

- N (никога): ако този код съществува, то клаузата FIND никога не се изпълнява.

Ако този параметър е пропуснат, променливата на средата E.WHN определя кога се изпълняват съответните действия (по премълчаване нейната стойност е L).



3.5.7. Възможност за смесен извод - Mix

Това е стойност от тип символен низ, която определя дали е разрешен или не е разрешен режим на смесен извод за тази променлива. Ако този параметър не е зададен, тогава се използва стойността на променливата на средата E.MIX (по премълчаване тя е "N").


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница