Алгоритм LINCLOSURE - PullRequest
       7

Алгоритм LINCLOSURE

0 голосов
/ 16 октября 2018

Я пытаюсь на компьютере АЛГОРИТМ ЗАКРЫТИЯ найти AE + (замыкание) по набору FD F = {A -> D, AB -> E, BI -> E, CD -> I, E --> C}.

Этот алгоритм LINCLOSURE:

    LINCLOSURE(X, I;*)
    1. Initialization
    for each FD W 4 ZinFdobegin
    COUNT[W - Z] := ) WI;
    for each attribute A in W do add W - Z to LIST[A ]
    end;
    NEWDEP : = x; UPDATE : = X.
    2. Computation
    while UPDATE # @ do begin
    choose an A in UPDATE;
    UPDATE := UPDATE - A;
    for each FD W - Z in LIST[A] do begin
    COUNT[ w - Z] := COUNT[W - Z] - 1;
    if COUNT[ W - Z] = 0 then begin
    ADD := Z - NEWDEP,
    NEWDEP := NEWDEP U ADD;initialization= UPDATE U ADD
    end
    end
    end.
    3. retum(NEWDEP).

После фазы инициализации я получил

    NEWDEP = AE UPDATE =AE.
    LIST[A] = {A --> D,  AB --> E}
    LIST[B] = {AB --> E,  BI--> E}
    LIST[I] = {BI --> E}
    LIST[C] = {CD --> I}
    LIST[D] = {CD --> I}
    LIST[E] = {E --> C}

После этой начальной фазы вычисления:

     while AE neq null
        choose an A in AE
              UPDATE = AE-A
              UPDATE = A

        ADD = D - AE
        NEWDEP = AE  U  D-AE
        UPDATE = E   U  D-AE

Обход LIST [A], COUNT [A -> D] = 0
переход в состояние IF
Я не понимаю, что будет храниться ADD, что такое ответ D - AE?
и после этого как это сделать:
Я не понимаю следующие три вещи в алгоритме:
(1) Что такое ADD = D - AE?
(2) Что такое NEWDEP =AE U D-AE?
(3) Что такое ОБНОВЛЕНИЕ = EU D-AE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...