(Qm). Изменение
(Qm). Изменение значений Qp и Qm происходит при возврате на выбор k-го элемента максимального независимого множества. Мы выбирали на k шаге, например, вершину с номером i, и естественно исключение ее из Qp и Qm при поиске следующего максимального независимого множества. Кроме того, при переходе к шагу с номером (k+1) из текущих множеств Qp и Qm для следующего шага необходимо исключить вершины, смежные с вершиной i, выбранной на данном шаге (из определения независимого множества) и, разумется, саму вершину i. Итак, общая логика.
procedure Find(k:integer; Qp,Qm:Sset);
var Gg:Sset;
i:byte;
begin
if (Qp=[ ]) and (Qm=[ ]) then begin Print(k);exit end;
{черный ящик А}
<формирование множества кандидатов Gg для расширения текущего решения (k элементов в массиве Ss) по значениям Qp и Qm>;
i:=1;
while i<=N do begin
if i in Gg then begin
Ss[k]:=i;
Find(k+1,Qp-A[i]-[i],Qm-A[i]-[i]);
{черный ящик Б}
<изменение Qp, Qm для этого уровня
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа