Problem nawiasowania macierzy
Z Wikipedii
Problem nawiasowania macierzy - jest problemem znalezienia takiego nawiasowania ciągu macierzy , by zminimalizować koszt poszczególnych mnożeń. Nawiasowanie takie nazywa się optymalnym. Mówimy, że iloczyn macierzy
ma ustalone nawiasowanie, jeżeli tworzy go pojedyńcza macierz, lub iloczyn dwóch iloczynów macierzy o ustalonym nawiasowaniu.
Spis treści |
[edytuj] Przykład ustalonych nawiasowań
Niech będzie ciągiem macierzy. Ich iloczyn ma następujące ustalone nawiasowania:
[edytuj] Nawiasowanie a koszt obliczenia iloczynu macierzy
Łatwo przekonać się, że wybór nawiasowania może mieć znaczący wynik na liczbę operacji potrzebnych do obliczenia iloczynu macierzy - koszt pomnożenia dwóch macierzy, o wymiarach odpowiednio a × b i b × c wynosi (dokładnie - wymaga
mnożeń skalarnych)
Niech dane będą trzy macierze o rozmiarach odpowiednio 2 × 20, 20 × 1 i 1 × 10. Dla nawiasowania
koszt iloczynu wyniesie:
(koszt obliczenia
) +
(koszt obliczenia
). Razem:
Dla tych samych macierzy, ale nawiasowania koszt mnożenia wyniesie:
mnożeń dla
plus
mnożeń skalarnych
co daje łącznie mnożeń skalarnych potrzebnych do pomnożenia wyniku przez
. Oszczędność nawiasowania pierwszego jest oczywista.
[edytuj] Własność optymalnej podstruktury
Można wykazać, że problem nawiasowania macierzy wykazuje własność optymalnej podstruktury.
[edytuj] Dowód
Załóżmy, że dla optymalnego nawiasowania macierzy występuje podział między
i
, oraz, niewprost, że dla tego nawiasowania nawiasowanie
nie jest optymalne. Wówczas można by w nawiasowaniu
"podmienić" nawiasowanie
na optymalne, w wyniku czego otrzymalibyśmy nowe nawiasowanie
, lepsze od optymalnego - sprzeczność.
[edytuj] Rozwiązanie problemu nawiasowania macierzy
Problem nawiasowania ciągu macierzy można łatwo rozwiązać stosując algorytm dynamiczny. Definiujemy koszt optymalnego nawiasowania jako funkcję optymalnych rozwiązań podproblemów.
Niech oznacza minimalny koszt wymnożenia macierzy
Może być zdefiniowane następująco:
- nawiasowanie tylko jednej macierzy -
- nawiasonie to musi wyznaczać punkt podziału p, taki, że (zgodnie z podpunktem o własności optymalnego nawiasowania)
i
są optymalnymi rozwiązaniami podproblemów. Wtedy
jest równe sumie minimalnych kosztów obliczenia
i
plus koszt pomnożenia macierzy wynikowych tych podrozwiązań: