Metoda iteracyjnego konsensusu

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Dopracować Metoda iteracyjnego konsensusuiterative consensus, metoda minimalizacji funkcji boolowskiej. Metoda to rozpoczyna się od implikantów funkcji (mogą to być iloczyny zupełne, implikanty proste lub inne implikanty).

Nazwa metody pochodzi od iteracyjnego stosowania zależności:

Ax+Bx=Ax+Bx+AB,

gdzie A i B są iloczynami niezawierającymi literału x ani x.

Metoda iteracyjnego konsensusu to iteracyjne wykonanie następujących kroków:

  1. Usuń z postaci dysjunkcyjnej wszystkie pokryte implikanty.
  2. Wygeneruj wszystkie (niepuste i różne od 0) konsensusy z par iloczynów. Dodaj je do postaci dysjunkcyjnej. Przejdź do kroku 1.

Algorytm kończy się w momencie, gdy nie możemy wygenerować nowych konsensusów, ponieważ uzyskane iloczyny to implikanty proste.

Przykład

Niech będzie dana funkcja:

f(abcd)=(1,6,7,8,10,14,15)

przedstawiona w postaci:

f(abcd)=abcd+abc+abc+abd.

Krok 1. Nie ma implikantów pokrywanych przez inne implikanty.

Krok 2. abc oraz abc tworzą konsensus bc, który dodajemy do postaci dysjunkcyjnej, otrzymując:

f(abcd)=abcd+abc+abc+abd+bc.

Krok 1′. Konsensus bc pokrywa abc oraz abc, dlatego usuwamy je z postaci dysjunkcyjnej, otrzymując:

f(abcd)=abcd+abd+bc.

Krok 2′. abd oraz bc tworzą konsensus acd, który dodajemy do postaci dysjunkcyjnej, otrzymując:

f(abcd)=abcd+abd+bc+acd.

Krok 1″. Nie ma implikantów pokrywanych przez inne implikanty.

Krok 2″. Nie można wygenerować konsensusu różnego od pustego bądź różnego od 0, czyli algorytm się kończy.

Zobacz też