• Nie Znaleziono Wyników

ZASTOSOWANIE ALGORYTMÓW GENETYCZNYCH DO WYZNACZANIA NAJLEPSZYCH KODÓW „TAIL-BITING”

N/A
N/A
Protected

Academic year: 2021

Share "ZASTOSOWANIE ALGORYTMÓW GENETYCZNYCH DO WYZNACZANIA NAJLEPSZYCH KODÓW „TAIL-BITING”"

Copied!
5
0
0

Pełen tekst

(1)

2004

Poznańskie Warsztaty Telekomunikacyjne Poznań 9 - 10 grudnia 2004 Piotr Remlein

Dawid Szłapka

Politechnika Poznańska

Instytut Elektroniki i Telekomunikacji ul. Piotrowo 3a; 60-965 Poznań e-mail: remlein@et.put.poznan.pl

ZASTOSOWANIE ALGORYTMÓW GENETYCZNYCH DO WYZNACZANIA NAJLEPSZYCH KODÓW „TAIL-BITING”

Streszczenie: W artykule opisano zastosowanie metody algorytmów genetycznych (AG) do poszukiwania najlepszych systematycznych koderów splotowych ze sprzężeniem zwrotnym używanych do transmisji danych w postaci pakietów bez bitów ogona. Ten sposób zabezpieczenia przed błędami przesyłanych danych nosi nazwę kodowania Tail-biting. [1, 2, 3]. W tabelach zostały przedstawione wyznaczone metodą AG kody Tail-biting.

Znalezione kody porównano z najlepszymi kodami wyznaczonymi metodą przeszukiwania pełnej przestrzeni.

1. WPROWADZENIE

W systemach łączności bezprzewodowej dane często transmitowane są w postaci pakietów. W celu poprawy jakości transmisji w takich systemach stosowanie jest kodowanie blokowe lub splotowe. W celu zastosowania kodowania splotowego do transmisji pakietów należy dokonać odpowiedniej konwersji przesyłanych ciągów danych w bloki. W praktyce stosowane są dwie metody umożliwiające zastosowanie kodowania splotowego do kodowania pakietów [2].

Jedną jest metoda transmisji ze znanymi „bitami ogona” [4] (ang. termination). Polega ona na dodaniu do kodowanych bitów informacyjnych pakietu tak zwanych bitów ogona [4] (zwykle jest to ciąg samych zer). Ich celem jest doprowadzenie kodera do stanu końcowego znanego odbiornikowi. Bez zastosowania takich bitów ogona algorytm Viterbiego stosowany w odbiorniku nie będzie mógł zdekodować końcowych bitów z takim samym prawdopodobieństwem jak bitów w środku pakietu. Elementy ogona wprowadzają jednak nadmiarowość powodującą zmniejszenie efektywnej prędkości transmisji

Drugim sposobem umożliwiającym zastosowanie kodowania splotowego do transmisji pakietów, jest metoda transmisji bez tzw. bitów ogona [4] (ang. Tail- biting). W metodzie tej, aby nie zmniejszać sprawności transmisji przez dodawanie bitów ogona, ustala się stan początkowy kodera identyczny ze stanem końcowym bez stosowania ogona.

W przypadku stosowania kodera splotowego bez sprzężenia zwrotnego, bity informacyjne pakietu wprowadzane są bezpośrednio do elementów pamięci kodera i wyznaczają jego stan. Zatem nadajnik znając m ostatnich bitów pakietu zna stan końcowy kodera, może przed rozpoczęciem kodowania ustawić koder w tym stanie. W przypadku stosowania systematycznego kodera splotowego ze sprzężeniem zwrotnym rys. 1,

ustalenie stanu początkowego, w którym koder powinien rozpocząć pracę, by po N taktach zakończyć proces kodowania w tym samym stanie jest złożone. Jednym ze sposobów ustalenia tego stanu jest metoda zaproponowana dla kodów binarnych w pracy [2] i zastosowana do kodów wielowartościowych w pracy [3].

W celu wyznaczenia kodów o najlepszych parametrach transmisyjnych zwykle stosuje się metody polegające na przeszukiwaniu wszystkich kodów w ramach badanej klasy [5, 6]. Wadą tych metod jest wykładniczo rosnąca złożoność. Publikowane do tej pory wyniki badań kodów Tail-biting obejmują kodery, o co najwyżej 6 komórkach pamięci [1, 4]. W artykule autorzy prezentują nową metodę poszukiwania dobrych kodów Tail-biting, która wykorzystuje algorytm genetyczny (GA). Proponowana metoda jest szczególnie przydatna dla kodów o dużej złożoności (duża liczba elementów pamięci i długie pakiety danych). W proponowanej metodzie oceniana jest pewna stała próba kodów, zwana populacją.

Na podstawie oceny populacji algorytm genetyczny (GA) tworzy generacje potomną, dążąc do „doskonalenia”

kodów. W przeprowadzanych badaniach poszukiwane były kody o możliwie największej odległości Euklidesa.

Zaletą opisywanej metody, jest liniowa złożoność obliczeniowa, wadą zaś brak gwarancji znalezienia rozwiązania optymalnego. Należy podkreślić, że dla większości testowanych klas kodów autorom udało się odnaleźć za pomocą GA rozwiązania optymalne będące wynikiem przeszukania pełnej przestrzeni określonej klasy kodów.

Uzyskane wyniki wskazują na dużą przydatność algorytmu genetycznego przy optymalizacji kodów Tail- biting.

W rozdziale 2 opisana została metoda poszukiwania najlepszych kodów Tail-biting oparta na algorytmach genetycznych. W rozdziale 3 przedstawiono wyniki przeprowadzonych badań. Rozdział 4 zawiera podsumowanie i wnioski.

2. ALGORYTMY GENETYCZNE

Algorytmy genetyczne działają w sposób naśladujący zjawiska występujące w przyrodzie. Optymalizują pewną funkcję zwaną funkcją przystosowania [7]. Podobnie jak w naturze, algorytmy genetyczne dążą do uzyskania optymalnego wyniku, nie koniecznie najlepszego. Trudno zresztą oczekiwać od algorytmu rządzącego się pseudolosowymi metodami, aby dawał zawsze najlepsze rozwiązania. Algorytmy genetyczne można zastosować

(2)

x(1) x(m) g1m

gkm gk1 g11 gk0 g10

qm q1

U(k) V(k)

V(k+1) V(1) U(1)

we wszystkich problemach, gdzie da się stworzyć funkcję oceniającą rozwiązania.

Algorytmy genetycznye różnią się od tradycyjnych metod wyznaczania najlepszych rozwiązań między innymi tym, że:

− operują na zakodowanych parametrach

− działają na pewnej, określonej liczbie parametrów

− oceną jest funkcja przystosowania, nie ma innych danych pomocniczych

− wykorzystywany jest probabilistyczny, a nie deterministyczny rodzaj wyboru.

Algorytmy genetyczne nie operują na pojedynczych rozwiązaniach, ale na ich całych populacjach.

Każda populacja składa się z osobników składających się z chromosomów, czyli ciągów kodowych opisujących ich cechy. Osobnik może posiadać więcej niż jeden chromosom.

Chromosom składa się z genów, których wartościami są allele. Przekładając to na język teleinformatyczny:

chromosomy to ciągi, składające się z bitów, bądź symboli, które mogą przyjmować wartości całkowite z zakresu:

− Dla kodów binarnych {0,1}

− Dla kodów niebinarnych {0,1,…,M}, gdzie M-wartościowość kodu

Każdy osobnik posiada własną funkcję przystosowania, która liczbowo określa jego przystosowanie.

Analizowane w pracy kodery kodów Tail-biting składają się z systematycznego kodera splotowego ze sprzężeniem zwrotnym o sprawności k/(k+1). Na jego wyjściu znajduje się układ odwzorowujący kodowane symbole w elementy konstelacji sygnałów M-PSK (ang. Mapper). Ogólny schemat wspomnianego kodera pokazany jest na rysunku 1.

Rys. 1. Schemat systematycznego kodera splotowego ze sprzężeniem zwrotnym

Koder składa się z m elementów opóźniających, sum modulo 2 i odczepów gij i qj. Słowo wyjściowe V kodera wybiera jeden z elementów konstelacji M-PSK.

W miarę wzrostu liczby stanów kodera i wzrostu długości kodowanych pakietów liczba wszystkich możliwych kodów Tail-biting, które należałoby przeszukać w tradycyjnej metodzie optymalizacji rośnie wykładniczo i wynosi:

N=2

m(k+1)L

gdzie m jest liczbą komórek pamięci kodera, k - liczba kodowanych bitów wejściowych, L – długość pakietu.

Architektura systematycznego kodera splotowego ze sprzężeniem zwrotnym jest jednoznacznie definiowana za pomocą współczynników kodera. Współczynniki te posiadają postać słów binarnych, w których jedynka oznacza istnienie a zero brak odczepu na strukturze kodera rys. 1. Długość współczynników decyduje o liczbie stanów kodera. Koder o liczbie stanów równej 2m ma współczynniki o długości m bitów. Liczba współczyn- ników zależy od sprawności kodera. Zestawiając wszystkie współczynniki otrzymujemy słowo binarne o długości: z = m(k+1).

Otrzymane słowo binarne wraz z wybranym dla kodu układem odwzorowania jednoznacznie określa konkretny kod. Można potraktować je jako pojedynczy chromosom w algorytmie genetycznym. Algorytm genetyczny, oparty jest na założeniu, ze podobne osobniki mają podobne właściwości. Na drodze krzyżowania początkowej populacji tworzy się nową generację, której osobniki posiadają chromosomy powstałe z chromosomów rodziców (i w domyśle podobne cechy). Rodzice dobierani są na drodze losowania, jednak w taki sposób, aby posiadacze pożądanych cech byli wybierani z większym prawdopodobieństwem. Każdy osobnik, w tym przypadku kod, poddawany jest ocenie. W przeprowadzonych badaniach kryterium optymalizacji stanowiła odległość Euklidesa. Wyznaczona na jej podstawie wartość funkcji przystosowania algorytmu genetycznego decyduje o prawdopodobieństwie replikacji.

Algorytm genetyczny poszukuje lepszych rozwiązań wśród rozwiązań podobnych do już znalezionych.

Skutecznie działa tylko wówczas, gdy dobre rozwiązania są do siebie podobne. Czy kody kratowe spełniają to wymaganie? Przeprowadzone obliczenia pokazują, że tak.

Zastosowany algorytm znalazł kody optymalne w niemal wszystkich kategoriach kodów, dla których przeprowadzono porównawcze pełne przeszukania.

Elementarny algorytm genetyczny stosowany do poszukiwania kodów Tail-biting składa się z trzech operacji:

− Reprodukcji

− Krzyżowania

− Mutacji

Reprodukcja odpowiada za powielanie osobników do następnego pokolenia w stosunku zależnym od wartości funkcji przystosowania. Jest to operacja pseudolosowa, tak samo jak dwie pozostałe. Nie mniej jednak osobniki o największej funkcji przystosowania mają największą szansę propagować się dalej do następnych pokoleń.

Losowość powoduje czasem reprodukcję nawet słabych osobników.

Operacji reprodukcji dokonuje się tyle razy ile jest osobników w pokoleniu. Osobniki o lepszym przystosowaniu są wybierane częściej, bo większe jest prawdopodobieństwo ich wylosowania, co zwykle objawia się zwiększającym się średnim przystosowaniem każdego następnego pokolenia.

Po operacji reprodukcji następuje krzyżowanie. W najprostszej wersji polega ono na wybieraniu losowo dwóch osobników z pokolenia, punktu krzyżowania i od miejsca krzyżowania do końca ciągu kodowego (chromosomu) zamianie symboli w obu osobnikach.

(3)

Punkt krzyżowania pk losowany jest między pierwszym, a ostatnim symbolem ciągu kodowego.

pk={1,2,3,4,5}

pk=4

przed krzyżowaniem:

pokolenie n ciąg I = 1101|01 ciąg II = 0100|11 po krzyżowaniu:

pokolenie (n+1) ciąg I = 110111 ciąg II = 0100101

Trzecią elementarną operacją algorytmów genetycznych jest mutacja. Jest to zjawisko o dużo mniejszym udziale aniżeli reprodukcja czy krzyżowanie, niemniej jednak spełnia dość ważną rolę.

Czasem zdarza się, że reprodukcja i krzyżowanie pomijają ważny ciąg, a mutacja może to naprawić.

Polega ona na zamianie wartości bitu na przeciwną (dla kodów binarnych), bądź zmianie wartości symbolu na inną z dostępnych (dla kodów wielowartościowych).

Mutacja występuje zazwyczaj z bardzo małym prawdopodobieństwem, co powoduje, że zmiana symbolu w ciągu kodowym występuje rzadko.

Często stosuje się zabieg zmniejszania prawdopodobieństwa propagacji osobników ponadprzeciętnych, na korzyść osobników słabych.

Proces ten jest stosowany, by zbyt wcześnie osobniki bardzo dobre nie „opanowały” całego pokolenia.

Gdyby tak się stało, wtedy algorytmy genetyczne zabrnęłyby w pewien obszar danych lokalnych i mogłyby nie znaleźć dobrego wyniku. Algorytm poszukiwania najlepszych kodów Tail-biting stosujący metodę AG przedstawiony jest na rys. 2.

Losowe generowanie populacji początkowej

Tworzenie populacji dziedziczącej Ocena wszystkich

osobników populacji

Koniec ewolucji

TAK NIE

START

STOP

Zapamiętanie najlepszego dotychczasowego

rozwiązania

Przedstawienie wyników

Losowe generowanie populacji początkowej

Tworzenie populacji dziedziczącej Ocena wszystkich

osobników populacji

Koniec ewolucji

TAK NIE

START

STOP

Zapamiętanie najlepszego dotychczasowego

rozwiązania

Przedstawienie wyników

Rys 2. Schemat algorytmów genetycznych Dla każdego pokolenia według zasad zgodnych z AG tworzone są nowe osobniki, czyli tu kodery. Dla każdego z nich wykonuje się operacje związane z metodą „bez bitów ogona”.

Tak samo jak dla metody przeszukiwania całej przestrzeni, tak i tu dla każdego osobnika oblicza się minimalną odległość Euklidesa de_min, a co pokolenie znajdowany jest koder o największej minimalnej odległości Euklidesa de_max. Po wykonaniu obliczeń dla ostatniego pokolenia, najlepszym koderem zostaje

wybrany ten, o największej wartości minimalnej odległości Euklidesa spośród najlepszych koderów poszczególnych pokoleń. Znaleziony najlepszy koder nie musi być koderem cechującym się rzeczywiście maksymalną de_min. Jak wspomniano we wstępie, AG dążą do uzyskania optymalnego wyniku dążącego do najlepszego z możliwych, niekoniecznie go osiągając. Jest to cena, jaką się płaci za otrzymanie rozwiązania w rozsądnym czasie.

Najlepszy koder znaleziony tą metodą może zostać znaleziony w dowolnym pokoleniu, jednak tendencja otrzymywanych rozwiązań powinna dążyć w określonym kierunku. Algorytmy genetyczne w kolejnych pokoleniach szukają koderów o coraz większych de_max, więc tendencja powinna być rosnąca, tzn. średnia minimalna odległość Euklidesa dla kolejnych pokoleń powinna rosnąć. W rozwiązaniu zastosowanym podczas szukania najlepszych kodów, charakterystyka średniego przystosowania pokolenia, była często zakłócana przez fakt nieistnienia metody „Tail-biting” dla znacznej części koderów, gdyż w miejsce „nieprawidłowego” kodera, był losowany nowy, który miał często gorszą odległość Euklidesa od średniej w populacji.

Rys 3. Wykres średniego przystosowania najlepszych osobników w AG dla parametrów: liczność populacji 40, liczba pokoleń: 20, prawdopodobieństwo krzyżowania:

0.9, prawdopodobieństwo mutacji 0.03, liczba symboli na jednym wejściu: 13, liczba wejść: 1, liczba komórek pamięci: 5, wartościowość kodu: 2, modulacja: 4-PSK (kodowanie Gray'a)

Jak widać na powyższym rysunku, średnie przystosowanie kolejnych populacji zmierza ku coraz większym wartościom, co oznacza, że w każdym następnym pokoleniu występuje większa liczba osobników o lepszym przystosowaniu.

Trzeba jednak zaznaczyć, że pomimo stałej liczby testowanych kodów czas obliczeń rośnie wykładniczo wraz ze wzrostem złożoności kodu, co jest spowodowane wykładniczym wzrostem kosztu przetestowania pojedynczego kodu (wyliczenia funkcji przystosowania).

Opisana metoda jest jednak bez porównania bardziej efektywna od metody tradycyjnej, gdzie wykładniczo rośnie również liczba testowanych kodów.

(4)

3. WYNIKI

Prezentowane rezultaty zostały otrzymane w wyniku obliczeń obejmujących co najmniej 20 pokoleń, na populacji składającej się z 40 kodów. Jako kryterium optymalizacji dla metody pełnego przeszukiwania i AG przyjęto odległość Euklidesa.

Publikowane w literaturze kody Tail-biting [2, 4]

optymalizowane były tylko ze względu na odległość Hamminga.

Przedmiotem badań były kody o sprawności R=1/2 i 2/3 dla modulacji, odpowiednio 4-PSK i 8- PSK.

Wyznaczone kodery mają m komórek pamięci, l bitów wejściowych na jednym wejściu, k wejść.

Kody zaznaczone w tabelach na szarym tle oznaczają kody wyznaczone metodą AG o mniejszych odległościach Euklidesa od kodów znalezionych metodą przeszukiwania pełnej przestrzeni (PP). W przeprowadzonych badaniach tylko 3 kody wyznaczone metodą AG były gorsze od kodów optymalnych. Reszta kodów znalezionych przez AG charakteryzuje się największą odległością Euklidesa taką samą jak kody wyznaczone metodą pełnego przeszukiwania. Parametry koderów zaznaczone wytłuszczoną czcionką oznaczają nowe kody znalezione dzięki zastosowaniu metody AG.

Jest wielce prawdopodobne, że wyniki uzyskane dla bardziej złożonych koderów są także najlepsze. Zapis koderów stosowany jest w kodzie ósemkowym i zaczerpnięty jest z artykułu [2]. Ciemniejsze pola oznaczają, że dla danych parametrów nie został wyszukany koder.

4. PODSUMOWANIE

W artykule zaprezentowano rezultaty poszukiwań dobrych kodów Tail-biting. Jako kryterium optymalizacji przyjęto odległość Euklidesa. Przedstawiony algorytm AG okazał się użyteczny i efektywny. Pomimo probabilistycznego charakteru algorytmu genetycznego dla większości przypadków udało się wyznaczyć kody o optymalnych parametrach, takich samych jak w przypadku stosowania metody przeszukiwania pełnej przestrzeni. W tabelach zestawiono znalezione kody.

Zastosowanie algorytmu genetycznego do wyznaczania struktury kodów o dobrych właściwościach transmisyjnych prowadzi do znacznego zmniejszenia czasochłonności poszukiwań najlepszych kodów w stosunku do tradycyjnych metod. Jednocześnie umożliwia znalezienie nowych kodów, których wyznaczenie było do tej pory niemożliwe ze względu na ich zbyt dużą złożoność.

Tabela 1. Kody Tail-biting dla modulacji 8-PSK, R=2/3 K=l·k

m 4 PP AG 5 PP AG 6 PP AG

K g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max

8 40,20,70 2,61 10,32,76 2,61 40,20,70 2,61 23,62,57 2,61 400,200,700 2,61 124,564,510 2,61 10 40,30,52 2,93 2,44,52 2,93 40,24,70 2,93 51,77,62 2,93 400,300,520 2,93 70,20,744 2,93 12 70,60,64 3,04 70,24,64 3,04 70,60,50 3,04 34,66,54 3,04 700,600,640 3,04 304,24,570 3,04 14 60,40,62 3,04 2,24,70 3,04 60,40,62 3,04 61,50,45 3,04 310,44,744 3,04 16 72,30,76 3,69 72,32,76 3,69 11,67,57 3,69 560,404,510 3,58

m 7 AG 8 AG 9 AG 10 AG 11 AG

K g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max g1,g2,q de_max

8 174,76,422 2,61 730,224,733 2,61 3670,230,6654 2,61 3654,554,5160 2,61 4704,7143,7270 2,61 10 266,374,422 2,93 422,12,406 2,93 4350,7020,5510 2,93 7024,3440,6562 2,93 160,6307,4360 2,93 12 256,140,604 2,93 117,240,675 3,04 7770,7014,6160 2,93 2522,530,5326 3,04 465,1744,4536 2,93 14 76,624,724 3,04 136,132,573 3,04 64,4564,4030 3,04 250,3146,4746 3,04 302,3355,6474 3,04 16 514,662,742 3,69 225,776,411 3,69 7724,6554,7500 3,58 1352,274,7644 3,69 1554,1404,4773 3,69 18 34,320,576 4,02 5640,4630,4420 4,13 340,3354,5700 4,02 4311,2250,5625 4,02 20 400,260,766 4,13 4234,2154,6130 4,13 5516,2126,5160 4,13 3712,236,5016 4,13

22 562,12,460 4,28

(5)

Tabela 2. Kody Tail-biting dla modulacji 4-PSK, R=1/2

m 4 PP AG 5 PP AG 6 PP AG

l q,g de_max q,g de_max q,g de_max q,g de_max q,g de_max q,g de_max

4 70,40 4,82 54,2 4,82 70,40 4,82 46,7 4,82 700,400 4,82 520,604 4,82 5 70,40 4,82 54,70 4,82 70,40 4,82 75,55 4,82 700,400 4,82 610,664 4,82 6 54,60 5,64 54,34 5,64 54,60 5,64 76,35 5,64 540,600 5,64 450,60 5,64 7 52,20 5,64 62,26 5,64 75,40 5,64 62,10 5,64 750,400 5,64 670,240 5,64 8 54,60 6,23 76,72 6,23 54,60 6,23 73,6 6,23 540,600 6,23 424,720 6,23 9 64,70 6,82 54,70 6,82 75,60 6,82 75,16 6,82 750,600 6,82 570,74 6,82 10 54,22 7,05 64,12 7,05 75,60 7,64 75,30 7,64 664,400 7,64 714,310 7,64 11 76,64 7,64 54,36 7,64 75,44 8,23 70,65 8,23 750,440 8,23 744,754 8,23 12 64,36 8,00 64,36 8,00 67,62 8,46 67,62 8,46 414,730 9,64 414,730 9,64 13 46,72 8,23 64,36 8,23 67,67 8,82 46,67 8,46 564,600 8,82 730,350 8,82

m 7 PP AG 8 AG 9 AG 10 AG 11 AG

l q,g de_max q,g de_max q,g de_max q,g de_max q,g de_max q,g de_max

4 700,400 4,82 554,564 4,82 545,75 4,82 5414,5174 4,82 6266,5034 4,82 5370,7416 4,82 5 700,400 4,82 772,364 4,82 634,526 4,82 7420,5064 7,82 6130,2110 4,82 5346,3576 4,82 6 540,600 5,64 534,474 5,64 741,106 5,64 5114,6264 5,64 7216,4434 5,64 5456,4232 5,64 7 750,400 5,64 736,762 5,64 450,701 5,64 6034,7710 5,64 6520,1470 5,64 5604,5665 5,64 8 540,600 6,23 712,746 6,23 501,342 6,23 5364,6524 6,23 5634,2414 6,23 4251,2351 6,23 9 750,600 6,82 712,42 6,82 771,511 6,82 4500,5044 6,82 7126,3040 6,82 7512,500 6,82 10 664,400 7,64 406,714 7,64 717,545 7,64 7154,7560 7,64 6200,6146 7,64 7524,4327 7,64 11 662,600 8,23 422,262 8,23 414,116 8,23 5460,7144 8,23 4202,1222 8,23 6155,7545 8,23 12 436,620 9,64 510,256 8,82 510,256 8,82 7300,3010 9,64 5430,3662 9,64 5034,7254 8,46 13 564,600 8,82 742,164 8,82 465,121 8,46 7044,6030 8,82 4416,2416 8,46 7653,367 8,46 14 436,750 9,64 742,136 9,64 760,673 9,46 7300,714 9,64 7660,6034 9,64 5205,2312 9,64 15 626,700 9,64 570,726 9,64 455,310 9,64 7104,1434 9,64 7102,574 9,64 6531,766 9,64 16 676,344 9,87 442,772 9,64 765,540 9,64 5034,3660 9,87 4542,3344 9,87 6412,1161 9,64 17 436,260 10,64 474,466 10,64 646,31 10,64 6214,1320 9,87 4024,1676 10,23 7371,1336 10,46 18 436,552 10,64 714,651 10,64 6534,620 10,46 7452,6250 10,46 19 520,346 10,64 510,773 11,05 5020,3644 11,05 7030,5142 11,28 20 742,722 10,82 562,37 11,28 6534,2644 11,28

21 652,362 11,64

SPIS LITERATURY

[1] C.Weiβ, C.Bettstetter, S.Riedel, „Code construction and decoding of parallel concatenated Tail-biting codes”, IEEE Trans. Inform. Theory, vol. 47, pp. 366-386, January 2001.

[2] P.Ståhl, J.B.Anderson, R.Johannesson, „A note on Tailbiting codes and their feedback encoders”, IEEE Trans. Inform. Theory, vol.48, pp. 529-534, February 2002.

[3] P.Remlein, “Kodery ze sprzężeniem zwrotnym dla transmisji pakietów bez tzw. symboli ogona”, Poznańskie Warsztaty Telekomunikacyjne, PWT

’03, Poznań 11-12 grudnia 2003, ss 165-169.

[4] H.H. Ma, J.K. Wolf “On Tailbiting Convolutional Codes”. IEEE Trans. Commun., vol. 34, pp. 104- 111, Feb. 1986.

[5] Larsen, K.J., "Comments of an efficient algorithm for computing free distance", IEEE Trans., July 1973, IT-19, pp. 577-579.

[6] Du, F., Vucetic B., "Algorithm for computing minimum product distance of TCM codes", Electronics Letters, Jan. 1992, Vol. 28, No. 1, pp.

2-4.

[7] Goldberg, D.E., "Genetic Algorithms in Search, Optimization and Machine Learning", Addison- Wesley Publishing Company, Inc., 1989.

Cytaty

Powiązane dokumenty

Jak wynika z przeprowadzonych przez autora doświadczeń, identyfikacja parametrów funkcji popytu z wykorzystaniem AG nie udaje się w przypadku, gdy sprzedaż podlega dużym wahnięciom

Dworska Więcławice

ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ Seria:

Wybrano metodę opartą na algorytmach genetycznych. Metoda ta doskonale nadaje się do rozwiązywania problemów dyskretnych. W analizowanym przypadku zarówno grubości blach

Elektrodynamiczny przetwornik ze sprzężeniem... elektrodynamiczny przetwornik ze

W związku z powyższym 20 października 2020 r. zwrócił się do Piotra K. o zwolnienie go z obowiązku zapłaty czynszu dzierżawnego za 2020 r., argumentując, że za ten

Zastosowanie metody funkcji dolnej do badania zbieżności algorytmów genetycznych.. Pamięci Profesora

Zazwyczaj też konstruktor nie przyjmuje żadnych parametrów, co nie znaczy jednak, że nie może tego czynić. Dokładniej wyjaśnimy to w następnym paragrafie. Warto też wiedzieć,