Bei welchen Größen schlägt der schnelle Computer mit einem langsamen Algorithmus bei einem schnellen und einem langsamen Computer den langsamen Computer mit einem schnellen Algorithmus?

8

Die Quelle dieser Frage stammt aus einem Grundstudiengang, der eine Einführung in die Analyse von Algorithmen umfasst. Dies ist keine Hausaufgabe, sondern eine in CLRS gestellte Frage.

Sie haben eine langsame Maschine mit MIPS und eine schnelle Maschine mit y MIPS. Sie haben auch zwei Algorithmen derselben Klasse, aber unterschiedliche Laufzeitkomplexitäten: Ein "langsamer" Algorithmus läuft bei T ( n ) = c 1 n 2, während ein "schneller" Algorithmus bei T ( n ) = c 2 n log n läuft .xyT(n)=c1n2T(n)=c2nlogn

Sie führen den langsamen Algorithmus auf der schnellen Maschine und den schnellen Algorithmus auf der langsamen Maschine aus. Was ist der größte Wert von n, so dass die schnelle Maschine, auf der der langsame Algorithmus ausgeführt wird, die langsame Maschine schlägt, auf der der schnelle Algorithmus ausgeführt wird?

Meine bisherige Lösung:

Finden Sie die Menge aller so, dass c 2 n log n istn wobeineine natürliche Zahl ist.

c2nlognx>c1n2y
n

Dies ist meine bisherige Arbeit:

{n:c2nlog2nx>c1n2y,nN}={n:n<c2yc1xlog2n,nN}

Die einzige Lösung, die mir jetzt in den Sinn kommt, besteht darin, alle Werte von tuckern, bis ich das erste n finde, won

n<c2yc1xlog(n)

hält nicht mehr.

DoggoDougal
quelle
3
nxxxx

Antworten:

2

Betrachten Sie Ihre letzte Ungleichung:

n<c2yc1xlog(n)

ClognC=c2yc1x

n=Clog(n)

und herauszufinden, welcher Algorithmus in welchem ​​Intervall schneller ist, indem einfach die jeweiligen Funktionswerte zu einem bestimmten Zeitpunkt im jeweiligen Intervall berechnet werden.

C

n=eW1(ln2C)

Celn2WkC116,74C=17

Raphael
quelle
Nur um sicher zu gehen: Haben Sie meine Gleichung so interpretiert, dass sie das natürliche log oder log-base-2 hat? Ich sollte klarstellen, dass jede Instanz von log (n) von Basis 2 ist und die Frage entsprechend modifizieren wird.
DoggoDougal
log=log2log=lnlog2ln2