2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Конфлюэнтность преобразований графа: автодоказательство
Сообщение12.09.2011, 08:17 


16/03/11
31
Приветствую!

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

Формальнее: есть набор операций над графами $OP = \{o_1, o_2, o_3, o_4, \ldots\}$ (например, "соединить две вершины", "удалить вершину", "породить вершину под управлением графа $C$"). Есть граф (семантическая сеть) $G$. Есть управляющий граф $C_G$, который задает разрешенные операции над $G$: при редактировании графа $G$ каждый раз доступны только часть операций, которые могут применяться к определенным частям графа.

Далее, есть две истории редактирования от двух пользователей: $OP_A = $\langle op^a_{i_1}, op^a_{i_2}, op^a_{i_3}, \ldots\rangle$ -- первого пользователя, $OP_B = $\langle op^b_{i_1}, op^b_{i_2}, op^b_{i_3}, \ldots\rangle$ -- второго пользователя. Мне нужно построить последовательность $OP_{AB} = \langle op^x_{i_1}, op^x_{i_2}, op^x_{i_3}, \ldots\rangle$, которая бы совмещала их истории.

Я решил доказать сначала, что истории можно сливать как угодно, лишь бы порядок подысторий сохранялся (т.е. если есть истории $abc$ и $klm$, то допустимы истории $akblcm$, или $abcklm$, или $klambc$, но не $mlabck$). Другими словами мне нужно доказать конфлюэнтность слияния историй: в каком бы порядке истории не сливались, всегд получится одинаковый результат.

Это решаемо: доказываем нётеровость графа возможных операций, доказываем локальную конфлюэнтность, после чего следует, что вся система конфлюэнтна. Но тут возникает проблема разрешения конфликтов: например, в первой истории первый пользователь удаляет вершину, а во второй истории пользователь соединяет её с другой вершиной. Конфликт! Слить истории невозможно. Пример посложнее: под управлением упр.графа $C_G$ можно порождать упорядоченные последовательности вершин. Если оба пользователя создадут две последовательности, то как их потом сливать? Тоже конфликт.

Вопрос: как отыскать наборы операций, которые приводят к конфликту?

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

Поэтому конечный мой вопрос такой: есть ли какой-то алгоритм, который на входе получает набор операций, а на выходе дает наборы конфликтных ситуаций?

Я начал искать автоматизированные системы в области систем переписывания (rewriting systems), нашел пока только Maude (https://en.wikipedia.org/wiki/Maude_system). Подскажите другие подходы и программные системы!

<br/>

Вдогонку: намекните хотя бы, куда рыть? По каким ключевым словам искать математический аппарат?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group