В данном исследовании обозначен и проанализирован способ решения логических задач декларативным языком Prolog на основе метода поиска в пространстве состояний. Суть метода -- задекларировать генератор состояний, формирующий пространство поиска, и процедуру отбора для просеивания построенных состояний по определенному принципу. В исследовании предложена классификация способов построения генераторов данным методом. Описаны формальные модели следующих решений: обобщенная задача о переправе, задача на переливание и задача построения кодового слова. Для описания объектов и их состояний предложено использовать битовые цепочки, а для генерации очередного состояния -- побитовые операции. Описанные подходы построения искомых вариантов позволяют найти все возможные решения заданной размерности. Обозначены перспективы генерации правил базы знаний. Полученные в ходе исследования примеры декларативных моделей используются в преподавании дисциплины «функциональное илогическое программирование» в Алтайском госуниверситете. С. 54-67.
In this study, a method for solving Logical Tasks in the declarative language Prolog is identified and analyzed using the State Space Search Method. The essence of this method is to declare a State Generator, which forms the Search Space, and a Selection Procedure for sifting the constructed states according to a certain principle. pagebreak In this study a classification of techniques is proposed for constructing generators by this method. The formal models of the following solutions are described: The Generalized Crossing Task, The Transfusion Task and The Code Word Construction Task. To describe objects and their states, it was proposed to use Bit Chains, and to generate the next state -- Bitwise Operations. The described approaches for constructing the desired variants make it possible to find all possible solutions of a given dimension. The prospects for generating knowledge base rules are indicated. Examples of declarative models, obtained in the course of this study, are used in the course “Functional and Logic Programming” in the Altai State University.
Ключевые слова: поиск решений, пространство состояний, база знаний, логические задачи, Prolog-система.
Keywords: search for solutions, state space, knowledge base, logical tasks, Prolog-system.
В данной статье анализируется проблема сбора и накопления готовых программных решений студентов с возможностью их непосредственного выполнения (тестирования). Для решения проблемы предлагается подход на основе технологии контейнерной виртуализации. Каждое программное решение автоматически разворачивается в изолированном docker-контейнере. Подход апробирован на практике. Спроектирована и разработана программная платформа, позволяющая размещать готовые прикладные разработки, тестировать варианты существующих решений разного уровня и сложности, анализировать применяемые технологии и подходы, оценивать работу используемых методов и алгоритмов. Программная платформа реализована в виде клиент-серверного web-приложения. Проблема размещения и запуска стека приложений без привлечения дополнительного серверного оборудования и~ресурсозатратных технологий решается применением виртуализации на основе гипервизора. Виртуальная машина для разработанного web-приложения создана на базе программного гипервизора. Полученный в рамках исследования анализ видов виртуализации ресурсов позволяет делать выводы о применимости используемых технологий для решения других прикладных задач. С. 51-59.
This article analyzes the problem of collecting and storing the program solutions of students that can be directly executed, tested. Container-based virtualization technologies are proposed to solve the problem. Each software development is automatically deployed in one or more isolated docker-containers. The approach has been tested in practice. A software platform for publishing ready-made application solutions has been designed and developed. The platform services allow testing ready-made developments of different level and complexity, analyzing the applied technologies and approaches, evaluating the performance of the used methods and algorithms. The software platform is implemented on the basis of client-server web- application. The problem of deploying and running the portal application stack without additional server hardware and resource-intensive technologies is solved by using hypervisor-based virtualization. The virtual machine for the developed web- application was created on the basis of a software hypervisor. The analysis of resource virtualization types obtained in the framework of the research allows us to draw conclusions about the applicability of the used technologies for solving other practical tasks.
Ключевые слова: виртуализация ресурсов, вычислительные процессы, контейнер, образ, банк программных разработок, клиент-серверное приложение, Docker-система, Docker Hub.
Keywords: resource virtualization, computing processes, container, image, software development base, client-server application, Docker-system, Docker Hub.