Научная статья на тему 'Алгоритм верификации структуры трехмерного адаптивного приложения'

Алгоритм верификации структуры трехмерного адаптивного приложения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
214
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТРЕХМЕРНОЕ АДАПТИВНОЕ ПРИЛОЖЕНИЕ / ОРИЕНТИРОВАННЫЙ ГИПЕРГРАФ / ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / МОДЕЛИРОВАНИЕ ИЗМЕНЧИВОСТИ / ИТЕРАЦИОННЫЙ АЛГОРИТМ ВЕРИФИКАЦИИ / THREE-DIMENSIONAL ADAPTIVE APPLICATION / ORIENTED HYPERGRAPH / SOFTWARE DESIGN / VARIABILITY MODELING / VERIFICATION ITERATIVE ALGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Евсеева Юлия Игоревна

Актуальность и цели. Вопрос создания автоматизированной системы синтеза трехмерных адаптивных программ (ТРАП) довольно актуален в настоящее время. Данная система особенно полезна в сфере образования, так как позволит преподавателям, не имеющим навыков программирования, самостоятельно разрабатывать тренажеры и обучающие программы, использующие преимущества трехмерной графики и возможность адаптации к ученику. Однако так как такая система подразумевает работу с неопытным пользователем, необходимо введение методов верификации составленных им алгоритмических решений. Цель данного исследования разработка таких методов на основе математической модели ТРАП, используемой в предлагаемой системе. Материалы и методы. Для решения поставленной задачи был применен математический аппарат теории графов, в частности гиперграфовое представление структуры ТРАП. Результаты. Разработанный алгоритм является модификацией алгоритма полного обхода ориентированного гиперграфа. Формализованы основные процедуры работы с частичными конфигурациями добавление и удаление произвольных вершин, завершение частичной конфигурации и преобразование ее в полноценную путем добавления недостающих вершин из головных множеств гиперребер. Разработанный алгоритм также позволяет эффективно обрабатывать последовательность конфигураций. Применение алгоритма позволяет находить и исправлять ошибки, допускаемые непрофессиональным пользователем при проектировании трехмерной адаптивной программы. Выводы. Разработанный алгоритм позволяет не только обнаружить неточности, допущенные пользователем в ходе проектирования логической структуры, но и внести в некорректную конфигурацию соответствующие исправления.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

STRUCTURE VERIFICATION ALGORITHM OF A THREE-DIMENSIONAL ADAPTIVE APPLICATION

Background. The problem of creating an automated synthesis system of three-dimensional adaptive applications (TDAA) is quite relevant now. Such system is especially useful in education, because it allows teachers, who do not have programming skills, to develop their own simulators and training programs. Such programs may use the advantage of three-dimensional graphics and the ability to adapt to a student. However, since such system involves working with an inexperienced user, it is necessary to develop methods of user''s algorithmic solutions verification. The aim of this work is to develop such methods. Materials and methods. To solve this problem the author applied the mathematical apparatus of the graph theory, in particular, the hypergraph representation of software structure. Results. The developed algorithm is a modification of the full crawl oriented hypergraph algorithm. The researcher formalized basic procedures for working with a partial configuration adding and removing an arbitrary vertex, completion of the partial configuration and its transformation into a full configuration by adding the missing vertex from the head sets of hyperedges. The developed algorithm also allows to effectively handle a sequence of configurations. The use of the algorithm allows to find and correct mistakes made by non-professional users in design of three-dimensional adaptive programs. Conclusions. The developed algorithm makes it possible not only to detect inaccuracies in software logical structure design, but also to revise an incorrect configuration.

Текст научной работы на тему «Алгоритм верификации структуры трехмерного адаптивного приложения»

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

УДК 004.94

Ю. И. Евсеева

АЛГОРИТМ ВЕРИФИКАЦИИ СТРУКТУРЫ ТРЕХМЕРНОГО АДАПТИВНОГО ПРИЛОЖЕНИЯ

Аннотация.

Актуальность и цели. Вопрос создания автоматизированной системы синтеза трехмерных адаптивных программ (ТРАП) довольно актуален в настоящее время. Данная система особенно полезна в сфере образования, так как позволит преподавателям, не имеющим навыков программирования, самостоятельно разрабатывать тренажеры и обучающие программы, использующие преимущества трехмерной графики и возможность адаптации к ученику. Однако так как такая система подразумевает работу с неопытным пользователем, необходимо введение методов верификации составленных им алгоритмических решений. Цель данного исследования - разработка таких методов на основе математической модели ТРАП, используемой в предлагаемой системе.

Материалы и методы. Для решения поставленной задачи был применен математический аппарат теории графов, в частности гиперграфовое представление структуры ТРАП.

Результаты. Разработанный алгоритм является модификацией алгоритма полного обхода ориентированного гиперграфа. Формализованы основные процедуры работы с частичными конфигурациями - добавление и удаление произвольных вершин, завершение частичной конфигурации и преобразование ее в полноценную путем добавления недостающих вершин из головных множеств гиперребер. Разработанный алгоритм также позволяет эффективно обрабатывать последовательность конфигураций. Применение алгоритма позволяет находить и исправлять ошибки, допускаемые непрофессиональным пользователем при проектировании трехмерной адаптивной программы.

Выводы. Разработанный алгоритм позволяет не только обнаружить неточности, допущенные пользователем в ходе проектирования логической структуры, но и внести в некорректную конфигурацию соответствующие исправления.

Ключевые слова: трехмерное адаптивное приложение, ориентированный гиперграф, проектирование программного обеспечения, моделирование изменчивости, итерационный алгоритм верификации.

Yu. I. Evseeva

STRUCTURE VERIFICATION ALGORITHM OF A THREE-DIMENSIONAL ADAPTIVE APPLICATION

Abstract.

Background. The problem of creating an automated synthesis system of three-dimensional adaptive applications (TDAA) is quite relevant now. Such system is especially useful in education, because it allows teachers, who do not have programming skills, to develop their own simulators and training programs. Such programs may use the advantage of three-dimensional graphics and the ability to adapt to a student. However, since such system involves working with an inexperienced user, it is necessary to develop methods of user's algorithmic solutions verification. The aim of this work is to develop such methods.

Materials and methods. To solve this problem the author applied the mathematical apparatus of the graph theory, in particular, the hypergraph representation of software structure.

Results. The developed algorithm is a modification of the full crawl oriented hypergraph algorithm. The researcher formalized basic procedures for working with a partial configuration - adding and removing an arbitrary vertex, completion of the partial configuration and its transformation into a full configuration by adding the missing vertex from the head sets of hyperedges. The developed algorithm also allows to effectively handle a sequence of configurations. The use of the algorithm allows to find and correct mistakes made by non-professional users in design of three-dimensional adaptive programs.

Conclusions. The developed algorithm makes it possible not only to detect inaccuracies in software logical structure design, but also to revise an incorrect configuration.

Key words: three-dimensional adaptive application, oriented hypergraph, software design, variability modeling, verification iterative algorithm.

Введение

В настоящее время все большее распространение получают различные виртуальные тренажеры, компьютерные обучающие программы, системы виртуальной реальности, сложные компьютерные игры. Все чаще программы данного типа используют трехмерную графику (медицинские тренажеры и тренажеры управления техникой) и стратегии адаптации к пользователю (выработка индивидуальной траектории обучения). Все это обусловливает актуальность вопроса о создании автоматизированной системы синтеза трехмерных адаптивных приложений (ТРАП), предполагающую построение программ такого класса неопытным пользователем в максимально короткие сроки. Например, подобная система будет полезна преподавателям, желающим оперативно разработать обучающее приложение без необходимости написания сложного программного кода. Однако пользователь в процессе разработки может допускать ошибки, некоторые из которых могут привести к тому, что разрабатываемая программа будет нерабочей. Для решения данной проблемы необходимо введение методов проверки корректности разрабатываемой программы.

1. Структура ТРАП и математическая модель ТРАП

Для наглядного представления логической структуры ТРАП предлагается использование методов моделирования изменчивости (variability modeling [1]), в частности диаграмм характеристик (feature diagrams [2]).

С точки зрения используемого подхода под структурой ТРАП понимается схематичное описание набора основных, наиболее важных со структур-

ной точки зрения компонентов приложения (моделей, функций и т.п.) и взаимосвязей между ними.

Структура ТРАП в таком случае основана на трех основных категориях объектов [3]:

1. Трехмерные модели.

2. Основные программные функции.

3. Параметры.

На рис. 1 представлен фрагмент модели характеристик, изображающий взаимосвязи между трехмерными моделями в структуре программы.

Модели |

А [1-.N1

Tpviiiial ч I— ф-

I'pviniaN

Рис. 1. Фрагмент структуры ТРАП

Представление структуры ТРАП в форме модели характеристик позволяет пользователю «визуально» проектировать структуру приложения на каждом этапе его работы, определяя тем самым его структурную изменчивость. Тем самым осуществляется решение сразу двух значимых для построения и эффективного использования предлагаемой системы задач - задачи реализации адаптивного поведения в программах, относящихся к широкому классу ТРАП, не ограниченному конкретной предметной областью, и задачи реализации достаточно дружественного по отношению к непрофессиональному пользователю интерфейса для задания такого поведения.

Математическая модель ТРАП при этом имеет вид

М = {¥, 5, X, В(С, X)}, (1)

где ¥ соответствует описанию структуры ТРАП в форме гиперграфа. Под гиперграфом в математике принято понимать обобщение графа, в котором каждым ребром могут соединяться не только две вершины, но и любые подмножества вершин [4]. Необходимо также отметить, что используемый гиперграф является ¥-графом, т.е. графом, из любой вершины которого может исходить только одно ребро; 5 = {«^52,53,...,5к} - множество подграфов исходного графа ¥, каждый из которых соответствует определенной конфигурации модели характеристик. Каждая конфигурация модели характеристик соответствует определенному шагу работы адаптивного приложения; X -матрица переходов между шагами работы приложения; 0(С, X) - функция,

задающая динамическую изменчивость, в которой C - показатель качества прохождения шага работы приложения.

Структура ТРАП в виде гиперграфа описывается следующим образом:

F = (N, E, A, ¥), (2)

где N = (nj,n2,Пз,...,nn} - конечное множество характеристик (узлов); E = (Ej,E2,E3,...,Em},Ei с N V i = 1,...,m л | ^(E^) |= qt - множество гиперребер, каждое из которых связано с головным множеством (множество узлов, в которые «входит» гиперребро) мощностью qi; Ae N - корневая характеристика модели характеристик. Корневая характеристика является единственным узлом гиперграфа, который не связан ни с одним головным множеством, т.е. в него не «входит» ни одно гиперребро). По отношению к корневому множеству R применимо:

- R с N л R = {A} ;

- BS(A) = 0 (множество гиперребер, чьи головные множества включают в себя вершину A , является пустым);

- BS(n) Ф 0, Vn e (N - R) (для любой вершины гиперграфа, за исключением корневой, множество гиперребер, чьи головные множества включают в себя данную вершины, не является пустым);

¥ : E ^ MV, MV с N X N * - функция маркировки, которая присваивает значение мощности mv(Ei) = (min,max) e MV (MV - множество всех значений мощности модели, N - конечное множество вершин) каждому F-ги-перребру Ei, так что min,max eZл min > 0, max > 0, min < max л max < qi, где Z - множество целых чисел. Под значением мощности понимается число вершин из головного множества гиперребра, которое необходимо выбрать, чтобы сформировать корректную конфигурацию модели. В данном случае речь идет о диапазоне значений, так как отношения в диаграмме характеристик (И, ИЛИ) могут связывать различное, в зависимости от выбора пользователя, число характеристик. Таким образом, данная функция устанавливает гиперребру значение его мощности в диапазоне от min до max. Данное значение всегда будет представлять собой целое число, положительное или равное нулю, или равно нулю и не превышающее мощность головного множества qi.

Матрица переходов имеет размерность k X k , где k - число конфигураций, номера столбцов и строк соответствуют номерам конкретных шагов работы ТРАП. Каждый элемент XjVi = 1,..., k V j = 1,.., k представляет собой

некое числовое значение, которое необходимо для определения того, на какой именно шаг, имеющий номер, соответствующий номеру столбца, перейдет программа с текущего шага, имеющего номер, соответствующий номеру строки.

Функция динамической изменчивости D(C, X) необходима для определения того, на какой шаг должно будет перейти приложение в процессе своей работы. Принимая на вход значения показателя качества прохождения C и матрицу переходов, функция возвращает номер следующего шага.

За счет использования предложенной математической модели адаптивного приложения возможна реализация двух типов изменчивости (адаптивности) - структурной (различия в наборе компонентов, составляющих ТРАП на

определенном шаге его работы), задаваемой пользователем, проектирующим ТРАП посредством работы с множеством конфигураций £, и динамической, реализуемой за счет использования функции 0(С, X) в процессе выполнения программы.

2. Описание предлагаемого алгоритма

Так как конфигурация структурной модели полностью определяется действиями пользователя, необходимо введение дополнительных средств проверки корректности.

При составлении конфигурации структурной модели, соответствующей конкретному шагу работы ТРАП, пользователь выбирает ряд характеристик, необходимых для наиболее полного описания функционирования программы на данном шаге.

Описываемый алгоритм в цикле проходит по каждой конфигурации, ищет и исправляет допущенные пользователем ошибки. Получая на каждом шаге множество выбранных пользователем характеристик модели (вершин гиперграфа), для каждой выбранной вершины сначала выстраиваются допустимые пути от нее до корневой вершины (построение частичной конфигурации). Таким образом осуществляется проверка на то, не включил ли пользователь в конфигурацию вершины-потомки, не включив при этом соответствующие вершины-родители. Затем для каждого отношения (гиперребра) частичной конфигурации алгоритм осуществляет проверку на то, была ли достигнута его минимальная мощность, т. е. достаточное ли количество характеристик было выбрано пользователем.

В общем виде предлагаемый алгоритм верификации выглядит следующим образом:

1. Начало цикла проверки конфигураций. Выбор очередной конфигурации = (,Е£ ), где / = 1,.., к, с N, Е$ с Е, из множества составленных пользователем на основе гиперграфового представления структуры ТРАП Е.

2. Этап генерации частичных конфигураций. Под частичной конфигурацией понимается конфигурация, в которой из каждой включенной в нее вершины существует корректный путь до корневой вершины, но при этом минимально допустимое количество вершин из головного множества гиперребра может быть еще не выбрано (минимальная мощность гиперребра не достигнута). Имея в качестве входных данных множество выбранных характеристик Ы^,, на данном этапе необходимо найти корректный путь между каждой характеристикой п е и корневой характеристикой А .

3. Этап завершения частичных конфигураций. Частичная конфигурация должна пройти данный этап, если в ней есть одно или более гиперребро, чье хвостовое множество (множество вершин, из которых «исходит» гиперребро) включено в нее, но при этом число включенных характеристик из головного множества данного гиперребра меньше минимальной мощности отношения. Какие именно характеристики должны быть выбраны - вопрос, на который нельзя дать однозначного ответа, так как многое зависит от потребностей пользователя. Данный алгоритм будет выбирать характеристики из

головного множества гиперребра до тех пор, пока не будет достигнута минимальная мощность отношения.

4. Переход к первому пункту алгоритма.

Следует отметить, что в случае, если ход работы приложения разбит на более чем один шаг, нет смысла каждый раз заново вычислять множество частичных конфигураций, так как в силу определенной схожести смежных шагов различия между множествами и +1 будут минимальны. По этой причине более экономным в отношении ресурсов компьютера подходом будет вычисление для каждой смежной пары множеств и 51+1 множества добавленных на 1 +1 шаге вершин N5. + = N5.— N5. и множества удаленных

вершин N5. — = N55, — N5 +^^ . При этом полноценную процедуру вычисления

множества частичных конфигураций достаточно будет провести только на шаге 1 = 0, вычисление же данного множества на каждом шаге 1 +1 будет осуществляться, во-первых, за счет удаления из результатов, полученных на предыдущем шаге, вершин, принадлежащих множеству N5,—, а во-вторых, за

счет добавления в формируемое множество конфигураций вершин из N5. +.

Ниже приведено описание алгоритма в форме псевдокода, сделанное с учетом данного замечания. Алгоритм принимает на вход множество конфигураций 5 , а на выходе формирует множество корректных конфигураций

С = {СЪ^^Ск} .

процедура проверкаКонфигураций^,С) 5:=выбратьПервыйЭлемент^); // выбор конфигурации из списка ^=получитьВершины^);// получить вершины конфигурации добавитьВершины^,^); // добавить вершины в конфигурацию к:=получитьМощность^); // получить число элементов в списке завершитьКонфигурацию^); // функция завершения конфигурации,

// подробно рассмотрена ниже

к=2;

S:=S-{s}; // удаление рассмотренной конфигурации из списка пока i < k выполнять // цикл по конфигурациям s:=выбратьПервыйЭлемент(S); ^еи,:=получитьВершины(5);

N^<5 :=^еи, // получение добавленных на новом шаге вершин NminUs:=N-Nnew; // получение удаленных на новом шаге вершин С,:=С(|_1); // начало модификации множества вершин,

//полученного на предыдущем шаге добавитьВершины(^|и5, С) // функция добавления вершин

// в конфигурацию. Подробно // рассмотрена ниже удалитьВершины^^пи5, С) // функция удаления вершин

// из конфигурации. Подробно // рассмотрена ниже завершитьКонфигурацию(Р); i=i+1; // переход к следующему шагу конец цикла // завершение цикла перебора конфигураций конец процедуры

Имея обобщенную модель ТРАП М = {Е,£,X,В(С,X)}, гиперграфовое представление ТРАП Е = (N, Е, А, ¥), а также множество выбранных на конкретном шаге характеристик с N, будем понимать корректную конфигурацию структурной модели на 7-м шаге работы С. = (Ыс., Ее ., А) как

подграф ограниченной модели характеристик Се = (N, Е', А, ¥'). При этом под ограниченной моделью характеристик будем понимать модель характеристик, где:

• Е' = Е и Ег и Ет :

- Ег = {г1,Г2,Г3,...,г } л г е N V 7= 1,...,I - множество отношений включения (отношение, при котором включение одной характеристики, например модели, требует обязательного включения другой, например функции), смоделированных в форме гиперребер, для которых в целом справедливо |Н(г )| > 1, где Н - головное множество гиперребра;

- Ет = {т1,т2,тз,...,тр) лmj е Nе у = 1,...,р - множество отношений исключения (связанные данным отношением характеристики не могут быть частью одной конфигурации), смоделированных в форме

гиперребер, для которых в целом справедливо |н(ту )| > 2 л Т(ту) = А,

где Т обозначает хвостовое множество гиперребра;

• Г = ¥и¥г и¥т :

— ¥ г : Ег ^ М¥ - функция маркировки, ставящая в соответствие каждому гиперребру г пару т\(т1) = (тт,тах) е МУ, где МУ -множество всех значений мощности модели, так что тт = |Н(г )| = тах . Когда отношение включения затрагивает две вершины, т\(т1) = (1,1);

— ¥т : Ет ^ МУ - функция маркировки, ставящая в соответствие каждому гиперребру тр пару ту(тр) = (тт,тах) е МУ, так что ту(тр) = (0,1).

3. Процедура добавления вершины в частичную конфигурацию

Данная процедура необходима для построения частичной конфигурации. Она осуществляет добавление вершины в конфигурацию, добавляя при этом (в случае необходимости) вершины-предки.

На основе имеющейся ограниченной модели характеристик Се = (N, Е', А, ¥') множества выбранных характеристик Ns, с N (либо множества выбранных для добавления на текущем шаге вершин + с N)

и начальной конфигурации Со = (N0, Ео)/ N0 = {А} л Ео = 0 (либо уже составленной на предыдущих шагах работы алгоритма конфигурации С{—1 = (Nс. , Ес. ,А)) предлагаемая процедура работает следующим образом:

1. Выбор и удаление характеристики п е из множества . Добавление п е Ns, в конфигурацию С..

2. Для каждого гиперребра е е Е, чье головное множество содержит выбранную характеристику п и чья максимальная мощность еще не была достигнута, алгоритм выбирает хвостовое множество Т (е), если оно еще не выбрано, добавляет его к множеству N5. и совершает рекурсивный вызов (с обновленными множеством N5^ и частичной конфигурацией С ).

3. Если N5^ = 0, алгоритм завершает работу; в противном случае он

продолжает свою работу с первого шага.

Аналогичным образом алгоритм работает и для множества N5, + с N .

Алгоритм, реализованный в форме псевдокода, выглядит следующим образом:

процедура добавитьВершины(№,С)

пока №*0 выполнять // цикл по множеству вершин // Выбор и удаление узла п е N5 п:=выбратьПервыйЭлемент(№); №:=№-{п};

// Отметить узел п е N5 как выбранный включитьВконф (п,С); // Действительное число родителей числоРодителей:=0;

для каждого е е BS(n) и тип(е) Ф "ограничение" // цикл

//по гиперребрам // Выбрать гиперребро, если максимальная мощность //отношения еще не достигнута если использовано(е) < максМощность(е) тогда числоРодителей:=числоРодителей+1; использовано(е):= использовано(е)+1; // Включение хвостового множества // в конфигурацию

если не включеноВконф(хвост(е), С) тогда

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

включитьВконф(хвост(е), С ); конец условия №:=№ и хвост(е); добавитьВершины(№,С); конец условия конец цикла конец цикла // Завершение пути C:=void;

// Проверка на некорректные конфигурации если числоРодителей=0 тогда

возврат; конец условия конец процедуры

4. Процедура удаления вершины из частичной конфигурации

Данная процедура необходима для построения частичной конфигурации. Она осуществляет удаление вершины из частичной конфигурации, удаляя при этом (в случае необходимости) ее потомков.

На основе набора данных, в который входят ограниченная модель ха-

I I

рактеристик Ср = (N, Е , А, ¥ ), множество выбранных для удаления на текущем шаге вершин N5^ _ с N и составленная на предыдущих шагах работы

алгоритма конфигурация С{—1 = (^ , 1, А), предлагаемая процедура работает следующим образом:

1. Характеристика п е N5, _ выбирается и удаляется из множества N5, _

и конфигурации С{.

2. Для каждого структурного гиперребра е е Е , чье хвостовое множество содержит выбранную характеристику п, алгоритм выбирает головное множество Н(е), удаляет его из конфигурации С{ , если это необходимо, и совершает рекурсивный вызов (с обновленными множеством N5^ _ и частичной конфигурацией С{).

3. Если N5^ _ = 0, алгоритм завершает работу; в противном случае он

продолжает свою работу с первого шага.

Алгоритм, реализованный в форме псевдокода, выглядит следующим образом:

процедура удалитьВершины(№,С)

пока №*0 выполнять // цикл по вершинам // Выбор и удаление узла п е N5 п:=выбратьПервыйЭлемент(№); №:=№-{п}; исключитьУзел(п,С);

// исключение потомков узла из конфигурации // цикл по исходящим из удаленного узла ребрам

для каждого е е FS(n) и тип(е) Ф "ограничение" // рассмотрение головного множества ребра ^=голова(е);

// проверка дочерних узлов из головного множества ребра. для каждого п1 е ^ // если узел не включен в конф.

//или у него есть включенные родители, то // исключить его из дальнейшего рассмотрения если не(включеноВКонф(п1,С) ) или числоРодитВКонфиг(п1,С)>0 и^=и^{п1}; конец условия конец цикла №:=№ и и^ удалитьВершины(№,С); конец цикла конец условия конец цикла конец процедуры

5. Процедура завершения частичной конфигурации

Данная процедура служит для завершения частичной конфигурации. Для каждого включенного в конфигурацию гиперребра (отношения модели

характеристик) она осуществляет проверку на достижение минимальной мощности отношения и в случае необходимости добавляет недостающие вершины в конфигурацию.

На основе составленной на .-м шаге частичной конфигурации С = (Nс., Ес., А) предлагаемая процедура работает следующим образом:

1. Генерируется список структурных гиперребер Р, чье хвостовое множество уже включено в конфигурацию, но чья минимальная мощность еще не достигнута.

2. Для каждого гиперребра е е Е. алгоритм выбирает столько характеристик из головного множества, сколько требуется для достижения минимальной мощности, и выполняет рекурсивный вызов.

3. Если Р = 0 , алгоритм завершает работу; в противном случае он продолжает свою работу с первого шага.

Алгоритм, реализованный в форме псевдокода, выглядит следующим образом:

процедура завершитьКонфигурацию (С^

для каждого e е E и включеноВКонфиг(хвост(е)) выполнить

P:=P и {е}; конец цикла пока Р Ф 0 выполнять

// Выбор и удаление р е Р

р:=выбратьПервыйЭлемент(Р);

Р:=Р-{р};

// Выбор характеристики из головного множества гиперребра // для достижения его минимальной мощности для каждой п е голова(р) выполнять

// Проверка, достигнута ли мин. мощность ребра //и не включена ли уже п в конф. если использовано(р) < минМощность(р) и не(включеноВКонф(п, С^ тогда включитьВКонф(п, С)

использовано(р):= использовано(р)+1; // проверка //на корректность

если корректно (С^ тогда

// Поиск частичной конфигурации //для отношения ограничения если мощность(получитьОграничения(С) > 0 тогда С,:= добавитьВершину(получитьОграничения(Р), С) иначе

С := С-конец условия

// Завершение конфигурации для каждого с е выполнять С'^ := завершить (с); если корректно(С^) тогда р:= С и { С'}

иначе

// Конфигурация некорректна

С,:=пусто; конец условия конец цикла

иначе

// Конфигурация некорректна С,:=пусто; конец условия конец условия конец цикла конец цикла конец процедуры

Заключение

В статье впервые предложен итерационный алгоритм верификации конфигураций математической модели ТРАП. Алгоритм основан на работе с представлением данной модели в форме ориентированного гиперграфа. Формализованы основные процедуры работы с частичными конфигурациями -добавление и удаление произвольных вершин, завершение частичной конфигурации и преобразование ее в полноценную путем добавления недостающих вершин из головных множеств гиперребер. Разработанный алгоритм также позволяет эффективно обрабатывать последовательность конфигураций. Применение алгоритма позволяет находить и исправлять ошибки, допускаемые непрофессиональным пользователем при проектировании трехмерной адаптивной программы.

Список литературы

1. Apel, S. Feature-Oriented Software Product Lines: concepts and implementation / S. Apel, D. Batory, C. Kästner, G. Saake. - Berlin : Springer, 2013. - C. 36-45.

2. Czarnecki, K. Feature Diagrams and Logics: There and Back Again / K. Czarnecki,

A. Wasowski // SPLC '07 Proceedings of the 11th International Software Product Line. -Washington, USA : IEEE Computer Society Washington, 2007. - P. 68-70.

3. Бождай, А. С. Моделирование изменчивости в автоматизированном проектировании адаптивных обучающих программ / А. С. Бождай, Ю. И. Евсеева // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. -№ 1 (33). - C. 5-18.

4. Емеличев, В. А. Лекции по теории графов / В. А. Емеличев, О. И. Мельников,

B. И. Сарванов, Р. И. Тышкевич. - М. : Наука, 1990. - C. 90-97.

References

1. Apel S., Batory D., Kästner C., Saake G. Feature-Oriented Software Product Lines: concepts and implementation. Berlin: Springer, 2013, pp. 36-45.

2. Czarnecki K., Wasowski A. SPLC '07 Proceedings of the 11th International Software Product Line. Washington, USA: IEEE Computer Society Washington, 2007, pp. 68-70.

3. Bozhday A. S., Evseeva Yu. I. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2015, no. 1 (33), pp. 5-18.

4. Emelichev V. A., Mel'nikov O. I., Sarvanov V. I., Tyshkevich R. I. Lektsii po teorii grafov [Lectures on the graph theory]. Moscow: Nauka, 1990, pp. 90-97.

Евсеева Юлия Игоревна аспирант, Пензенский государственный университет (Россия г. Пенза, ул. Красная, 40)

E-mail: shymoda@mail.ru

УДК 004.94 Евсеева, Ю. И.

Алгоритм верификации структуры трехмерного адаптивного приложения / Ю. И. Евсеева // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 4 (36). - С. 5-16.

Evseeva Yuliya Igorevna Postgraduate student, Penza State University (40 Krasnaya street, Penza, Russia)

i Надоели баннеры? Вы всегда можете отключить рекламу.