Definicja wykładnika mnożenia macierzy

15

Potocznie definicja wykładnika mnożenia macierzy jest najmniejszą wartością, dla której znany jest algorytm mnożenia macierzy . Nie jest to dopuszczalne, formalnej definicji matematycznej tak Chyba określenie techniczne jest czymś w infimum na wszystkich tak, że istnieje algorytm mnożenia macierzy w .n ω t n tωnωtnt

W tym przypadku nie możemy powiedzieć, że istnieje algorytm mnożenia macierzy w lub nawet , po prostu że dla wszystkich istnieje algorytm w . Często jednak artykuły i wyniki wykorzystujące mnożenie macierzy podają swój koszt jako po prostu . n ω + o ( 1 ) ϵ > 0 n ω + ϵ O ( n ω )nωnω+o(1)ϵ>0nω+ϵO(nω)

Czy istnieje jakaś alternatywna definicja która pozwala na to użycie? Czy są jakieś wyniki, które gwarantują, że musi istnieć algorytm czasu lub ? A może użycie po prostu niechlujne?n ω n ω + o ( 1 ) O ( n ω )ωnωnω+o(1)O(nω)

David Harris
źródło
2
Jeśli chcesz po prostu użyć mnożenia macierzy jako czarnej skrzynki, najprostszym sposobem jest powiedzenie „Niech będzie takie, abyśmy mogli pomnożyć matrycy za pomocą operacji arytmetycznych ”. Oczywiście nie jest wtedy wykładnikiem mnożenia macierzy, ale może być dowolnie zamknięty. Jeśli chcesz podać wykładnik ostatecznego biegu w postaci dziesiętnej, obecnie i tak musisz zaokrąglić, ponieważ wszystkie nietypowe szacunki dla których wiem, są albo liczbami nieracjonalnymi, albo nieskończonymi sekwencjami. n × n O ( n ω ) ω ωωn×nO(nω)ωω
Markus Bläser
2
ω jest zwykle definiowana jako minimum dla wszystkich liczb rzeczywistych dla idących do tak że istnieje algorytm czasowy , który zwielokrotnia dwie macierze (gdzie czas jest liczbą dodatków, mnożenia i podziały w polu bazowym). Oznacza to również, że technicznie zawsze powinniśmy pisać ale robi się bałagan, więc kiedy zobaczysz , powinieneś pomyśleć gdzie to środowisko uruchomieniowe algorytmu mnożenia macierzy. knO(nk)n×nnω+o(1)O(nω)O(M(n))M(n)
virgi

Odpowiedzi:

20

Wykładnik mnożenia macierzy będący nie gwarantuje, że istnieje algorytm działający w czasie , ale tylko, że dla każdego istnieje algorytm działający w . Rzeczywiście, jeśli możesz znaleźć algorytm działający w czasie , oznacza to, że .O ( n ω ) ϵ > 0 O ( n ω + ϵ ) O ( n 2 p o l y l o g ( n ) ) ω = 2ωO(nω)ϵ>0O(nω+ϵ)O(n2polylog(n))ω=2

Formalną definicję można znaleźć w książce Teoria złożoności algebraicznej autorstwa Petera Bürgissera, Michaela Clausena, Amina Shokrollahi.

MCH
źródło
7

Drobny komentarz, który jest zbyt długi, aby być komentarzem:

Czasami, gdy masz problem, dla którego istnieje algorytm z czasem działania dla każdego ϵ > 0 , istnieje algorytm z czasem działania n k + o ( 1 ) .O(nk+ϵ)ϵ>0nk+o(1)

Na przykład czasami otrzymujesz algorytmy, które działają jak dla niektórych szybko rosnących funkcji f (jak 2 2 1 / ϵ ). Jeśli ustawisz f ( 1 / ϵ ) na (powiedzmy) log n , to ϵ będzie o (1). W przykładzie, w którym f ( 1 / ϵ ) wynosi 2 2 1 / ϵ , możesz wybrać 1 / ϵf(1/ϵ)nk+ϵf221/ϵf(1/ϵ)lognϵf(1/ϵ)221/ϵ1/ϵbyć , co daje ϵ = 1 / ( log log log n ) , co oznacza o (1). Tak więc końcowy czas działania tego algorytmu będzie wynosił n k + o ( 1 ) , ponieważ log n jest również n o ( 1 ) .logloglognϵ=1/(logloglogn)nk+o(1)lognno(1)

Robin Kothari
źródło
Czy wyobrażam sobie, że algorytm Coppersmith-Winograd należy do tej kategorii?
David Harris
2
@DavidHarris: Nie wiem o tym. Może ktoś, kto rozumie algorytm, może rzucić na to trochę światła. Chciałem tylko powiedzieć, że często nie jest tak złe, jak się wydaje. O(nk+ϵ)
Robin Kothari,
5

Jest dobrze znany wynik Coppersmitha i Winograda, że ​​czas nie może być zrealizowany przez żaden pojedynczy algorytm. Ale przeczytałem , że ograniczają się do algorytmów opartych na dwubiegunowych tożsamościach podobnych do Strassena, więc nie wiem na pewno, ponieważ papier jest za zaporą.O(nω)

Diego de Estrada
źródło
3

Nie zgadzam się z twoim stwierdzeniem w pytaniu, że nie jest dobrze zdefiniowane przez „najmniejszą wartość, dla której istnieje znany algorytm mnożenia macierzy n ω ”. Gdy ludzie używają tej stałej, dzieje się tak dlatego, że ich algorytm opiera się na mnożeniu macierzy, a przez złożoność n ω , mają na myśli „optymalną złożoność naszego algorytmu zapewnia optymalny algorytm mnożenia macierzy”.ωnωnω

Nie twierdzę, że inaczej nie można zdefiniować (np. Twierdzenie, że ω jest najlepszą możliwą do osiągnięcia złożonością).ωω

Btw, najbardziej znana górna granica mnożenia macierzy została właśnie poprawiona do jeśli się nie mylę. 2.3737

Bruno
źródło
3
Nie rozumiem, w jaki sposób wiedza ludzka może być częścią definicji matematycznej
David Harris,
2
Ostatnie doświadczenia pokazują, że znacznie łatwiej jest obliczyć wszystkie algorytmy niż wszystkie algorytmy obecnie znane ludzkości ;-)
Markus Bläser 30.11.11