Ich habe die Einführung in Algorithmen von Cormen et al. und ich lese die Aussage des Hauptsatzes ab Seite 73 . In Fall 3 gibt es auch eine Regelmäßigkeitsbedingung, die erfüllt sein muss, um den Satz zu verwenden:
... 3. Wenn
für eine konstante und wenn
[ dies ist die Regelmäßigkeitsbedingung ]
für eine Konstante und für alle ausreichend großen dann ..
Kann mir jemand sagen, warum die Regelmäßigkeitsbedingung benötigt wird? Wie versagt der Satz, wenn die Bedingung nicht erfüllt ist?
Antworten:
Kein strenger Beweis, sondern eine Erklärung aus der Vogelperspektive.
Stellen Sie sich die Wiederholung als Baum vor. Der dritte Fall deckt das Szenario ab, in dem der Wurzelknoten die Laufzeit asymptotisch dominiert, dh der größte Teil der Arbeit wird im Messknoten über dem Wiederholungsbaum ausgeführt. Dann ist die Laufzeit .Θ ( f ( n ) )ein T( n / b ) + f( n ) Θ ( f( n ) )
Um sicherzustellen, dass der Root tatsächlich mehr Arbeit leistet, benötigen Sie die
Dies besagt, dass (die Menge der in der Wurzel geleisteten Arbeit) mindestens so groß sein muss wie die Summe der in den unteren Ebenen geleisteten Arbeit. (Die Wiederholung wird mal auf der Eingabe aufgerufen .)a n / bf(n) a n/b
ZB für die Wiederholung die Arbeit auf der Ebene unter der Wurzel ein Viertel so groß und wird nur zweimal gegen so dass die Wurzel dominiert.( n / 4 + n / 4 ) nT(n)=2T(n/4)+n (n/4+n/4) n
Was aber, wenn die Funktion die Regelmäßigkeitsbedingung nicht erfüllt? ZB statt ? Dann ist die Arbeit in den unteren Ebenen möglicherweise größer als die in der Wurzel, sodass Sie nicht sicher sind, ob die Wurzel dominiert.ncos(n) n
quelle
Sei und , so dass Für den Fall 3 benötigen wir (für einige ) und die Regelmäßigkeitsbedingung (für etwas ). Die Regelmäßigkeitsbedingung erhält man aus dem Beweis, dh es handelt sich um ein beweiserzeugtes Konzept. Obwohl die Regelmäßigkeitsbedingung nicht erforderlich ist (siehe das Beispiel in Wikipedia, ), können Sie sie nicht vollständig löschen, wie das folgende Beispiel zeigt. Betrachte Seia=1 b=2
Es gibt einen allgemeineren Satz, Akra-Bazzi, in dem die Regelmäßigkeitsbedingung durch eine explizite Größe ersetzt wird, die in das Ergebnis eingeht.
quelle