Kod Graya

Niniejszy artykuł jest częścią cyklu teoria grafów.




Najważniejsze pojęcia
graf
podgraf
cykl
klika
stopień wierzchołka
dopełnienie grafu
obwód grafu
pokrycie wierzchołkowe
liczba chromatyczna
indeks chromatyczny
izomorfizm grafów
homeomorfizm grafów


Wybrane klasy grafów
graf pełny
graf spójny
drzewo
graf dwudzielny
graf regularny
graf eulerowski
graf hamiltonowski
graf planarny


Algorytmy grafowe
A*
Bellmana-Forda
Breadth-first search
Depth-first search
Dijkstry
Fleury'ego
Floyda-Warshalla
Johnsona
Kruskala
Prima
przeszukiwanie grafu
najbliższego sąsiada


Zagadnienia przedstawiane jako problemy grafowe
problem komiwojażera
problem chińskiego listonosza
problem kojarzenia małżeństw


Inne zagadnienia
kod Graya
diagram Hassego


edytuj ten szablon

Kod Graya, zwany również kodem refleksyjnym, jest dwójkowym kodem bezwagowym niepozycyjnym, który charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. Jest również kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu także spełniają w/w zasadę.

Kodem Graya długości n jest ciąg wszystkich 2n różnych ciągów n cyfr {0,1}, ustawionych tak, że dwa kolejne ciągi różnią się na jednej pozycji.

Używa się go w przetwornikach analogowo-cyfrowych, szczególnie w systemach gdzie występują po sobie kolejne wartości np. czujniki położenia/obrotu. Kodów Graya można używać do etykietowania pojedynczych procesorów w sieci będącej hiperkostką.

Spis treści

[edytuj] Rozszerzanie kodu Graya

Rozszerzanie kodu Graya o 1 bit przeprowadza się wg następującego algorytmu:

  1. Dopisz te same słowa kodowe, ale w odwrotnej kolejności (odbicie lustrzane)
  2. Do początkowych wyrazów dopisz bit o wartości zero, natomiast do odbitych lustrzanie bit o wartości 1.

[edytuj] Kod Graya jako zagadnienie grafowe

Niech G będzie grafem. Jeżeli \! V(G) będzie zbiorem \! \{0,1\}^n wszystkich ciągów cyfr binarnych długości n i połączymy dwa ciągi (wierzchołki) krawędzią tylko wtedy, gdy różnią się one na jednej pozycji, to cykl Hamiltona w G wyznacza jednoznacznie kod Graya długości n.

[edytuj] Przykład konstruowania kodu 4-bitowego

kod 1-bitowy odbicie lustrzane dopisanie zer i jedynek
0
1
0
1
1
0
00
01
11
10
kod 2-bitowy odbicie lustrzane dopisanie zer i jedynek
00
01
11
10
00
01
11
10
10
11
01
00
000
001
011
010
110
111
101
100
kod 3-bitowy odbicie lustrzane dopisanie zer i jedynek
000
001
011
010
110
111
101
100
000
001
011
010
110
111
101
100
100
101
111
110
010
011
001
000
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

[edytuj] Prosta konwersja z naturalnego kodu binarnego na kod Graya

Zamiast konstruowania tablicy kodu Graya dla liczby zapisanej w kodzie dwójkowym można znaleźć odpowiednik w kodzie Graya w następujący sposób:

  1. przesunąć liczbę w postaci binarnej o jeden bit w prawo (podzielić przez 2)
  2. wykonać operację XOR na odpowiednich bitach liczby i wyniku dzielenia liczby przez 2.

W języku C tę operację można zapisać następującym wyrażeniem: gray = liczba ^ (liczba / 2) lub gray = liczba ^ (liczba >> 1).

[edytuj] Konwersja z kodu Graya na naturalny kod binarny

Kolejne cyfry naturalnego kodu binarnego wyznacza się iteracyjnie, od najbardziej znaczącej, w oparciu o odpowiednią cyfrę kodu Graya i poprzednio wyznaczoną cyfrę kodu naturalnego:

  1. przyjmij pierwszą (najbardziej znaczącą) cyfrę kodu naturalnego równą pierwszej cyfrze kodu Graya
  2. każdą kolejną cyfrę oblicz jako różnicę symetryczną (XOR) odpowiedniej cyfry kodu Graya i poprzednio wyznaczonej cyfry kodu naturalnego.

Przykład przeliczenia:

Krok Kod Graya XOR Kod naturalny
1. 1010 1 → 1 1–––
2. 1010 0 xor 1 → 1 11––
3. 1010 1 xor 1 → 0 110–
4. 1010 0 xor 0 → 0 1100

Wynik: słowu 1010 w kodzie Graya odpowiada ciąg 1100 w kodzie naturalnym, czyli liczba 12. Rzeczywiście, jak pokazuje przedstawiona wyżej konstrukcja, 1010 jest trzynastym słowem kodowym 4-bitowego kodu, a więc (przy numeracji rozpoczynającej się od zera) odpowiada mu liczba 12.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne


Zalążek artykułu To jest tylko zalążek artykułu związanego z matematyką. Jeśli potrafisz, rozbuduj go.

SEO Tools system wymiany linków
kreatyna
kreatyna
www.activebody.pl
Gry Online
Gry Online
www.pozycjonarka.in…
Plaza 3 star hotel Los Angeles

www.triptake.com
krynica noclegi
krynica noclegi,ośrodek, wypoczynk…
gornik.com.pl
Kredyty odnawialne
Kredyty odnawialne
www.eskarbiec.pl