Download - Jak usprawnić obliczanie MKZ?
ITPW
ZPT
1
Jak usprawnić obliczanie MKZ?
W celu sprawniejszego obliczania MKZ wprowadzimy skuteczniejszą metodę wg par zgodnych
Znamy metodę wg par sprzecznych oraz metodę
bezpośrednią
ITPW
ZPT
2
Algorytm MKZ wg par zgodnych
E – relacja zgodności (ei,ej) EE – relacja zgodności (ei,ej) E
Rj = { ei | i < j oraz (ei,ej) E}Rj = { ei | i < j oraz (ei,ej) E}
RKZk RKZk+1 KZ RKZkRKZk RKZk+1 KZ RKZk
a) Rk+1 = , RKZk+1 jest powiększana o klasę KZ = {k+1}a) Rk+1 = , RKZk+1 jest powiększana o klasę KZ = {k+1}
b) KZ Rk+1 = , KZ bez zmianb) KZ Rk+1 = , KZ bez zmian
c) KZ Rk+1 , KZ’ = KZ Rk+1 {k+1} c) KZ Rk+1 , KZ’ = KZ Rk+1 {k+1}
ITPW
ZPT
3
Przykład
1,21,31,52,32,42,53,53,64,6
1,21,31,52,32,42,53,53,64,6
E:E:R1 =
R1 =
R2 =R2 =
R3 =R3 =
R4 =R4 =
R5 =R5 =
R6 =R6 =
1,21,211
22
1,2,31,2,3
3,43,4
Rj = { ei | i < j oraz (ei,ej) E}Rj = { ei | i < j oraz (ei,ej) E}
ITPW
ZPT
4
Przykład c.d.
R1 =
R2 = 1
R3 = 1,2
R4 = 2
R5 = 1,2,3
R6 = 3,4
a) Rk+1 = , RKZk+1 jest powiększana o klasę KZ = {k+1}a) Rk+1 = , RKZk+1 jest powiększana o klasę KZ = {k+1}
b) KZ Rk+1 = , KZ bez zmianb) KZ Rk+1 = , KZ bez zmian
c) KZ Rk+1 , KZ’ = KZ Rk+1 {k+1} c) KZ Rk+1 , KZ’ = KZ Rk+1 {k+1}
Rodzina MKZ
{1}
{1,2}
{1,2,3}
{1,2,3,5}, {2,4}
{4,6},
{1,2,3}
{1,2,3,5}, {2,4}
{2,4},
{2,5},
{3,6},
ITPW
ZPT
5
Algorytm MKZ wg par sprzecznych
Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów
Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów
Zapisać pary sprzeczne w postaci koniunkcji dwuskładnikowych sumZapisać pary sprzeczne w postaci koniunkcji dwuskładnikowych sum
Wtedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia
Wtedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia
ITPW
ZPT
6
Ten sam przykład
1,21,31,52,32,42,53,53,64,6
1,21,31,52,32,42,53,53,64,6
E:E:
Pary zgodnePary zgodne
1,41,62,63,44,55,6
1,41,62,63,44,55,6
Pary sprzecznePary sprzeczne
ITPW
ZPT
7
Przykład...
Pary sprzeczne:
(k1, k4), (k1, k6), (k2, k6), (k3, k4), (k4, k5), (k5, k6)
Pary sprzeczne:
(k1, k4), (k1, k6), (k2, k6), (k3, k4), (k4, k5), (k5, k6)
= (k4 += (k4 +
Przekształcamy wyrażenie do postaci „suma iloczynów”:
Przekształcamy wyrażenie do postaci „suma iloczynów”:
Obliczamy wyrażenie boolowskie typu „koniunkcja sum”:
(k1 + k4) (k1 + k6 ) (k2 + k6) (k3 + k4) (k4 + k5) (k5 + k6) =
Obliczamy wyrażenie boolowskie typu „koniunkcja sum”:
(k1 + k4) (k1 + k6 ) (k2 + k6) (k3 + k4) (k4 + k5) (k5 + k6) =
Porządkujemy:
(k4 + k1) (k4 + k3 ) (k4 + k5) (k6 + k1) (k6 + k2) (k6 + k5) =
Porządkujemy:
(k4 + k1) (k4 + k3 ) (k4 + k5) (k6 + k1) (k6 + k2) (k6 + k5) =
k4k6 + k1k2k4k5 + k1k3k5k6 + k1k2k3k5
k4k6 + k1k2k4k5 + k1k3k5k6 + k1k2k3k5
(k6 + (k6 + k1k3k5) k1k3k5) k1k2k5) = k1k2k5) =
ITPW
ZPT
8
Przykład...
Klasy zgodne uzyskamy odejmując od zbioru {k1,...,k6}, zbiory tych ki, które występują w jednym składniku wyrażenia typu „suma iloczynów”
{k1,..., k6} {k4, k6} = {k1, k2, k3, k5 }{k1,...,k6} {k1, k2 , k4 , k5 } = {k3, k6}{k1,...,k6} {k1, k3, k5 , k6} = {k2 , k4}{k1,...,k6} {k1, k2, k3, k5 } = {k4, k6}
Klasy zgodne uzyskamy odejmując od zbioru {k1,...,k6}, zbiory tych ki, które występują w jednym składniku wyrażenia typu „suma iloczynów”
{k1,..., k6} {k4, k6} = {k1, k2, k3, k5 }{k1,...,k6} {k1, k2 , k4 , k5 } = {k3, k6}{k1,...,k6} {k1, k3, k5 , k6} = {k2 , k4}{k1,...,k6} {k1, k2, k3, k5 } = {k4, k6}
ITPW
ZPT
9
Warto umiejętnie dobierać metodę...
(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (2,3), (2,5), (2,6), (2,7), (3,4), (3,5), (3,6), (3,8), (4,6), (4,7), (4,8), (5,6), (5,7), (5,8),(6,7), (6,8), (7,8),
Pary zgodne:
Pary sprzeczne:
(1,8)(1,8) (2,4)(2,4) (2,8)(2,8) (3,7)(3,7) (4,5)(4,5)
Wybór metody jest oczywisty!
ITPW
ZPT
10
Graf niezgodności:
Wierzchołki grafu reprezentują kolumny tablicy dekompozycji.
(ki, kj)
(ki, ks)
(kl, kr)
Pary niezgodne:
Niezgodne pary kolumn łączy się krawędziami.
ks k2
ki
kj
kl
k1
kr
kp
W obliczaniu kolumn, które można „skleić” znajdują zastosowanie algorytmy kolorowania grafu.
W poszukiwaniu innych metod…
ITPW
ZPT
11
Przykład…
0,30,40,61,31,41,51,62,52,73,43,64,54,65,7
Pary zgodne: Pary sprzeczne:
0,1 0,2 0,5 0,7 1,2 1,7 2,32,4 2,6 3,5 3,7 4,7 5,6 6,7
ITPW
ZPT
12
Graf niezgodności
(0,1), (0,2), (0,5), (0,7), (1,2), (1,7), (2,3),(2,4), (2,6), (3,5), (3,7), (4,7), (5,6), (6,7)
0
1
2
3
4
5
6
7
i jego kolorowanie
ITPW
ZPT
13
Graf zgodności - przykład
MKZ1 = {S1, S2, S5, S6, S7}
MKZ2 = {S1, S4, S6, S7}
MKZ3 = {S5, S6, S7 ,S8}
MKZ4 = {S4, S6, S7 ,S8}
MKZ5 = {S3, S5, S6, S8}
MKZ6 = {S3, S4, S6, S8}
MKZ7 = {S1, S2, S3, S5, S6}
MKZ8 = {S1, S3, S4, S6}
MKZ1 = {S1, S2, S5, S6, S7}
MKZ2 = {S1, S4, S6, S7}
MKZ3 = {S5, S6, S7 ,S8}
MKZ4 = {S4, S6, S7 ,S8}
MKZ5 = {S3, S5, S6, S8}
MKZ6 = {S3, S4, S6, S8}
MKZ7 = {S1, S2, S3, S5, S6}
MKZ8 = {S1, S3, S4, S6}
S1
S2
S3
S4
S5
S6
S7
S8
Jak zauważyć rozwiązanie z grafu zgodności!
(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (2,3), (2,5), (2,6), (2,7), (3,4), (3,5), (3,6), (3,8), (4,6), (4,7), (4,8), (5,6), (5,7), (5,8),(6,7), (6,8), (7,8),
ITPW
ZPT
14
Graf niezgodności - przykład
(S1, S8)
(S2, S4)
(S2 ,S8)
(S3, S7)
(S4, S5)
(S1, S8)
(S2, S4)
(S2 ,S8)
(S3, S7)
(S4, S5)
S1
S2
S3
S4
S5
S6
S7
S8
Teraz łatwiej!
MKZ1 = {S1, S2, S5, S6, S7}
MKZ6 = {S3, S4, S6, S8}
MKZ1 = {S1, S2, S5, S6, S7}
MKZ6 = {S3, S4, S6, S8}