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

          

Классификация коллекций


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

Сравнение коллекций может рассматриваться в качестве частной задачи более общей проблемы семантического сопоставления (matching) и сравнения (differencing) расходящихся реплик структурированных данных, например, популяций объектов, заданных некоторой объектно-ориентированной моделью. Несмотря на многообразие частных типов коллекций, встречаемых в приложениях, можно выделить несколько фундаментальных свойств, в соответствии с которыми их анализ может проводиться содержательным образом. К таким свойствам мы относим уникальность элементов коллекции, упорядочение, возможную сортировку элементов коллекции, а также ограниченный размер коллекции.

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

Так, декларативный язык ограничений OCL [17] определяет абстрактный интерфейс коллекций Collection и четыре конкретных класса Bag, Set, Sequence и OrderedSet для представления мультимножеств, множеств, последовательностей и упорядоченных множеств соответственно. Все виды коллекций задаются в обобщенном виде с возможностью параметризации типом элементов. Set — коллекция, по семантике соответствующая математическому понятию множества. Она не допускает дупликации элементов. OrderedSet — специализация данного типа для упорядоченных множеств.
Ограничение уникальности необходимо поддерживается данным типом коллекции. Bag — мультимножество с возможным повторением элементов. Sequence — упорядоченное мультимножество или последовательность, допускающая повторение элементов. Таким образом, виды коллекций OCL могут быть классифицированы в соответствии с таблицей 1. Язык моделирования EXPRESS [18] предоставляет иной набор типов коллекций, а именно: Aggregate, Bag, Set, Array и List. Абстрактный тип Aggregate определяет базовый набор методов оперирования с элементами коллекций. Bag — специализация данного типа для представления мультимножеств. Set — специализация типа Aggregate для произвольных множеств, исключающая дупликацию элементов и игнорирующая их порядок. Тип данных List применяется для представления последовательностей. Допустимое количество элементов в списках, множествах и мультимножествах задается дополнительными ограничениями. Коллекции имеют строго фиксированный размер в тех случаях, когда нижний и верхний пределы их размера совпадают. Array — специализация типа Aggregate для массивов фиксированной длины. С учетом индексации порядок элементов в массивах имеет существенное значение. Возможна организация разреженных массивов с неустановленными значениями элементов при помощи специального спецификатора. Также возможно определение производных типов массивов и списков с наложенным ограничением уникальности элементов. Базовые типы коллекций, предоставляемые языком моделирования EXPRESS, приведены в таблице 1.

UNIQUE ORDERED SORTED FIXED Используемые сокращения Коллекции OCL Коллекции EXPRESS
- - - - BAG BAG BAG
+ - - - SET SET SET
- - - + FIXED BAG  
+ - - + FIXED SET    
- + - - LIST SEQUENCE LIST
+ + - - ORDERED SET ORDERED SET UNIQUE LIST
- + - + ARRAY   ARRAY
+ + - + UNIQUE ARRAY   UNIQUE ARRAY
- + + - SORTED LIST    
+ + + - SORTED SET    
- + + + SORTED ARRAY    
+ + + + SORTED UNIQUE ARRAY    
Таблица 1.Классификация базовых типов коллекций в языках моделирования EXPRESS и OCL Базовые типы могут переопределяться пользователем с учетом семантики приложения путем задания дополнительных ограничений с использованием всего репертуара конструкций декларативных языков OCL и EXPRESS. В частности, может быть уточнено допустимое число элементов коллекции и способ их индексации, задан частичный или полный порядок на множестве элементов коллекции, определены свойства корреляции значений элементов и т.п. Рассмотрим вопросы представления, вычисления изменений и исполнения соответствующих операций над коллекциями, следуя приведенной выше классификации в соответствии с выделенными семантическими свойствами.

Сравнение множеств


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

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — множества элементов типа T, предполагающего неявное задание и выполнение единственного семантического ограничения уникальности элементов
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Дельта для двух версий множества
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 может быть естественным образом представлена в виде неупорядоченного набора операций добавления и удаления соответствующих элементов коллекции:

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

Корректное представление дельты

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 предполагает, что выполняется условие
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, означающее, что один и тот же элемент не может одновременно участвовать в операции добавления и удаления. Более того, будем исключать повторение операций добавления и удаления с одним и тем же элементом, которое при исполнении операций противоречило бы определению множества:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

Применение операций, определяемых дельтой, довольно прозрачно. К заданному исходному множеству добавляются элементы, определяемые операциями ins, и удаляются элементы, определяемые операциями del. Тем самым, гарантируется тождественность условия

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

Две конкурентные транзакции

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 могут оказаться конфликтными в случае
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, когда в одной транзакции некоторый элемент добавляется в коллекцию, а в другой транзакции тот же самый элемент удаляется. Однако, если обе дельты вычислялись относительно общей версии коллекции в рамках распространенной схемы слияния “3-way Merge”:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, то подобные конфликты исключены в силу того, что удаляемый элемент обязан принадлежать базовой версии коллекции X и не может быть добавлен в нее повторно вследствие ограничения уникальности элементов множества. В случае иных схем слияния с участием нескольких базовых версий, например, схемы “4-way Merge”, подобные конфликты должны идентифицироваться и корректно разрешаться. Тривиальными способами разрешения являются следующие опции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, предполагающие игнорирование обеих конфликтных операций или принятие одной из них.

Сложность вычисления дельты

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

Сравнение мультимножеств


Перейдем к задаче сравнения мультимножеств

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 с функцией
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 для подсчета числа вхождений элемента
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 в коллекцию
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. При модификации коллекции данного типа дельта представляется как неупорядоченный набор множественного добавления и удаления элементов. Пусть
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — две версии мультимножества, тогда дельта может быть сформирована как

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

В используемых обозначениях Z — множество целых чисел. Положительное значение параметра n в операции изменения кардинальности card(x,n) указывает на добавление элемента в коллекцию соответствующее число раз, отрицательное значение — на удаление элемента из коллекции. Нулевое значение n не содержательно для представления дельты, поскольку означает, что количество экземпляров элемента в коллекции не изменилось. В корректно сформированном представлении дельты

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

Применение базовой операции дельты card(x,n) состоит в кратном добавлении соответствующего элемента x при положительном значении параметра n и в его кратном удалении при отрицательном значении параметра. Это гарантирует выполнение необходимого тождества

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

Две операции

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 конфликтуют друг с другом, если параметры кратности перемещения экземпляров одного и того же элемента в конкурентных транзакциях отличаются друг от друга
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Тривиальные способы разрешения конфликта состоят в выборе одной из опций
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Вместе с тем, логичным представляется расширение возможных опций путем назначения параметру кратности всего интервала значений, порождающего конфликтную ситуацию:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Это означает, что может быть выбрано любое число кратности для операции перемещения, лежащее в интервале между соответствующими параметрами конфликтных операций. В случаях, когда обе конфликтные операции являются родственными, конфликт целесообразно разрешать, исходя из промежуточных значений.
В случаях, когда одна из конфликтных операций — операция добавления, а другая — операция удаления, допустимым является также весь диапазон значений параметра кратности, означая удаление или добавление числа элементов, не превышающего используемое значение соответствующей операции. Сложность построения
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 определяется теми же факторами, что и сложность вычисления дельты обычного множества. Имеет место незначительное увеличение числа операций, однако это не влияет на асимптотическую оценку, которая в среднем выражается как
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. В качестве примера рассмотрим процедуру сравнения двух версий мультимножества символов. Пусть
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — основная и модифицированная версии коллекции, содержащие следующие натуральные элементы
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Тогда дельта, вычисленная в результате сравнения двух версий коллекции, представляется как
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

Сравнение списков


Для сравнения списков (или последовательностей) могут быть задействованы классические алгоритмы минимального редакторского расстояния (edit-distance (ed)) и алгоритмы нахождения наибольшей общей последовательности (longest-common-subsequence (lcs)), нашедшие применение в самых разных приложениях [20, 21]. Поскольку данные семейства алгоритмов достаточно хорошо проработаны и изучены, мы ограничимся вопросами их использования в общем контексте решения задач сравнения и слияния коллекций на основе семантики модели.

Пусть элементы списка

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

Тогда дельта, полученная в результате сравнения двух версий коллекции

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

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

Здесь операция

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

Корректное представление дельты

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 предполагает, что выполняются следующие условия:

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

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

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

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

Будем считать также, что аналогичное условие выполняется для операций переноса элементов, индексы которых в исходном списке дополняют индексы удаляемых элементов:

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

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

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

Применение дельты предполагает предварительное упорядочение операций по индексам вставки и удаления элементов в исходной коллекции

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


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


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


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

Сравнение упорядоченных множеств


Упорядоченные множества являются одновременно специализацией и множеств, и списков, поэтому процедуры сравнения, рассмотренные выше, могли бы применяться и для этого случая. Однако в силу сочетания свойств упорядочения и уникальности элементов, видится более содержательный способ представления и расчета изменений для данного типа коллекций не только в виде операций вставки и удаления, но и операций перестановок.

Пусть

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

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

Операция перестановки

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

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

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

Все значения индексов позиций указываются в представлении дельты относительно исходных версий коллекции.
При выполнении дельты индексные параметры всех последующих операций должны корректироваться с учетом ранее примененных. Данная корректировка заключается в увеличении или уменьшении индексов элементов исходного множества на количество выполненных вставок или удалений. При выполнении перестановок корректировка состоит в циклическом распространении индекса для каждого последующего элемента группы перестановки. Любое изменение порядка элементов в упорядоченном множестве может быть представлено композицией циклических перестановок. Причем при отсутствии пересечений по индексам перестановки удовлетворяют требованию коммутативности и могут применяться в произвольном порядке независимым друг от друга образом [19]. Тем самым удовлетворяется требование конструктивной декомпозиции и реконсиляции транзакций, связанное с возможностью независимого применения их отдельных операций. При этом наличие одного и того же индекса в разных группах перестановок дельты

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 должно быть запрещено:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
Данное условие не является обременительным, поскольку существует четкая методика разложения перестановки произвольного упорядоченного множества на группы циклических перестановок. Данная методика приводится в [19] как доказательство теоремы о единственности специально заданного соединительного произведения перестановки линейно упорядоченного мультимножества. Для корректного применения дельты
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 операции могут быть частично упорядочены подобно тому, как это делалось для операций со списками. Предшествование операций циклической перестановки операциям вставки, а тех, в свою очередь, операциям удаления позволяет упростить реализацию применения дельты:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
Данное требование связано с принятой семантикой операций, допускающей непосредственную индексацию элементов в исходных коллекциях. Вставка группы элементов неявно подразумевает задание ограничения предшествования добавляемых элементов элементу, в позицию которого осуществляется вставка. Однако следующая за вставкой операция перестановки может нарушить это условие.


Для того чтобы удовлетворить условие и обеспечить неразрывность семантически связанных групп элементов, видятся два простых решения: обобщение операции перестановки таким образом, чтобы обеспечить циклическую перестановку не отдельных элементов, а целых групп; соблюдение условия предшествования операций перестановки операциям вставки. На наш взгляд, второй способ более предпочтителен, поскольку контроль частичного порядка операций при выполнении не вызывает дополнительных сложностей в реализации в отличие от обобщенных перестановок. Проиллюстрируем вычисление и применение дельты для упорядоченных множеств на следующем примере. Пусть
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — основная и модифицированная версии коллекции символов, представленные следующими последовательностями элементов:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Тогда дельта, вычисленная в соответствии с вышеописанной семантикой операций, представляется как
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
В ходе применения дельты к основной версии
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 операции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 переставляют элементы a, e и c, d исходного множества, приводя к промежуточным представлениям коллекции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 соответственно. Операции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 добавляют элементы g, h, k, l перед d и элемент m перед a, формируя последовательности
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Наконец, операции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 удаляют элементы b и f, приводя к окончательному представлению модифицированной версии коллекции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Опишем возможный способ формирования дельты двух упорядоченных множеств в соответствии с перечисленными выше условиями: Поиск идентичных подмножеств
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 исходных множеств,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, сохраняющих оригинальный порядок следования элементов:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
Возможная алгоритмическая реализация данного этапа состоит в предварительной сортировке элементов исходных множеств (при наличии отношения полного порядка) и последовательном просмотре и идентификации элементов как удаленных, вставленных или перенесенных без изменений. Альтернативный способ заключается в непосредственном использовании процедуры поиска для установления факта наличия или отсутствия элементов в исходных множествах и в параллельном формировании структур соответствия индексов элементов.


Подобные структуры обеспечивают быстрое преобразование индексов, необходимое для эффективной реализации следующих этапов. Поиск циклической перестановки элементов множества
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, приводящей к последовательности элементов множества
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Наиболее простым способом реализации данного этапа видится предварительная замена алфавита исходного множества
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 на последовательность натуральных чисел
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и применение методики, применяемой в доказательстве теоремы о единственности специальной формы соединительного произведения перестановки линейно упорядоченного мультимножества [19]. Определение множества операторов вставки
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, упорядоченного по индексам вставки элементов, используя структуры соответствия индексов элементов множеств
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Определение множества операторов удаления
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, упорядоченного по индексам удаляемых элементов, используя структуры соответствия индексов элементов множеств
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Формирование единого списка операций дельты в соответствии с принятым порядком исполнения: сначала следуют операции перестановок, затем — операции вставок и в конце — операции удаления. Сформированная таким образом дельта состоит из множества независимых операций, каждая из которых может быть принята или отклонена в рамках результирующей транзакции независимо от статуса остальных операций. Вычислительная сложность построения дельты определяется в первую очередь сложностью алгоритмов сортировки, применяемых в ходе реализации. Все остальные элементы, включая алгоритм разложения перестановки на множество циклических, имеют асимптотически линейную сложность при условии использования соответствующих структур быстрого преобразования индексов. Например, описанный метод формирования дельты с использованием сортировки на основе слияния списков имеет асимптотическую оценку вычислительной сложности
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Перечислим конфликтные ситуации, возникающие при реконсиляции конкурентных операций над упорядоченными множествами, а также возможные способы их разрешения. Основные конфликты сводятся к следующим содержательным случаям (опустим для краткости математическую нотацию, примеры и комментарии подобно тому, как это делалось в предыдущей главе): Вставка тождественных элементов в разные позиции.


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

Коллекции с ограниченной мощностью


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

Пусть задано следующее ограничение мощности коллекции:

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, где
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Частный случай
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 соответствует коллекции фиксированной мощности. Если
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — соответствующие подмножества операций вставки и удаления исходного представления дельты
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, то должно выполняться следующее дополнительное условие:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

Очевидно, что в случае фиксированной мощности

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 количество операций вставки и удаления в транзакции должно совпадать. Для мультимножеств условие представления дельты
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 приобретает вид
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

В случае конкурентных транзакций

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

Рассмотрим следующий пример. Пусть

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — базовая и модифицированные версии мультимножества символов с ограниченной мощностью
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.
Тогда дельты, вычисленные путем сравнения модифицированных версий с базовой, представляются как
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Операции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 эквивалентны, поэтому в результирующую дельту следует включить любую из них. Операция
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 не конфликтует ни с одной другой операцией, поэтому переносится в результат без изменений. Наконец, операции
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 конфликтуют друг с другом. Согласно рассмотренным выше методам согласования изменений для мультимножеств, конфликт можно разрешить выбором кратности вхождения элемента e из интервала [2, 4]. Однако выбор значения кратности, равного 4, приводит к нарушению ограничения мощности результирующего мультимножества, в которое в таком случае войдет 7 элементов. Следовательно, допустимыми значениями кратности вхождения элемента e в итоговую коллекцию являются 2 и 3. В случае принятия второго значения результирующая дельта приобретает вид:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
, а итоговое семантически корректное представление мультимножества —
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

Последовательности фиксированной длины


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

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 будем использовать следующее представление дельты:

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

фиксирующее индексы измененных элементов. Здесь операция

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 заменяет значение элемента исходного массива
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 с индексом i значением соответствующего элемента модифицируемого массива
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

Корректное представление дельты

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 предполагает, что индексы модифицируемых элементов не повторяются в разных операциях:

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

Две конкурентные операции

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

Рассмотрим следующий пример согласования изменений в массиве. Пусть

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

Сортированные последовательности


Наличие свойств сортировки для последовательностей элементов позволяет существенно ускорить процедуры сравнения коллекций

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

Коллекции прямых и инверсных ассоциаций


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

Пусть

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 и
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — объектные типы,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — прямая множественная ассоциация,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 — соответствующая ей инверсная. Будем считать, что в качестве прямой ассоциации может быть использована произвольная коллекция, в качестве инверсной — set или multiset. Поскольку модификация прямой ассоциации подразумевает симметричную коррекцию инверсной, операции установления и отмены ассоциативных отношений связаны логической эквивалентностью следующим образом:
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. Поэтому данные операции обязаны совместно участвовать в итоговой транзакции.

Если инверсная ассоциация представляется множеством, то дополнительно устанавливается ограничение уникальности инверсного отношения. При сочетании в качестве прямой и инверсных ассоциаций различных коллекций более строгое ограничение уникальности в итоге распространится на обе ассоциативные связи. Таким образом, возможны следующие варианты сочетания прямых и инверсных коллекций: «set–set», «multiset–multiset», «list–multiset», «ordered set–set».

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

Более интересным с этой точки зрения представляются ограничения мощности множественной ассоциации

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
,
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
. В данном случае корректное представление дельты предполагает выполнение следующих условий:

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

В силу отношений логической эквивалентности операций над прямыми и обратными ассоциациями, условия приобретают вид:

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

В случае конкурентных транзакций

Нечеткое сравнение коллекций семантический и алгоритмический аспекты
 данные условия должны выполняться также для консолидированной дельты
Нечеткое сравнение коллекций семантический и алгоритмический аспекты
.

Литература


Y. Saito, M. Shapiro. Optimistic Replication // In ACM Computing Surveys, Vol. 37, No. 1, March 2005, pp. 42–81. Better SCM Initiative: Version Control System Comparison Diffutils — GNU Project — Free Software Foundation (FSF) Z. Xing, E. Stroulia. UMLDiff: an algorithm for object-oriented design differences. // Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, Long Beach, CA, USA, 2005, pp. 54–65. Open Testware Reviews — Data Comparator Survey Comprehensive List of File and Folder Comparison and Synchronization Tools Сравнение файлов — Soft Софт каталог Google directory — Computers > Software > File Management > File Comparison Semenov V.A., Karaulov A.A. Semantic-Based Decomposition of Long-Lived Transactions in Advanced Collaborative Environments. // Proceedings of 6 European Conference on product and process modeling, ECPPM 2006, Spain, Valencia, September 11–15, 2006, pp.223–232. Семенов В.А., Ерошкин С.Г., Караулов А.А., Энкович И.В. Семантическая реконсиляция прикладных данных на основе моделей. // Труды Института системного программирования: т. 13, ч. 2. / Под ред. В.П. Иванникова — М.: ИСП РАН, 2007, с. 141–164. Semenov V.A. Collaborative Software Engineering Using Metamodel-Driven Approach. // Proceedings 16th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, WET ICE 2007, IEEE Computer Society Conference Publishing Services, 2007, pp. 178–179. Semenov V.A. Semantics-Based Reconciliation of Divergent Replicas in Advanced Concurrent Engineering Environments. // Complex Systems Concurrent Engineering: Collaboration, Technology Innovation and Sustainability, Springer-Verlag, 2007, pp. 557–564. ISO 10303: 1994, Industrial automation systems and integration — Product data representation and exchange. OMG. Model Driven Architecture: How systems will be built. T. Lindholm. XML three-way merge as a reconciliation engine for mobile data. // Proceedings of the 3d ACM international workshop on data engineering for wireless and mobile access, San Diego, CA, USA, 2003, pp. 93–97. J. Katajainen and J. L. Träff. A Meticulous Analysis of Mergesort Programs. // Lecture Notes In Computer Science, vol. 1203, 1997, pp. 217–228. Object Constraint Language Specification, Version 2.0 ISO 10303-11: 2004, Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual. Edition 2. Д. Кнут. Искусство программирования, том 3. Сортировка и поиск, 2-е изд. — М.: Издательский дом «Вильямс», 2000. Д. Гасфилд. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — СПб.: Невский Диалект; БХВ-Петербург, 2003. G. Navarro. A Guided Tour to Approximate String Matching. // ACM Computing Surveys, vol. 33, no. 1, March 2001, pp. 31–88.



Таким образом, рассмотрены основные типы


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