852 - ich verstehe nichts

Dr Franke Ghostwriter
852 - ich verstehe nichts

Hallo,
hat schon jemand mit der Graphentheorie angefangen? Ich verstehe einfach nichts. Es kommt mir vor als wuerde ich japanisch lesen. Abgesehen davon, dass das Kapitel 1 schon unlogisch war, verstehe ich Kapitel 2 auch nicht. Was soll das mit dem Rechenaufwand? Was sagt mir dieses O(n) und wie soll man das berechnen koennen? Wie soll man aufgrund dieser KE die Uebungsaufgaben 2.1 und 2.2 loesen.
Nachdem ich die linerare Optimierung so gut fand, bin ich nun ziemlich ueberfordert.😕
Gruss,
Ulrike
 
Ulrike,

die Graphentheorie ist auf alle Fälle aufwendiger als die lineare Optimierung. In Kapitel 1 stehen ja vor allem Definitionen, die sich mir auch nicht gleich beim ersten Lesen erschlossen haben. Die wirklich klausurrelevanten Algorithmen kommen ab Kapitel 3. Beim Durcharbeiten dieser Algorithmen sind mir dann so allmählich die Definitionen aus Kapitel 1 klargeworden. Und lass Dich nicht entmutigen: Die Algorithmen/Übungsaufgaben wirken am Anfang total unverständlich und kompliziert (weil alles streng mathematisch formuliert ist und jedes dritte Zeichen irgenein griechischer Buchstabe ist...), aber wenn man sich einmal mit der Schreibweise "angefreundet" hat, dann stellen sich die meisten Aufgaben als gar nicht so schwierig heraus. Wenn Du konkrete Fragen hast, dann versuche ich Dir gern zu helfen!
Zu dem O(n): Dieses Zeichen ist ein Symbol für den Rechenaufwand. Es lässt sich daraus ablesen, wie stark der Rechenaufwand wächst, wenn die Problemgröße steigt. Ich probier's mal mit einem Beispiel: Stell Dir vor, Du hast einen gaaaaaaanz einfachen Algorithmus, der n Zahlen addiert und anschließend das Ergebnis speichert. Bei n=1 führt der Algorithmus keine Rechenoperation durch und eine Speicheroperation, also insgesamt eine Operation. Bei z.B. n=5 muss der Algorithmus vier Additionen und einen Speichervorgang durchführen, also fünf Operationen. Es sind also stets n Operationen durchzuführen, der Rechenaufwand des Algorithmus ist also O(n). Das bedeutet vor allem auch (und das ist bei Algorithmen mit großen Problemen wichtig!) dass bei doppelter Problemgröße der doppelte Rechenaufwand erforderlich ist.
Jetzt stellst Du Dir mal einen zweiten Algorithmus vor, der für jede Zahl n alle möglichen Binärzahlen mit n Stellen berechnet. Für n=1 gibt es genau zwei solche Binärzahlen, nämlich "0" und "1". Bei n= 2 werden es vier Binärzahlen ("00", "01", "10", "11"), bei n=3 acht, bei n=4 sechzehn usw...! Das heißt, immer wenn n um eins größer wird, dann wird sich auch der Rechenaufwand des Algorithmus verdoppeln --> der Rechenaufwand ist O(2 hoch n)!
Ich hoffe, das war einigermaßen verständlich...
Gruß Petra
 
Petra,
vielen Dank fuer Deine Erklaerung. Zumindest ist mir nun etwas klarer wie der Rechenaufwand berechnet wird.
Ansonsten sollte ich wohl mich auf Kapitel 3 stuerzen (und nicht aufgeben) um Kapitel 1 zu verstehen.
Koenntest Du mir bitte die Uebungsaufgabe 2.2 erklaeren? Ich komme zwar auf diese Werte (weiss nur nicht warum man das so rechnet) Auch verstehe ich nicht, warum bei einem polynominalen Rechenaufwand die Problemgroesse mit einem Faktor multipliziert, bei einem exponentiellem Aufwand allerdings nur addiert wird.
Vielen Dank!
Gruss,
Ulrike
 
Ulrike,

zu ÜA 2.2:
Die Frage ist hier, um wieviel ein Problem bei einer Steigerung der Rechnerleistung um das 100- bzw. 1000-fache größer werden kann, so dass die benötigte Rechnerzeit konstant bleibt. Nimm die erste Zeile (Rechenaufwand = n^2): In einer festgelegten Zeit T (die in den Berechnungen keine Rolle spielt) schafft ein heutiger Computer ein Problem der Größe N1. Ein 100mal schnellerer Computer schafft das 100fache an Rechenschritten in der gleichen Zeit - da aber der Rechenaufwand quadratisch steigt, darf das Problem nur 10mal so groß sein, um das 100fache an Rechenschritten zu benötigen. Mathematisch wäre das die Gleichung: 100*(N1^2) = (10*N1)^2; bei der 1000fachen Rechenleistung entsprechend: 1000*(N1^2) = (31,6*N1)^2.
Oder z.B. die dritte Zeile (Rechenaufwand = 2^n): Hier müsste die Rechnung lauten: 1000* 2^N3 = 2^(N3+9,97) = 2^N3 * 2^9,97; was stimmt, da 2^9,97 =1000 ist.
Das heißt als Fazit, dass bei exponentiellem Aufwand die trotz 1000facher Zunahme der Rechnerleistung nur ein geringfügig größeres Problem in der gleichen Zeit gelöst werden kann.
Ich merke schon, das Erklären von mathematischen Dingen ist hier nicht so einfach, aber ich hoffe, es hilft Dir trotzdem. Übrigens kann ich mit nicht daran erinnern, dass sowas jemals in einer Klausur abgefragt wurde...
Gruß Petra
 
Hallo Cobra,
wie kommst Du so schnell durch die KE??
Hast Du einen Tip für mich? Ich bin gerade mal bei Kurs 851 KE2.

Also, weiterhin so gutes Vorankommen

Carola

Hallo Carola,

ich war nur bei 851 schnell. Die fand ich recht logisch und einfach, dann geht es schnell. Nicht das ich Dir jetzt die Saetze vor beten koennte....
Bei 852 lese ich alles 3mal und verstehe es nun erst mit Petras Hilfe.

Gruss,
Ulrike
 
Oben