Jeśli mam dwie macierze i , odpowiednio o wymiarach i , i chcę obliczyć , bardziej wydajne jest najpierw przepisanie wyrażenia jako i dopiero wtedy oceniaj liczbowo, ponieważ ma wymiar ale ma wymiar .B 1000 × 2 2 × 1000 ( A B ) 5000 A ( B A ) 4999 B A B 1000 × 1000 B A 2 × 2
Chcę rozwiązać uogólnioną wersję tego problemu. Czy istnieje dość wydajny algorytm (nie brutalna siła) do optymalizacji wyrażenia zawierającego:
- Dowolne zmienne macierzowe o znanych wymiarach
- Produkty dowolnych podwyrażeń
- Arbitralne podwyrażenia podniesione do naturalnej mocy
... aby oszacowanie numeryczne wymagało najmniejszej ilości pracy, po zastąpieniu zmiennych zmiennych macierzy konkretnymi wartościami macierzy?
Łańcuch mnożenie macierzy problemem jest to szczególny przypadek mojego problemu.
Edytować:
To jest wstępna odpowiedź. Wydaje mi się intuicyjnie słuszne, ale nie mam dowodu, że jest to poprawne. Jeśli okaże się to prawidłowe, wciąż jestem zainteresowany dowodem. (Jeśli to nie jest poprawne, proszę, popraw mnie.)
Dla każdego produktu podniesionego do potęgi, powiedzmy, , rozważ każdą cykliczną permutację czynników:
- ...
... rekurencyjnie. Każdą moc oblicza się za pomocą potęgowania przez podniesienie do kwadratu (oczywiście), a wszystkie inne produkty należy obliczać przy użyciu optymalnej kolejności zwracanej przez algorytm mnożenia łańcucha macierzy.
Edytować:
Pomysł nakreślony w mojej poprzedniej edycji jest nadal nieco nieoptymalny. Potęgowanie przez algorytm kwadratu faktycznie ocenia wyrażenia postaci lub , gdzie niekoniecznie jest macierzą tożsamości. Ale mój algorytm nie bierze pod uwagę możliwości zastosowania potęgowania przez kwadrat algorytmu z nie równym macierzy tożsamości.A n K K K
Odpowiedzi:
Oświadczenie: Następująca metoda nie została dokładnie udowodniona jako optymalna. Dostarczony jest nieformalny dowód.
Problem sprowadza się do znalezienia najbardziej efektywnego zamówienia, biorąc pod uwagę kwadrat produktu.
Na przykład, patrząc na np. , musimy tylko optymalnie rozwiązać ponieważ rozszerza się do . Żadne przydatne informacje dotyczące zamawiania nie są dodawane przez ponowne połączenie . Intuicja polega na tym, że ponieważ problem optymalnego uporządkowania można rozwiązać oddolnie, wyższe uporządkowania składające się z większej liczby elementów korzystających z tych samych macierzy są nieistotne. ( A B C ) 2 A B C A B C A B C( A B C)50 ( A B C)2) A B CA B C A B C
Znalezienie najlepszej kolejności sprowadza się do problemu mnożenia łańcucha macierzy. Po znalezieniu optymalnego uporządkowania zastosuj potęgowanie do trypletu (ogólnie n-krotki) w uporządkowaniu.A B CA B C
Na przykład, jeśli optymalnym uporządkowaniem kwadratu jest , rozwiązaniem początkowego problemu jest .A ( B ( C A ) ) 49 B CA ( B ( CA ) ) B C A ( B ( CA ) )49B C.
Podsumowując:( A1ZA2)⋯An)m ( A1ZA2)⋯ An)2)
( A1ZA2)⋯ An)2)
sol ZA1⋅ A2)⋅ G.m - 1⋅ An
1) Pierwszym krokiem do rozwiązania jest rozwiązanie . 2) Rozwiązanie najlepiej jest podejść jako przykład problemu mnożenia łańcucha macierzy. 3) Użycie n-krotki zamawiając z rozwiązania w (2) da nam rozwiązanie (1) jako pewien smak (zauważ, że każdy inny należy również zastosować grupowanie z rozwiązania (2)). ( A 1 A 2 ⋯ A n ) 2 ( A 1 A 2 ⋯ A n ) 2 G A 1 ⋅ A 2 ⋅ G m - 1 ⋅ A n
Nieformalny dowód( A B )n ZA b X× Y Y× X ZA b
Uwzględniając najprostszym przypadku przy pomocy dwóch matryc, , możemy zauważyć, że i mają wymiary wzdłuż i , odpowiednio. Każdy produkt wykorzystujący i ma jeden z następujących wymiarów: A B X × Y Y × X A B
Y × X Y × Y X × XX× Y
Y× X
Y× Y
X× X
Mamy albo lub .Y ≤ XX< Y Y≤ X
Założenie 1a): ma wymiar , a to uporządkowanie gwarantuje optymalne podejście od dołu do góry. Każda inna konfiguracja i jest albo równie dobra, albo gorsza. Zatem problem został optymalnie rozwiązany jako .A B X × X A B ( A B ) nX< Y
A B. X× X ZA b ( A B )n
Założenie 1b): ma wymiar . Jest to optymalna zamawiania wszystkich produktów związanych z i . Tak więc, roztwór jest optymalnie znalezione .B A Y × Y A B A ( B A ) n - 1 BY≤ X
B A Y× Y ZA b A ( B A )n - 1b
To kończy dowód i przyjrzeliśmy się tylko dwóm zamówieniom znalezionym w , problemie kwadratowym.A B A B
Przy użyciu większej liczby macierzy argument jest podobny. Być może możliwy jest dowód indukcyjny? Ogólna idea polega na tym, że rozwiązanie MCM dla kwadratu znajdzie optymalny rozmiar dla operacji z uwzględnieniem wszystkich zaangażowanych macierzy.
Studium przypadku:
źródło
Jeśli chcesz obliczyć iloczyn n macierzy od do w jak najlepszym czasie, możesz łatwo obliczyć, ile operacji jest potrzebnych do obliczenia iloczynu do dla wszystkich 1 ≤ i ≤ j ≤ n w kroki.A n A i A j O ( n 3 )ZA1 ZAn ZAja ZAjot O ( n3))
źródło