Скачиваний:
15
Добавлен:
01.05.2014
Размер:
23.04 Кб
Скачать

Порождение клик графа G=(V,E)

procedure Clique ( N, D: SetVert);

(* Пусть S - узел в дереве поиска,

N={x  V  (  s  S  V: {x,s}  E) &

(  S*  S: поддерево S*  {x}- не исследовано)},

D={x  V  (  s  S  V: {x,s}  E) &

(  S*  S: поддерево S*  {x}- исследовано)}.

Вершины N  D смежны с каждой вершиной из S. *)

begin

if N  D= 

then Фиксировать клику S

else

if N   then {Исследовать первое поддерево}

begin

First:=вершина из N; (*заменить две строки*)

Explore(First); (*на # (см.   далее) *)

{далее по Утв.1 исследовать оставшиеся}

while N  (V-Adj(First))   do

begin v:= вершина из N  (V-Adj(First)) ;

Explore(v)

end {while}

end {then}

else

{ N=   & D   и по Утв.2 новых клик не будет} Skip

{fi}

{fi}

end{Clique};

procedure Explore(u);

begin

N := N \ {u};

S := S + {u};

Clique( N  Adj(u), D  Adj(u) );

S := S \ {u};

D := D + {u};

end {Explore};

___________________________________________

Первый вызов:

S   ;

Clique(V,  );

___________________________________________

# - Замена фрагмента:

First:=вершина из N  D, которая максимизирует Card(N  Adj(First));

if First  N then {Исследовать первое поддерево} Explore(First);

Соседние файлы в папке Алгоритмы на графах (на псевдокоде)