AD: Ungenaue Aufgabenstellung?
2006-11-07 19:32
Hackbert
Moin moin!
Es hieß hier in einer AD-Übungsaufgabe:
"Die Laufzeit eines Algorithmus sei
[img]http://mokrates.de/cgi-bin/texstring?f(n)%20%3D%204n%5E2%20-%202n%20%2B%202[/img]. Finden Sie eine Funktion g(n), sodass f(n) = O(g(n)) gilt und beweisen Sie ihre Annahme."
Ich verstehe daraus: finden Sie eine beliebige Funktion g(n), für die die obige Beziehung gilt.
Also hat sich unsere Gruppe daran gemacht, eine solche Funktion zu finden und die Beziehung zu beweisen. Dieser Beweis wurde von unserer Übungsgruppenleiterin als korrekt akzeptiert. Allerdings wurde uns die Hälfte der Punkte dafür abgezogen, dass wir nicht
[img]http://mokrates.de/cgi-bin/texstring?g(n)%20%3D%20n%5E2[/img] gewählt haben. Aus der Aufgabenstellung war dies meiner Meinung nach nicht ersichtlich. Es wurde nach einer nicht näher spezifizierten Funktion gefragt.
Mir geht es hier nicht um die Punkte, sondern ums Prinzip. Ich wäre niemals im Leben darauf gekommen, dass hier als einzig gültige Funktion [img]http://mokrates.de/cgi-bin/texstring?g(n)%20%3D%20n%5E2[/img] erlaubt ist.
Begründet wurde dies folgendermaßen: Es ginge hier schließlich um die O-Notation und man sollte erkennen, dass konstante Faktoren für die Zuordnung zu einer Komplexitätsklasse keine Rolle spielen. Mit anderen Worten: man sollte zeigen, dass man die O-Notation "verstanden" hat.
Ich finde dies ist keine Begründung. Ich kann ja genausogut anführen, dass bewusst eine andere Funktion gewählt wurde (in unserem Falle
[img]http://mokrates.de/cgi-bin/texstring?g(n)%20%3D%20n%5E3%2B2[/img]), um zu zeigen, dass f nicht nur zur Klasse O(n^2), sondern auch O(n^k) für k >= 2 angehört.
Was meint ihr dazu? Die Leute, die es "richtig" gemacht haben: Woher wusstet ihr, dass nur diese eine Funktion erlaubt ist?
Es hieß hier in einer AD-Übungsaufgabe:
"Die Laufzeit eines Algorithmus sei
[img]http://mokrates.de/cgi-bin/texstring?f(n)%20%3D%204n%5E2%20-%202n%20%2B%202[/img]. Finden Sie eine Funktion g(n), sodass f(n) = O(g(n)) gilt und beweisen Sie ihre Annahme."
Ich verstehe daraus: finden Sie eine beliebige Funktion g(n), für die die obige Beziehung gilt.
Also hat sich unsere Gruppe daran gemacht, eine solche Funktion zu finden und die Beziehung zu beweisen. Dieser Beweis wurde von unserer Übungsgruppenleiterin als korrekt akzeptiert. Allerdings wurde uns die Hälfte der Punkte dafür abgezogen, dass wir nicht
[img]http://mokrates.de/cgi-bin/texstring?g(n)%20%3D%20n%5E2[/img] gewählt haben. Aus der Aufgabenstellung war dies meiner Meinung nach nicht ersichtlich. Es wurde nach einer nicht näher spezifizierten Funktion gefragt.
Mir geht es hier nicht um die Punkte, sondern ums Prinzip. Ich wäre niemals im Leben darauf gekommen, dass hier als einzig gültige Funktion [img]http://mokrates.de/cgi-bin/texstring?g(n)%20%3D%20n%5E2[/img] erlaubt ist.
Begründet wurde dies folgendermaßen: Es ginge hier schließlich um die O-Notation und man sollte erkennen, dass konstante Faktoren für die Zuordnung zu einer Komplexitätsklasse keine Rolle spielen. Mit anderen Worten: man sollte zeigen, dass man die O-Notation "verstanden" hat.
Ich finde dies ist keine Begründung. Ich kann ja genausogut anführen, dass bewusst eine andere Funktion gewählt wurde (in unserem Falle
[img]http://mokrates.de/cgi-bin/texstring?g(n)%20%3D%20n%5E3%2B2[/img]), um zu zeigen, dass f nicht nur zur Klasse O(n^2), sondern auch O(n^k) für k >= 2 angehört.
Was meint ihr dazu? Die Leute, die es "richtig" gemacht haben: Woher wusstet ihr, dass nur diese eine Funktion erlaubt ist?