Научная статья на тему 'ФОРМАЛіЗАЦіЯ БАЗОВИХ АЛГОРИТМіВ СПіВСТАВЛЕННЯ Зі ЗРАЗКОМ В ПРОДУКЦіЙНИХ СИСТЕМАХ'

ФОРМАЛіЗАЦіЯ БАЗОВИХ АЛГОРИТМіВ СПіВСТАВЛЕННЯ Зі ЗРАЗКОМ В ПРОДУКЦіЙНИХ СИСТЕМАХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3491
92
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СОПОСТАВЛЕНИЕ С ОБРАЗЦОМ / ФОРМАЛИЗАЦИЯ / RETE АЛГОРИТМ / TREAT АЛГОРИТМ / ПРОДУКЦИОННАЯ СИСТЕМА / ЛОГИЧЕ-СКИЙ ВЫВОД

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шаповалова С.І., Мажара О.О.

В статье в едином формате представлено формализованное описание продукционной системы, компиляция Reteи Treat-сети потока данных, а также правил перехода между узлами Treat сети. Предложена формализация Treat алгоритма сопоставления, которая может быть использована для дальнейшей оценки средней сложности. Расширена модель расчета затрат памяти для Treat алгоритма

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Formalization of basic pattern matching algorithms in production systems

Currently, there are several models of formalization of production systems. The formalization in terms of the first-order logic is the most universal. However, such formalization is not provided for all inference machinery in production systems. In particular, among the basic pattern matching algorithms, the generalized formal description was proposed only for the Rete algorithm. In the paper, the formalized description of the production system and basic matching algorithms (Rete, Treat) for further resource intensity assessment at the design stage was presented in a single format. A formal presentation of the compilation and implementation of the data flow network of the Treat algorithm was proposed. Based on the proposed formalization, the memory consumption calculation model for the Treat algorithm was extended due to taking into account memory consumption to preserve the conflict set and agree variables in the terminal vertices of the data flow network. In the future, the proposed single format of the presentation of the basic algorithms can be used for the resource intensity assessment of the Treat algorithm based on the mathematical models proposed for the Rete algorithm.

Текст научной работы на тему «ФОРМАЛіЗАЦіЯ БАЗОВИХ АЛГОРИТМіВ СПіВСТАВЛЕННЯ Зі ЗРАЗКОМ В ПРОДУКЦіЙНИХ СИСТЕМАХ»

8. Anokhin, A. N. The system approach to analysis and description of operator activity [Text] / A. N. Anokhin // Cybernetics and Systems. - 2008. - Vol. 1. - P. 82-87.

9. Lavrov, E. Organizational approach to the ergonomic examination of E-learning modules [Text]. / E. Lavrov, O. Kupenko, T. Lavryk, N. Barchenko // Informatics in Education - an International Journal. - 2013. - Vol. 12, Issue 1. - P. 107-124.

10. Репринцева, Г. А. Системно-деятельностный подход: общенаучный и психолого-педагогический уровни анализа [Электронный ресурс] / Г. А. Репринцева // Концепт. - 2014. - № 8. - Режим доступа: http://e-koncept.ru/2014/14225.htm

11. Адаменко, А. Н. Информационно-управляющие человеко-машинные системы: Исследование, проектирование, испытания [Текст]: справочник / А. Н. Адаменко, А. Т. Ашеров, И. Л. Бердников и др.; под общ. ред. А. И. Губинского, В. Г. Евграфова. - М.: Машиностроение, 1993. - 528 с.

12. Лавров, Е. А. Автоматизация оценки условий труда на рабочем месте человека-оператора [Текст] / Е. А. Лавров, Н. Б. Пась-ко // Вюник Одесько! державно! академй будiвництва та арх^ектури. - 2009. - № 36. - С. 250-256.

13. Lavrov, E. Computer Simulation of Systems "Man-Machine": Achievements and Tasks [Text] / E. Lavrov // Materials International Scientific Conference "UNITECH '07". - Gabrovo, Bulgaria. - 2007. - Vol. 3. - Р. 358-362.

В cmammi в единому форматi представлено формалiзований опис продукцшног систе-ми, комтляцю Rete та Treat мережi потоку даних, а також правил переходу мiж вузла-ми Treat мережi. Запропоновано формалiза-цю ствставлення за Treat алгоритмом, яка може бути використана для подальшог оцт-ки складностi. Розширено модель розрахунку витрат пам'ятi для Treat алгоритму

Ключовi слова: ствставлення 3Í зразком, формалiзацiя, Rete алгоритм, Treat алгоритм,

продукцшна система, логiчне виведення □-□

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

УДК 004.825

|DOI: 10.15587/1729-4061.2015.465711

ФОРМАЛ1ЗАЦ1Я БАЗОВИХ АЛГОРИТМ1В СП1ВСТАВЛЕННЯ З1 ЗРАЗКОМ В ПРОДУКЦ1ЙНИХ СИСТЕМАХ

С. I. Шаповалова

Кандидат техычних наук, доцент* Е-mail: lana@ aprodos. aprodos.kpi.ua О. О. Мажара Астрант*

E-mail: olyamazhara@gmail.com *Кафедра автоматизацп проектування енергетичних процеав i систем Нацюнальний Техшчний Ушверситет УкраТни «Кшвський пол^ехшчний шститут» пр. Перемоги, 37, м. КиТв, УкраТна, 03056

1. Вступ

Продукцшна модель представлення знань - один з найбшьш часто використовуваних формалiзмiв вирь шення задач штучного штелекту. Створення прикладних продукцшних систем потребуе оцшки 1х ефективност в процеа розробки. Для визначення об'ективних критерпв ощнювання таких систем та 1х коректного порiвняння необхвдно застосовувати единий формальний опис.

1снуе деюлька пiдходiв до формалiзащi продукщ-йних систем [1-3]. Однак найбшьш ушверсальним з них е формалiзацiя на основi логжи першого порядку. В той же час формальний опис продукцiйноi системи (ПС) в термшах логжи першого порядку наразi пред-

ставлено лише частково для окремих базових мехашз-мiв обробки продукцш.

Лопчне виведення в продукцшних системах реа-лiзуеться на основi механiзмiв розв'язання конфлжту та ствставлення зi зразком. При цьому останнш мае найб^ьший вплив на швидкодт та затрати пам'яп в прикладнш продукцшнш системь

Для об'ективного та незалежного ввд умов реалiза-ци ощнювання алгоритмiв ствставлення необхщно представити iх формальний опис в единому формать Це дозволить визначити критерп щодо використання ресурав пам'ятi та швидкодп на стадii проектування прикладних продукцшних систем за заданими характеристиками запиав бази знань. Тому едина формаль

©

защя базових алгоритмiв спiвставлення 3Í зразком е актуальною та мае практичне значення.

2. Аналiз лiтературних даних i постановка проблеми

Оцшювання ресурсоемност прикладних продук-цiйних систем здшснюеться при створеннi прототипу та тестувант ix альфа версiй [4] або на основi якiсних критерiiв продукцш, що описують задачу логiчного виведення [5]. Проте на сьогодт не представлено единоi методики розрахунку затрат пам'яп на етапi проектування. Для ii розробки необxiдне створення едино формалiзацii алгоритмiв спiвставлення, якi ма-ють найбiльший влив на ресурсоемшсть прикладноi продукцiйноi системи.

В роботах [6] показано, що найб^ьш поширеним програмним iнструментарiем розробки продукцiйниx систем е CLIPS, Jess, Soar, Drools. Тому в даному до-слщжент для подальшоi формалiзацii обрано Rete та Treat алгоритми спiвставлення як базовi для зазначе-них середовищ розробки. Концепцii цих алгоритмiв були закладет Ч. Форгi (Forgy) [7] та Д. Мiранкером (Miranker) [8] ввдповвдно та надалi лише зазнавали мо-дифiкацiй у вiдповiдностi до специфiчниx задач [9-11].

В робот Л. Альберта (Albert) [12] наведено фор-малiзацiю продукцiйноi моделi в термшах логiки пер-шого порядку для розрахунку середньоi складностi Rete алгоритму. Це дозволило в робот [13] на основi даноi моделi формалiзувати спiвставлення за Rete алгоритмом з правилами переходу мiж вузлами Alpha- та Beta-мереж потоку даних. Запропонований для Rete математичний апарат дощльно застосувати до спорщ-неного Treat алгоритму. Однак для цього i необхщно представити аналопчну до Rete формалiзацiю Treat алгоритму.

3. Мета i завдання дослщження

Метою даноi роботи е формалiзацiя Treat алгоритму ствставлення зi зразком в термшах лопки першого порядку.

Для досягнення зазначеноi мети було поставлено наступш задачi:

- описати схеми ствставлення за Rete та Treat ал-горитмоми;

- представити формалiзацiю компiляцii мережi потоку даних Treat алгоритму;

- представити формалiзацiю правил переходу в Treat мереж^

- представити формулу розрахунку витрат пам'ят для Treat алгоритму на основi запропонованоi форма-лiзацii.

4. Rete алгоритм

Робота шкрементних алгоритмiв спiвставлення Грунтуеться на запам'ятовуванш кортежiв фактiв, якi узгоджуються з частиною антецеденту. В Rete алго-ритмi [7] на кожному крощ виведення зберiгаеться уз-годження умов антецеденту з фактами робочо! пам'ят, а також результат зв'язування змшних.

Спiвставлення з допомогою шкрементних алго-ритмiв вiдбуваеться у два етапи. На першому етапi -комтляцп - на основi умовних частин правил, що належать до БЗ, будуеться мережа потоку даних. Ком-тлящя виконуеться один раз при запуску системи та повторюеться лише у випадку внесення змш до БЗ.

На другому етат - виконання - ввдбуваеться оброб-ка мережi потоку даних на основi змiн робочо! пам'ятi. Результатом цього етапу е конфлжтна множина (CS) з продукцш БЗ та кортеж фактв, яю призвели до акти-вацп. Пара з умовного елементу та факту, який з ним уз-годжуеться, називаеться маркером (token). Алгоритми шкрементного ствставлення вiдрiзняються тдходами до формування мережi потоку даних та ii обробки.

Мережа потоку даних Rete алгоритмiв складаеться з двох частин, яю вщповщають етапам обробки антецеденту продукцп: Alpha- та Beta-мережь Alpha-мере-жа, яку також називають деревом розбору, будуеться на основi умовних елементiв, якi знаходяться в межах одного шаблону. Вузли Alpha-мережi можуть мктити тести деюлькох видiв: перевiрку типу, перевiрку умов, перевiрку зв'язкiв (коли одна й та сама змшна зустрь чаеться в умовному елемент бiльше одного разу). Таю тести називають внутршшми.

Beta-мережа будуеться на основi бшарного поед-нання листових вузлiв Alpha-мережь В вузлах Beta мережi ввдбуваеться узгодження змiнних для рiзних шаблошв одного правила. Такi тести називають зо-внiшнiми. Вузли Beta мережi мають два входи та збе-рiгають два типи пам'ятi вщповщно - лiву та праву. Вид^яють два типи таких вузлiв - однотипш (Any) та негативнi (Not). В однотипних вузлах вщбуваеться узгодження мiж виключно позитивними чи негативними умовними елементами. Негативш вузли мктять тести мiж позитивним та негативним умовним елементом.

Термшальною е Beta-вершина, яка отримуе на вхо-дi екземпляр антецеденту (instance) - повний кортеж узгоджених фактв. Вихщ термiнальноi вершини - ак-тивоване правило, додаеться до конфлжтного набору.

На рис. 1 запропоновано схематичне зображення схеми потоку даних (dataflow net) для Rete алгоритму.

Рис. 1. Схема потоку даних Rete алгоритму

На етат виконання Rete алгоритму змши робочоi пам'ят надходять до вузлiв мережь Якщо факт узгод-

жуеться з умовним елементом вузла Alpha - мереж1, формуеться маркер i передаеться нащадкам вузла. В вузлах Beta - мережi вiдповiднi маркери перевiряють-ся на узгодження змшних в двох рiзних шаблонах одного антецеденту. Результати перевiрки передаються далi по мережi. Досягнення листового (термшального вузла) означае активацiю правила. Таким чином, в термшальних вузлах збер^аеться поточна конфлiктна множина.

Обробка мережi пiсля видалення фактiв проводиться аналопчно додаванню. Iнформацiя поширю-еться по мережi вiд вершини до листового вузла i при-зводить до деактивацп вiдповiдного правила.

5. Treat алгоритм

Treat алгоритм [8] створено на базi Rete. Treat алгоритм передбачае збереження узгодження факпв, проте зв'язування змшних обчислюеться повторно на кожному крощ ствставлення. Для виконання вну-трiшнiх теспв в антецедентi будуеться Alpha-мережа, в вузлах (Anode) яко! мiстяться тести для окремих шаблошв та факти, яю призвели до активацп поточно'! вершини. Шдмножина таких фактiв називаеться ль вою (альфа) пам'яттю. Комтлящю внутрiшнiх тестiв в мережу потоку даних можна представити единим чином для обох алгоритмiв.

На вiдмiну вiд Rete, Treat алгоритм не будуе про-мiжних вершин для зв'язування змшних. Ввдповвдш обчислення повторюються на кожному крощ ствставлення. Якщо правило було активоване на попе-редньому крощ, то в термшальних вершинах Treat збертеться тдмножина фактiв, яка призвела до його активацп. Таким чином, алгоритм передбачае збереження конфлжтно! множини.

На рис. 2 запропоновано схематичне зображення схеми потоку даних (dataflow net) Treat алгоритму.

Виконання Alpha мережi Treat аналопчне до Rete алгоритму. Наступним кроком е зв'язування змшних, яке за необхвдност вщбуваеться в термшальних вершинах. На вхщ до термшально! вершини надходять результати виконання альфа мережi вщповщшл про-дукцп. Таким чином, на вщмшу вiд бшарних Beta вершин Rete мереж^ термiнальнi вершини отримують на вхщ кiлькiсть маркерiв, яка вiдповiдае юлькост умов-

них елементiв антецедента. Узгодження змшних ввд-буваеться попарно для кожного шаблону в дов^ьному порядку. У найпроспшому випадку реалiзацii обира-ють порядок слiдування умовних елеменпв в записi антецеденту. Частiше використовують пiдходи для оптимiзацii порядку узгодження. У робот [8] доведено ефектившсть евристики впорядкування seed ordering, за якоi першим проводиться узгодження змшних для шаблону, який був активований новим фактом.

На вщмшу вiд Rete, в Treat алгоритмi додавання i видалення факпв з робочоi пам'яп не е симетрич-ним процесом. Для видалення факту в Treat мережi перевiряеться конфлiктна множина, збережена на по-передньому кроцi. Якщо один з маркерiв конфлiктноi множини мштив даний факт, то вщповщш йому правила деактивуються. 1нформащя про видалення маркеру передаеться предкам вщповщно'! альфа мережi. Таким чином вдаеться уникнути надлишкових узгоджень. Проте даний тдхвд виконуеться лише у випадку, коли видаляеться позитивний факт.

Для обробки негативного факту вш приймаеться за позитивний i передаеться на вхщ до альфа мере-жь Якщо це призводить до активацп правила, яка метиться в конфлжтнш множинi, правило деактиву-еться. Продукцп, якi активувалися видаленням негативного факту, потребують додатково'! перевiрки. Alpha пам'ять негативних умовних елеменпв перевь ряеться на наявшсть факту, подiбного до видаленого. Якщо такий факт вщсутнш, правило активуеться.

6. Формалiзацiя продукцшно! системи

Продукцшна система складаеться з трьох основних компонент: бази знань ( БЗ), робочоi пам'яН, механiзму лопчного виведення. База знань (R) - це набiр про-дукцiйних правил, як е одиницями представлення шформацп в продукцiйних системах. Робоча пам'ять (\УМ) - динам1чна область пам'ят1, в як1й 1нформац1я про розв'язання поточно! задач! представлена у вигля-д1 факт1в, доведених на поточному етат виведення.

Для проведения подалыпих досл1джень було при-йнято форма.гпзащю продукц!йно! системи, представ-лену в роботах [12, 13].

Вщповщно до роботи [13], в продукц!йних мовах програмування для забезпечення ефективност1 виведення використовуеться поняття обмежено! про-дукц!йно! системи. В дан1й робот! використовуеться визначення так звано! обмежено! продукц!йно! системи:

Р8 = (РР,Х,Ь,\¥М0,Р,8),

де Р - множина функцюнальних символ!в, Р - множина предикативних символ!в, X - множина змшних, L - множина мггок, WM0 - початковий стан робочо'! пам'ятi, обмежений до термiв висотою 1, R - множина продукцшних правил, де правила мають шаблони висотою 1, S - стратегiя розв'язання конфлжпв.

Висота терму визначаеться наступним чином:

, , [0, якщо t змiнна або проста константа

' [1+тахйп^^)), якш^ = ^^...^п)дляп> 1.

Продукщя - правило бази знань, яке визначаеть-ся двома базовими частинами. Умовна - антецедент, який представляе собою лопчну формулу, що мктить зразки фактв в тому вигляд^ в якому вони представ-ляються в робочiй пам'ятi. В консеквент - постумовi -представлено набiр дiй, спрямованих на модифiкацiю робочоï пам'ятi. В загальному випадку це додавання або видалення фактв.

Продукцшне правило (продукцiя) визначаеться наступним чином:

[l] if p,c remove r add a,

де l - iм'я з множини мiток, p - множина позитивних та негативних шаблошв правила, c - пропозищя (proposition), множина вiльних змiнних якоï е тдмно-жиною змiнних шаблону p, r - множина термiв, ек-земпляри яких видаляться з робочоï пам'ят пiсля запуску правила, a - множина термiв, екземпляри яких додадуться до робочоï пам'ятi тсля запуску правила.

7. Формaлiзaцiя комтляцп Treat мережi

Для формалiзацii комтляцп бази знань у мережу потоку даних Treat алгоритму введемо позначення ввд-поввдно до роботи [13].

Позищя w пiдтерма si в термi t визначаеться на-ступним чином:

w(t)|t = 0, w(s,)|t(s1,...,sn) = i,

w1 = w(s)|t л w2 = w(t)|r ^ w(s)|r = w1.w2.

Тодi компiляцiя comp продукцп [l]p,c ^ r,a для Alpha-мережi Treat алгоритму аналогiчна до вщпо-вiдного iнкрементного визначення компiляцii Rete алгоритму [8]:

comp(t):= comp(t,0) для t eT(X,P), (1)

comp(t(s1,...,sn)) := input.w = t, (2)

л comp(Si,w.i),

iel

л input.W.W1 = input.W.W2,

Vi<jeI 3wj ,W2 |si|wj=Sj|w2

comp(—t(s1,...,sn)):= —(3input e WM)|comp(t(s1,...,sn)). (3)

Для подальшоi формалiзацii правил переходу в Alpha-мережi Treat алгоритму позначимо кон'юнкщю всix виразiв вигляду (1) - (3) як qk для шаблону pi правила lk бази знань PM, де keK - iдентифiкатор правила, J - юльюсть правил в БЗ, i el - номер шаблону в правил^ I - максимальна юльюсть шаблонiв в правиль

Мережа потоку даних для узгодження змшних в Treat алгоритмi формуеться динамiчно за необхщно-сть Формально представлення зовнiшнix тестiв ана-логiчне до Beta мережi Rete алгоритму. Вщмшшстю Treat алгоритму е те, що перевiрка узгодження змшних вщбуваеться лише в рамках антецеденту окремоi про-дукцii, в якш успiшно виконано всi внутрiшнi тести.

Наведемо комтлящю зовнiшнiх TecTiB Treat на 6a3Í вiдповiдного формального представлення Beta мeрeжi Rete алгоритму [13]:

comp(p,c):=.. comp(pj), (4)

iel

inputi.w1 = input2.w2, (5)

Vi<jeI(p+ M(p- ) Vw,w2 1 Pi|w, =Pj|w2eX

. inputj.w, = f.w2, (6)

VieI(p+ ).jeI(p- ) Vw,w2 |pi|w1 =pj|w2eX.-(3feWM)

. inputi.w = x =:oi AOi(c), (7)

Vi<jeI3w | pi|w=xeVar(c)

де input факт, який узгоджуеться з поточним шаблоном, вщповщно inputi для шаблону pi; p+ - позитив-ний шаблон з множини I шаблошв висотою 1, p- - не-гативний шаблон; X - множина змшних бази даних; VareX - множина змшних поточного антецеденту; о - постановка для даного шаблону.

Кон'юнкщю в«х виразiв вигляду (4)-(6) для продукцп lk бази знань PM позначимо як rk.

8. Формaлiзaцiя правил переходу у Treat мережi

В данiй роботi розроблено формалiзацiю правил переходу в Treat мережi потоку даних. Для подальшого коректного порiвняння алгоритмiв спiвставлення правила переходу представлено за форматом та синтаксисом, запропонованим в [13].

В загальному виглядi правило переходу для вершин Treat мережi мають наступний вигляд:

?m —> ms!,

де ?m - вxiдний маркер у виглядi <+|-,f> для факту f, що додаеться чи видаляеться з робочоi пам'ят; ms! -список виxiдниx маркерiв, a - опцiональнi дii на поточному крощ.

Для антецеденту правила п лiву пам'ять, lm, визна-чимо наступним чином [13]:

lmi = {(f1,...,fj )e WM |comp(n)(f1,...,fj )}.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Аналогiчно визначимо термiнальну пам'ять tm, яка використовуеться в проце« узгодження змiнниx та пам'ять конфлiктноi множини cm, яка зберпаеться на кожному крощ ствставлення.

tmi = {f eWM|^+1(f)},

cmk = {(f1,...,fji ) e WM|comp(lk).

Для Anode правило переходу визначаеться наступ-

ним чином:

<+,f > ? _lm¿-!j^{+,f}! ifq(f), (8)

<-,f > {—,f}! if q(f), (9)

< + |-,f >?^0! if —q(f) . (10)

Для Tnode правила переходу визначаються в за-лежносН вiд типу шаблону, що узгоджуеться з вхiдним фактом. Вихщними даними термiнальноï вершини е правило для активацiï/деактивацiï та вщповщно факти, якi мають додатися/видалитися з екземплярiв конфлiктного набору.

В загальному випадку при додавант фактiв пе-рехiд з термiнальноï вершини виконуеться у випадку, коли сформовано таку термшальну пам'ять, що tmk = cmk . Тобто:

<+,lk >?->{<+,lk >}!.

(20)

< +,lmt > +,lmt >}! I rk(lk,lmk ).

(11)

Видалення факту зазвичай (однак не завжди) при-зводить до деактивацiï правила:

< -,f >? tm=9 >{< -,(lk,f) >}!if (lk e CS) a(f e cm). (12)

Можливi два випадки в залежност вiд того, пози-тивний чи негативний шаблон узгоджуеться з фактом, який видалено. Видалення факту, який узгоджувався з позитивним шаблоном правила:

<-,f>? tm=9 >{<-,(lk,f)>}! if (lk eCS)л(opk = f Ipk ep + ).

(13)

Видалення факту, який призводив до узгодження з негативним шаблоном правила:

< -,f > ? tm=9 > {< + ,lk >}!if -,(3f4e lmk |op =

= fVAr(l, fv) a opk = f|pk ep-. (14)

Термшальна пам'ять формуеться в процес узгодження змiнних в межах антецеденту. Надамо фор-мальне представлення переходiв в межах динамiчноï мережi узгодження при обробцi термшально'! вершини. Формалiзуемо додавання факту до робочо'1 пам'ятi для рiзних випадкiв.

Додавання факту, який узгоджуеться з позитивним шаблоном:

<+,f > ? —(' )0'p-- }{<+,f >}!ifrk(f), (15)

< +,f > ? tmj^<f}™13 pkep+( 't)0 'pk=f }{< +,(lk,tmJ)>}!ifrk(tmJ

де о постановка (визначена в стандартних термшах логiки першого порядку), p - шаблон правила, позитивний шаблон, p- - негативний.

Додавання факту, який узгоджуеться з негативним шаблоном:

Таким чином, формули (8)-(10) описують процес обробки змш робочо'1 пам'яН в A'pha-мережi Treat алгоритму, формули (11)—(17) - узгодження змшних в термшальних вершинах, формули (18)—(20) — фор-мування конфлжтно'! множини на основi результатiв спiвставлення.

9. Розрахунок витрат пам'ят Treat алгоритму

Запропоноване формальне представлення Treat алгоритму дозволяе розширити модель розрахунку витрат пам'яп, запропоновану в робоп [14]. В цш роботi вважа-еться, що затрати пам'яп на обробку Treat мережi потоку даних дорiвнюють загальному розмiру Alpha пам'ятi:

M(n) = ]Taj=]Th(lmj).

j=0 j=0

Однак, формалiзацiя правил за запропонованими формулами (11)—(16) переходу показуе, що на кожному крощ ствставлення необхщна додаткова пам'ять, яка забезпечуе збереження даних тд час узгодження змшних в термшальних вершинах мережь

Позначимо ймовiрнiсть узгодження поточного умовного елементу з наступним в черзi в межах антецеденту як probj. Тад витрати пам'яН на обробку термь нально'1 вершини можна обрахувати наступним чином:

T(i) = h('mo)Jlh(lmj)probj,

j=1

де n — кiлькiсть правил в базi знань, h — висота (роз-мiр) факту, m < n — кiлькiсть факпв у правилах, для яких узгодилася альфа мережа на поточному крощ ствставлення, probj — ймовiрнiсть узгодження умовних елеменпв в процеа ствставлення.

Додатково для забезпечення асиметричного меха-шзму видалення фактiв, яю узгоджувалися з позитив-ними умовними елементами, в Treat алгоритмi на кожному крощ збер^аються факти, як призвели до активацiï правил в конфлжтнш множинi: ), (16) h(cm). Правила переходу та вщповщш змiни для пам'ятi конфлiктноï множини представлено формулами (17)—(19).

З урахуванням вищезазначених витрат пам'ятi в процеа спiвставлення, формула розрахунку ресурсо-емностi Treat алгоритму набувае вигляду:

M(n) = £ (h(lmj) + T(i) + h(cm)),

(21)

<<,f > ? tmj=9 ) {<-,(lk,f)>}!ifrk(f)л лЗ p f ep- ( lk) I o'pk = f .

(17)

Тодi для конфлжтно'! множини CS виконуються наступш змiни у вiдповiдностi до вхвдних даних з тер-мiнальноï вершини:

<-(lk,f) >

- Ucl

-{<-,lk >}!, (18) <+(lk,tmk)>? cm"cm"'m- >{<+,(lk,tmk)>}!, (19)

де h('mj) — затрати на збереження Alpha пам'яп, T(i) — витрати пам'ятi на обробку термшальшл вершини, h(cm) — витрати на збереження пам'ят кон-флiктноï множини.

10. Висновки

1. В eдиному формaтi описано процеси ствставлення в продукцшних системах за Rete та Treat алгоритмами.

2. На 6a3i формального опису продукцiйноï систе-ми в термшах лопки першого порядку запропоновано формальне представлення комтляцп та правил переходу в мережi потоку даних Treat алгоритму.

3. На основi розробленоï формалiзацiï запропоновано розрахунок витрат пам'ят для Treat алгоритму, який враховуе витрати на обробку Alpha-мере-

жi, збереження конфлiктного набору та узгодження змшних в термшальних вершинах мережi потоку даних.

4. Формальне представлення Treat алгоритму в по-дальшому може бути використане для оцшювання його середньоï складностi на основi кiлькостi необхвд-них узгоджень в антецедент продукцш.

Лiтература

1. Жежко, Л. Системы искусственного интеллекта. Представление знаний в информационных системах. Т. 1 [Текст] / Л. Жеж-ко, А. Карпик и В. С. Хорошилов. - Новосибирск: СГГА, 2005. - 84 с.

2. Kowalski, R. Towards a Logic-based Production System Language [Electronic resource] / R. Kowalski, F. Sadri. - London, 2010. -Avaialble at: http://www.doc.ic.ac.uk/~fs/Papers/Reactive%20systems/LPS%20technical%20report.pdf

3. Булкин, В. Формальное представление знаний в продукционных системах [Текст] / В. Булкин, Н. В. Шаронова // Искусственный интеллект. - 2006. - № 1. - С. 147-157.

4. Tao, Y. Performance evaluation of the inference structure in expert system [Text] / Y. Tao, H. Zhijun, Y. Ruizhao // Artificial intelligence: Proceedings of the 10th international joint conference. - Kaufmann Publishers Inc. - San Francisco, 1987. - P. 945-950.

5. Шаповалова, С. I. Вибiр оптимального алгоритму спiвставлешшя зi зразком при проектувашшi продукщйно'1 системи [Текст] / С. I. Шаповалова, О. О. Мажара // Схщно-бвропейський журнал передових технологш. - 2014. - Т. 2, № 2 (68). - С. 43-49. doi: 10.15587/1729-4061.2014.23338

6. Джаррантано, Дж. Экспертные системы: принципы разработки и програмирование [Текст] / Дж. Джаррантано , Г. Райли; 4-е издание; пер. с англ. - М.: ООО «И.Д. Вильямс», 2007. - 1152 с.

7. Forgy, C. L. On the Efficient Implementation of Production System : PhD thesis [Text] / C. L. Forgy. - Computer Science Department, Carnegie Mellon University. - Pittsburg, 1979. - 356 p.

8. Miranker, D. P TREAT: A New and Efficient Match Algorithm for AI Production Systems [Text] / D. P. Miranker. - London: Pitman/Morgan Kaufmann, 1990. - 144 p.

9. Liu, D. Rule Engine based on improvement Rete algorithm [Text] / D. Liu, T. Gu, J. Xue // The 2010 International Conference on Apperceiving Computing and Intelligence Analysis Proceeding, 2010. - P. 346-349. doi: 10.1109/icacia.2010.5709916

10. Berstel, B. Extending the RETE algorithm for event management [Text] / B. Berstel // Proceedings Ninth International Symposium on Temporal Representation and Reasoning, 2002. - P. 49-51. doi: 10.1109/time.2002.1027472

11. Kang, J. A. Shortening matching time in OPS5 production systems [Text] / J. A. Kang // IEEE Transactions on Software Engineering. - 2004. - Vol. 30, Issue 7. - P. 448-457. doi: 10.1109/tse.2004.32

12. Albert, L. Average case complicity analyzes of the Rete multi-pattern match algorithm [Text] / L. Albert, F. Fages // Automata, Languages and Programming 5th International Colloquium Tampere. - Finland, 1988. - P. 18-37. doi: 10.1007/3-540-19488-6_104

13. Cirstea, H. Production Systems and Rete Algorithm Formalization [Electronic resource] / H. Cirstea, C. Kirchner, M. Moossen, P. E. Moreau. - Lorraine, 2004. - Available at: https://hal.inria.fr/file/index/docid/280938/filename/rete.formalisation.pdf

14. Wright, I. The execution kernel of RC++: RETE*, a faster RETE with TREAT as a special case [Text] / I. Wright, J. A. R. Marshall // International Journal of Intelligent Games and Simulation. - 2003. - Vol. 2, Issue 1. - P. 36-48.

i Надоели баннеры? Вы всегда можете отключить рекламу.