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

Автор(и)

  • Світлана Ігорівна Шаповалова Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», м. Київ

DOI:

https://doi.org/10.32626/2308-5916.2020-21.125-139

Анотація

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

Наведено відомості про існуючі реалізації логічного висновування в Erlang за обома підходами до формування міркувань: логічним — Erlog та продукційним: ERESYE, SERESYE та RUNES ІІ. Обгрунтовано доцільність розроблення для Erlang власного механізму міркувань, що базується саме на властивостях цієї мови програмування.

Визначено базові принципи концепції логічного висновування за продукційною моделлю, орієнтовані на ефективне використання вбудованого механізму співставлення Erlang, для прискорення логічного висновування. В запропонованій формалізації кожна одиниця представлення має два визначення за синтаксисами логіки та Erlang. Формалізацію відповідно до рівню об’єктів представлення розподілено на три частини: визначення базових елементів логіки, представлення умов логічного висновування (зразків і фактів), представлення безпосередньо компонентів продукційної моделі (правила, робочої пам’яті, конфліктного набору).

На основі запропонованої формалізації продукційної моделі для Erlang розроблено функцію активації правила бази знань для ефективного логічного висновування. При виклику — у випадку успішної активації — ця функція повертає кортеж зі списку екземплярів поточного правила та показника його пріоритетності. Кожен елемент списку відповідає комбінації фактів робочої пам’яті, які були успішно узгоджені зі зразками умовної частини поточного правила. У випадку, коли жодного варіанту узгодження не існує, функція повертає кортеж з пустим списком.

Наведено приклад створення та застосування функції активації для поточного правила

Посилання

Virding R. Erlog — Prolog for an Erlang Application. URL: https://github.com/rvirding/erlog.

Di Stefano A., Gangemi F., Santoro C. Eresye: Artificial intelligence in Erlang programs. Proc. 2005 ACM SIGPLAN Work. Erlang — ERLANG ’05, Sept. 26-28, 2005. Tallinn, 2005. P. 62-71. DOI:10.1145/1088361.1088373.

Santoro C. ERESYE download. URL: https://sourceforge.net/projects/eresye.

SERESYE — Swarm oriented Erlang Expert System Engine. URL: https://github.com/afiniate/seresye.

Zhou R., Wang G., Li J. RUNES II: A Distributed Rule Engine Based on Rete network in Cloud Computing. Internatiol journal of Grid distribution computing. 2014. Vol. 7. № 6. P. 91-110. DOI:10.14257/ijgdc.2014.7.6.08.

Forgy C.L. Rete: A Fast Algorithm for the Many Pattern. Many Object Pattern Match Problem, Artificial intelligence. 1982. Vol. 19. № 1. P. 17-37.

Miranker D.P. TREAT: A New and Efficient Match Algorithm for AI Production Systems. Morgan Kaufmann Publishers. San Francisco, 1990. P. 143.

Шаповалова С. І., Мажара О. О. Вибір оптимального алгоритму співставлення зі зразком при проектуванні продукційної системи. Східно-Європейський журнал передових технологій. 2014. Вип. 2/2 (68). С. 43-49. DOI: 10.15587/1729-4061.2015.46571.

##submission.downloads##

Опубліковано

2020-05-21