INSTYTUT BADAŃ SYSTEMOWYCH PAN mgr Joanna Kapusta Niestacjonarne Studia Doktoranckie Rozprawa doktorska pt. Algorytmy transformacji wielomianowych i ich zastosowania Promotor: dr hab. Ryszard Smarzewski, prof. KUL
Składam serdeczne podziękowania Panu dr hab. Ryszardowi Smarzewskiemu, prof. KUL, za cenne uwagi, które przyczyniły się do nadania niniejszej rozprawie jej ostatecznego kształtu oraz okazaną życzliwość.
Spis treści 1. Wstęp 3 1.1. Cel pracy oraz motywy wyboru problematyki badawczej....... 3 1.2. Tezy pracy................................. 5 1.3. Struktura pracy.............................. 6 I Transformacje wielomianowe dla specjalnych konfiguracji punktów 9 2. Aktualny stan wiedzy 10 3. Preliminaria 13 3.1. DFT, jednowymiarowy splot i dekonwolucja.............. 13 3.2. Splot wielowymiarowy.......................... 19 4. Nowe algorytmy ewaluacji i interpolacji jednowymiarowej 22 4.1. Bazy wielomianowe............................ 22 4.2. Transformacja Lagrange a-newtona................... 23 4.3. Transformacja Newtona-Lagrange a................... 26 4.4. Ewaluacja wielomianów w bazie potęgowej............... 28 4.5. Analiza porównawcza algorytmów................... 32 5. Interpolacyjne i ewaluacyjne transformacje wielowymiarowe 35 5.1. Sformułowanie problemu......................... 35 5.2. Transformacja Lagrange a-newtona................... 37 5.3. Odwrotna transformacja Lagrange a-newtona............. 40 5.4. Transformacja Maclaurina-Lagrange a.................. 43 1
Spis treści II Zastosowania transformacji wielomianowych 47 6. Współdzielenie sekretu 48 6.1. Podstawowe informacje.......................... 48 6.2. Hierarchiczne dzielenie sekretu...................... 49 6.3. Podział sekretu ze wskazaniem jednostki odzyskującej sekret..... 54 6.4. Dzielenie sekretu z kluczem wielomianowym.............. 57 7. Głosowanie elektroniczne 63 7.1. E-głosowanie na świecie......................... 63 7.2. Wymagania wobec elektronicznego systemu głosowań......... 65 7.3. Przykłady schematów głosowania elektronicznego........... 66 7.4. Model głosowania elektronicznego.................... 68 7.5. Analiza bezpieczeństwa.......................... 72 8. Transmisja rozgłoszeniowa 75 8.1. Schemat komunikacji rozgłoszeniowej.................. 75 8.2. Protokół transmisji rozgłoszeniowej w oparciu o hierarchiczny schemat dzielenia sekretu........................... 77 9. Podsumowanie 83 Bibliografia 84 2
1. Wstęp 1.1. Cel pracy oraz motywy wyboru problematyki badawczej Istotnym elementem nauk informatycznych jest projektowanie i analiza algorytmów, mających najczęściej swoje korzenie w szeroko rozumianej matematyce. Niniejsza rozprawa skupia się na jednym z ważnych [Knuth, 2002] zagadnień z tego obszaru - zaprezentowano w niej nowe algorytmy obliczania transformacji wielomianowych, tj. metody przekształcania reprezentacji wielomianu jednej lub wielu zmiennych w bazie {H α (x)} α Qn p (x) = α Q n a α H α (x) do reprezentacji tego wielomianu p (x) = α Q n b α G α (x) w bazie {G α (x)} α Qn, gdzie Q n oznacza odpowiednio ustalony zbiór indeksów. Celem niniejszej rozprawy doktorskiej jest opracowanie nowych, szybkich algorytmów transformacji wielomianowych dla baz zależnych od specjalnych konfiguracji punktów. Proponowane algorytmy operują na zbiorach punktów rozszerzających klasę ciągów punktów, dla których znane są szybkie algorytmy tego rodzaju [Cooley i Tukey, 1965; Knuth, 2002; Aho i inni, 2003; Bostan i Schost, 2005]. Dokładniej, w pracy przedstawiono algorytmy dla jednowymiarowych, a następnie dla wielowymiarowych transformacji wielomianowych wykorzystujących bazy Lagrange a, Newtona i potęgową z uwzględnieniem punktów, których współrzędne są generowane przez równanie rekurencyjne pierwszego rzędu. Wspomniane algorytmy w istotny sposób wykorzystują jedno- i wielowymiarowe sploty. Zaprezentowano je w postaci łatwej do efektywnej implementacji. Ponadto 3
Wstęp przeprowadzono szczegółową analizę złożoności obliczeniowej tych algorytmów. Następnie podano ich zastosowania w aktualnych problemach kryptograficznych takich jak: dzielenie sekretu, głosowanie elektroniczne, wymiana kluczy z wykorzystaniem transmisji rozgłoszeniowej. Aktualność tych zagadnień wynika m.in. z szybkiego rozwoju internetu oraz stałego wzrostu znaczenia, jakie ma on w życiu jednostek i całych społeczeństw. W pracy szczególną uwagę zwrócono na głosowania elektroniczne ze względu na duży potencjał, jaki ze sobą niosą oraz na naturalne powiązanie prezentowanego modelu głosowań z omawianymi algorytmami transformacji wielomianowych. Głosowania z wykorzystaniem internetu umożliwiają partycypowanie w podejmowaniu decyzji dużej grupie uczestników bez konieczności przemieszczania się do miejsca głosowania, co oszczędza czas, koszty i może być dodatkową zachętą do udziału w głosowaniu. Ponadto umożliwiają one oddanie głosu osobom, które z różnych względów (np. problemy zdrowotne) muszą rezygnować z udziału w tradycyjnych głosowaniach. Wspomniane zalety powodują, że systemy wykorzystujące nowoczesne technologie są ciągle przedmiotem zainteresowań i badań, zarówno w kontekście głosowań [Fujioka i inni, 1993], [Klonowski i inni, 2005], [Zwierko i Kotulski, 2007], wymiany opinii mającej na celu wypracowanie konsensusu [Kacprzyk i Zadrożny, 2008], [Kacprzyk i Zadrożny, 2010], czy też w kontekście wspierania procesu podejmowania decyzji [Kacprzyk i Zadrożny, 2005]. W pracy przedstawiono model, który może być wykorzystany do zbierania i zliczania głosów oddawanych przez internet oraz z wykorzystaniem maszyn do głosowania. Ustalenie sposobu interpretacji wyników głosowania i wskazania wariantu zwycięskiego może odbywać się przy pomocy różnych technik (np. Condorceta, Bordy, większościowej, aprobującej [Nurmi, 2002]), które nie muszą prowadzić do takiego samego rezultatu. Okazuje się, że dla 100-osobowej grupy, w której głosy rozkładają się 48:23:22:6:1, mającej wybrać jeden wariant spośród 5 możliwych, nawet wariant o 6-głosowym poparciu może wygrać głosowanie [Hołubiec i Mercik, 2006]. Innym istotnym zastosowaniem algorytmów transformacji wielomianowych, rozważanym w pracy, jest transmisja rozgłoszeniowa. Polega ona na rozsyłaniu zaszyfrowanej wiadomości do dużej grupy użytkowników w taki sposób, że wiadomość może zostać odtworzona jedynie przez członków dynamicznie zmieniającej się, uprawnionej podgrupy. Przykładem zastosowania transmisji tego typu jest kodowana trans- 4
Wstęp misja telewizyjnych platform cyfrowych - tylko użytkownicy, którzy dokonali opłaty mają dostęp do programów telewizyjnych. Wymienione zastosowania wykorzystują zaprezentowany w pracy hierarchiczny model dzielenia sekretu, który jest uogólnieniem klasycznego schematu Shamira [Shamir, 1979]. Schemat Shamira bazuje na interpolacji Lagrange a, natomiast proponowany hierarchiczny model dzielenia sekretu bazuje na interpolacji Hermite a. Zastosowanie interpolacji Hermite a pozwala na stosowanie tego schematu w grupach o ustalonej hierarchii. Rozważając rzeczywiste przypadki nie jest trudno znaleźć przykłady instytucji lub organizacji (np. bank, wojsko), w których istnieje ustalona hierarchia podyktowana autorytetem jednostek, czy odpowiedzialnością jaka na nich spoczywa. Rozdzielenie tajnej informacji wśród członków takiej grupy wymaga zazwyczaj uwzględnienia wspomnianej hierarchii. W pracy przedstawiono kilka wariantów schematu dzielenia sekretu umożliwiających dopasowanie go do potrzeb tego typu grup. Zaprezentowany model pozwala również na uwzględnienie sytuacji, w której do odzyskania sekretu konieczne jest uczestnictwo wybranych jednostek. W niniejszej rozprawie ograniczono się do przedstawienia wybranych zastosowań algorytmów transformacji wielomianowych. Inne typowe ich zastosowania to interpolacja, ekstrapolacja, aproksymacja oraz metody typu Galerkina rozwiązywania równań różniczkowych [Bini i Pan, 1994; Stoer i Bulirsch, 1993; Kincaid i Cheney, 2006]. Zamierzeniem autora nie było przytoczenie większości znanych zastosowań transformacji wielomianowych, ale ukazanie własnych osiągnięć z tego zakresu na tle współczesnych badań. W pracy skupiono się na praktycznych zastosowaniach, możliwych do wykorzystania w życiu społecznym czy przedsięwzięciach komercyjnych (głosowania, transmisja rozgłoszeniowa). Konsekwencją tego jest pewnego rodzaju różnorodność zagadnień podejmowanych w pracy, w których centrum znajdują się algorytmy transformacji wielomianowych. 1.2. Tezy pracy Przeprowadzone studia literaturowe oraz dotychczasowe badania pozwoliły na sformułowanie następujących tez pracy: 1. Możliwe jest rozszerzenie klasy ciągów punktów, dla których znane są szybkie 5
Wstęp algorytmy interpolacyjne i ewaluacyjne. 2. Istnieją szybkie algorytmy obliczania jedno- i wielowymiarowych transformacji wielomianowych z uwzględnieniem baz wielomianowych Lagrange a, Newtona oraz potęgowej, dla punktów spełniających równanie rekurencyjne pierwszego rzędu. 3. Możliwe jest zastosowanie opracowanych algorytmów transformacji wielomianowych w protokołach kryptograficznych, tj. protokole dzielenia sekretu, głosowania elektronicznego oraz transmisji rozgłoszeniowej wykluczającej. 1.3. Struktura pracy Rozprawa składa się z 9 rozdziałów. Pierwszy rozdział stanowi wprowadzenie do tematyki rozważanej w pracy. Zawiera on opis celów badawczych, zakresu pracy oraz motywacji, które doprowadziły do opracowania nowych algorytmów i ich zastosowań. W pracy zostały wyodrębnione dwie zasadnicze części. Pierwsza z nich (rozdziały 2-5) dotyczy algorytmów obliczania transformacji wielomianowych, natomiast część druga (rozdziały 6-8) omawia zastosowania transformacji wielomianowych. Pierwszą część pracy rozpoczyna rozdział omawiający aktualny stan wiedzy z zakresu transformacji wielomianowych. Zawiera on przegląd wyników opublikowanych w uznanych i cenionych w świecie nauki czasopismach oraz monografiach. W rozdziale trzecim przytoczono podstawowe pojęcia dotyczące jedno- i wielowymiarowych splotów oraz podano metody ich obliczania z wykorzystaniem dyskretnej transformacji Fouriera [Aho i inni, 2003]. Algorytmy proponowane w niniejszej rozprawie należą do rodziny algorytmów wykorzystujących w sposób istotny te zagadnienia. Ponadto wprowadzono definicję cząstkowego splotu hipermacierzowego, która pozwala na przejrzysty zapis algorytmu obliczania splotu wielowymiarowego i ułatwia oszacowanie jego złożoności obliczeniowej. Następnie podano algorytmy obliczania jedno- i wielowymiarowych dekonwolucji, które bazują na iteracyjnej metodzie Newtona [Borwein i Borwein, 1987]. W kolejnych dwóch rozdziałach zaprezentowano nowe wyniki dotyczące transformacji wielomianowych z uwzględnieniem wybranych baz wielomianowych: potęgowej, Lagrange a i Newtona. Dokładniej, w czwartym rozdziale zaprezentowano 6
Wstęp algorytmy obliczania jednowymiarowej transformacji Lagrange a-newtona i transformacji do niej odwrotnej z uwzględnieniem punktów spełniających równanie rekurencyjne pierwszego rzędu. Ponadto dla wymienionej klasy punktów przedstawiono algorytm ewaluacji wielomianów w reprezentacji potęgowej. Podana klasa punktów rozszerza zbiór klas punktów analizowanych w dotychczasowej literaturze przedmiotu, m.in. w pracach [Bini i Pan, 1994; Bostan i Schost, 2005]. W tym rozdziale znalazła się również analiza porównawcza opracowanych algorytmów z innymi znanymi algorytmami transformacji wielomianowych oraz ocena uzyskanych wyników. Część poruszanych w nim zagadnień została opublikowana w pracy [Smarzewski i Kapusta, 2007]. W rozdziale piątym idee z poprzedniego rozdziału uogólniono na wiele wymiarów. W obu przypadkach - jedno- i wielowymiarowym, położono specjalny nacisk na szczegóły algorytmizacji. Niektóre rezultaty tego rozdziału, dla przypadku dwuwymiarowego zostały omówione w artykule [Kapusta i Smarzewski, 2007b], natomiast dla przypadku wielowymiarowego - w [Kapusta i Smarzewski, 2009]. Rozdział szósty rozpoczyna drugą część pracy poświęconą zastosowaniom transformacji wielomianowych. Został w nim przedstawiony szczegółowy opis hierarchicznego schematu dzielenia sekretu. W omawianym schemacie transformacje wielomianowe są wykorzystywane zarówno do uzyskania udziałów w dzielonym sekrecie, jak i przy odzyskiwaniu tego sekretu. W kolejnym rozdziale omówiono model głosowania elektronicznego wykorzystujący hierarchiczny schemat dzielenia sekretu. Zastosowanie tego schematu w prezentowanym modelu głosowania pozwala podzielenie zadań i odpowiedzialności pomiędzy kilka uprawnionych jednostek. Treść ósmego rozdziału zawiera opis ogólnego modelu transmisji rozgłoszeniowej wykorzystującego transformacje wielomianowe. Proponowany model umożliwia wybranym użytkownikom odtworzenie klucza dostępu do systemu na podstawie specjalnie zbudowanej, rozgłaszanej wiadomości. Rozdział dziewiąty zawiera podsumowanie i spostrzeżenia dotyczące omawianych algorytmów transformacji wielomianowych oraz ich zastosowań. Ostatecznie, do najważniejszych wyników tej pracy, nie mających odpowiedników w dotychczasowych publikacjach innych autorów, należą: Opracowanie nowych, szybkich algorytmów jedno- i wielowymiarowych trans- 7
Wstęp formacji wielomianowych, z uwzględnieniem baz Lagrange a, Newtona i potęgowej, dla punktów spełniających równania rekurencyjne pierwszego rzędu (rozdziały 4 i 5; twierdzenia 4.1, 4.5, 4.7, 5.2, 5.4 i 5.6). Wskazanie praktycznych zastosowań opracowanych algorytmów transformacji wielomianowych w istotnych problemach związanych z bezpieczeństwem informacji, tj. w dzieleniu sekretu (rozdział 6), głosowaniu elektronicznym (rozdział 7) oraz protokole transmisji rozgłoszeniowej (rozdział 8). 8
Część I Transformacje wielomianowe dla specjalnych konfiguracji punktów 9
2. Aktualny stan wiedzy Badania w zakresie szybkiego obliczania transformacji wielomianowych dla specjalnych konfiguracji punktów były prowadzone przez wiele lat. Szczególnym przypadkiem jest słynny algorytm FFT [Cooley i Tukey, 1965; Mateer, 2008] obliczania dyskretnej transformacji Fouriera oraz algorytm obliczania transformacji do niej odwrotnej. Algorytmy te pozwalają na przechodzenie pomiędzy reprezentacją wielomianu względem bazy Lagrange a z węzłami interpolacji 1, ω,..., ω n 1, gdzie ω jest pierwiastkiem pierwotnym z jedności stopnia n = 2 k, a współczynnikami rozwinięcia tego wielomianu względem bazy potęgowej, nazywanej też bazą Maclaurina lub Taylora. Ważny algorytm ewaluacji wielomianów tj. transformacji z uwzględnieniem baz potęgowej i Lagrange a dla punktów, które tworzą ciąg geometryczny, został zaproponowany w [Rabiner i inni, 1969] (zob. też [Aho i inni, 1975]). Algorytm ten redukuje obliczanie uogólnionej dyskretnej transformacji Fouriera do obliczenia splotu. Złożoność obliczeniowa wymienionych algorytmów wynosi O (n log n), podczas gdy złożoność obliczeniowa innych, klasycznych algorytmów jest równa O (n 2 ) lub w najlepszym przypadku O ( n log 2 n ) [Borodin, 1971; Aho i inni, 2003]. Powszechnie znanym algorytmem obliczania wartości wielomianu dla danego punktu jest algorytm Hornera. Stosując ten algorytm dla n dowolnych, parami różnych punktów uzyskuje się algorytm pozwalający na przechodzenie pomiędzy reprezentacją wielomianu w bazie potęgowej (lub Newtona) do reprezentacji tego wielomianu w bazie Lagrange a, który wymaga wykonania O (n 2 ) operacji arytmetycznych. Algorytmem o mniejszej złożoności obliczeniowej równej O ( n log 2 n ) jest algorytm typu dziel i zwyciężaj polegający na rekurencyjnym dzieleniu zbioru punktów na połowy i wykonywaniu obliczeń oddzielnie dla każdej z otrzymanych części [Borodin, 1971; von zur Gathen i Gerhard, 2003]. Uogólniony algorytm transformacji Maclaurina-Lagrange a, tzn. algorytm po- 10
Aktualny stan wiedzy zwalający na obliczenie wartości wielomianu i jego pochodnych, dla dowolnych punktów [Knuth, 2002] wymaga wykonania O (n 2 ) operacji arytmetycznych, przy czym n oznacza liczbę punktów wraz z ich krotnościami. W przypadku, gdy współrzędne n punktów spełniają równie rekurencyjne pierwszego rzędu i krotności tych punktów wynoszą 2 to uogólnioną transformację Maclaurina-Lagrange a można obliczyć algorytmem o złożoność obliczeniowej równej O (n log n) [Kapusta i Smarzewski, 2007a]. Algorytm obliczania transformacji odwrotnej jest tego samego rzędu [Kapusta i Smarzewski, 2006a]. Szybki algorytm, rzędu O (n log n), istnieje również dla jednopunktowej ewaluacji wielomianu stopnia n 1 tzn. obliczania wartości kolejnych pochodnych wielomianu w ustalonym punkcie [Aho i inni, 1975]. Interesujące wyniki dotyczące algorytmów zmiany reprezentacji wielomianu w odniesieniu do baz wielomianowych Newtona i Maclaurina, zostały przedstawione w pracy [Gerhard, 2000]. W wymienionej pracy zostały omówione algorytmy z uwzględnieniem wspomnianych baz dla dowolnej konfiguracji punktów oraz specjalnej konfiguracji punktów, tzn. dla punktów, których współrzędne tworzą ciąg arytmetyczny. Przegląd algorytmów zmiany bazy wielomianów można znaleźć w [Aho i inni, 2003], [Bini i Pan, 1994] i [Knuth, 2002], oraz artykule [Bostan i Schost, 2005]. Ponadto, w wymienionych pracach znajduje się dobre, obszerne omówienie literatury związanej z tą tematyką. Warto zwrócić uwagę, że znane algorytmy interpolacji i ewaluacji wielomianów dla dowolnych konfiguracji punktów, o złożoności obliczeniowej równej O ( n log 2), w sposób istotny wykorzystują algorytm obliczania splotu bazujący na algorytmie FFT [von zur Gathen i Gerhard, 2003; Bini i Pan, 1994]. Wśród wyników opublikowanych w ostatnich latach, ważnym rezultatem wydaje się być uogólnienie algorytmów rzędu O (n log n), obliczania jednowymiarowych transformacji z uwzględnieniem specjalnych konfiguracji punktów, na punkty generowane przez równanie rekurencyjne pierwszego rzędu [Smarzewski i Kapusta, 2007]. Algorytmy opisane w wymienionej pracy dotyczą transformacji względem baz wielomianowych Lagrange a i Newtona. Naturalnym rozszerzeniem transformacji jednowymiarowych na wiele wymiarów jest zastosowanie podejścia tensorowego. Przy takim podejściu wiele rezultatów dotyczących przypadku jednowymiarowego przenosi się na wiele wymiarów. Przykład 11
Aktualny stan wiedzy dwuwymiarowej transformacji Newtona-Lagrange a na siatce kartezjańskiej został zamieszczony m.in. w [Kincaid i Cheney, 2006]. Opis tej transformacji dla dowolnej liczby wymiarów można znaleźć w [Sauer, 1995]. Ponadto, w wymienionej pracy omówiono sposób przechowywania w pamięci komputera wielomianu wielu zmiennych w postaci wektora współczynników o ustalonym porządku (np. leksykograficznym lub odwróconym leksykograficznym) oraz wykonywania podstawowych operacji na tych wielomianach. Można tam również znaleźć rekurencyjny algorytm Hornera dla wielomianów wielu zmiennych, czyli algorytm obliczania wielowymiarowej transformacji Maclaurina-Lagrange a. Algorytmy interpolacji i ewaluacji wielomianu d-zmiennych z uwzględnieniem różnych reprezentacji wielomianowych (potęgowej, Lagrange a, Newtona, Beziera- Bernsteina) były i są nadal przedmiotem badań [Pe na i Sauer, 2000; Sauer, 1995; Gasca, 1989; de Boor, 2000]. Interesujące, ujednolicone podejście do algorytmów ewaluacji wielomianów d zmiennych stopnia n, polegające na zastosowaniu L-baz i B-baz, zaprezentowali w swoich pracach Suresh Lodha i Ron Goldman [1995, 1997, 1998]. Proponowane przez nich algorytmy uwzględniają różne reprezentacje wielomianu m.in. potęgową, Newtona i Lagrange a. Złożoność obliczeniowa podanych przez nich algorytmów ewaluacji wielomianów w jednym punkcie wynosi O ( n d). Opracowane przez autora niniejszej rozprawy nowe algorytmy obliczania dwuwymiarowych transformacji wielomianowych z uwzględnieniem baz Lagrange a i Newtona dla punktów, które spełniają równanie rekurencyjne pierwszego rzędu zostały zaprezentowane w [Kapusta i Smarzewski, 2007b]. Natomiast uogólnienie tych algorytmów na wiele wymiarów zostało przedstawione w [Kapusta i Smarzewski, 2009]. 12
3. Preliminaria 3.1. DFT, jednowymiarowy splot i dekonwolucja Niech K = (K+, ) będzie ciałem z pierwiastkiem pierwotnym z jedności ω stopnia n = 2 k. Dyskretną transformację Fouriera F ω : K n K n oraz transformację do niej odwrotną Fω 1 : K n K n definiuje się następująco b = F ω (a), a = Fω 1 (b), b = (b 0, b 1,..., b n 1 ), a = (a 0, a 1,..., a n 1 ), n 1 b i = a k ω ik, a i = 1 n n 1 b k ω ik, i = 0, 1,..., n 1, przy dodatkowym założeniu, że istnieje element odwrotny 1 1 n = 1 + 1 +... + 1 }{{}, 1 jedynka w ciele K. n elem. Transformację Fouriera F ω : K n K n i transformację do niej odwrotną można obliczyć słynnym algorytmem FFT zaproponowanym przez Jamesa W. Cooleya i Johna W. Tukeya [1965], wykonując 3 n log n+o (n) operacji arytmetycznych w ciele K [Pan, 2001; von zur Gathen i Gerhard, 2003]. Wiele późniejszych 2 implementacji bazuje na algorytmie FFT, np. szybka biblioteka transformacji Fouriera FFTW [Frigo i Johnson, 1997, 2005]. Zwięzły opis wyprowadzenia algorytmu obliczającego dyskretną transformację Fouriera wraz z jego implementacją w języku C++ został przedstawiony w pracy [Smarzewski i Kapusta, 2005]. Ten algorytm wykorzystuje ideę użytą w słynnym algorytmie szybkiego sortowania Quick-Sort podanym np. w monografii [Wirth, 2001]. W przypadku, gdy liczba n nie jest potęgą dwójki, jednym z możliwych sposobów postępowania jest dopełnienie brakujących elementów danego wektora zerami tak, aby otrzymać wektor odpowiedniego rozmiaru [Mateer, 2008]. 13
Preliminaria Splotem wektorów a = (a 0, a 1,..., a n 1 ) i b = (b 0, b 1,..., b n 1 ) o współrzędnych z ciała K jest wektor zdefiniowany wzorami a b = (c 0, c 1,..., c 2n 1 ), i c i = a k b i k, i = 0, 1,..., 2n 1. (3.1) Jeżeli wektory a i b potraktujemy jako współczynniki wielomianów a(x) = n 1 i=0 a i x i i b(x) = n 1 i=0 b i x i, (3.2) wtedy obliczenie splotu jest równoważne obliczeniu iloczynu tych wielomianów c(x) = a(x)b(x) = 2n 1 i=0 c i x i. Splot wektorów a i b można obliczyć algorytmem o złożoności obliczeniowej c (n) = 9n log n + O (n) [Bini i Pan, 1994]. Taki algorytm bazuje na tożsamości a b = F 1 ψ [F ψ(e(a)) F ψ (E(b))], gdzie ψ = ω jest z założenia pierwiastkiem pierwotnym z jedności stopnia 2n w K, zanurzenie E : K n K 2n jest zdefiniowane następująco E(a) = a 0, a 1,..., a n 1, 0, 0,..., 0, a = (a }{{} 0, a 1,..., a n 1 ) K n, n natomiast F ψ : K 2n współrzędna jest dana wzorem K 2n oznacza dyskretną transformację Fouriera, której i-ta (F ψ (a)) i = 2n 1 a k ψ ik, i = 0, 1,..., 2n 1. 14
Preliminaria Obecnie znane algorytmy pozwalają na obliczenie splotu z wykorzystaniem c (n) = O (n log n log log n) operacji [Schönhage i Strassen, 1971; Cantor i Kaltofen, 1991]. W 2007 roku M. Fürer podał algorytm szybszy dla astronomicznie dużej wartości n, o złożoności obliczeniowej c (n) = O (n log n) 2 O(log n), gdzie log n = min { i 0 : log (i) n 1 } i log (0) n = n oraz log (i+1) n = log log (i) n. Algorytm c (n) Literatura klasyczny O (n 2 ) Bini i Pan, 1994 Karatsuba O (n 1.59 ) Karatsuba, 1995 w oparciu o FFT O (n log n) von zur Gathen i Gerhard, 2003 Schönchage-Strassena O (n log n log log n) Schönhage i Strassen, 1971 Fürera O (n log n) 2 O(log n) Fürer, 2007 Tabela 3.1: Złożoność obliczeniowa algorytmów obliczania splotu Dla wektorów a i b definiuje się także zwinięty splot jako wektor którego współrzędne są równe a b = (c 0, c 1,..., c n 1 ), i c i = a k b i k, i = 0, 1,..., n 1. (3.3) Łatwo widać, że algorytmy obliczania zwiniętego splotu oraz splotu są tego samego rzędu. Z drugiej strony, algorytm obliczania zwiniętego splotu nie wymaga nieco sztucznego podwajania wymiaru dziedziny dyskretnej transformacji Fouriera. Jeden z algorytmów obliczania zwiniętego splotu opiera się na równości a b = { F 1 [F (a) F (b)] + F 1 [F (Ψ a) F (Ψ b)] /Ψ } /2, (3.4) 15
Preliminaria gdzie Ψ = (1, ψ,..., ψ n 1 ), F = F ω : K n K n, ω = ψ 2 oraz operacje wektorowe i / są zwykłym mnożeniem i dzieleniem odpowiednich współrzędnych. Złożoność obliczeniowa tego algorytmu wynosi c(n) = 9n log n + O(n). Wzór (3.4) w sposób uwikłany został zasugerowany w [Aho i inni, 2003]. W praktycznych zastosowaniach zwinięty splot : K n K n K n jest bardziej efektywny, ze względu na mniejsze wymagania pamięciowe, niż splot : K 2n K 2n K 2n, co zostało wykorzystane w algorytmie [Schönhage i Strassen, 1971; Aho i inni, 2003]. Dla kompletności rozważań, poniżej przedstawiono krótki dowód wzoru (3.4) podany w pracy [Kapusta i Smarzewski, 2006b]. oraz Ze wzorów (3.1) i (3.2) wynika, że c(x) = a(x)b(x) = n 1 i=0 n 1 c i x i + x n i=0 c n+i x i, c 2n 1 = 0 i n 1 c i = a k b i k i c n+i = a k b n+i k. k=i+1 Wykorzystując dodatkowe wektory d, h K n o współrzędnych d i = c i + c n+i i h i = c i c n+i, i = 0, 1,..., n 1 otrzymuje się c i = (d i + h i )/2, i = 0, 1,..., n 1. Obliczając wartości wielomianu d(x) = gdzie ω = ψ 2, uzyskuje się d(ω l ) = = n 1 i=0 2n 1 i=0 n 1 i=0 d i ω il = ( i d i x i dla x = ω l, l = 0, 1,..., n 1, n 1 i ω il i=0 n 1 a k b i k + ω nl ) a k b i k ω il = a(ω l )b(ω l ) dla l = 0, 1,..., n 1. Jest to równoważne temu, że d = F 1 [F (a) F (b)], F = F ω. 16 n 1 ω il i=0 k=i+1 a k b n+i k
Preliminaria Z drugiej strony ψ n = 1. Zatem n 1 i=0 ψ i h i ω il = = 2n 1 i=0 n 1 i ω il i=0 ( i ψ i a k b i k n 1 k=i+1 ψ i a k b n+i k ) ψ k a k ψ i k b i k ω il, l = 0, 1,..., n 1. Stąd dzielenie przez Ψ = (1, ψ, ψ 2,..., ψ n 1 ) daje co kończy dowód wzoru (3.4). h = F 1 [F (Ψ a) F (Ψ b)] /Ψ, Operacja odwrotna do obliczania zwiniętego splotu c = a b, czyli operacja dekonwolucji wektorów a = c b = c b 1 jest określona dla wektorów c, b K n, o ile pierwsza współrzędna b 0 wektora b jest różna od zera. Szukany wektor a jest dany wzorami rekurencyjnymi a 0 = c 0 /b 0, ( a i = c i i 1 a k b i k ) /b 0, i = 1, 2,..., n 1, (3.5) otrzymanymi z trójkątnego układu równań (3.3). Obliczenie wektora a = c d wymaga wcześniejszego obliczenia wektora takiego, że gdzie b(x) = d = (d 0, d 1,... d n 1 ) = b 1 1/b(x) = n 1 n 1 d k x k + O(x n ), (3.6) b k x k i d k = dk dx k ( ) 1. b(x) x=0 Ten wektor może być obliczony przy pomocy metody Newtona [Borwein i Borwein, 1987]. Dokładniej, przyjmując ( 1 d =, b ) 1, 0,..., 0 b 0 b 2 0 kolejne współrzędne wektora d = b 1 są generowane tak jak w algorytmie 3.1. 17
Preliminaria Algorytm 3.1. Dekonwolucja metodą Newtona. Input: Liczba całkowita n oraz wektory c = (c i ) n 1 i=0 i b = (b i) n 1 i=0, gdzie b 0 0. Output: Wektor a = c b 1 K n. 1. Oblicz d = ( 1 b 0, b 1 b 2 0, 0,..., 0 ). 2. Dla k od 2 do log 2 n : 2.1. Oblicz d = 2d d d b (wynik obliczeń - 2 k elementów). 3. Oblicz a = c d. Można wykazać, że w przypadku obliczania splotu c = (c 0, c 1,..., c n 1 ) = a n b algorytmem rzędu O (n log n) złożoność obliczeniowa powyższego algorytmu wynosi O(n log n). W tym celu wystarczy przeanalizować zastosowaną metodę Newtona nieco dokładniej. Niech x i+1 = 2x i x 2 i y, i = 0, 1,... będzie wzorem iteracyjnym Newtona dla funkcji f (x) = x 1 y (x 0). Ponadto, zakładając, że współczynniki d 0, d 1,..., d 2 i 1, i 1, wielomianu odwrotnego ( b0 + b 1 x +... + b n 1 x n 1) 1 = d0 + d 1 x +... + d 2 i 1x 2i 1 + O(x 2i ) zostały już obliczone i d k = 0 dla każdego k 2 i. Wtedy pojedyncza iteracja metody Newtona d = 2 d d 2 i+1 d 2 i+1 b podwaja liczbę obliczonych współczynników d k (k = 0, 1,..., 2 i+1 1) wektora dekonwolucji. W konsekwencji wzór iteracyjny Newtona d = 2 d d 2 i d 2 i b, i = 2, 3,..., log 2 n 18
Preliminaria z wektorem początkowym d postaci ( 1 d =, b ) 1, 0, 0,... b 0 b 2 0 generuje wymagany wektor dekonwolucji d = (d 0, d 1,..., d n 1 ) dla b = (b 0, b 1,..., b n 1 ), b 0 0. Ponieważ koszt obliczenia splotu 2 i O(i2 i ) oczywiste jest, że koszt algorytmu 3.1 wynosi ( O n log 2 n + n ) 2 log n 2 2 +... + 2 log 2 2 = O (n log n). jest równy W konkretnych zastosowaniach wymagających odwrócenia splotu niekiedy można skonstruować inne, nieco lepsze algorytmy, które nie wymagają stosowania iteracyjnej metody Newtona. W szczególności ma to miejsce w przypadku odwracania transformacji Lagrange a-newtona. Zostanie to dokładniej omówione w rozdziale 4. 3.2. Splot wielowymiarowy Splot wielowymiarowy definiuje się podobnie, jak jednowymiarowy. Przyjmując, że n = (n 1, n 2,..., n d ) oznacza wektor dodatnich liczb całkowitych i Q n = {α = (α 1, α 2,..., α d ) : 0 α i < n i dla i = 1, 2,..., d} jest zbiorem n 1 n 2 n d wielowskaźników o współrzędnych całkowitych, wielowymiarowy splot hipermacierzy x = (x α ) α Qn i tablicy y = (y i ) d i=1 wektorów y i = (y i,0, y i,1,..., y i,ni 1) jest z definicji hipermacierzą z = (z α ) α Qn określoną wzorem z = x 1 y 1 2 y 2 3 d y d. (3.7) W tym wzorze cząstkowe sploty i definiuje się w następujący sposób: Definicja 3.2. Macierz wielowymiarową w = (w α ) α Qn = x i y i K n 1 n 2 n d, 1 i d, nazywamy i-tym cząstkowym splotem hipermacierzy x = (x α ) α Qn i wektora y i = (y i,0, y i,1,..., y i,ni 1) jeżeli każda kolumna w β1,...,β i 1,,β i+1,...,β d, 0 β j < n j, j = 1, 2,..., i 1, i + 1,..., d, 19
Preliminaria macierzy w jest równa zwiniętemu splotowi kolumny x β1,...,β i 1,,β i+1,...,β d = ( ) ni 1 x β1,...,β i 1,j,β i+1,...,β d i wektora y i. Korzystając z tej definicji otrzymano metodę obliczania splotu wielowymiarowego z = x y zapisaną w postaci Algorytmu 3.3, w którym hipermacierz wejściowa x = (x α ) α Qn zmienia się d razy poprzez cząstkowe splatanie z wektorem y i dla i = 1, 2,, d. j=0 Algorytm 3.3. Splot wielowymiarowy. Input: Hipermacierz x = (x α ) α Qn i tablica y = (y i ) d i=1, gdzie y i = (y i,0, y i,1,..., y i,ni 1), n = (n 1, n 2,... n d ) oraz liczba całkowita d. Output: Wielowymiarowy splot z = (z α ) α Qn. 1. Dla k od 1 do d: 1.1. Oblicz x = x k y k. 2. Podstaw z = x. Algorytm dekonwolucji wielowymiarowej można skonstruować uogólniając idee podane w Algorytmach 3.1 i 3.3: x = z d y 1 d d 1 y 1 d 1 d 2 1 y 1 1. Złożoność obliczeniowa C (N) algorytmu obliczania splotu wielowymiarowego opartego na wzorze (3.7) wynosi O (N log N), N = n 1 n 2... n d, w przypadku obliczania zwiniętego splotu algorytmem rzędu O (n log n) (zob. wzór (3.4)). W przypadku stosowania innych wspomnianych w poprzednim podrozdziale algorytmów można jedynie stwierdzić, że C (N) = N 20 d i=1 c (n i ) n i,
Preliminaria gdzie c(n i ) oznacza koszt wyznaczenia zwiniętego splotu wektorów o n i współrzędnych. Jest to naturalną konsekwencją następującej obserwacji: w celu obliczenia splotu wielowymiarowego należy kolejno obliczyć N N N n 1, n 2,..., n d splotów jednowymiarowych dla wektorów mających odpowiednio n 1, n 2,..., n d elementów. 21
4. Nowe algorytmy ewaluacji i interpolacji jednowymiarowej 4.1. Bazy wielomianowe W niniejszym rozdziale przedstawione zostaną jawne wzory wektorowe opisujące transformacje wielomianu jednej zmiennej pomiędzy wybranymi bazami wielomianowymi przy założeniu, że co najmniej jedna z baz zależy od parami różnych punktów x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ, (4.1) gdzie stałe α 0, β, γ należą do ciała K mającego więcej niż n elementów. Rozważone zostaną bazy Lagrange a, Newtona i potęgowa (Maclaurina). Pierwsze wyniki dotyczące baz Lagrange a i Newtona zostały opublikowane w [Smarzewski i Kapusta, 2007]. Badania z tego zakresu zostały zainspirowane szybkimi algorytmami obliczania transformacji Lagrange a-newtona oraz transformacji do niej odwrotnej, zaprezentowanymi w [Bostan i Schost, 2005]. W wymienionej pracy autorzy przedstawili szybkie algorytmy dla szczególnego przypadku, gdy β = 0 i γ = 1 lub α = 1. Wielomian p(x) należący do n - wymiarowej przestrzeni P n (K) wielomianów stopnia mniejszego od n nad ciałem K możemy zapisać w postaci p(x) = n 1 i=0 b i w i (x), gdzie w i (x) jest bazą wielomianową w P n (K). W obliczeniach numerycznych łatwość rozwiązania problemu jest uzależniona od wyboru reprezentacji wielomianu [von zur Gathen i Gerhard, 2003]. W zależności od wyboru tej reprezentacji algorytmy rozwiązujące dany problem mogą różnić się złożonością obliczeniową oraz odpornością na błędy zaokrągleń. W kontekście zagadnień interpolacji oraz ewaluacji wielomianów często spotyka się następujące bazy wielomianowe: 22
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej (a) Lagrange a (b) Newtona l i (x) = n 1 k i x x k x i x k, i = 0, 1,..., n 1, m 0 (x) = 1, m i (x) = i 1 (x x k ), i = 1, 2,..., n 1, (c) potęgowa u i (x) = x i, i = 0, 1,..., n 1. Z powyższymi bazami wiążą się następujące reprezentacje wielomianu: (a) Lagrange a (b) Newtona p(x) = n 1 i=0 p(x) = y i l i (x), y i = p(x i ), (4.2) n 1 i=0 c i m i (x), (4.3) gdzie ilorazy różnicowe c i dla parami różnych węzłów x 0, x 1,..., x n 1 K są zdefiniowane wzorem (c) potęgowa c i = p[x 0, x 1,..., x i 1 ] = p(x) = n 1 i=0 i j=0 y j, (4.4) i (x j x k ) k j a i u i (x), a i = p(i) (0). (4.5) i! 4.2. Transformacja Lagrange a-newtona W przypadku ogólnym zaleca się obliczanie transformacji Lagrange a-newtona L : (y i ) n 1 i=0 (c i) n 1 i=0 algorytmem rzędu O(n 2 ) opartym na wzorach rekurencyjnych [Kincaid i Cheney, 2006]. Natomiast, jeśli parami różne węzły x 0, x 1,..., x n 1 są generowane wzorami 23
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej rekurencyjnymi (4.1), wtedy dla tej transformacji istnieje wydajny algorytm o złożoności obliczeniowej c (n) + O (n). Rzeczywiście, podstawiając do wzoru (4.4) i korzystając z otrzymuje się i k=j+1 x i = α i γ + β ( α i 1 + α i 2 +... + 1 ) (4.6) α j k 1 = (α 1)(α j k 1 + α j k 2 +... + 1) (4.7) c i [(α 1)γ + β] i i 1 α k = i j=0 j 1 i 1 i j [(α 1)γ + β] α k k=j [ ] = α j (1 α k j ) γ βα j k j 1 α ν ν=0 [ y j [(α 1)γ + β] j j 1 α k ] α k (α j k 1)γ + βα k j k 1 α ν i j=0 j 1 y j k m=0 ( 1) α m i j 1 ν=0 i j 1 i j α k k m=0 α m. W konsekwencji i c i = p j q i j /r i, i = 0, 1,..., n 1, j=0 lub równoważnie c = (p q)/r, przy założeniu, że współrzędne wektorów p, q, r są dane wzorami p j = j 1 y j k m=0 α m, q j = r j = [(α 1)γ + β] j j 1 ( 1) j j 1 j 1 m=0 α k k α m, α k, j = 0, 1,..., n 1. (4.8) Tym samym zostało dowiedzione następujące twierdzenie: 24
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Twierdzenie 4.1 (Smarzewski i Kapusta, 2007). Jeżeli L: K n K n oznacza transformację Lagrange a-newtona dla parami różnych węzłów (x i ) n 1 i=0 generowanych wzorem x i = αx i 1 + β (i = 1, 2,..., n 1, α 0, x 0 = γ), to prawdziwy jest wzór L(y) = (p q) /r, (4.9) gdzie elementy wektorów p, q, r K n są zdefiniowane wzorami (4.8). Uwaga 4.2. We wzorach (4.8), a także wszędzie poniżej przyjmuje się, że iloczyny, w których indeksy górne są mniejsze niż indeksy dolne, są z definicji równe 1. Poniższy algorytm prezentuje szczegóły szybkiego obliczania transformacji Lagrange a-newtona ułatwiające jego implementację i oszacowanie złożoności obliczeniowej. Algorytm 4.3. Transformacja Lagrange a-newtona dla parami różnych węzłów x 0, x 1,... x n 1, generowanych wzorem x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ. Input: Wektor y = (y 0, y 1,..., y n 1 ) K n, skalary α 0, β i γ K. Output: c = L(y) K n. 1. Przypisz p 0 = y 0, r 0 = 1, δ = (α 1) γ + β, s = 0, u = 1, v = 1/α i z = 1. 2. Dla k od 1 do n 1 wykonaj: 2.1. s = s α + 1, u = u s, p k = y k /u, 2.2. v = v α, z = z v, q k = z/u, 2.3. r k = r k 1 v δ. 3. Oblicz c = p q. 4. Wykonaj dzielenie po współrzędnych c = c/r. Obliczenie wektorów p, q i r, występujących we wzorze (4.9), może być wykonane w jednej pętli i ma złożoność obliczeniową O(n) operacji bazowych K, co zostało 25
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej pokazane w algorytmie 4.3. Ponadto przy dodatkowym założeniu, że w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω = ψ 2, odpowiednio stopni 2n i n, to bezpośrednim wnioskiem z twierdzenia 4.1 jest: Wniosek 4.4. Algorytm obliczania transformacji Lagrange a-newtona ma złożoność obliczeniową c(n) + O(n). W szczególnym przypadku, gdy do obliczania zwiniętego splotu stosuje się algorytm oparty na wzorze (3.4), ten koszt wynosi O (n log n). Obliczenie odwrotnej transformacji Lagrange a-newtona L 1 można wykonać wykorzystując algorytm obliczania dekonwolucji 3.1. Dla tej transformacji możliwe jest również zorganizowanie obliczeń w taki sposób, aby nie było wymagane stosowanie dekonwolucji - zostanie to omówione w następnym podrozdziale. 4.3. Transformacja Newtona-Lagrange a Transformacja Newtona-Lagrange a N : (c i ) n 1 i=0 (y i) n 1 i=0, odwrotna do transformacji Lagrange a-newtona L, opisuje przejście od rozwinięcia wielomianu względem bazy Newtona (4.3) do rozwinięcia wielomianu względem bazy Lagrange a (4.2). W celu obliczenia wartości y i (i = 0, 1,..., n 1) można do wzoru (4.3) zastosować klasyczny algorytm Hornera w postaci y j = y j+1 (x i x j ) + c j, j = i 1, i 2,..., 0, y i = c i, (4.10) gdzie 0 i < n. Złożoność obliczeniowa tego algorytmu, równa O(n 2 ), może zostać zredukowana do c (n) + O (n), o ile punkty x 0, x 1,..., x n 1 spełniają zależność rekurencyjną (4.1). Wynika to z podstawienia tej zależność do (4.3) i zastosowania wzorów (4.6) i (4.7): y i = = = i j 1 c j j=0 i j 1 c j j=0 i 1 k i α ν ν=0 j=0 [ (α k ( α i k 1 ) γ + βα k) i k 1 α k [(α 1) γ + β] j 1 i k 1 ν=0 c j [(α 1) γ + β] j j 1 26 ν=0 α ν α ν ] α k 1. i j 1 k α ν ν=0
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Stąd i b i = p j q i j r i, i = 0, 1,..., n 1, j=0 lub równoważnie b = (p q) r, gdzie p = (p j ) n 1 j=0, q = (q j) n 1 j=0, r = (r j) n 1 j=0, oraz p j = c j [(α 1) γ + β] j j 1 α k, j 1 1 k = r j = α ν. (4.11) q j ν=0 Z powyższego wynika następujące twierdzenie: Twierdzenie 4.5 (Smarzewski i Kapusta, 2007). Jeżeli N : K n K n oznacza transformację Newtona-Lagrange a dla parami różnych punktów spełniających zależność rekurencyjną x i = αx i 1 + β (i = 0, 1,..., n 1,, x 0 = γ), to N (c) = ( p 1 ) r, (4.12) r gdzie współrzędne wektorów p = (p j ) n 1 j=0 i r = (r j ) n 1 j=0 są zdefiniowane tak jak w (4.11). Ponadto, jeśli w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω = ψ 2, odpowiednio stopni 2n i n, to algorytm bazujący na wzorze (4.12) ma złożoność obliczeniową równą c(n) + O(n), gdzie c(n) oznacza koszt obliczenia zwiniętego splotu. W szczególnym przypadku stosowania algorytmu bazującego na wzorze (3.4) rząd tego algorytmu jest równy O(n log n). Dla zupełności rozważań, szczegóły obliczania transformacji Newtona-Lagrange a w oparciu o wzór (4.12) zostały przedstawione w algorytmie 4.6. 27
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Algorytm 4.6. Transformacja Newtona-Lagrange a dla parami różnych węzłów x 0, x 1,..., x n 1 generowanych wzorem x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ. Input: Wektor c = (c 0, c 1,..., c n 1 ) K n, skalary α 0, β i γ K. Output: y = N(c) K n. 1. Przypisz p 0 = c 0, r 0 = 1, δ = (α 1) γ + β, s = 0, v = 1/α i w = 1. 2. Dla k od 1 do n 1 wykonaj: 2.1. v = v α, w = w v δ, p k = c k w, 2.2. s = s α + 1, r k = r k 1 s. 3. Oblicz y = p 1. r 4. Wykonaj mnożenie po współrzędnych y = y r. 4.4. Ewaluacja wielomianów w bazie potęgowej Transformacja Maclaurina - Lagrange a M : (a i ) n 1 i=0 (y i) n 1 i=0 jest przekształceniem odwzorowującym wektor współczynników a = (a i ) n 1 i=0 reprezentacji wielomianu w bazie potęgowej (4.5) na wektor współczynników y = (y i ) n 1 i=0 reprezentacji wielomianu w bazie Lagrange a (4.2). Wyznaczenie tej transformacji jest równoważne obliczeniu n wartości wielomianu (4.5): y i = n 1 a k x k i, i = 0, 1,..., n 1. (4.13) Szczególnym przypadkiem tej transformacji jest dobrze znana dyskretna transformacja Fouriera w punktach x i = ω i (i = 0, 1,..., n 1), gdzie ω jest pierwiastkiem pierwotnym z jedności stopnia n. Można ją obliczyć słynnym algorytmem FFT o złożoności obliczeniowej O(n log n) [Cooley i Tukey, 1965]. Jeśli punkty x 0, x 1,..., x n 1 tworzą ciąg geometryczny x i = γα i (i = 0, 1,..., n 1, γ 0) i istnieje element odwrotny α 1 K, to transformację Maclaurina-Lagrange a można wyznaczyć uogólnionym algorytmem DFT o koszcie c (2n 1)+O (n). Jest to konsekwencją poniższej 28
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej równości: w której y i = n 1 n 1 a k γ k α ik = b i p k q i+k, i = 0, 1,..., n 1, b k = α k2 2, pk = a k γ k α k2 2, qk = α k2 2, k = 0, 1,..., n 1. Stąd gdzie i y i (n 1) = b i (n 1) d k c i k, i = n 1, n,..., 2n 2, d k = { pn 1 k, k = 0, 1,..., n 1, 0, k = n, n + 1,..., 2n 2 c k = α k2 2, k = 0, 1,..., 2n 2, W konsekwencji, jeśli d = (d i ) 2n 2 i=0, c = (c i) 2n 2 i=0 i b = (b i ) n 1 i=0, to y = ( d c ) b, (4.14) gdzie d c = P n (d c). W ostatnim wzorze projekcja P n : K 2n 1 K n jest zdefiniowana przez P n (e) = (e n 1, e n,..., e 2n 2 ), e = (e 0, e 1,..., e 2n 2 ). Idea obliczania transformacji Maclaurina-Lagrange a dla punktów tworzących ciąg geometryczny jako splotu została przedstawiona w [Rabiner i inni, 1969]. W [Aho i inni, 1975] algorytm obliczania tej transformacji został rozszerzony na punkty x i = γα 2i + βα i + δ (i = 0, 1,..., n 1). Okazuje się, że jeśli punkty spełniają zależność rekurencyjną (4.1) i α 1, to transformacja Maclaurina-Lagrange a może być również obliczona przy pomocy splotów. Wyprowadzając ten algorytm korzysta się z tożsamości x i α 1 = γα i + β ( ) 1 α i, i = 1,..., n 1. (4.15) 1 α Podstawiając ją do wzoru (4.13) otrzymuje się 29
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej gdzie α 1 y i = n 1 f k = a k ((γ (1 α) β) α i + β) k n 1 (1 α) k = ((1 α) γ β)k k! n 1 r=k Powyższy wzór można zapisać równoważnie jako β r k r!a r (r k)! (1 α) r. f k α ik, (4.16) f k = v n 1 k z k, (4.17) gdzie elementy wektorów z = (z k ) n 1 i v = (v k) n 1 są zdefiniowane następująco ((1 α) γ β)k z k =, k = 0, 1,..., n 1, k! v = w t, w = (w k ) n 1, t = (t k) n 1, w k = βk k!, t k = (n 1 k)!a n 1 k (1 α) n 1 k. (4.18) W konsekwencji z (4.14) i (4.16) otrzymuje się y = ( g h ) b, gdzie współrzędne wektorów g = (g k ) 2n 2, h = (h k) 2n 2 i b = (b k) n 1 są zdefiniowane wzorami b k = α k2 2, k = 0, 1,..., n 1, { fn 1 k b g k = n 1 k, k = 0, 1,..., n 1, 0, k = n, n + 1,..., 2n 2, (4.19) h k = k2, k = 0, 1,..., 2n 2. 2 Zatem obliczenie transformacji Maclaurina-Lagrange a dla punktów spełniających zależność rekurencyjną (4.15) wymaga obliczenia splotu - w celu wyznaczenia współczynników pewnego wielomianu, a następnie obliczenia wartości tego wielomianu w punktach, które tworzą ciąg geometryczny. Ostatecznie, przy założeniu, że c (dn) jest rzędu O (c (n)) dla d > 0, złożoność obliczeniowa tego algorytmu jest równa O (c (n)). Prowadzi to do następującego twierdzenia: 30
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Twierdzenie 4.7. Jeśli M : K n K n oznacza transformację Maclaurina-Lagrange a dla parami różnych punktów spełniających zależność rekurencyjną x i = αx i 1 +β (i = 0, 1,..., n 1, α 1, x 0 = γ), to M (a) = ( g h ) b, (4.20) gdzie współrzędne wektorów g = (g k ) 2n 2, h = (h k) 2n 2 i b = (b k ) n 1 są zdefiniowane wzorami (4.19). Ponadto, jeśli w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω = ψ 2, odpowiednio stopni 2n i n, to algorytm bazujący na wzorze (4.20) ma złożoność obliczeniową równą O (c(n)), gdzie c(n) oznacza koszt obliczenia zwiniętego splotu. W szczególnym przypadku, gdy zwinięty splot jest obliczany ze wzoru (3.4), rząd tego algorytmu jest równy O(n log n). Poniższy algorytm prezentuje szczegóły obliczania transformacji Maclaurina- Lagrange a. Algorytm 4.8. Transformacja Maclaurina-Lagrange a dla parami różnych węzłów x i = αx i 1 + β, i = 0, 1,..., n 1, α 0, α 1, x 0 = γ. Input: Wektor a = (a 0, a 1,..., a n 1 ) K n, skalary α K\{0, 1}, β, γ K. Output: y = M (a i ) K. 1. Korzystając z (4.18) oblicz elementy wektorów z, w i t. 2. Oblicz v = w t. 3. Dla k od 1 do n 1 wykonaj: 2.1. f k = v n 1 k z k. 4. Korzystając z (4.19) oblicz elementy wektorów b, g i h. 5. Oblicz y = g h. 6. Wykonaj mnożenie po współrzędnych y = y b. 31
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej 4.5. Analiza porównawcza algorytmów W niniejszym podrozdziale porównano złożoność obliczeniową prezentowanych w pracy algorytmów z innymi, znanymi algorytmami obliczania transformacji wielomianowych. Wyniki tych porównań dla różnych konfiguracji punktów zestawiono w tabelach 4.1, 4.3 i 4.2. Ciąg punktów Złożoność obliczeniowa Literatura równanie rekurencyjne I-go rzędu c (n) + O (n) Algorytm 4.3 3 dowolny 2 (n2 n) Kincaid i Cheney, 2006, str. 314 dowolny 3c (n) log n + O (c(n)) Bostan i Schost, 2005 arytmetyczny c (n) + O (n) Gerhard, 2000, sekcja 3 geometryczny c (n) + O (n) Bostan i Schost, 2005, sekcja 5 Tabela 4.1: Złożoność obliczeniowa algorytmów - transformacja Lagrange a-newtona Ciąg punktów Złożoność obliczeniowa Literatura równanie rekurencyjne I-go rzędu c (n) + O (n) Algorytm 4.6 3 dowolny 2 (n2 n) wzór (4.10) dowolny 2c (n) log n + O (c(n)) Bostan i Schost, 2005 arytmetyczny c (n) + O (n) Gerhard, 2000, sekcja 3 geometryczny c (n) + O (n) Bostan i Schost, 2005, sekcja 5 Tabela 4.2: Złożoność obliczeniowa algorytmów - transformacja Newtona-Lagrange a Tabela 4.1 prezentuje wyniki dotyczące transformacji Lagrange a-newtona, tabela 4.2 - transformacji Newtona-Lagrange a, natomiast tabela 4.3 - transformacji Maclaurina-Lagrange a. Każda z wymienionych tabel przedstawia złożoność obliczeniową proponowanych w pracy algorytmów (pierwszy wiersz w tabeli) na tle znanych rezultatów z tego zakresu. Dokładniej, pierwszy wiersz w każdej z tabel podaje złożoność obliczeniową algorytmów dla punktów spełniających równanie rekurencyjne pierwszego rzędu: x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ, α 0. 32
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej Ciąg punktów Złożoność obliczeniowa Literatura równanie rekurencyjne O (c (n)) Algorytm 4.8 I-go rzędu (α 1) dowolny 3n 2 n Knuth, 2002 3 dowolny c (n) log n + O (c(n)) Bostan i inni, 2003 2 arytmetyczny c (n) log n + O (c(n)) Bostan i Schost, 2005, sekcja 4.3 geometryczny c (n) + O (n) Bostan i Schost, 2005, sekcja 5.3 Tabela 4.3: Złożoność obliczeniowa algorytmów - transformacja Maclaurina- Lagrange a Drugi i trzeci wiersz dotyczy algorytmów dla dowolnych parami różnych punktów, przy czym drugi wiersz odnosi się do klasycznych algorytmów, które można znaleźć w typowym kursie analizy numerycznej (nie korzystających z FFT), natomiast wiersz trzeci - szybkich algorytmów wykorzystujących FFT. Czwarty wiersz prezentuje złożoność algorytmów dla punktów, których współrzędne tworzą ciąg arytmetyczny x i = γ + iβ, i = 0, 1,..., n 1, β 0, oraz piąty wiersz - ciąg geometryczny x i = α i, i = 0, 1,..., n 1, α 0. Warto podkreślić, że klasyczny algorytm obliczania transformacji Newtona-Lagrange a dla dowolnej konfiguracji punktów polega na obliczeniu tablicy ilorazów różnicowych [Kincaid i Cheney, 2006]. Natomiast algorytm obliczania tej transformacji z wykorzystaniem FFT jest złożeniem dwóch transformacji Newtona-Maclaurina oraz Maclaurina-Lagrange a. W analogiczny sposób został skonstruowany algorytm obliczania odwrotnej transformacji Newtona-Lagrange a [Bostan i Schost, 2005]. Przykładowe, porównanie liczby operacji arytmetycznych wykonywanych przez algorytmy transformacji Newtona - Lagrange a dla punktów, których współrzędne spełniają równanie rekurencyjne pierwszego rzędu zostało przedstawione na rysunku 4.1. Rysunek przedstawia wykresy dla algorytmu 4.6 oraz znanych algorytmów rzędu O (n 2 ) [Kincaid i Cheney, 2006] (tabela 4.2, wiersz 2) i O ( n log 2 n ) [Bostan i Schost, 2005] (tabela 4.2, wiersz 3), przy założeniu, że splot jest obliczany algorytmem rzędu 33
Nowe algorytmy ewaluacji i interpolacji jednowymiarowej O (n log n) (ze wzoru (3.4)) Ze względu na dużą różnicę pomiędzy liczbą operacji porównywanych algorytmów na wykresie została zastosowana skala logarytmiczna. Rysunek 4.1: Porównanie liczby operacji arytmetycznych wykonywanych przez algorytmy obliczania transformacji Newtona-Lagrange a dla punktów generowanych przez równanie rekurencyjne pierwszego rzędu Warto zwrócić uwagę, że wykonanie obliczeń dla n = 2 16 przy pomocy algorytmu 4.6 zamiast algorytmu klasycznego [Kincaid i Cheney, 2006], pozwala na zaoszczędzenie około 99, 6% operacji arytmetycznych. W porównaniu z algorytmem wykorzystującym FFT [Bostan i Schost, 2005] ta oszczędność wynosi około 95%. Podobne wyniki uzyskuje się w przypadku pozostałych transformacji. 34
5. Interpolacyjne i ewaluacyjne transformacje wielowymiarowe 5.1. Sformułowanie problemu Niech n = (n 1, n 2,..., n d ) będzie wektorem dodatnich liczb całkowitych i niech Q n będzie siatką α = (α 1, α 2,..., α d ) ze współrzędnymi całkowitymi spełniającymi nierówność 0 α i < n i dla i = 1, 2,..., d. Korzystając z notacji wielowskaźnikowej, definiuje się przestrzeń P d n = P d n (K) wszystkich wielomianów p (x) = α Q n a α x α (5.1) zmiennej x = (x 1, x 2,..., x d ) K d, ze współczynnikami a α = a α1,α 2,...,α d z ciała K. Wzór (5.1) przedstawia wielomian w reprezentacji potęgowej Zakładając, że parami różne punkty x α = x α 1 1 x α 2 2... x α d d. x i,0, x i,1,..., x i,ni 1, x i,j x i,k dla j k, należą do ciała K dla każdego i = 1, 2,..., d, w przestrzeni P d n, n = (n 1, n 2,..., n d ), można zdefiniować inne bazy wielomianowe, m. in. bazę Lagrange a i bazę Newtona L α (x) = B α (x) = d n i 1 i=1 j=0 j α i d α i 1 i=1 j=0 x i x i,j x i,αi x i,j, α = (α 1, α 2,..., α d ) Q n, (5.2) (x i x i,j ), α = (α 1, α 2,..., α d ) Q n, (5.3) 35
Interpolacyjne i ewaluacyjne transformacje wielowymiarowe Wiadomo, że wielomian interpolacyjny zdefiniowany przez następujące warunki interpolacji p (x α ) = f α, α Q n, w węzłach x α = (x 1,α1, x 2,α2,..., x d,αd ) K d, gdzie f α = f (x α ) są wartościami funkcji f : K d K, istnieje i jest określony jednoznacznie. Może on zostać zapisany w postaci Lagrange a lub Newtona p (x) = p (x) = α Q n f α L α (x) (5.4) α Q n c α B α (x), (5.5) gdzie L α (x) i B α (x) są wielomianami zdefiniowanymi odpowiednio wzorami (5.2) i (5.3). Ponadto współczynniki c α, występujące we wzorze (5.5), oznaczają wielowymiarowe ilorazy różnicowe zdefiniowane wzorami c α = f [x 1,0,..., x 1,α1 ;... ; x d,0,..., x d,αd ] = β clq α d α i i=1 j=0 f β, (5.6) (x i,βi x i,j ) j β i gdzie clq α = {β = (β 1, β 2,.., β d ) : 0 β i α i dla i = 1, 2,..., d}. W tym rozdziale zostaną zaprezentowane nowe, szybkie algorytmy obliczania wielowymiarowych transformacji z uwzględnieniem baz Lagrange a, Newtona i potęgowej w przypadku, gdy punkty x α = (x 1,α1, x 2,α2,..., x d,αd ), α Q n, są generowane przez następujące wzory rekurencyjne x i,j = λ i x i,j 1 + δ i, i = 1, 2,..., d, j = 1, 2,..., n i 1, (5.7) gdzie λ i 0, δ i i x i,0 = κ i (i = 1, 2,..., d) są stałymi z ciała K. Rząd tych algorytmów wynosi O (C (N)), gdzie N = n 1 n 2... n d i C (N) oznacza koszt obliczenia splotu d-wymiarowego. 36