20
I T P W ZPT 1 Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b = log 2 |S| Problem kodowania w automatach Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S| v 1 v 2 v 3 Y S 1 S 1 S 4 y 2 S 2 S 5 S 3 S 1 y 1 S 3 S 4 S 5 y 3 S 4 S 1 S 2 S 3 y 2 S 5 S 4 S 2 y 4 000 001 010 011 100 Q1Q2Q3 Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!

Problem kodowania w automatach

  • Upload
    hank

  • View
    48

  • Download
    1

Embed Size (px)

DESCRIPTION

Problem kodowania w automatach. Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest | S |. Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b =  log 2 | S | . Q1Q2Q3. 000 001 010 011 100. - PowerPoint PPT Presentation

Citation preview

Page 1: Problem kodowania w automatach

ITPW

ZPT1

Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych.

b = log2|S|

Problem kodowania w automatach

Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S|

v1 v2 v3 Y

S1 S1 S4 ─ y2

S2 S5 S3 S1 y1

S3 S4 ─ S5 y3

S4 S1 S2 S3 y2

S5 S4 ─ S2 y4

000

001

010

011

100

Q1Q2Q3Q1Q2Q3

Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!

Page 2: Problem kodowania w automatach

ITPW

ZPT

2

Problem kodowania

xs

0 1 0 1

A A B 0 0

B A C 0 0

C D C 0 0

D A B 0 1

Wariant I

A = 00B = 01C = 10D = 11

Wariant I

A = 00B = 01C = 10D = 11

Wariant II

A = 00B = 11C = 01D = 10

Wariant II

A = 00B = 11C = 01D = 10

21211 QQxQQD

2121212 QQxQxQQQxD

21QxQy

2121 QQxQxD

xD2

21QxQy

Wariant IIWariant II

Wariant IWariant I

Page 3: Problem kodowania w automatach

ITPW

ZPT

3

Kodowanie

3 stany - 3 różne kodowania3 stany - 3 różne kodowania

4 stany - 3 różne kodowania4 stany - 3 różne kodowania

5 stanów - 5 stanów - 140 kodowań140 kodowań

7 stanów - 7 stanów - 840 kodowań840 kodowań

9 stanów - 9 stanów -

Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?

Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?

Czy realne jest sprawdzenie wszystkich możliwościCzy realne jest sprawdzenie wszystkich możliwości

Page 4: Problem kodowania w automatach

ITPW

ZPT

4

Elementy rachunku podziałów c.d.

Iloczyn podziałów, iloraz podziałów oraz relacja

Sumą podziałów a + b nazywamy najmniejszy (względem

relacji ) podział, który jest nie mniejszy od a oraz b.

Suma podziałów

Jedyną rozsądną z punktu widzenia dzisiejszych technologii i realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.

Jedyną rozsądną z punktu widzenia dzisiejszych technologii i realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.

KODOWANIE

Page 5: Problem kodowania w automatach

ITPW

ZPT

5

Przykładzik

9,8,7 6,5;4,3;2,1 ;

9 8,7 5,4;3,2;6,1 ;;

a

b

;...6,2,1a + b

;...6,3,2,1a + b

;...6,4,3,2,1a + b

9,8,7;6,5,4,3,2,1a + b

;...6,5,4,3,2,1a + b

Page 6: Problem kodowania w automatach

ITPW

ZPT

6

Własność podstawienia

Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany Ik Si oraz Ik Sj należą do wspólnego bloku .

Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany Ik Si oraz Ik Sj należą do wspólnego bloku .

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

FDCEBA ,,;,,1

Podziały z własnością podstawienia:Podziały z własnością podstawienia:

FEDBCA ,;,;,2

Page 7: Problem kodowania w automatach

ITPW

ZPT

7

Twierdzenie

Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.

() – liczba bloków podziału

Jeżeli istnieje podział z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q1, ..., Qk, gdzie

r = log2(), jest przyporządkowanych blokom podziału tak, że

wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych

(k – r) zmiennych.

Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.

() – liczba bloków podziału

Jeżeli istnieje podział z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q1, ..., Qk, gdzie

r = log2(), jest przyporządkowanych blokom podziału tak, że

wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych

(k – r) zmiennych.

Page 8: Problem kodowania w automatach

ITPW

ZPT

8

Przykład 1- interpretacja w.p.

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

FDCEBA ,,;,,1

0 0

0 1

0 1

0 0

1 0

1 0

Kodowanie wg 1Kodowanie wg 1

A

B

C

D

E

F

0

0

1

1

0

1

FECBDAτ ,;,;,

Nie wystarcza to do zakodowania

1 • = (0) Warunek jednoznaczności kodowania!Warunek jednoznaczności kodowania!

Page 9: Problem kodowania w automatach

ITPW

ZPT

9

Przykład 1…

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

Q1Q2Q3

A 0 0 0

B 0 0 1

C 1 0 1

D 1 0 0

E 0 1 0

F 1 1 0

Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:

Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:

Q1’ = D1 = f(x,Q1)Q1’ = D1 = f(x,Q1)

Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że pierwsza z nich, czyli D1

będzie…

Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:

Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:

a co z pozostałymi?

Q2’ = D2 = f(x,Q1,Q2,Q3)

Q3’ = D3 = f(x,Q1,Q2,Q3)

Q2’ = D2 = f(x,Q1,Q2,Q3)

Q3’ = D3 = f(x,Q1,Q2,Q3)

Page 10: Problem kodowania w automatach

ITPW

ZPT

10

Przykład 1…

xs

0 1 0 1

A A F 0 0

B E C 0 1

C C E 0 1

D F A 1 0

E B F 1 1

F D E 0 0

FEDBCA ,;,;,2π

FDCEBA ,,;,,1π

Kodowanie wg 1 Kodowanie wg 1

0 0

0 1

0 0

0 1

1 0

1 0

A

B

C

D

E

F

0

0

1

1

0

1

2 2

)(0 21

Jest to kodowanie jednoznaczne

A może jest więcej podziałów zamkniętych:A może jest więcej podziałów zamkniętych:

Później wykażemy, że oprócz 1 Później wykażemy, że oprócz 1

jest 2 jest 2

Page 11: Problem kodowania w automatach

ITPW

ZPT

11

PRZYKŁAD 1 c.d.

Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli

Q1’ = f(x,Q1)

Q2’ = f(x,Q2,Q3)

Q3’ = f(x,Q2,Q3)

Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli

Q1’ = f(x,Q1)

Q2’ = f(x,Q2,Q3)

Q3’ = f(x,Q2,Q3)

Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.

Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.

Dla całego roku! Dla całego roku!

Page 12: Problem kodowania w automatach

ITPW

ZPT

12

Obliczanie podziału zamkniętego

xs

0 1

A A F

B E C

C C E

D F A

E B F

F D E

A,BA,B

A,EA,E C,FC,F

C,DC,DFF EE

B,DB,D

A,CA,C E,FE,F

A,DA,D A,FA,F

A,BA,B

A,CA,C

A,DA,D

FD,C,;EB,A,1

FE,;DB,;CA,2

1

Tworzymy graf par następników dla różnych wierzchołków początkowych

Page 13: Problem kodowania w automatach

ITPW

ZPT

13

PRZYKŁAD 2

xs

0 1 Z

A H B 0

B F A 0

C G D 0

D E C 1

E A C 0

F C D 0

G B A 0

H D B 0

Generujemy podziały zamknięteGenerujemy podziały zamknięte

Do zakodowania stanów automatu M potrzebne są 3 podziały 2-blokowe, takie że:

Do zakodowania stanów automatu M potrzebne są 3 podziały 2-blokowe, takie że:

(0) cba

Page 14: Problem kodowania w automatach

ITPW

ZPT

14

PRZYKŁAD 2 c.d.

xs

0 1 Z

A H B 0

B F A 0

C G D 0

D E C 1

E A C 0

F C D 0

G B A 0

H D B 0

Graf par następników :Graf par następników :

HG,F,E,;DC,B,A,1

A,BA,B F,HF,H

C,DC,D

E,FE,F A,CA,CG,EG,E

G,HG,HB,D

Page 15: Problem kodowania w automatach

ITPW

ZPT

15

PRZYKŁAD 2 c.d.

xs

0 1 Z

A H B 0

B F A 0

C G D 0

D E C 1

E A C 0

F C D 0

G B A 0

H D B 0

GF,C,B,;HE,D,A,

GF,;HE,CB,;DA, ;

GF,CB,;HE,D,A, ;

HE,DA,;GF,C,B, ;

A,DA,D

D,HD,H

B,FB,F+ =2

+ =2

Page 16: Problem kodowania w automatach

ITPW

ZPT

16

PRZYKŁAD 2 c.d.

HG,F,E,;DC,B,A,1

GF,C,B,;HE,D,A,2

Niestety:Niestety:

Potrzebny jest więc jeszcze jeden podział :Potrzebny jest więc jeszcze jeden podział :

)0( GF,;HE,;CB,;DA,21

)(0τ 21

FE,D,C,;HG,B,A,τ

Page 17: Problem kodowania w automatach

ITPW

ZPT

17

PRZYKŁAD 2 c.d.

HG,F,E,;DC,B,A,1

GF,C,B,;HE,D,A,2 0

0

0

0

1

1

1

1

0

1

1

0

0

1

1

0

Kodowanie wg 1Kodowanie wg 1 2

2

A

B

C

D

E

F

G

H

FE,D,C,;HG,B,A,τ

0

0

1

1

1

1

0

0

Page 18: Problem kodowania w automatach

ITPW

ZPT

18

PRZYKŁAD 2 c.d.

Przy tak dobranym kodowaniu dwie funkcje wzbudzeń Q1’ i Q2’ tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q3’ (w najgorszym przypadku) od trzech zmiennych, czyli

Q1’ = f(x,Q1)

Q2’ = f(x,Q2)

Q3’ = f(x,Q1,Q2,Q3)

Przy tak dobranym kodowaniu dwie funkcje wzbudzeń Q1’ i Q2’ tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q3’ (w najgorszym przypadku) od trzech zmiennych, czyli

Q1’ = f(x,Q1)

Q2’ = f(x,Q2)

Q3’ = f(x,Q1,Q2,Q3)

Warto zakodować, obliczyć funkcje wzbudzeń Q1’, Q2’, Q3’ i sprawdzić, czy rzeczywiście tak jest.

Warto zakodować, obliczyć funkcje wzbudzeń Q1’, Q2’, Q3’ i sprawdzić, czy rzeczywiście tak jest.

Page 19: Problem kodowania w automatach

ITPW

ZPT

19

Komentarz

Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.

Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.

Q1’ = f(x,Q1)

Q2’ = f(x,Q1,Q2,Q3)

Q3’ = f(x,Q1,Q2,Q3)

Q1’ = f(x,Q1)

Q2’ = f(x,Q1,Q2,Q3)

Q3’ = f(x,Q1,Q2,Q3)

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

A

B

C

D

E

F

G

H

Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.

Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń.

W szczególności dla kodowania wg naturalnego kodu binarnego1):

W szczególności dla kodowania wg naturalnego kodu binarnego1):

1) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych

1) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych

Page 20: Problem kodowania w automatach

ITPW

ZPT

20

Nie martwmy się…

W najnowszych systemach istnieje

opcjonalna możliwość wprowadzenia

kodowania obliczonego zewnętrznie przez

użytkownika