Dies sind im Grunde zwei verschiedene Perspektiven oder zwei verschiedene Arten, die Laufzeit anzuzeigen. Beide sind gültig (keiner ist falsch), aberO (bd) ist wohl nützlicher in den Einstellungen, die normalerweise in AI auftreten.
In der Community der Algorithmen und der CS-Theorie zählen die Leute dort gerne die Laufzeit als Funktion der Anzahl der Eckpunkte und Kanten im Diagramm. Warum? In diesem Zusammenhang ist die Worst-Case-Laufzeit am sinnvollsten. Bei den Problemen, die normalerweise in dieser Community berücksichtigt werden, müssen wir im schlimmsten Fall das gesamte Diagramm untersuchen, sodass Sie normalerweise nicht hoffen können, es besser zu machen alsO ( | V.| + | E.| ).
In der KI-Community neigen die Leute dazu, die Laufzeit unterschiedlich zu zählen. Sie betrachten oft eine bestimmte Art von Grafik: einen Baum mit Verzweigungsfaktorb. In den dort auftretenden Situationen ist der Graph oft unendlich oder sehr groß. Normalerweise bemühen wir uns, die Untersuchung des gesamten Diagramms zu vermeiden - dies ist häufig eines der Hauptziele der Algorithmen. Somit wird die Komplexität in Bezug auf gezählt| V.| und | E.| macht keinen Sinn: | V.| kann unendlich sein, und auf jeden Fall planen wir nicht, den gesamten Graphen zu untersuchen. Alles, was zählt, ist die Anzahl der Eckpunkte, die wir tatsächlich besuchen, nicht die Anzahl, die an anderer Stelle existieren kann, die uns aber egal ist.
Für die Situationen, die häufig in der KI-Community auftreten, ist es oft sinnvoller, die Laufzeit anhand des Verzweigungsfaktors des Baums zu messen (b) und die Tiefe des Zielknotens (d). Sobald wir den Zielknoten gefunden haben, stoppt der Algorithmus normalerweise. Wenn wir in einem solchen Baum jeden Scheitelpunkt in der Tiefe untersuchen≤ d Bevor wir den Zielknoten finden, werden wir ihn besuchen O (bd)Eckpunkte, bevor wir aufhören. Wenn Sie möchten, können Sie sich dies als Besuch einer Teilmenge des Diagramms mit vorstellen| V.| =O(bd) (wo jetzt V. enthält nur die Eckpunkte, die wir besuchen) und | E.| =O(bd) (E. enthält nur die Kanten, die wir betrachten), und Sie könnten sich eine vorstellen O (bd)-Zeitalgorithmus als einer, dessen Laufzeit ist O ( | V.| + | E.| )... obwohl dies ein bisschen ein Missbrauch der | V.| , | E.|Notation. Wie auch immer, hoffentlich können Sie sehen warumO (bd) ist informativer als O ( | V.| + | E.| ) in diesem Zusammenhang.