Algorytm ekspansji
Algorytm ekspansji jest kluczowym elementem metody Espresso, służącej do minimalizacji funkcji boolowskich. Jego głównym celem jest maksymalne powiększenie kostek zbioru F przy jednoczesnym uwzględnieniu ograniczeń ze zbioru R.
Przebieg algorytmu
Algorytm składa się z trzech głównych kroków:
- Wyznaczenie macierzy blokujących B(ki, R) dla ki∈F.
- Określenie implikantów prostych funkcji f=(F, R).
- Wyznaczenie zbioru implikantów prostych pokrywających wszystkie kostki ki.
Macierze blokujące
Macierz blokującą B(ki, R) tworzy się poprzez zanegowanie kolumny w macierzy R, gdzie odpowiada elementom kostki ki równym jedynkom. Należy utworzyć macierz blokującą dla każdej kostki ze zbioru F.
Wyznaczenie implikantów prostych
Dla kostki ki wyznaczamy ekspansję k+(L,ki). Jeśli L jest minimalnym pokryciem kolumnowym macierzy blokującej, to k+ jest implikantem prostym funkcji f. Minimalne pokrycia kolumnowe macierzy B1 to oraz .
Kostkę k+(L,k) definiuje się w następujący sposób:
Przykład:
Końcowy krok
Po wyznaczeniu wszystkich implikantów prostych, należy zidentyfikować ich podzbiór, który pokrywa wszystkie kostki ki ze zbioru F. Suma tych implikantów stanowi minimalną realizację zadanej funkcji f(F, R).