jak usprawnić obliczanie mkz?

14
I T P W 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ą

Upload: manchu

Post on 11-Jan-2016

102 views

Category:

Documents


0 download

DESCRIPTION

Jak usprawnić obliczanie MKZ?. Znamy metodę wg par sprzecznych oraz metodę bezpośrednią. W celu sprawniejszego obliczania MKZ wprowadzimy skuteczniejszą metodę wg par zgodnych. Algorytm MKZ wg par zgodnych. E – relacja zgodności (e i ,e j )  E. R j = { e i | i < j oraz (e i ,e j )  E}. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 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ą

Page 2: Jak usprawnić obliczanie MKZ?

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}

Page 3: Jak usprawnić obliczanie MKZ?

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}

Page 4: Jak usprawnić obliczanie MKZ?

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},

Page 5: Jak usprawnić obliczanie MKZ?

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

Page 6: Jak usprawnić obliczanie MKZ?

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

Page 7: Jak usprawnić obliczanie MKZ?

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) =

Page 8: Jak usprawnić obliczanie MKZ?

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}

Page 9: Jak usprawnić obliczanie MKZ?

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!

Page 10: Jak usprawnić obliczanie MKZ?

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…

Page 11: Jak usprawnić obliczanie MKZ?

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

Page 12: Jak usprawnić obliczanie MKZ?

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

Page 13: Jak usprawnić obliczanie MKZ?

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),

Page 14: Jak usprawnić obliczanie MKZ?

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}