Пусть существуют несколько процессов, взаимодействующих по данным ПРОЦЕСС X 1 X 2 X 3 X 4 X 5 X 6 ДАННЫЕ A, C A, B, D, E B, F C, D D, E F Как организовать их одновременную работу ?
Чтобы найти процессы, конфликтующие по данным, построим граф. Граф конфликтов: вершины – процессы, ребра общие данные. ПРОЦЕСС ДАННЫЕ X 1 X 2 X 3 X 4 X 5 X 6 A, C A, B, D, E B, F C, D D, E F X 1 X 4 X 2 X 5 X 3 X 6
Один из подходов к решению задачи – нахождение внутренне устойчивых множеств и раска графа конфликтов. X 1 X 4 X 2 X 5 X 3 X 6 Внутренне устойчивое множество (ВУМ) – подмножество несвязанных вершин графа (не имеющих общих ребер). Максимальное ВУМ – ВУМ, которое теряет свойство внутренней устойчивости при добавлении любой вершины из оставшихся. Для нахождения ВУМ воспользуемся алгоритмом Магу. Запишем логическое выражение: в ВУМ может войти либо одна, либо другая вершина каждого ребра. Минимизируем это выражение. Если полученные множества вершин исключить из множества всех вершин графа, то останется ВУМ.
Алгоритм Магу (X 1+X 2) (X 2+X 3) (X 1+X 4) (X 2+X 5) (X 4+X 5) (X 3+X 6)= (X 2+X 1*X 3*X 4*X 5)(X 4+X 1*X 5)(X 3+X 6)= (X 2*X 4+X 1*X 3*X 4*X 5+X 1*X 2*X 5+ X 1*X 3*X 4*X 5)(X 3+X 6)= (X 2*X 4+X 1*X 3*X 4*X 5+X 1*X 2*X 5)(X 3+X 6)= (X 2*X 3*X 4+ X 1*X 3*X 4*X 5+ X 1*X 2*X 3*X 5 + X 2*X 4*X 6 + X 1*X 3*X 4*X 5*X 6 +X 1*X 2*X 5*X 6)= X 2*X 3*X 4+ X 1*X 3*X 4*X 5+ X 1*X 2*X 3*X 5 + X 2*X 4*X 6 + X 1*X 2*X 5*X 6 ПОМОЩЬ: X*X=X, X+X=X, X 1+X 1*X 2=X 1, (X 1+X 2)(X 1+X 3)=X 1+X 2*X 3
ВУМ X 2*X 3*X 4+ X 1*X 3*X 4*X 5+ X 1*X 2*X 3*X 5 + X 2*X 4*X 6 + X 1*X 2*X 5*X 6 1 2 3 4 X 3 X 5 X 6 X- X 2*X 3*X 4={X 1, X 5, X 6} X - X 1*X 3*X 4*X 5 ={X 2, X 6} M 3= X - X 1*X 2*X 3*X 5 ={X 4, X 6} M 4= X 2 X 4 M 1= M 2= X 1 X - X 2*X 4*X 6={X 1, X 3, X 5} M 5= 5 X - X 1*X 2*X 5*X 6 ={X 3, X 4} |M 1|=|M 4|=3 число внутренней устойчивости Входящие в ВУМ вершины не конфликтуют по данным!!!
Раскраска графа – алгоритм Зыкова M 1= X- X 2*X 3*X 4={X 1, X 5, X 6} M 2= X - X 1*X 3*X 4*X 5 ={X 2, X 6} M 3= X - X 1*X 2*X 3*X 5 ={X 4, X 6} M 4= X - X 2*X 4*X 6={X 1, X 3, X 5} Раскрасить граф – поставить в соответствие каждой вершине графа некоторый цвет так, чтобы смежные вершины были окрашены в разные цвета. M 5= X - X 1*X 2*X 5*X 6 ={X 3, X 4} Запишем логическое выражение: каждая вершина может быть окрашена в один из цветов (ВУМ). Минимизируем это выражение. Наименьшее количество цветов – хроматическое число графа. (М 1+М 4) *М 2*(М 4+М 5) (М 3+М 5) (М 1+М 4) (М 1+М 2+М 3)= (М 1*М 2 + М 2*М 4) * (М 5+М 3*М 4)= М 1*М 2*М 5+М 2*М 4*М 5+М 1*М 2*М 3*М 4+М 2*М 3*М 4*М 5= М 1*М 2*М 5+М 2*М 4*М 5+М 1*М 2*М 3*М 4 1 2 3 |C 2|=3 (хроматическое число графа)
Решение задачи (М 1+М 4) *М 2*(М 4+М 5) (М 3+М 5) (М 1+М 4) (М 1+М 2+М 3) М 2*М 4*М 5 М 2 М 4 Х 1 М 4 Х 2 М 2 Х 3 М 4 или М 5 Х 4 М 5 Х 5 М 4 Х 6 М 2 М 5 X 1 X 4 X 2 X 5 X 3 X 6