Нечеткое сравнение коллекций семантический и алгоритмический аспекты

       

Задача нечеткого сравнения в приложениях семантической реконсиляции


Обсудим особенности постановки задачи нечеткого сравнения коллекций в приложениях семантической реконсиляции. Напомним, что традиционная задача сравнения последовательностей обычно формулируется как задача отыскания минимального скрипта редактирования (последовательности элементарных команд, обеспечивающей преобразование исходной строки в заданную другую строку) [20, 21]. Множество найденных команд при соответствующей интерпретации может служить представлением изменений, внесенных в модифицированную версию коллекции относительно исходной. Отыскание наибольшей подпоследовательности также решает задачу нечеткого сравнения и позволяет представить изменения модифицированной коллекции в виде добавленных и удаленных фрагментов строк, дополняющих найденную общую подпоследовательность до заданных строк.

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

Итак, пусть

Задача нечеткого сравнения в приложениях семантической реконсиляции
 — некоторые версии коллекции элементов типа T, причем
Задача нечеткого сравнения в приложениях семантической реконсиляции
— базовая версия, а
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 — версии, полученные в результате ее одновременной модификации в двух параллельных ветвях. Задача реконсиляции в наиболее распространенной постановке заключается в вычислении соответствующих изменений модифицированных версий относительно базовой
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 и в консолидации изменений
Задача нечеткого сравнения в приложениях семантической реконсиляции
 таким образом, чтобы сформировать итоговое представление коллекции
Задача нечеткого сравнения в приложениях семантической реконсиляции
 как результат применения согласованных изменений к базовой версии.
Это, так называемая, классическая “3-way Merge” схема реконсиляции в отличие от схем “2-way Merge” и “4-way Merge”, имеющих более узкое применение [15, 16].
Задача нечеткого сравнения в приложениях семантической реконсиляции
Рис. 1. Пример консолидации изменений в итоговом текстовом документе Например, если при одновременной модификации текстового файла в ходе выполнения одной транзакции была вставлена новая строка, а в ходе выполнения другой транзакции одна из строк была удалена, результатом консолидации изменений должен стать итоговый документ с внесенными общими изменениями (см. рис. 1), дополняющий его существующие версии новым согласованным вариантом. Корректная идентификация изменений и реализация функции исполнения предполагают, что соответствующие тождества
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 необходимо удовлетворены. Тривиальными случаями реализации функции реконсиляции являются
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 и
Задача нечеткого сравнения в приложениях семантической реконсиляции
, приводящие к уже известным версиям коллекции
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 и
Задача нечеткого сравнения в приложениях семантической реконсиляции
 соответственно. Содержательная реализация функции реконсиляции
Задача нечеткого сравнения в приложениях семантической реконсиляции
 нетривиальна, поскольку
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 могут представлять собой иерархически структурированные изменения
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 и т.д. По существу, дельты
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
 являются реконструируемым представлением конкурентных транзакций, примененных к исходным данным
Задача нечеткого сравнения в приложениях семантической реконсиляции
 и имеющих результатом
Задача нечеткого сравнения в приложениях семантической реконсиляции
 и
Задача нечеткого сравнения в приложениях семантической реконсиляции
 соответственно. В силу указанных причин реализация данной функции должна обеспечивать консолидацию как можно большего числа изменений при условии сохранения частичного порядка операций, индуцируемого семантикой приложений, и их бесконфликтности. В случаях, когда все конфликты разрешаются путем принятия изменений из первой версии, функция реконсиляции строится следующим образом:
Задача нечеткого сравнения в приложениях семантической реконсиляции
, где логическая функция
Задача нечеткого сравнения в приложениях семантической реконсиляции
 истинна в случае конфликта между изменениями
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
. Является открытым вопрос о том, какие ситуации следует считать конфликтными, и каким образом они могут быть разрешены: отменой всех операций, выделением и принятием бесконфликтного подмножества операций, или путем их коррекции. В дальнейшем под конфликтом будем понимать бинарное или множественное отношение между наборами или последовательностями операций в конкурентных транзакциях
Задача нечеткого сравнения в приложениях семантической реконсиляции
,
Задача нечеткого сравнения в приложениях семантической реконсиляции
, одновременное принятие которых приводит к некорректной интерпретации операций и неоднозначности результата, или к нарушению семантических ограничений, накладываемых на результирующее представление данных
Задача нечеткого сравнения в приложениях семантической реконсиляции
, где
Задача нечеткого сравнения в приложениях семантической реконсиляции
. Стандартный способ разрешения конфликта состоит в принятии одной из опций
Задача нечеткого сравнения в приложениях семантической реконсиляции
.


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


Дельта представляется следующим образом:
Задача нечеткого сравнения в приложениях семантической реконсиляции
, где
Задача нечеткого сравнения в приложениях семантической реконсиляции
 — операция вставки нового элемента в соответствующую позицию коллекции, а
Задача нечеткого сравнения в приложениях семантической реконсиляции
 — операция транспозиции пары элементов в заданных позициях коллекции. Во второй версии документа то же самое имя вставляется на позицию между последними персонами, а также меняется порядок их следования:
Задача нечеткого сравнения в приложениях семантической реконсиляции
. Заметим, что изменение порядка следования элементов коллекции и вставка новых элементов согласно репродуцируемой семантике множества не должна приводить к дублированию имен в итоговом документе. Поэтому семантически корректными являются результаты
Задача нечеткого сравнения в приложениях семантической реконсиляции
, приводящие, соответственно, к оригинальным версиям Original document, Version1, Version2, версиям Version1-1, Version1-2, Version2-1, Version2-2, полученным частичным принятием операций одной из транзакций, и версиям документа Merged document1, Merged document2, полученным возможной консолидацией операций из двух конкурентных транзакций.

Содержание раздела