Original on http://www.cse.unsw.edu.au/~billw/cs9414/notes/kr/rules/rules.html

Спасылка: Братко-е изд. 3, частка 15, стар. 347 -
Мэта:
Для апісання сістэмы, якія ўяўляюць ведаў у выглядзе правіл. Правіла сістэм на базе звычайна выкарыстоўваюць аператыўную памяць, што першапачаткова ўтрымоўвае зыходныя дадзеныя для выканання прыватнасці, і высновы, каб знайсці дзейсныя правілы і ўжываць іх.
Ключавыя словы: зваротная выснова, умова-дзеянне кіравала, дазвол канфліктаў, экспертныя сістэмы, пажару, прамой высновы, лагічнай высновы, матч-рашэнне-дзеянне цыклу, пульсацыя-кіравала, заснаванай на правілах сістэмы, працоўная памяць
План:
  • умова-дзеянне правіла могуць уяўляць веды
  • узад і наперад счапленні
  • кіравала, факты, працоўнай памяці, лагічнай высновы
  • матч-рашэнне-дзеянне цыклу: стратэгіі дазволу канфліктаў
  • Bagger прыкладзе сістэмы

Уводзіны

"Вытворчасць" у назве гэтых нататак (ці "вытворчасці правіла") з'яўляецца сінонімам "правіла", т. е. для ўмова-дзеянне правіла (гл. ніжэй). Тэрмін, падобна, паўстала з тэрмінам, выкарыстоўваным для перапісвання правіл у іерархіі Хомского граматыкі тыпу, дзе, напрыклад, кантэкстна-вольных правіл граматыкі часам завуць кантэкстна-вольных вытворчасцяў.

Кіравала

Яны таксама заклікалі умова-дзеянне правіл.
Гэтыя кампаненты заснаванай на правілах сістэмы маюць выгляд:

if <condition> then <conclusion>

ці

if <condition> then <action>

Прыклад:
if Пацыент мае высокія ўзроўні фермента ферритина ў крыві
    and Пацыент мае Cys282 ? Tyr мутацыі гена HFE у
then скласці пацыент гемахраматоз*

* медыцынскія дзеянні гэтага правіла не сцвярджаў тут

Правілы могуць быць ацэнены:

  • зваротнай высновы
  • прамой высновы


Зваротнай высновы

  • Каб вызначыць, павінна быць прынята рашэнне, працаваць у зваротным кірунку шукае апраўданняў для рашэння.
  • Урэшце, рашэнне павінна быць абгрунтавана фактамі.

Прамой высновы

  • Улічваючы некаторыя факты, праца наперад шляхам лагічнай высновы сеткі.
  • Выявіў, якія высновы можна выняць з дадзеных.

Прамой высновы 2

Пакуль праблема вырашана ці няма правіла частка "калі" выконваецца па бягучай сітуацыі:
  1. Збор правіла якой "калі" часці здаволены.
  2. Калі больш за адно правіла, гэта частка "калі" выконваецца, выкарыстоўваючы стратэгію ўрэгулявання канфліктаў у мэтах выкаранення ўсіх, акрамя аднаго.
  3. Рабіце тое, што правіла часткі ', затым' кажа рабіць.

Вытворчасць правіл

Сістэма вытворчасці правіла складаецца з
  • набор правіл
  • Працоўная памяць, якая захоўвае часавыя дадзеныя
  • прамой высновы высновы рухавіка

Матч-Рашучасць-Act цыклу

Матч-рашэнне-дзеянне цыкл, што робіць высновы рухавіка.

loop

адпавядаюць умовам правіл са змесцівам працоўнай памяці
if не знойдзена адпаведнае правіла then стоп
дазволы канфліктаў
акт (г.зн. выканаць выснову часткі правіла)
end loop


Землечарпалка

  • Bagger гэта простае правіла-сістэма, якая апісвае, як спакаваць элементы ў супермаркеце гасцініцы.

  • Тлумачачы Bagger, мы апішам шэраг патэнцыйных стратэгій для дазволу канфліктаў.

  • працоўнай памяці Bagger мае злучаныя табліцы атрыбутаў аб'ектаў (складзе) у супермаркеце.
  • Ёсць 4 кроку ў Bagger, і Bagger выкарыстоўвае пункт працоўнай памяці, званай "Крок", каб адсочваць, дзе ён з'яўляецца.

  • Кожнае правіла правярае значэнне "Крок", як частка яго, калі часці, і будзе ўжывацца толькі да аднаго з чатырох крокаў.

  • Гэта робіць яго лягчэй быць упэўнены, што правілы не будуць узаемадзейнічаць самай нечаканай выявай (пастка ў стварэнні заснаванай на правілах сістэмы).

Крокі ў Bagger

  1. Праверце парадку: Праверце, што кліент абраў; пагледзіце, калі штосьці бракуе, прапанаваць дадаткі.
  2. Pack буйныя прадметы: Пакладзяце вялікія прадметы ў торбе; пакласці вялікай бутэлькі ў першую чаргу.
  3. Абнаўленні асяроддзя пунктаў: Пакладзяце ў сярэдніх элементаў; пакласці замарожаныя прадукты ў поліэтыленавых пакетах.
  4. Pack дробныя прадметы: Пакладзяце ў дробных прадметаў, дзе ёсць месца.

Працоўная памяць

Step:     Check order
Bag1:     <empty>
Unpacked: Bread
          Glop
          Granola (2) 
          Ice cream
          Chips

Атрыбуты аб'ектаў

ПУНКТ       Тып кантэйнера     ПАМЕР    ЗАМАРОЖАНЫЯ?
Bread       Plastic bag        Medium    No
Glop        Jar                Small     No
Granola     Cardboard box      Large     No
Ice cream   Cardboard carton   Medium    Yes
Pepsi       Bottle             Large     No
Chips       Plastic bag        Medium    No

Кіравала Крок 1

B1:
if	the step is check-order
and	there is a bag of chips
and	there is no soft-drink bottle
then	add one bottle of soft drink to the order

B2:
if	the step is check-order
then	discontinue the check-order step
and	start the pack-large-items step

Які з гэтых правіл павінны быць абраны, калі ў кроку парадку праверыць?


Дазвол канфліктаў

Спецыфіка замовы
Калі ўмова частка правіла з'яўляецца пашырэннем іншага, выкарыстоўвайце першае правіла, паколькі ён з'яўляецца больш спецыялізаваным для бягучай задачы.
Кіравала замовы
Абярыце першае правіла ў тэксце, загадаў зверху-ўніз.
Дадзеныя замовы
Спарадкаваць дадзеныя ў спісе прыярытэтаў. Абярыце правіла, якое ўжываецца да дадзеных, якія маюць найвышэйшы прыярытэт.
Памер замовы
Абярыце правіла, якое мае найвялікі лік умоў.

Дазвол канфліктаў працяг

Навізна замовы
Найболей часта выкарыстоўваных правіла мае найвышэйшы прыярытэт ці
меры нядаўна выкарыстоўвалі правіла мае найвышэйшы прыярытэт ці
найболей часта выкарыстоўваных дадзенае мае найвышэйшы прыярытэт ці
меры нядаўна выкарыстоўвалі дадзенае мае найвышэйшы прыярытэт.
Падрабязней
Кантэкст Абмежаванне
Паменшыць верагоднасць канфлікту шляхам падзелу правіл на групы, толькі некаторыя з іх актыўныя ў любы час. Ёсць працэдура, якая ўключае і адключае груп.

Кіравала Крок 2

B3:
if	the step is pack-large-items
and	there is a large item to be packed
and	there is a large bottle to be packed
and	there is a bag with < 6 large items
then	put the bottle into the bag

B4:
if	the step is pack-large-items
and	there is a large item to be packed
and	there is a bag with < 6 large items
then	put the large item into the bag

B5:
if	the step is pack-large-items
and	there is a large item to be packed
then	get a new bag

B6:
if	the step is pack-large-items
then	get a new bag


Працоўная памяць

Step:		pack-medium-items
Bag1:		Pepsi
		Granola (2)
Unpacked:	Bread
		Glop
		Ice cream
		Chips

Кіравала Крок 3

B7:
if	the step is pack-medium-items
and	there is a medium item to be packed
and	there is an empty bag or a bag with medium items
and	the bag is not yet full
and	the medium item is frozen
and	the medium item is not in a freezer bag
then	put the medium item in a freezer bag

B8:
if	the step is pack-medium-items
and	there is a medium item to be packed
and	there is an empty bag or a bag with medium items
and	the bag is not yet full
then	put the medium item in the bag

B9:
if	the step is pack-medium-items
and	there is a medium item to be packed
then	get a new bag

B10:
if	the step is pack-medium-items
then	discontinue the pack-medium-items step
and	start the pack-small-items step


Працоўная памяць

Step:		pack-small-items
Bag1:		Pepsi
		Granola (2)
Bag2:		Bread
		Ice cream (in freezer bag)
		Chips
Unpacked:	Glop

Кіравала Крок 4

B11:
if	the step is pack-small-items
and	there is a small item to be packed
and	the bag is not yet full
and	the bag does not contain bottles
then	put the small item in the bag

B12:
if	the step is pack-small-items
and	there is a small item to be packed
and	the bag is not yet full
then	put the small item in the bag

B13:
if	the step is pack-small-items
and	there is a small item to be packed
then	get a new bag

B14:
if	the step is pack-small-items
then	discontinue the pack-small-items step
and	stop


Рэалізацыя правіл у Пралогу

Націсніце тут, каб паглядзець Пралог код для простай сістэмы правіл вытворчасці.

Каб выкарыстоўваць гэты код, скапіяваць яго ў свой уласны каталог, напрыклад,

% cd
% cp ~cs9414/public_html/Examples/rules-swi.pro ~

Затым пачынайце Пралог і зрабіць наступны дыялог:


Дыялог з rules-swi.pro

% prolog rules-swi.pro
?- wm(X).
[Пралог пакажа вам, якія факты ён ведае (а, б, у). Не забудзьцеся тыпу ";" пасля кожнага рашэння вырабляецца Пралог].
?- run.
Yes
?- wm(X).
[Адказаць кажа вам, што Пралог гэтых пор не ведае, што A, B, і З праўдзівыя, а таксама, якія іншыя "факты", яна зараз ведае. Не забудзьцеся "," С.]
?- already_fired(X, Y).
[Гэтым разам адказ кажа, што два правілы звольнілі, і дае іх імёны і іх умовы. Кіравала з імем null таксама згадваецца - гэта абыходны шлях у код, каб пазбегнуць Пралог жаляцца, што already_fired не вызначана, у тых выпадках, калі кіравала дагэтуль не звольнілі].

Разуменне і прайграванне з Кодэксам

Вы таксама можаце гуляць з кода - напрыклад, шляхам напісання ўласных правіл і фактаў, і працуе сістэма з імі.

Каб зразумець, код цалкам, неабходна, каб прачытаць пра некаторыя дадатковыя асаблівасцяў Пралог: op, assert, retract, and repeat.

Вы можаце пазнаць пра іх у спасылкам ніжэй:

op http://www.cse.unsw.edu.au/~billw/cs9414/notes/prolog/op.html
assert http://www.cse.unsw.edu.au/~billw/cs9414/notes/prolog/ext-prolog.html#assert
retract http://www.cse.unsw.edu.au/~billw/cs9414/notes/prolog/ext-prolog.html#retract
repeat http://www.cse.unsw.edu.au/~billw/cs9414/notes/prolog/ext-prolog.html#repeat
Гэтыя тэмы не які паддаецца праверцы для COMP9414 студэнтаў.

Пашырэнне маштабаў

Дзве праблемы, якія сталі відавочнымі ў спробы камерцыйнага выкарыстання заснаванай на правілах сістэмы былі:

  1. прыпынкі правіл з якія ўзаемадзейнічаюць адзін з адным самай нечаканай выявай, як шэраг кіраваў, вырас вялікі;
  2. абслугоўванне: даданне дадатковых правіл для выпраўлення непажаданых паводзін (ці мець справу з незвычайнымі выпадкаў), не псуючы паводзіны астатняй сістэмы.
Частковае рашэнне першай праблемы з'яўляецца выкарыстанне секцыянаваных сістэмах вытворчасці, дзе ў любы момант часу толькі частка кіравала актыўныя, таму хтосьці будынак сістэма можа засяродзіцца толькі на гэтыя правілы, і, спадзяюся, зразумець іх узаемадзеянне. Сістэма Bagger эфектыўна секцыянаванай сістэмы вытворчасці, з велічынёй step вызначэнні таго, якія правілы актыўныя ў любы момант часу.

Самы вядомы падыход да абслугоўвання задача (і гэта таксама дакранаецца праблемы ўзаемадзеяння) з'яўляецца выкарыстанне Пульсацыя кіравала (РДР). Калі вы плануеце выкарыстоўваць правілы сістэм, заснаваных на шырокамаштабным ужыванні, вам прыйдзецца выдаткаваць некаторы час на чытанне на РДР.

Падлога Комптон

, які распрацаваў Пульсацыя-кіравала падчас працы ў Гарван Інстытут медыцынскіх даследаванняў. Зараз ён частка школы кампутарных навук і інжынерыі ў UNSW.

Падрабязней пра РДР

Вы можаце знайсці матэрыялы па РДР у http://www.cse.unsw.edu.au/~cs9416/06s1/lectures/rdr/RDR_links.html і Павел Комптона галоўную старонку

Вядома UNSW COMP9416 Правіла сістэм на базе працэсараў як правіла, ахоплівае Пульсацыя-кіраваў, больш падрабязна.


Рэзюмэ: заснаванай на правілах сістэмы
Правіла аснове сістэмы складаюцца з набору правіл, аператыўнай памяці і лагічнай высновы. Кіравала кадаванні вобласці ведаў, як простай пары ўмова-дзеянне. Працоўная памяць уяўляе першапачаткова ўваход у сістэму, але дзеянні, якія адбываюцца, калі правіла стрэліў можа выклікаць стан працоўнай памяці змяніць. Выснова рухавіка павінен мець стратэгію ўрэгулявання канфліктаў для апрацоўкі тых выпадках, калі больш за адно правіла, мае права на агонь.

CRICOS пастаўшчыка кода Колькасць 00098G
Copyright (C) Bill Wilson, 1996-2008, except where another source is acknowledged. Much of the material on this page is based on an earlier version by Claude Sammut.