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