W przypadku wielu problemów algorytm o największej złożoności asymptotycznej ma bardzo duży stały współczynnik, który jest ukryty przez dużą notację O. Dzieje się tak w przypadku mnożenia macierzy, mnożenia liczb całkowitych (w szczególności najnowszego algorytmu mnożenia liczb całkowitych O (n log n) Harveya i van der Hoevena), sieci sortowania o małej głębokości i znajdowania drobnych wykresów, aby zrobić kilka. Takie algorytmy są czasami nazywane algorytmami galaktycznymi.
Należy pamiętać, że w przypadku innych algorytmów, takich jak ogólne sortowanie i dodawanie liczb całkowitych, algorytmy są znane z optymalnej złożoności asymptotycznej i małych stałych czynników.
Jakie badania przeprowadzono w celu oddzielenia wcześniejszych algorytmów od drugich z perspektywy teoretycznej?
Wiem, że często pomija się ukryte stałe, aby ukryć rozróżnienie między różnymi modelami obliczeń. Jestem jednak przekonany, że przy wielu różnych modelach te algorytmy galaktyczne będą wolniejsze niż na przykład asymptotycznie gorsze algorytmy dla danych wejściowych wielkości jednego miliarda. W niektórych przypadkach rozróżnienie nie jest subtelne. Czy stało się to rygorystyczne?
Na przykład można wymyślić bardzo prosty model obliczeń, taki jak maszyna von Neumanna z bardzo prostym ISA, a następnie zaimplementować algorytmy i powiązać ich czas działania z wyraźnymi stałymi. Czy zostało to zrobione dla różnych algorytmów?