Формалізація представлення продукційних правил в 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##
Опубліковано
Номер
Розділ
Ліцензія
Authors who publish with this journal agree to the following terms:- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).