Czy wygładzona analiza znalazła zastosowanie w analizie głównego strumienia algorytmów? Czy projektanci algorytmów często stosują wygładzoną analizę do swoich algorytmów?
Czy wygładzona analiza znalazła zastosowanie w analizie głównego strumienia algorytmów? Czy projektanci algorytmów często stosują wygładzoną analizę do swoich algorytmów?
Odpowiedzi:
Mogę się mylić, ale uważam, że wygładzona analiza jest sposobem na wyjaśnienie praktycznego zachowania algorytmów, które mają złe gwarancje teoretyczne (simpleks, k-średnie itd.). Nie jestem pewien, co to znaczy stosować wygładzoną analizę w praktyce, poza usprawiedliwieniem użycia określonej heurystyki o złej wydajności w najgorszym przypadku („Moja heurystyka ma bla bla bla najgorsze zachowanie, ale wygładzona analiza wskazuje, że będzie radzić sobie dobrze w praktyce itp. ”)
Sposób, w jaki ludzie analizują algorytmy w prawdziwym świecie, znacznie różni się od środowiska akademickiego. Podczas gdy w środowisku akademickim celem jest znalezienie możliwej do udowodnienia górnej granicy czasu działania, w prawdziwym życiu celem jest zrozumienie, jak działa algorytm i jakie poprawki mogą poprawić czas działania. Istnieją dwie główne metody, które są zakazane w środowisku akademickim, ale stosowane w praktyce:
To powiedziawszy, nie sądzę, że analiza algorytmu w praktyce jest bardzo powszechna poza dodawaniem tekstu uzupełniającego w powiązanej publikacji akademickiej. Nacisk kładziony jest na inżynierię oprogramowania lub optymalizację niskiego poziomu, w zależności od przedmiotu.
Wreszcie, wygładzona analiza jest heurystyką, którą można wykorzystać do wyjaśnienia, dlaczego algorytmy działają lepiej w praktyce, niż sugerowałby ich najgorszy przypadek - mianowicie, ponieważ niektóre dane wejściowe są w pewnym sensie „losowe”. Tę heurystykę można wykorzystać do przybliżenia zachowania algorytmu, jeśli stosuje się metodę aproksymacji.