УДК [004.4’24:004.832.3]::004.942

Дедуктивный вывод объектно-событийных моделей
при постановке и решении задач моделирования многофазных сред

В.В.ПЕКУНОВ
(Ивановский государственный энергетический университет,
Региональный научно-образовательный центр по наноматериалам «Жидкие кристаллы»)

Качественное решение задачи автоматизации порождения программ моделирования многофазных сред требует построения подробной модели (описания) задачи, которая часто уже содержит базовый план решения в явной или неявной форме. Далее возможна либо прямая интерпретация модели (системы Флора/FloraWare), либо генерация решающей программы по структуре данной модели в соответствии со специализированной (системы НОРМА, SciNapse) или одной из унифицированных схем: прямого преобразования (Draco, TAMPR, работы С.В.Востокина), компилирующих шаблонов (MPS, системы класса Software Factories), объектно-событийной интерпретации (PGEN++). Построение модели задачи, содержащей план решения — трудозатратная и нетривиальная проблема, для автоматизации решения которой часто используются технологии искусственного интеллекта, в частности, логического вывода (ПРИЗ, IPGS) или последовательных символических преобразований.
В данной работе предлагается расширение гибкой схемы порождения программ на базе объектно-событийных моделей, реализованной в системе PGEN++, за счет частичного дедуктивного вывода плана решения задач. Пусть иерархия классов (понятий) предметной области включает порождающие и решающие (дедуктивные) классы. Задача описывается в виде графической схемы — совокупности взаимосвязанных объектов, являющихся экземплярами порождающих и/или решающих классов. Возможна даже исключительно формальная постановка задачи (в терминах «исходные данные - цель»), включающая лишь объекты решающих классов.
Порождающие классы имеют генерирующие методы (на языке PHP), к каждому решающему классу относятся два предиката (на языке GNU Prolog) — инициализирующий и решающий. Каждый предикат имеет входные (уже связанные) и выходные (свободные) переменные, состав которых определяется наборами входов и выходов, указанных в декларации соответствующего класса. Инициализирующие предикаты анализируют постановку задачи и подготавливают данные для решения, заполняя базу фактов, а решающие предикаты дедуцируют план решения и вводят его в описание задачи в виде соответствующей подсхемы, представляющей собой совокупность взаимосвязанных объектов. Для предикатов структура задачи описана в виде динамического набора фактов, который однозначно отображается в XML-представление задачи.
Сначала задача рассматривается на уровне решения. Если схема задачи включает объекты решающих классов, к ней применяется процедура логического вывода, модифицирующая данную схему. Формируются два целевых предиката, требующих, соответственно, последовательного доказательства инициализирующих и решающих предикатов. Последовательность доказательства определяется структурой связей модели (по методике, аналогичной сетевому графику работ). В результате доказательства целевых предикатов объекты порождающих классов генерируют подсхемы (фрагменты плана решения) и подставляют эти подсхемы вместо себя в общее описание задачи. Если полученное описание задачи вновь содержит объекты решающих классов, то оно опять рассматривается на уровне решения.
К конечному описанию (включающему план решения задачи), содержащему лишь объекты порождающих классов, применяется стандартная для системы PGEN++ двухслойная интерпретация (на событийном и объектно-сетевом уровнях), результатом которой является конечная программа, решающая задачу.
В настоящее время разработаны решающие классы для задач моделирования образования и распространения загрязнений, автоматизирующие синтез подсхем, вводящих в математическую модель блоки моделирования излучения. Это позволило существенно упростить описание задач моделирования в системе AirEcology-P, устранив необходимость явного указания всех требуемых объектов, их взаимосвязей и параметров.
Работа была выполнена при финансовой поддержке Минобразования и науки (грант РНП.2.2.1.1.7280).