tło
Pamięć zewnętrzna lub model DAM określa koszt algorytmu na podstawie liczby operacji we / wy, które wykonuje (w zasadzie liczby braków pamięci podręcznej). Te czasy działania są na ogół podawane w kategoriach , wielkości pamięci i B , liczby słów, które można jednocześnie przenieść do pamięci. Czasami L i Z są używane dla B i odpowiednio.
Na przykład sortowanie wymaga kosztu a naiwne mnożenie macierzy wymaga Θ ( n 3 / B √.
Model ten jest wykorzystywany do analizy „Cache-niepomny algorytmy”, które nie mają wiedzy na temat lub M . Zasadniczo celem jest optymalne działanie algorytmu ignorującego pamięć podręczną w modelu pamięci zewnętrznej; nie zawsze jest to możliwe, jak na przykład w przypadku problemu permutacji (pokazane w Brodal, Faderberg 2003 ). Zobacz ten artykuł Erika Demaine'a, aby uzyskać dodatkowe wyjaśnienie algorytmów nieobjętych pamięcią podręczną, w tym omówienie sortowania i mnożenia macierzy.
Widzimy to zmieniające się powoduje przyspieszenie logarytmiczne do sortowania i przyspieszenie wielomianowe do mnożenia macierzy. (Ten wynik pochodzi z Hongkongu, Kung 1981 i faktycznie wyprzedza zarówno pamięć podręczną, jak i formalizację modelu pamięci zewnętrznej).
Moje pytanie brzmi:
Czy jest jakiś przypadek, w którym przyspieszenie jest wykładnicze w ? Czas działania będzie taki jak f ( N , B ) / 2 O ( M ) . Szczególnie interesuje mnie algorytm lub struktura danych nieobsługująca pamięci podręcznej, która pasuje do tego opisu, ale byłbym zadowolony z algorytmu / struktury danych obsługującej pamięć podręczną lub nawet najlepiej znanej dolnej granicy.
Ogólnie w większości modeli przyjmuje się, że rozmiar słowa jeśli N jest rozmiarem wejściowym i wyraźnie M > w . Następnie przyspieszenie od 2 M daje wielomianu przyspieszenie w N . To sprawia, że wierzę, że jeśli problem, którego szukam, istnieje, nie jest on wielomianem. (W przeciwnym razie możemy zmienić rozmiar pamięci podręcznej o stałą, aby uzyskać stałą liczbę operacji we / wy, co wydaje się mało prawdopodobne).