Особенности программной реализации логических задач на языке Prolog
УДК 519.7
Аннотация
Одним из перспективных направлений использования языка Prolog является решение логических задач. В данном исследовании обозначен подход поиска ответа на основе процедуры генерации состояния и процедуры проверки. Представлены решение логической задачи, которое демонстрирует на практике предлагаемый подход, и способ задания процедуры для генерации состояний. В предложенном примере генерируется битовая цепочка, которая определяет код для буквы в решении прикладной задачи. Построение ответа средствами генерации кода с проверкой позволяет не хранить в базе знаний бинарное дерево всех возможных кодов. Процесс генерации новых состояний можно связать с обучением программы и с динамическим формированием базы знаний. Подход базируется на возможностях программных сред для добавления фактов и правил к уже имеющимся, которые были получены в качестве результатов работы программы либо ее этапов. В данном случае генерирующим правилом является вся программа. Анализ построенных и апробированных процедур динамической генерации состояний и генерации фактов позволяет говорить о применимости такого решения для определенных прикладных задач.
Скачивания
Metrics
Литература
Лорьер Ж.Л. Системы искусственного интеллекта. URL: http://lib.alnam.ru/book_sii.php (дата обращения: 19.06.2020).
Balai E., Gelfond M., Zhang Y. P-log: refinement and a new coherency condition // Annals of Mathematics and Artificial Intelligence. 2019. Vol. 86. DOI: 10.1007/s10472-019-09620-2.
Elkhatib O., Pontelli E., Son T.C. Integrating an Answer Set Solver into Prolog: ASP-PROLOG // Lecture Notes in Computer Science. Berlin, Heidelberg, 2005. DOI: 10.1007/11546207_35.
Половикова О.Н. Формализация процесса построения решения с использованием списков для класса логических задач в программах на языке Пролог // Известия Алтайского гос. ун-та. 2011. № 1/1 (69).
Nilsson U., Maluszynski. J. Logic, Programming and Prolog (2ed) Previously. URL: http://www.cs.ubbcluj.ro/~csatol/log_funk/prolog/NilsonMaluszynski_Prolog.pdf (дата обращения: 19.06.2020).
Bramer M. Logic Programming with Prolog. URL: http://athena.ecs.csus.edu/~logicp/Logic_Prog_Prolog.pdf. (дата обращения: 19.06.2020).
Карпов В.Э. Фреймы. Пролог // Электронная библиотека. URL: http://rema44.ru/resurs/study/ai/present/L05-02-frame.pdf. (дата обращения: 19.06.2020).
Математическая логика и логическое программирование // Математический форум MathHelpPlanet. URL: http://mathhelpplanet.com/static.php?p=matematicheskaya-logika-i-logicheskoye-programmirovaniye. (дата обращения: 19.06.2020).
Решение логических задач на Prolog // Блог программиста: программирование и алгоритмы (версия от 28.05 2018). URL: https://pro-prof.com/archives/1299. (дата обращения: 19.06.2020).
Santos Costa V. On Just in Time Indexing of Dynamic Predicates in Prolog // Lecture Notes in Computer Science. Berlin, Heidelberg, 2009. DOI:10.1007/978-3-642-04686-5
Повторение и рекурсия. Откат // Проект: project:prolog:povtorenie_i_rekursija. URL: http://verim.org/project/prolog/povtorenie_i_rekursija. (дата обращения: 19.06.2020).
ЕГЭ по информатике (2018) // Сайт К.Ю. Полякова. URL: http://kpolyakov.spb.ru/school/ege.htm. (дата обращения: 19.06.2020).