Szybkie mno»enie wielomianów i macierzy

Podobne dokumenty
Macierze. Dziaªania na macierzach. 1. Niech b d dane macierze , D = , C = , B = 4 12 A = , F = , G = , H = E = a) Obliczy A + B, 2A 3B,

Interpolacja funkcjami sklejanymi

1 Bª dy i arytmetyka zmiennopozycyjna

XVII Warmi«sko-Mazurskie Zawody Matematyczne

ANALIZA MATEMATYCZNA Z ALGEBR

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

Metody dowodzenia twierdze«

Macierze i Wyznaczniki

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Metody numeryczne i statystyka dla in»ynierów

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Liczenie podziaªów liczby: algorytm Eulera

Wielomiany o wspóªczynnikach rzeczywistych

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Twierdzenie Wedderburna Witold Tomaszewski

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Funkcje, wielomiany. Informacje pomocnicze

Macierze i Wyznaczniki

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Ukªady równa«liniowych

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Informacje pomocnicze

Przekroje Dedekinda 1

Elementy geometrii w przestrzeni R 3

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Omówienie zada«potyczki Algorytmiczne 2015

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Dokªadna arytmetyka liczb rzeczywistych w j zyku Python

Metody numeryczne i statystyka dla in»ynierów

Wektory w przestrzeni

Matematyka dyskretna

1 Metody iteracyjne rozwi zywania równania f(x)=0

1. Liczby zespolone i

Wielomiany. El»bieta Sadowska-Owczorz. 19 listopada 2018

2 Liczby rzeczywiste - cz. 2

Materiaªy do Repetytorium z matematyki

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Liniowe równania ró»niczkowe n tego rz du o staªych wspóªczynnikach

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1. Przedstaw w postaci algebraicznej liczby zespolone: 2. Narysuj zbiory punktów na pªaszczy¹nie:

Przetwarzanie sygnaªów

AM II /2019 (gr. 2 i 3) zadania przygotowawcze do I kolokwium

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

Metodydowodzenia twierdzeń

1 Granice funkcji wielu zmiennych.

Algorytmy zwiazane z gramatykami bezkontekstowymi

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ZADANIA. Maciej Zakarczemny

Przykªady problemów optymalizacji kombinatorycznej

Interpolacja wielomianowa i splajnowa

Problemy optymalizacyjne - zastosowania

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Lista nr 1 - Liczby zespolone

Algorytmy i Struktury Danych

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Macierze. Rozdział Działania na macierzach

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Liczby zespolone. dr Krzysztof yjewski Mechatronika; S-I 0.in». 6 pa¹dziernika Oznaczenia. B dziemy u»ywali nast puj cych oznacze«:

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

WBiA Architektura i Urbanistyka. 1. Wykonaj dziaªania na macierzach: Które z iloczynów: A 2 B, AB 2, BA 2, B 2 3, B = 1 2 0

Liczby zespolone. Magdalena Nowak. 23 marca Uniwersytet Śląski

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM ROZSZERZONY. S x 3x y. 1.5 Podanie odpowiedzi: Poszukiwane liczby to : 2, 6, 5.

LZNK. Rozkªad QR. Metoda Householdera

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Lab. 02: Algorytm Schrage

Liniowe zadania najmniejszych kwadratów

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

1 Macierze i wyznaczniki

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa

Teoria grafów i jej zastosowania. 1 / 126

O pewnym zadaniu olimpijskim

Geometria. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

Wykªad 4. Droga i cykl Eulera i Hamiltona

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wykªad 4. Funkcje wielu zmiennych.

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Interpolacja Lagrange'a, bazy wielomianów

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

Czy funkcja zadana wzorem f(x) = ex e x. 1 + e. = lim. e x + e x lim. lim. 2 dla x = 1 f(x) dla x (0, 1) e e 1 dla x = 1

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

Przeksztaªcenia liniowe

Zbiory i odwzorowania

Stereometria (geometria przestrzenna)

Zaawansowane metody numeryczne

Transkrypt:

Szybkie mno»enie wielomianów i macierzy Šukasz Kowalik Instytut Informatyki, Uniwersytet Warszawski Šukasz Kowalik (UW) FFT & FMM 1 / 30

Szybka Transformata Fouriera Šukasz Kowalik (UW) FFT & FMM 2 / 30

Wielomiany Wielomian reprezentowany jako ci g wspóªczynników Niech R b dzie pier±cieniem (np. R = C, R, Z,...). Wielomian stopnia n 1 to funkcja A : C C postaci n 1 A(x) = a i x i, i=0 gdzie a i R. Wielomian A reprezentujemy jako ci g (a 0,..., a n 1). Dodawanie Dane dwa wielomiany A = (a 0,..., a n 1) i B = (b 0,..., b n 1). Obliczy wielomian C, C(x) = A(x) + B(x). Rozwi zanie: C = (a 0 + b 0,..., a n 1 + b n 1). Czas: O(n) operacji arytmetycznych (na elementach R). Šukasz Kowalik (UW) FFT & FMM 3 / 30

Mno»enie wielomianów w O(n 2 ) Problem Dane dwa wielomiany A = (a 0,..., a n 1) i B = (b 0,..., b n 1). Obliczy wielomian C, C(x) = A(x) B(x). Rozwi zanie Rozwi zanie: C = (c 0,..., c 2n 2), gdzie c k = k a i b k i. i=0 Czas: O(n 2 ) operacji arytmetycznych (na elementach R). Šukasz Kowalik (UW) FFT & FMM 4 / 30

Mno»enie wielomianów w O(n) A gdyby tak... Wyobra¹my sobie nowy lepszy ±wiat, w którym wielomiany mno»y si równo ªatwo jak dodaje. (Co to za ±wiat?) Šukasz Kowalik (UW) FFT & FMM 5 / 30

Mno»enie wielomianów w O(n) Twierdzenie (O Interpolacji) Dla dowolnego zbioru {(x 0, y 0 ),..., (x n 1, y n 1)} takiego,»e x i s parami ró»ne, istnieje dokªadnie jeden wielomian P stopnia mniejszego ni» n taki,»e P(x i ) = y i dla ka»dego i = 0,..., n 1. Reprezentacja przez warto±ci w 2n punktach n par (x i, y i ) jednoznacznie wyznacza wielomian stopnia < n. 2n par tym bardziej. Niech A i B b d stopnia < n, dane jako A = {(x 0, y 0 ),..., (x 2n 1, y 2n 1)} oraz B = {(x 0, y 0 ),..., (x 2n 1, y 2n 1 )}. Wtedy C = A B jest reprezentowany przez {(x 0, y 0 y 0 ),..., (x 2n 1, y 2n 1 y 2n 1 )} Obliczyli±my C w czasie O(n). Šukasz Kowalik (UW) FFT & FMM 5 / 30

(Prawdziwe) mno»enie wielomianów w O(n log n) Šukasz Kowalik (UW) FFT & FMM 6 / 30

(Prawdziwe) mno»enie wielomianów w O(n log n) Šukasz Kowalik (UW) FFT & FMM 6 / 30

Liczby zepolone, pierwiastki z 1: przypomnienie Liczby zespolone przedstawiamy jako: z = x + yi = r(cos ϕ + i sin ϕ) z = r e ϕi ω n = e 2π n jest pierwiastkiem stopnia n z 1. wszystkie pierwiastki stopnia n z 1: ω 0 n, ω 1 n,... ω n 1 n. Šukasz Kowalik (UW) FFT & FMM 7 / 30

DFT i FFT Dyskretna Transformata Fouriera, DFT Dany ci g (a 0,..., a n 1) reprezentuj cy wielomian A(x) = n 1 i=0 a i x i. Obliczy warto±ci A(x 0 ),..., A(x n 1), gdzie x j = ω j n dla j = 0,..., n. Uwaga W naszym zastosowaniu do mno»enia wielomianów stopnia < d, n = 2d oraz a d = a d+1 =... = a 2d 1 = 0. Poka»emy algorytm, który oblicza DFT u»ywaj c O(n log n) operacji arytmetycznych (na liczbach zespolonych). Ten algorytm to szybka transformata Fouriera (FFT), odkryty przez Cooleya i Tuckeya w 1965 (wªa±ciwie wywa»yli oni drzwi otwarte w 1805 przez Gaussa). Šukasz Kowalik (UW) FFT & FMM 8 / 30

FFT: dziel i zwyci»aj Zaªó»my,»e n = 2k (wpp. dodajemy a n = 0). Okre±lmy 2 wielomiany stopnia < n/2: Wtedy: A [0] (x) = a 0 + a 2 x + a 4 x 2 +... + a n 2x n/2 1, A [1] (x) = a 1 + a 3 x + a 5 x 2 +... + a n 1x n/2 1. A(x) = A [0] (x 2 ) + xa [1] (x 2 ), (tzn. wystarczy obliczy n warto±ci 2 wielomianów stopnia < n/2.) fartownie, (ω n ) 2 = (e 2π n i ) 2 = e 2π n/2 i = ω n/2. st d, dla k = 0,..., n/2, mamy: (ωn) k 2 = ωn/2 k oraz (ωk+n/2 n ) 2 = ωn/2 k ωn/2 n/2 = ωk n/2. czyli {(ωn) 0 2, (ωn) 1 2,..., (ω n 1 n ) 2 } = {ωn/2 0, ω1 n/2,..., ωn/2 1 n/2 } Rekurencyjnie obliczamy n/2 warto±ci 2 wielomianów stopnia < n/2 Šukasz Kowalik (UW) FFT & FMM 9 / 30

FFT: dziel i zwyci»aj Wniosek Algorytm FFT dziaªa w czasie O(n log n). Dowód Bo T (n) = 2T (n/2) + O(n). Šukasz Kowalik (UW) FFT & FMM 10 / 30

Mno»enie wielomianów w O(n log n): Czego jeszcze brakuje? Šukasz Kowalik (UW) FFT & FMM 11 / 30

Odwrotna Dyskretna Transformata Fouriera (IDFT) Odwrotna Dyskretna Transformata Fouriera, IDFT Dany ci g (y 0,..., y n 1) reprezentuj cy warto±ci wielomianu A(x) = n 1 i=0 a i x i odpowiednio w punktach 1, ωn, 1..., ω n 1 n. Wykona interpolacj, tzn. obliczy warto±ci a 0,..., a n 1. Chcemy znale¹ a 0,..., a n 1 takie,»e: y 0 = a 0 + a 1 + a 2 +... + a n 1, y 1 = a 0 + a 1 ω n + a 2 ω 2 n +... + a n 1ω n 1 n, y 2 = a 0 + a 1 ω 2 n + a 2 ω 4 n +... + a n 1ω 2(n 1) n,.. y n 1 = a 0 + a 1 ω n 1 n + a 2 ω 2(n 1) n +... + a n 1ω (n 1)(n 1) n. Šukasz Kowalik (UW) FFT & FMM 12 / 30

Odwrotna Dyskretna Transformata Fouriera (IDFT) Odwrotna Dyskretna Transformata Fouriera, IDFT Dany ci g (y 0,..., y n 1) reprezentuj cy warto±ci wielomianu A(x) = n 1 i=0 a i x i odpowiednio w punktach 1, ωn, 1..., ω n 1 n. Wykona interpolacj, tzn. obliczy warto±ci a 0,..., a n 1. Chcemy znale¹ a 0,..., a n 1 takie,»e: y 0 y 1 y 2. y n 1 = 1 1 1 1 1 1 ω n ω 2 n ω 3 n ω n 1 n 1 ω 2 n ω 4 n ω 6 n ω 2(n 1) n........ 1 ω n 1 n ω 2(n 1) n ω 3(n 1) n ω (n 1)(n 1) n czyli y = V n a, gdzie V n jest macierz Vandermonde'a det V n = (ω j n ωn) i 0. St d, a = V 1 n y. 0 i<j n 1 a 0 a 1 a 2. a n 1 Šukasz Kowalik (UW) FFT & FMM 12 / 30

Odwrotna Dyskretna Transformata Fouriera (IDFT), cd Chcemy obliczy a = V 1 n y, (V n jest macierz Vandermonde'a dla warto±ci 1, ω n, ω 2 n,..., ω n 1 n.) Fakt (dowód: obliczenie V 1 n (V 1 n ) j,k = 1 n ω jk n Wniosek a j = n 1 k=0 n 1 1 n ω jk n y k = 1 n k=0 V n, V n V 1 n, nuda.) y k (ω j n ) k = 1 Y n (ωn j n ), gdzie Y jest wielomianem o wspóªczynnikach (y 0,..., y n 1). Wniosek z wniosku a = 1(DFT (y n 0,..., y n 1)) R, gdzie operacja v R odwraca wektor v, oprócz pierwszej skªadowej. Czyli IDFT liczymy za pomoc FFT w czasie O(n log n). Šukasz Kowalik (UW) FFT & FMM 13 / 30

Uwagi W algorytmie zakªadali±my dokªadn arytmetyk liczb rzeczywistych (zespolonych). W praktyce korzystamy z liczb o ograniczonej precyzji. Nie prowadzi to do du»ych bªedów (algorytm FFT ma bardzo dobre wªasno±ci numeryczne) Je±li wspóªczynniki na wej±ciu s caªkowite (wi c na wyj±ciu chcemy równie» mie caªkowite) to mo»emy zaokr gla /obcina, ale nale»y przeprowadzi analiz jak dokªadnej arytmetyki liczb rzeczywistych potrzebujemy. Algorytm FFT bardzo ªatwo si zrównolegla: mo»na go zaimplementowa jako obwód arytmetyczny o gª boko±ci log 2 n. Šukasz Kowalik (UW) FFT & FMM 14 / 30

Zastosowanie 1: Mno»enie Powiedzmy,»e chcemy pomno»y przez siebie 2 liczby n-bitowe a = n 1 i=0 a i 2 i i b = n 1 i=0 b i 2 i. 1 a i b reprezentujemy jako wielomiany A(x), B(x): mo»na po prostu jako A(x) = n 1 i=0 a i x i, gdzie a i {0, 1} ale zwykle bardziej si opªaca pokroi liczby na grubsze bloki, l-bitowe. Wtedy A(x) = n/l 1 i=0 a i x i, gdzie a i {0,..., 2 l 1}. Šukasz Kowalik (UW) FFT & FMM 15 / 30

Zastosowanie 1: Mno»enie Powiedzmy,»e chcemy pomno»y przez siebie 2 liczby n-bitowe a = n 1 i=0 a i 2 i i b = n 1 i=0 b i 2 i. 1 a i b reprezentujemy jako wielomiany A(x), B(x): mo»na po prostu jako A(x) = n 1 i=0 a i x i, gdzie a i {0, 1} ale zwykle bardziej si opªaca pokroi liczby na grubsze bloki, l-bitowe. Wtedy A(x) = n/l 1 i=0 a i x i, gdzie a i {0,..., 2 l 1}. 2 za pomoc FFT obliczamy C(x) = A(x)B(x) (wówczas c j {0,..., n}). Šukasz Kowalik (UW) FFT & FMM 15 / 30

Zastosowanie 1: Mno»enie Powiedzmy,»e chcemy pomno»y przez siebie 2 liczby n-bitowe a = n 1 i=0 a i 2 i i b = n 1 i=0 b i 2 i. 1 a i b reprezentujemy jako wielomiany A(x), B(x): mo»na po prostu jako A(x) = n 1 i=0 a i x i, gdzie a i {0, 1} ale zwykle bardziej si opªaca pokroi liczby na grubsze bloki, l-bitowe. Wtedy A(x) = n/l 1 i=0 a i x i, gdzie a i {0,..., 2 l 1}. 2 za pomoc FFT obliczamy C(x) = A(x)B(x) (wówczas c j {0,..., n}). 3 wykonujemy przeniesienie za pomoc O(n log n) operacji na bitach Przeniesienie p i zawsze ma co najwy»ej warto± n: Na pocz tku c 0/2 n, czyli OK Je±li p i n to p i+1 = (p i + c i )/2 n. St d, obliczenie i-tej cyfry wyniku wymaga O(log n) operacji bitowych. Šukasz Kowalik (UW) FFT & FMM 15 / 30

Zastosowanie 1: Mno»enie, cd Analiza Powiedzmy,»e n bitów podzielili±my na 2 k bloków dªugo±ci l. Wówczas algorytm wykona si w czasie O(n + k Mn/l), gdzie M to czas mno»enia dwóch liczb zespolonych. Powiedzmy,»e liczby zespolone reprezentujemy na m bitach. Jak du»e powinno by m»eby wynik mno»enia byª poprawny? m 4k + 2l (patrz Knuth, t. II) Wnioski sytuacja praktyczna W praktyce dla rozs dnych danych (np. n = 10 9 ) wystarczy liczby zespolone reprezentowa jako par liczb typu double. Wówczas mno»enie dwóch liczb m-bitowych dziaªa w czasie O(1). Bior c l = k dostajemy algorytm w czasie O(n). Šukasz Kowalik (UW) FFT & FMM 16 / 30

Zastosowanie 1: Mno»enie, cd Analiza Powiedzmy,»e n bitów podzielili±my na 2 k bloków dªugo±ci l. Wówczas algorytm wykona si w czasie O(n + k Mn/l), gdzie M to czas mno»enia dwóch liczb zespolonych. Powiedzmy,»e liczby zespolone reprezentujemy na m bitach. Jak du»e powinno by m»eby wynik mno»enia byª poprawny? m 4k + 2l (patrz Knuth, t. II) Teoria (Schönhage-Strassen 1971) W powy»szej analizie we¹my l = k. Mamy rekurencj T (n) = O(nT (log n)), st d T (n) = O(n log n log log n log log log n ) (Schönhage-Strassen 1971) Zamiast ciaªa C bierzemy pier±cie«z 2 e +1 dla pewnego e. Prowadzi to do czasu O(n log n log log n). (Fürer 2007) algorytm O(n log n2 log n ). Šukasz Kowalik (UW) FFT & FMM 16 / 30

Zastosowanie 2: Dodawanie zbiorów Problem Dane dwa zbiory A, B {0,..., n}, Znale¹ C = {a + b : a A, b B}. Rozwi zanie w czasie O(n log n) We¹my A(x) = a A x a, B(x) = b B x b. Obliczamy C(x) = A(x)B(x). Je±li C(x) = 2n j=0 c j x j to C = {j : c j 0}. Šukasz Kowalik (UW) FFT & FMM 17 / 30

Szybkie mno»enie macierzy Šukasz Kowalik (UW) FFT & FMM 18 / 30

Mno»enie macierzy (kwadratowych) Problem Dane macierze n n: A i B. Znale¹ macierz C = A B. Algorytm naiwny (wg zwykªego wzoru) c ij = n k=1 a ikb kj. Czas: O(n 3 ) operacji arytmetycznych. Šukasz Kowalik (UW) FFT & FMM 19 / 30

Mno»enie macierzy: Dziel i zwyci»aj (1) Bez straty ogólno±ci n = 2 k. Podzielmy A, B, C na podmacierze o wymiarach (n/2) (n/2): [ ] [ ] A1,1 A A = 1,2 B1,1 B, B = 1,2 A 2,1 A 2,2 B 2,1 B 2,2 Wówczas [ ] A1,1 B C = 1,1 + A 1,2 B 2,1 A 1,1 B 1,2 + A 1,2 B 2,2 A 2,1 B 1,1 + A 2,2 B 2,1 A 2,1 B 1,2 + A 2,2 B 2,2 Mamy rekurencj T (n) = 8T (n/2) + O(n 2 ) czyli T (n) = O(n 3 ). (Dominuj cy jest ostatni poziom, gdzie jest 8 log 2 n = n 3 w zªów.) Šukasz Kowalik (UW) FFT & FMM 20 / 30

Mno»enie macierzy: Dziel i zwyci»aj (2) [ ] A1,1 A A = 1,2 A 2,1 A 2,2 Drugie podej±cie (Strassen 1969): [ ] B1,1 B, B = 1,2 B 2,1 B 2,2 M 1 := (A 1,1 + A 2,2 )(B 1,1 + B 2,2 ) M 2 := (A 2,1 + A 2,2 )B 1,1 M 3 := A 1,1 (B 1,2 B 2,2 ) M 4 := A 2,2 (B 2,1 B 1,1 ) M 5 := (A 1,1 + A 1,2 )B 2,2 M 6 := (A 2,1 A 1,1 )(B 1,1 + B 1,2 ) M 7 := (A 1,2 A 2,2 )(B 2,1 + B 2,2 ). Wtedy: [ ] A1,1 B C = 1,1 + A 1,2 B 2,1 A 1,1 B 1,2 + A 1,2 B 2,2 A 2,1 B 1,1 + A 2,2 B 2,1 A 2,1 B 1,2 + A 2,2 B 2,2 [ ] M1 + M = 4 M 5 + M 7 M 3 + M 5 M 2 + M 4 M 1 M 2 + M 3 + M 6 Mamy rekurencj T (n) = 7T (n/2) + O(n 2 ) czyli T (n) = O(7 log 2 n ) = O(n log 2 7 ) = O(n 2.81 ). Šukasz Kowalik (UW) FFT & FMM 21 / 30

Kilka faktów podanych bez dowodu Najszybszy znany algorytm mno»enia macierzy Coppersmitha i Winograda (1990) dziaªa w czasie O(n 2.38 ) (jest kompletnie niepraktyczny). Najlepsze znane dolne ograniczenie to Ω(n 2 ). Ciekawe wyniki dla macierzy prostok tnych, np. je±li r 0.294 to macierz n n r mo»na pomno»y przez macierz n r n w czasie O(n 2+o(1) ). Niech M(n) to czas mno»enia macierzy n n. Wiemy,»e M(n) = O(n ω ), gdzie ω < 2.38. Mo»na znale¹ odwrotno± macierzy w czasie O(M(n)). Mo»na obliczy wyznacznik macierzy w czasie O(M(n)). Dowody dwóch ostatnich faktów mo»na znale¹ w podr czniku Cormena. Šukasz Kowalik (UW) FFT & FMM 22 / 30

Zastosowanie 1: liczba marszrut Lemat Niech A b dzie macierz s siedztwa n-wierzchoªkowego grafu G (skierowanego lub nieskierowanego). Dla k N >0. Wówczas dla dowolnego i, j = 1,..., n element A k zawiera liczb marszrut dªugo±ci k i,j od wierzchoªka i do wierzchoªka j Dowód Indukcja. Dla k = 1 OK. Dla k > 1 mamy: A k 1 i,l A l,j jest liczb marszrut dªugo±ci k od i do j, w których przedostatni wierzchoªek to l. St d, A k = n i,j k od i do j. l=1 Ak 1 i,l A l,j jest liczb wszystkich marszrut dªugo±ci Wniosek Liczb marszrut dªugo±ci k mi dzy wszystkimi parami wierzchoªków mo»emy policzy w czase O(n ω log k). Šukasz Kowalik (UW) FFT & FMM 23 / 30

Szybkie mno»enie macierzy: zastosowania Oznaczmy przez O(n ω ) najlepszy znany czas mno»enia macierzy n n. 1 Rozwi zywanie ukªadów równa«w O(n ω ) 2 Wyszukiwanie trójk tów w grae w O(n ω ) 3 Domkni cie przechodnie w O(n ω log n) 4 Sprawdzenie (ew. znajdowanie) czy graf zawiera skojarzenie doskonaªe w czasie (n ω ). Šukasz Kowalik (UW) FFT & FMM 24 / 30

MAX-SAT (Williams 2004) Problem MAX-SAT Dana formuªa φ w postaci 2-CNF, zawieraj ca n zmiennych. Znale¹ warto±ciowanie zmiennych, które maksymalizuje liczb speªnionych klauzul. Zªo»ono± Odpowiedni problem decyzyjny jest NP-zupeªny. Algorytm naiwny ma zªo»ono± O(2 n ) Pytanie: Czy mo»na szybciej? Np. O(1.9 n )? Šukasz Kowalik (UW) FFT & FMM 25 / 30

MAX-SAT (Williams 2004) Problem MAX-SAT Dana formuªa φ w postaci 2-CNF, zawieraj ca n zmiennych. Znale¹ warto±ciowanie zmiennych, które maksymalizuje liczb speªnionych klauzul. Zªo»ono± Odpowiedni problem decyzyjny jest NP-zupeªny. Algorytm naiwny ma zªo»ono± O(2 n ) Pytanie: Czy mo»na szybciej? Np. O(1.9 n )? B dziemy si zajmowa równowa»nym (z dokªadno±ci do czynnika log(#klauzul)) problemem: Problem MAX-SAT, wersja testuj ca Dana formuªa φ w postaci 2-CNF, zawieraj ca n zmiennych oraz k N Czy istnieje warto±ciowanie zmiennych, dla którego jest dokªadnie k speªnionych klauzul. Šukasz Kowalik (UW) FFT & FMM 25 / 30

MAX-SAT (Williams 2004) Zbudujemy pewien graf G o O(2 n/3 ) wierzchoªkach. Ustalmy dowolny podziaª V = V 0 V 1 V 2 na trzy równe cz ±ci (tak równe jak si da). Wierzchoªkami G s wszystkie warto±ciowania v i : V i {0, 1} dla i = 0, 1, 2. Dla dowolnych v V i, w V (i+1) mod 3 graf G zawiera kraw d¹ vw. 2 V 0 2 V 1 2 V 2 Šukasz Kowalik (UW) FFT & FMM 26 / 30

MAX-SAT (Williams 2004) Idea rozwi zania Dobierzemy tak wagi na kraw dziach,»e waga trójk ta vwu w G b dzie równa liczbie speªnionych klauzul przy warto±ciowaniu (v, w, u). Wtedy wystarczy sprawdzi, czy istnieje trójk t o wadze k w G. 2 V 0 2 V 1 2 V 2 Šukasz Kowalik (UW) FFT & FMM 27 / 30

MAX-SAT (Williams 2004) Idea rozwi zania Dobierzemy tak wagi na kraw dziach,»e waga trójk ta vwu w G b dzie równa liczbie speªnionych klauzul przy warto±ciowaniu (v, w, u). Wtedy wystarczy sprawdzi, czy istnieje trójk t o wadze k w G. Problem 1 Jak dobra wagi? Niech c(v) = wszystkie klauzule, które s speªnione przy warto±ciowaniu v. Wtedy liczba speªnionych klauzul przy warto±ciowaniu (v, w, u) wynosi: c(v) c(w) c(u) = c(v) + c(w) + c(u) c(v) c(w) c(v) c(u) c(w) c(u) + c(v) c(w) c(u). Šukasz Kowalik (UW) FFT & FMM 27 / 30

MAX-SAT (Williams 2004) Idea rozwi zania Dobierzemy tak wagi na kraw dziach,»e waga trójk ta vwu w G b dzie równa liczbie speªnionych klauzul przy warto±ciowaniu (v, w, u). Wtedy wystarczy sprawdzi, czy istnieje trójk t o wadze k w G. Problem 1 Jak dobra wagi? Niech c(v) = wszystkie klauzule, które s speªnione przy warto±ciowaniu v. Wtedy liczba speªnionych klauzul przy warto±ciowaniu (v, w, u) wynosi: c(v) c(w) c(u) = c(v) + c(w) + c(u) c(v) c(w) c(v) c(u) c(w) c(u) + c(v) c(w) c(u). }{{} 0 Šukasz Kowalik (UW) FFT & FMM 27 / 30

MAX-SAT (Williams 2004) Idea rozwi zania Dobierzemy tak wagi na kraw dziach,»e waga trójk ta vwu w G b dzie równa liczbie speªnionych klauzul przy warto±ciowaniu (v, w, u). Wtedy wystarczy sprawdzi, czy istnieje trójk t o wadze k w G. Problem 1 Jak dobra wagi? Niech c(v) = wszystkie klauzule, które s speªnione przy warto±ciowaniu v. Wtedy liczba speªnionych klauzul przy warto±ciowaniu (v, w, u) wynosi: c(v) c(w) c(u) = c(v) + c(w) + c(u) c(v) c(w) c(w) c(u) c(u) c(v) + c(v) c(w) c(u). }{{} 0 Czyli dajemy waga(xy) = c(x) c(x) c(y). Šukasz Kowalik (UW) FFT & FMM 27 / 30

MAX-SAT (Williams 2004) Pozostaªo sprawdzi, czy istnieje trójk t o wadze k w G. Trick Rozwa»amy wszystkie O(m 2 ) = O(n 4 ) podziaªów (m = liczba klauzul) k = k 0 + k 1 + k 2. Dla ka»dego podziaªu budujemy graf G zªo»ony k0,k1,k2 tylko z: kraw dzi o wadze k 0 mi dzy 2 V 0 a 2 V 1, kraw dzi o wadze k 1 mi dzy 2 V 1 a 2 V 2, kraw dzi o wadze k 2 mi dzy 2 V 2 a 2 V 0. Wtedy wystarczy... Šukasz Kowalik (UW) FFT & FMM 28 / 30

MAX-SAT (Williams 2004) Pozostaªo sprawdzi, czy istnieje trójk t o wadze k w G. Trick Rozwa»amy wszystkie O(m 2 ) = O(n 4 ) podziaªów (m = liczba klauzul) k = k 0 + k 1 + k 2. Dla ka»dego podziaªu budujemy graf G zªo»ony k0,k1,k2 tylko z: kraw dzi o wadze k 0 mi dzy 2 V 0 a 2 V 1, kraw dzi o wadze k 1 mi dzy 2 V 1 a 2 V 2, kraw dzi o wadze k 2 mi dzy 2 V 2 a 2 V 0. Wtedy wystarczy... sprawdzi, czy istnieje dowolny trójk t. Šukasz Kowalik (UW) FFT & FMM 28 / 30

Sprawdzanie, czy G k0,k 1,k 2 zawiera trój t Wniosek Graf G k0,k1,k2 ma 3 2n/3 wierzchoªków. Mo»emy sprawdzi, czy G k0,k1,k2 O(2 ωn/3 ) = O(1.732 n ) zawiera trój t w czasie Czyli mo»emy sprawdzi, czy G zawiera trój t o wadze k w czasie O(n 4 2 ωn/3 ) = O(n 4 1.732 n ) = O(1.733 n ) Šukasz Kowalik (UW) FFT & FMM 29 / 30

MAX-SAT (Williams 2004): Podsumowanie Wniosek Mo»emy rozwi za MAX-SAT w czasie i pami ci O(1.733 n ). Šukasz Kowalik (UW) FFT & FMM 30 / 30

MAX-SAT (Williams 2004): Podsumowanie Wniosek Mo»emy rozwi za MAX-SAT w czasie i pami ci O(1.733 n ). Šatwo przerobi nasz algorytm (jak?)»eby dosta Wniosek Mo»emy zliczy wszystkie rozwi zania optymalne MAX-SAT w czasie i pami ci O(1.733 n ). Šukasz Kowalik (UW) FFT & FMM 30 / 30