Uogólnione prawo dystrybucyjne - Generalized distributive law

Uogólnione prawo rozdzielcze (GDL) jest uogólnieniem rozdzielność co daje podstawę do ogólnego mijania wiadomości algorytmu. Stanowi syntezę prac wielu autorów zajmujących się teorią informacji , komunikacją cyfrową , przetwarzaniem sygnałów , statystykami i społecznościami sztucznej inteligencji . Prawo i algorytm zostały wprowadzone w pół tutorialu przez Srinivasa M. Aji i Roberta J. McEliece o tym samym tytule.

Wprowadzenie

„Prawo podziału w matematyce to prawo odnoszące się do operacji mnożenia i dodawania, wyrażone symbolicznie, to znaczy, że czynnik jednomianowy jest rozdzielany lub oddzielnie stosowany do każdego członu czynnika dwumianowego , co daje iloczyn ” - Britannica

Jak wynika z definicji, zastosowanie prawa dystrybucyjnego do wyrażenia arytmetycznego zmniejsza liczbę operacji w nim zawartych. W poprzednim przykładzie łączna liczba operacji została zmniejszona z trzech (dwa mnożenia i dodawanie w ) do dwóch (jedno mnożenie i jedno dodawanie ). Uogólnienie prawa dystrybucji prowadzi do powstania dużej rodziny szybkich algorytmów . Obejmuje to algorytm FFT i Viterbi .

Jest to wyjaśnione w bardziej formalny sposób w poniższym przykładzie:

gdzie i są funkcje o wartościach rzeczywistych i (powiedzmy)

Tu jesteśmy „marginalizację out” zmienne niezależne ( , , i ), aby uzyskać wynik. Kiedy obliczamy złożoność obliczeniową, widzimy, że dla każdej pary istnieją wyrazy należące do trójki, która musi brać udział w ocenie, z każdym krokiem mającym jeden dodatek i jedno mnożenie. Dlatego całkowita liczba potrzebnych obliczeń wynosi . Stąd asymptotyczna złożoność powyższej funkcji .

Jeśli zastosujemy prawo dystrybucji do prawej strony równania, otrzymamy:

Oznacza to, że można go opisać jako produkt, w którym i

Teraz, gdy mamy do obliczania złożoności obliczeniowej, możemy zobaczyć, że istnieją dodatki w i każda i są mnożenia gdy używamy produktu do oceny . Dlatego całkowita liczba potrzebnych obliczeń wynosi . Stąd asymptotycznej złożoności obliczeń zmniejsza się od . Pokazuje to na przykładzie, że zastosowanie prawa dystrybucji zmniejsza złożoność obliczeniową, która jest jedną z dobrych cech „szybkiego algorytmu”.

Historia

Niektóre z problemów, które wykorzystano do rozwiązania prawa dystrybucji, można pogrupować w następujący sposób

1. Algorytmy dekodowania Algorytm
podobny do GDL był używany przez Gallagera do dekodowania kodów kontroli parzystości o niskiej gęstości. Bazując na pracy Gallagera, Tanner przedstawił wykres Tannera i wyraził pracę Gallagera w formie przekazywania wiadomości. Wykres garbarzy pomógł również wyjaśnić algorytm Viterbiego .

Forney zauważa, że ​​dekodowanie kodów splotowych z maksymalnym prawdopodobieństwem Viterbiego również wykorzystywało algorytmy ogólności podobne do GDL.

2. Algorytm do
przodu i do tyłu Algorytm do przodu i do tyłu pomógł jako algorytm śledzenia stanów w łańcuchu markowa . I to też był używany algorytm GDL jak ogólność

3. Sztuczna inteligencja
Pojęcie drzew skrzyżowań zostało wykorzystane do rozwiązania wielu problemów związanych ze sztuczną inteligencją. Wiele pojęć wykorzystano również w koncepcji eliminacji wiadra .

Problem MPF

MPF lub marginalizacja funkcji iloczynu to ogólny problem obliczeniowy, który jako przypadek specjalny obejmuje wiele klasycznych problemów, takich jak obliczenia dyskretnej transformaty Hadamarda , dekodowanie kodu liniowego z maksymalnym prawdopodobieństwem w kanale bez pamięci i mnożenie łańcucha macierzy . Siła WKL polega na tym, że ma ona zastosowanie do sytuacji, w których uogólnia się dodatki i mnożenia. Przemienne semiring jest dobre ramy dla wyjaśnienia tego zachowania. Jest zdefiniowany na zbiorze z operatorami " " i " ", gdzie i są przemiennymi monoidami i obowiązuje prawo dystrybucji.

Niech będą takie zmienne, że gdzie jest skończony zbiór i . Tutaj . Jeśli i niech , , , , i

Niech gdzie . Załóżmy, że funkcja jest zdefiniowana jako , gdzie jest przemiennym semirowaniem . Ponadto, są nazywane przez miejscowych domen i jak lokalne jąder .

Teraz globalne jądro jest zdefiniowane jako:

Definicja problemu MPF : Dla jednego lub więcej indeksów oblicz tabelę wartości - marginalizacji globalnego jądra , czyli funkcji zdefiniowanej jako

Tutaj jest uzupełnienie względem i nazywa się funkcją celu lub funkcją celu w . Można zauważyć, że obliczenie funkcji celu w oczywisty sposób wymaga operacji. Dzieje się tak, ponieważ przy obliczaniu funkcji celu potrzebne są dodania i mnożenia . Algorytm GDL, który zostanie wyjaśniony w następnej sekcji, może zmniejszyć tę złożoność obliczeniową.

Poniżej znajduje się przykład problemu MPF. Niech i będą zmiennymi takimi, że i . Tutaj i . Podane funkcje wykorzystujące te zmienne są a i trzeba obliczyć i zdefiniowane jako:

Tutaj domeny lokalne i jądra lokalne są zdefiniowane w następujący sposób:

domeny lokalne jądra lokalne

gdzie jest funkcją celu i jest funkcją celu.

Rozważmy inny przykład, w którym i jest funkcją o wartościach rzeczywistych. Teraz rozważymy problem MPF, w którym przemienne semiowanie jest zdefiniowane jako zbiór liczb rzeczywistych ze zwykłym dodawaniem i mnożeniem, a domeny lokalne i jądra lokalne są zdefiniowane w następujący sposób:

domeny lokalne jądra lokalne

Odkąd globalne jądro jest zdefiniowane jako produkt lokalnych jąder, tak właśnie jest

a funkcja celu w domenie lokalnej to

To jest transformata Hadamarda funkcji . Stąd widzimy, że obliczenie transformaty Hadamarda jest szczególnym przypadkiem problemu MPF. Więcej przykładów można wykazać, aby udowodnić, że problem MPF tworzy szczególne przypadki wielu klasycznych problemów, jak wyjaśniono powyżej, których szczegóły można znaleźć na

GDL: algorytm rozwiązywania problemu MPF

Jeśli uda się znaleźć związek między elementami danego zbioru , to można rozwiązać problem MPF w oparciu o pojęcie propagacji przekonań, które jest szczególnym zastosowaniem techniki „przekazywania wiadomości”. Wymagana relacja polega na tym, że dany zestaw domen lokalnych można zorganizować w drzewo połączeń . Innymi słowy, tworzenie wykresów teoretyczną drzewo z elementów jak wierzchołków drzew , na przykład, że dla dowolnych dwóch dowolnych wierzchołki powiedzieć, i gdzie i istnieje krawędź pomiędzy tymi dwoma wierzchołkami, a punkt przecięcia odpowiedniej etykiety, a mianowicie , jest podzbiorem etykiety na każdym wierzchołku na unikalnej ścieżce od do .

Na przykład,

Przykład 1: rozważ następujące dziewięć domen lokalnych:

Dla podanego powyżej zestawu domen lokalnych można zorganizować je w drzewo połączeń, jak pokazano poniżej:

Przykład skrzyżowania drzewa

Podobnie, jeśli podany jest inny zestaw podobny do poniższego

Przykład 2: rozważ następujące cztery domeny lokalne:

Następnie skonstruowanie drzewa tylko z tymi domenami lokalnymi nie jest możliwe, ponieważ ten zestaw wartości nie ma wspólnych domen, które można umieścić między dowolnymi dwiema wartościami z powyższego zestawu. Jeśli jednak dodasz dwie fikcyjne domeny, jak pokazano poniżej, zorganizowanie zaktualizowanego zestawu w drzewo połączeń również będzie możliwe i łatwe.

5. , 6. ,

Podobnie w przypadku tego zestawu domen drzewo połączeń wygląda tak, jak pokazano poniżej:

Kolejny przykład drzewa skrzyżowań

Algorytm uogólnionego prawa dystrybucji (GDL)

Dane wejściowe: zbiór domen lokalnych.
Wynik: dla danego zestawu domen obliczana jest możliwa minimalna liczba operacji wymaganych do rozwiązania problemu.
Tak więc, jeśli i są połączone krawędzią w drzewie skrzyżowań, to komunikat od do jest zbiorem / tabelą wartości podanych przez funkcję :: . Na początek wszystkie funkcje, tj. Dla wszystkich kombinacji danego drzewa iw danym drzewie, są zdefiniowane tak, aby były identyczne, a gdy dana wiadomość jest aktualizowana, postępuje zgodnie z równaniem podanym poniżej.

=

gdzie oznacza, że jest to sąsiedni wierzchołek w drzewie.

Podobnie każdy wierzchołek ma stan, który jest zdefiniowany jako tabela zawierająca wartości z funkcji.Tak jak w przypadku identycznej inicjalizacji wiadomości do 1, stan jest definiowany jako jądro lokalne , ale za każdym razem, gdy jest aktualizowany, następuje następujące równanie:

Podstawy działania algorytmu

Dla podanego zestawu domen lokalnych jako danych wejściowych dowiadujemy się, czy możemy utworzyć drzewo skrzyżowań, używając zestawu bezpośrednio lub dodając najpierw domeny fikcyjne do zestawu, a następnie tworząc drzewo skrzyżowań, jeśli węzeł konstrukcyjny nie jest możliwy wyjście algorytmu, że nie ma sposobu, aby zmniejszyć liczbę kroków do obliczenia danego problemu równania, ale kiedy już mamy drzewo węzłów, algorytm będzie musiał zaplanować komunikaty i obliczyć stany, robiąc to, możemy wiedzieć, gdzie kroki można zmniejszyć, stąd zostaną omówione poniżej.

Planowanie przekazywania wiadomości i obliczanie stanu

Są dwa szczególne przypadki, o których będziemy tutaj mówić, mianowicie Problem pojedynczego wierzchołka, w którym funkcja celu jest obliczana tylko na jednym wierzchołku, a drugi to Problem wszystkich wierzchołków, w którym celem jest obliczenie funkcji celu na wszystkich wierzchołkach.

Zacznijmy od problemu z jednym wierzchołkiem , GDL rozpocznie od skierowania każdej krawędzi w kierunku docelowego wierzchołka . Tutaj wiadomości są wysyłane tylko w kierunku do docelowego wierzchołka. Zwróć uwagę, że wszystkie skierowane wiadomości są wysyłane tylko raz. Wiadomości są rozpoczynane od węzłów liści (gdzie stopień wynosi 1) idą w górę w kierunku wierzchołka docelowego . Wiadomość wędruje od liści do rodziców, a stamtąd do ich rodziców i tak dalej, aż dotrze do wierzchołka docelowego . Wierzchołek docelowy obliczy swój stan tylko wtedy, gdy otrzyma wszystkie wiadomości od wszystkich swoich sąsiadów. Kiedy już mamy stan, mamy odpowiedź i stąd algorytm się kończy.

Na przykład, rozważmy drzewo węzłów zbudowane z zestawu domen lokalnych podanych powyżej, tj. Zbioru z przykładu 1,
Teraz tabela zestawieniowa dla tych domen jest (gdzie znajduje się wierzchołek docelowy ).










W ten sposób złożoność GDL pojedynczego wierzchołka można przedstawić jako

operacje arytmetyczne
Gdzie (Uwaga: wyjaśnienie powyższego równania jest wyjaśnione w dalszej części artykułu) jest etykietą . jest wyższe od (liczba wierzchołków przyległych do V).

Aby rozwiązać problem All-Vertices , możemy zaplanować GDL na kilka sposobów, niektóre z nich to implementacje równoległe, w których w każdej rundzie każdy stan jest aktualizowany, a każda wiadomość jest obliczana i przesyłana w tym samym czasie. W tego typu implementacji stany i komunikaty ustabilizują się po liczbie rund, która jest co najwyżej równa średnicy drzewka. W tym momencie wszystkie stany wierzchołków będą równe żądanej funkcji celu.

Innym sposobem na zaplanowanie GDL dla tego problemu jest implementacja szeregowa, która jest podobna do problemu z pojedynczym wierzchołkiem, z tym wyjątkiem, że nie zatrzymujemy algorytmu, dopóki wszystkie wierzchołki wymaganego zestawu nie otrzymają wszystkich wiadomości od wszystkich sąsiadów i nie obliczą ich stan.
Zatem liczba działań arytmetycznych, których ta implementacja wymaga, to co najwyżej operacje arytmetyczne.

Konstruowanie drzewa węzłowego

Kluczem do zbudowania drzewa skrzyżowań jest graf domeny lokalnej , który jest kompletnym grafem ważonym z wierzchołkami, tj. Po jednym dla każdej domeny lokalnej, o ciężarze krawędzi zdefiniowanym przez . jeśli , to mówimy, że jest zawarte w . Oznaczona przez (waga drzewa rozpinającego o maksymalnej masie ), która jest zdefiniowana przez

gdzie n to liczba elementów w tym zestawie. Aby uzyskać większą jasność i szczegóły, zapoznaj się z nimi.

Twierdzenie o planowaniu

Niech będzie drzewem węzłowym z zestawem wierzchołków i zestawu krawędzi . W tym algorytmie komunikaty są wysyłane w obu kierunkach na dowolnej krawędzi, więc możemy powiedzieć / potraktować zbiór krawędzi E jako zbiór uporządkowanych par wierzchołków. Na przykład z rysunku 1 można zdefiniować w następujący sposób

UWAGA: powyżej podaje wszystkie możliwe wskazówki, jakimi wiadomość może podróżować w drzewie.

Harmonogram GDL jest zdefiniowany jako skończona sekwencja podzbiorów . Co jest ogólnie reprezentowane przez { }, gdzie jest zestaw komunikatów aktualizowanych podczas rundy działania algorytmu.

Po zdefiniowaniu / widziałem kilka zapisów, ujrzymy chcą twierdzenie mówi, Kiedy podano harmonogram , odpowiedni krata wiadomość jako skończonego grafu skierowanego z Vertex zestaw , w którym typowy element jest oznaczony na , a następnie po zakończeniu przekazanie wiadomości, stan na wierzchołku będzie celem zdefiniowanym w

i jeśli istnieje ścieżka od do

Złożoność obliczeniowa

Tutaj staramy się wyjaśnić złożoność rozwiązania problemu MPF liczbą operacji matematycznych wymaganych do obliczenia. tj. Porównujemy liczbę operacji wymaganych przy obliczaniu przy użyciu zwykłej metody (tutaj przez normalną metodę mamy na myśli metody, które nie używają przekazywania komunikatów lub drzew węzłów w krótkich metodach, które nie używają pojęć GDL) i liczbę operacji wykorzystujących uogólnione prawo dystrybucyjne.

Przykład: Rozważmy najprostszy przypadek, w którym musimy obliczyć następujące wyrażenie .

Naiwna ocena tego wyrażenia wymaga dwóch mnożeń i jednego dodania. Wyrażenie wyrażone za pomocą prawa podziału można zapisać jako prostą optymalizację, która redukuje liczbę operacji do jednego dodania i jednego mnożenia.

Podobnie jak w powyższym przykładzie, będziemy wyrażać równania w różnych formach, aby wykonać jak najmniej operacji, stosując GDL.

Jak wyjaśniono w poprzednich sekcjach, rozwiązujemy problem, wykorzystując koncepcję drzew skrzyżowań. Optymalizacja uzyskana przy użyciu tych drzew jest porównywalna z optymalizacją uzyskaną przez rozwiązanie problemu półgrupowego na drzewach. Na przykład, aby znaleźć minimum grupy liczb, możemy zauważyć, że jeśli mamy drzewo i wszystkie elementy znajdują się na dole drzewa, to możemy porównać minimum dwa elementy równolegle, a wynikowe minimum będzie napisane do rodzica. Kiedy ten proces jest propagowany w górę drzewa, minimum grupy elementów zostanie znalezione w katalogu głównym.

Poniżej przedstawiono złożoność rozwiązywania drzewa skrzyżowań za pomocą przekazywania komunikatów

Przepisujemy użyty wcześniej wzór do następującej postaci. To jest równanie wiadomości wysyłanej z wierzchołka v do w

---- równanie wiadomości

Podobnie przepisujemy równanie do obliczania stanu wierzchołka v w następujący sposób

Najpierw przeanalizujemy problem z jednym wierzchołkiem i założymy, że wierzchołek docelowy jest i stąd mamy jedną krawędź od do . Załóżmy, że mamy krawędź, którą obliczamy za pomocą równania wiadomości. Aby obliczyć wymagania

dodatki i

mnożenia.

(Reprezentujemy as .)

Ale będzie wiele możliwości, stąd możliwości . Zatem cała wiadomość będzie potrzebna

dodatki i

mnożenia

Całkowita liczba operacji arytmetycznych wymaganych do wysłania wiadomości w kierunku krawędzi drzewa będzie wynosić

dodatki i

mnożenia.

Po przesłaniu wszystkich wiadomości algorytm kończy się obliczeniem stanu na . Obliczenie stanu wymaga więcej mnożenia. Dlatego liczba obliczeń wymaganych do obliczenia stanu jest podana poniżej

dodatki i

mnożenia

Zatem całkowita suma liczby obliczeń wynosi

----

gdzie jest krawędź, a jej rozmiar jest określony przez

Powyższy wzór określa górną granicę.

Jeśli zdefiniujemy złożoność krawędzi jako

Dlatego można zapisać jako

Teraz obliczamy złożoność krawędzi dla problemu zdefiniowanego na rysunku 1 w następujący sposób

Całkowita złożoność będzie znacznie niska w porównaniu z metodą bezpośrednią. (Tutaj przez metodę bezpośrednią mamy na myśli metody, które nie wykorzystują przekazywania wiadomości. Czas potrzebny przy użyciu metody bezpośredniej będzie równoważny z obliczeniem wiadomości w każdym węźle i czasem obliczenia stanu każdego z węzłów).

Teraz rozważymy problem obejmujący wszystkie wierzchołki, w którym wiadomość będzie musiała zostać wysłana w obu kierunkach, a stan musi zostać obliczony na obu wierzchołkach. To by wymagało, ale dzięki obliczeniom wstępnym możemy zmniejszyć liczbę mnożeń do . Oto stopień wierzchołka. Przykład: Jeżeli istnieje zestaw z liczbami. Możliwe jest obliczenie wszystkich iloczynów d funkcji z co najwyżej mnożenia, a nie oczywistości . Robimy to poprzez wstępne obliczenie ilości, a to wymaga mnożenia. Wtedy, jeśli oznacza iloczyn wszystkich, oprócz tego, że mamy i tak dalej, będziemy potrzebować kolejnego mnożenia tworzącego sumę

Niewiele możemy zrobić, jeśli chodzi o konstrukcję drzewa węzłów, poza tym, że możemy mieć wiele drzew rozpinających o maksymalnej masie i powinniśmy wybierać drzewo rozpinające z najmniejszą liczbą, a czasami może to oznaczać dodanie domeny lokalnej w celu obniżenia połączenia złożoność drzewa.

Może się wydawać, że GDL jest poprawne tylko wtedy, gdy domeny lokalne można wyrazić jako drzewo połączeń. Ale nawet w przypadkach, gdy istnieją cykle i liczba iteracji, komunikaty będą w przybliżeniu równe funkcji celu. Eksperymenty z algorytmem Gallagera – Tannera – Wiberga dla kodów kontroli parzystości o niskiej gęstości potwierdziły to twierdzenie.

Bibliografia

  1. ^ a b c Aji, SM; McEliece, RJ (marzec 2000). „Uogólnione prawo dystrybucyjne” (PDF) . Transakcje IEEE w teorii informacji . 46 (2): 325–343. doi : 10,1109 / 18,825794 .
  2. ^ „prawo dystrybucyjne” . Encyclopædia Britannica. Encyclopædia Britannica Online . Encyclopaedia Britannica Inc . Źródło 1 maja 2012 r .
  3. ^ „Zarchiwizowana kopia” (PDF) . Zarchiwizowane od oryginalnego (PDF) w dniu 19.03.2015 r . Źródło 2015-03-19 .CS1 maint: zarchiwizowana kopia jako tytuł ( link ) Algorytmy drzewa skrzyżowań
  4. ^ http://www-anw.cs.umass.edu/~cs691t/SS02/lectures/week7.PDF Archived 2012-05-26 at the Wayback Machine Algorytm drzewa skrzyżowań