| Autor |
Nachricht |
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Mo 20.07.09, 18:01
Titel:
|
|
| Xaver hat Folgendes geschrieben: |
ich hab gar net an die vorlesung gedacht sondern es einfach “intuitiv” gelöst bei der dyn. prog:
definiere: smax(i)=s(i)+ max{smax(k) | k€N, k < i-2}
und das größte von smax(11) , 12 und 13 ist die größtmögliche Zahl der Sterne die nach 13 Dörfern gesammelt werden konnte ^^ |
Sehr schön, aber für die Laufzeit reicht das noch nicht ganz aus: anstatt das Maximum ab “k < i-2” zu suchen, solltest du bei der Variante das Maximum zwischen i-2 und i-5 suchen. Sonst müsste die Laufzeit doch 1+2+3+4+… werden, was nur mehr quadratisch nach oben abgeschätzt werden kann (kleiner Gauß), nicht mehr linear.
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
gh0un
Observer

Beiträge: 47
|
Verfasst am: Mo 20.07.09, 18:54
Titel:
|
|
| Bastian Gebhardt hat Folgendes geschrieben: |
[*] Knoten haben eine Farbe, rot oder schwarz (an so was einfaches haben viele wohl nicht gedacht)
[*] Die Wurzel ist schwarz
[*] ein roter Knoten darf keine roten Kinder haben
[*] in jedem Pfad von Wurzel zu jedem Blatt ist die Anzahl an schwarzen Knoten gleich (nicht konstant, ändert sich doch beim Einfügen)
Alle anderen Eigenschaften wie der längste Pfad ist maximal doppelt so lang wie der kürzeste Pfad, der Baum ist (quasi) balanciert oder ähnliches sind Folgerungen aus den oberen vier. |
Hab alle bis auf das erste, das war mir dann doch zu einfach um draufzukommen.
Ich denk mal die erste Eigenschaft haben viele vergessen, weil der Name “Rot-Schwarz Baum”, bereits implizieren könnte dass der baum rote und schwarze knoten hat.
Natürlich ist das für einen aussenstehenden nicht 100% trivial, aber ich bin leider auch nicht drauf gekommen das hinzuschreiben 
Wenn ein RS-Baum stattdessen xyz-Baum heißen würde, hätten es wahrscheinlich viele nicht vergessen hinzuschreiben.
Das ist ein bisschen so, als würde man bei den Merkmalen des Eiffelturms als erstes das Merkmal: “Turm” auflisten, obwohl es eigtl klar ist dass es sich um einen Turm handelt.
Wenn der Eiffelturm hingegen nur Eiffel hieße, wäre das Merkmal Turm schon um einiges sinnvoller^^
|
|
|
|
|
|
|
|
|
|
|
Micotom
Observer

Beiträge: 53
|
Verfasst am: Mo 20.07.09, 19:13
Titel:
|
|
|
war wohl als “geschenkte”-punkte-aufgabe gedacht - und ging zumindest bei mir ordentlich nach hinten los …
gab’s denn auf jede eigenschaft einen punkt oder nen halben? 
|
|
|
|
|
|
|
|
|
|
|
alexg
Prototype

Beiträge: 95
|
Verfasst am: Mo 20.07.09, 19:59
Titel:
|
|
|
wie viele punkte gabs für die teilaufgabe mit der dyn programmierung?
ist die aussage: der kuerzeste weg in einem graph liegt immer auf einem minimalen spannbaum wahr oder falsch?
|
|
|
|
|
|
|
|
|
|
|
Bastian Gebhardt
Admin


Beiträge: 1032
|
|
|
_________________ When I see a bird that walks and swims like a duck, I call that bird a duck. And if Chuck Norris says it's a cow, THEN IT'S A COW GODDAMMIT!
alles über den IRC-Channel (mit Webclient)
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Mo 20.07.09, 20:01
Titel:
|
|
| alexg hat Folgendes geschrieben: |
wie viele punkte gabs für die teilaufgabe mit der dyn programmierung?
|
6
| Zitat: |
ist die aussage: der kuerzeste weg in einem graph liegt immer auf einem minimalen spannbaum wahr oder falsch? |
Falsch
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
alexg
Prototype

Beiträge: 95
|
Verfasst am: Mo 20.07.09, 20:39
Titel:
|
|
|
ich meinte die teilaufgabe b) die sich auf das dyn programmieren bezog. die gesamte aufgabe gab ja 6 punkte. (a+b+c)
|
|
|
|
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Mo 20.07.09, 21:21
Titel:
|
|
| alexg hat Folgendes geschrieben: |
| ich meinte die teilaufgabe b) die sich auf das dyn programmieren bezog. die gesamte aufgabe gab ja 6 punkte. (a+b+c) |
Wir sind noch nicht mit dem Korrigieren fertig, kann sich also noch ändern.
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
alexg
Prototype

Beiträge: 95
|
Verfasst am: Di 21.07.09, 0:04
Titel:
|
|
| Julien Oster hat Folgendes geschrieben: |
Hallo,
| Lotta hat Folgendes geschrieben: |
-Wie ging die Aufgabe mit der dynamischen Programmierung? Ich kenne Longest Subsequence und Matrizenmultiplikation, aber bin leider immer noch nicht dahintergekommen, wie man die bzw. einen von denen modifizieren muss, damit auch die Lücken berücksichtigt werden (vielleicht habe ich auch zu kompliziert gedacht? bin nur immer wieder daran gescheitert, dass es doch auch Lösungen geben muss, wo mehr als 2 ausgelassen werden, um an eine bestimmte Sternanzahl zu kommen, die man sonst auslassen müsste)
Und woher hätte man das können sollen (Hausaufgabe, Skript?!)?
|
Als ich sie gelöst habe hab ich mich an Longest Increasing Subsequence orientiert, im Grunde ist das Problem ganz ähnlich.
Und zwar so: Für jede Kirche i ist der Weg bis zu ihr (aber nicht notwendigerweise einschließlich der Kirche selbst!) das Maximum aus entweder der Summe an Sternen des Wegs bis zur Kirche unmittelbar vor ihr, also i-1, ohne die Sterne der Kirche i selbst, oder der Summe an Sternen des Wegs bis zur Kirche zwei Plätze vor ihr, also i-2, ebenfalls ohne die Kirche i selbst, oder der Summe an Sternen bis zur Kirche drei Plätze vor ihr, also i-3, diesmal einschließlich der Sterne der Kirche i selbst.
Sonderfälle sind in den ersten drei Plätzen: dort muss man für Kirche i jeweils einfach nur das Maximum aus den vorherigen und der Kirche i selbst nehmen (und nicht etwa einfach nur die Anzahl Sterne der Kirche i selbst, wie es die meisten, die den Rest richtig haben gemacht haben). Einfach geht das, wenn man für (nicht existierende) Kirchen mit Index 0 oder kleiner einfach “0 Sterne” setzt.
Daraus ergibt sich folgende Rekurrenz:

die sich sehr leicht mit dynamischer Programmierung in einer Schleife angeben lässt. Danach sucht man einfach von hinten anfangend das maximale p_i und hat die maximale Anzahl Sterne. (Wenn man noch will kann man Vorgänger speichern um sich am Ende dann durchzuhangeln und so an die tatsächliche Sequenz zu kommen, aber in der Klausur war nur die Summe der Sterne verlangt.)
Mindestens eine Variante ist noch möglich, bei der stattdessen die Indizes i-3, i-4 und i-5 angesehen und die Sterne der aktuellen Kirche immer dazugezählt werden.
EDIT: Klarer gemacht, Rechtschreibfehler asugebessert |
finds ehrlich gesagt unfair, so eine aufgabe zu stellen ohne jegliche tips/hinweise, die formel zu finden. denn wenn man nicht dahinter gekommen ist, konnte man auch schlecht etwas implementieren. erinnert mich mehr an ne aufgabe aus nem knobelheft, da die umsetzung in pseudocode ja trivial ist, sobald man hinter die formel gekommen ist. dazu natürliich die zeitliche begrenzung :/ .
das einzige, was einem das wissen aus der vorlesung gebracht hatte, war dass die lösung schrittweise aus teillösungen aufgebaut wird => dyn. programmierung, laufzeit O(n).
|
|
|
|
|
|
|
|
|
|
|
nixtun
Implementor

Beiträge: 289
|
Verfasst am: Di 21.07.09, 9:11
Titel:
|
|
|
R-S-Bäume funktionieren auch mit gelben und grünen Blättern.
|
|
|
|
|
|
|
|
|
|
|
F.Satzger
Implementor


Beiträge: 455
|
Verfasst am: Di 21.07.09, 9:40
Titel:
|
|
|
dann sinds aber G-G-Bäume xD
|
|
|
_________________ “Java is the most distressing thing to hit computing since MS-DOS.”
– Alan Kay
|
|
|
|
|
|
|
nixtun
Implementor

Beiträge: 289
|
Verfasst am: Di 21.07.09, 10:23
Titel:
|
|
|
Informatiker malen sich ihre Bäume an, wie es Ihnen gefällt!
Weiß eigentlich jemand noch wie echte Bäume aussehen?
|
|
|
|
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Di 21.07.09, 14:57
Titel:
|
|
| alexg hat Folgendes geschrieben: |
finds ehrlich gesagt unfair, so eine aufgabe zu stellen ohne jegliche tips/hinweise, die formel zu finden. denn wenn man nicht dahinter gekommen ist, konnte man auch schlecht etwas implementieren. erinnert mich mehr an ne aufgabe aus nem knobelheft, da die umsetzung in pseudocode ja trivial ist, sobald man hinter die formel gekommen ist. dazu natürliich die zeitliche begrenzung :/ .
|
Naja, in der Vorlesung geht es eben um Algorithmen und Datenstrukturen, und eben auch darum, sich Algorithmen selbst zu überlegen. Nicht nur stures ausprogrammieren.
Das geht sogar soweit, dass nicht mal Pseudocode verlangt war. Das bloße Hinschreiben der Formal hat ausgereicht!
Und zum Thema “Knobelaufgaben”: Willkommen in der Informatik! Genau darum geht’s hier. Ohne zeitliche Begrenzung und Klausurdruck macht’s dann vielleicht auch mehr Spaß ;-D
| Zitat: |
das einzige, was einem das wissen aus der vorlesung gebracht hatte, war dass die lösung schrittweise aus teillösungen aufgebaut wird => dyn. programmierung, laufzeit O(n). |
Genau, und das Aufspalten in Teillösungen ist schon die halbe Miete. (O(n) ist es übrigens nicht unbedingt, nur weil es mit dynamischer Programmierung gelöst ist. In dem Fall aber schon.)
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
chRonaldo
Prototype

Beiträge: 77
|
Verfasst am: Di 21.07.09, 16:41
Titel: Algoaufgaben
|
|
|
Wie werden egtl. die Punkte für die “Algorithmusersellungsaufgaben” vergeben?
Muss alles stimmen also Laufzeit und dass er funktioniert um überhaupt Punkte zu kriegen oder hat es gereicht, dass der Algorithmus fktioniert um überhaupt Punkte zu kriegen?
Und wenn der ALgorithmus nicht funktioniert krigt man trozdem Punkte wenn man eine gute Idee hatte aber einen kleinen Fehler hat und der Algorithmus deswegen nicht funktioniert?
|
|
|
|
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Di 21.07.09, 16:46
Titel: Re: Algoaufgaben
|
|
| chRonaldo hat Folgendes geschrieben: |
Wie werden egtl. die Punkte für die “Algorithmusersellungsaufgaben” vergeben?
Muss alles stimmen also Laufzeit und dass er funktioniert um überhaupt Punkte zu kriegen oder hat es gereicht, dass der Algorithmus fktioniert um überhaupt Punkte zu kriegen?
Und wenn der ALgorithmus nicht funktioniert krigt man trozdem Punkte wenn man eine gute Idee hatte aber einen kleinen Fehler hat und der Algorithmus deswegen nicht funktioniert? |
Ein funktionierender Algorithmus gibt auf keinen Fall 0 Punkte, auch wenn er kleinere Fehler hat oder die Laufzeit nicht ganz stimmt. Wenn die Idee erkennbar ist, ist das meist schon was.
Was anderes sind allerdings (theoretisch doch irgendwie korrekte) Lösungen die, als Text formuliert, so etwas machen sollen wie “probiere alle möglichen Kombination aus und nehme die beste”. Dass das funktioniert ist klar, aber, äh.
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
Tobi Nawa
Prototype


Beiträge: 74
|
Verfasst am: Di 21.07.09, 18:03
Titel:
|
|
| Julien Oster hat Folgendes geschrieben: |
Achja, ich denke ich verrate nicht zu viel, wenn ich sage, dass viele die Aufforderung zur dynamischen Programmierung ignoriert und einfach einen Greedy-Ansatz implementiert haben. Jetzt ist Greedy zwar streng genommen ein Spezialfall von dynamischer Programmierung, funktioniert hier aber nicht :P
Die Behauptung, es sei am Besten, die Anzahl der Kirchenbesuche zu maximieren, kam auch oft vor.
|
Ich hab’s mit Greedy gelöst und denke, dass es sehr wohl funktioniert. Hab das ähnlich, wie die Aufgabe mit den Vorlesungen und der Raumverteilung gemacht.
Hab als Anfangswert i und als Endwert i+3 genommen, dann alle kompatiblen Möglichkeiten mit Greedy herausgefunden. So habe ich alle möglichen Wege erhalten. Bei jedem hinzunehmen eines (i, i+3) habe ich die Sterne von i dem Weg dazuaddiert.
Am Ende wird einfach der Weg mit dem größten “Sternwert” ausgegeben.
Ich hoffe mal, dass das so passt und auch so verstanden wird… hab da in der Klausur eeend viel geschrieben 
|
|
|
|
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Di 21.07.09, 18:16
Titel:
|
|
| Tobi Nawa hat Folgendes geschrieben: |
Ich hab’s mit Greedy gelöst. Hab das ähnlich, wie die Aufgabe mit den Vorlesungen und der Raumverteilung gemacht.
|
“Greedy” ist allerdings kein Algorithmus sondern eine Klasse von Algorithmen, und bedeutet vereinfacht ausgedrückt nichts anderes, als immer die momentan beste Teillösung zu nehmen.
Der Algorithmus zur Raumverteilung ist ein Beispiel für einen Greedy Algorithmus.
| Zitat: |
Hab als Anfangswert i und als Endwert i+3 genommen, dann alle kompatiblen Möglichkeiten mit Greedy herausgefunden. So habe ich alle möglichen Wege erhalten. Bei jedem hinzunehmen eines (i, i+3) habe ich die Sterne von i dem Weg dazuaddiert.
Am Ende wird einfach der Weg mit dem größten “Sternwert” ausgegeben.
|
Wenn ich mich nicht irre hast du damit nur 3 Wege angelegt. Alle besuchen jede 3. Kirche, nur die erste besuchte Kirche und damit der weitere Versatz ist anders. Wege, die vielleicht mal 3 oder 4 statt 2 Kirchen auslassen gibt’s hier gar nicht.
Wie schon gesagt gab es oft den Versuch, einen Greedy-Algorithmus für dieses Problem zu konstruieren (die meisten wesentlich einfacher: Summe der Sterne immer mit der momentan besten Kombination hochzählen).
Das geht aber nicht! Egal wie man es macht, wenn man sich vorzeitig auf eine momentan beste Teillösung festlegt (anstatt sich wie in allgemeinerer dynamischer Programmierung mehrere Teillösungen offen zu halten), dann kann man mit Pech immer auf das Problem stoßen, dass eine Kirche die viereinhalb Milliarde Sterne bringen würde nicht mehr besucht werden kann, weil der bisherige Weg genau vor ihr hält.
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
Tobi Nawa
Prototype


Beiträge: 74
|
Verfasst am: Di 21.07.09, 18:20
Titel:
|
|
|
ja mist…. in der Klausur erschien der mir (und anscheinend vielen anderen) logisch…
|
|
|
|
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Di 21.07.09, 18:28
Titel:
|
|
| Tobi Nawa hat Folgendes geschrieben: |
| in der Klausur erschien der mir (und anscheinend vielen anderen) logisch… |
Um es nochmal ganz klar zu machen: es gibt nicht “den Greedy Algorithmus”, das ist ein Missverständnis! Sieh das Wort “greedy” (zu deutsch “gierig”) eher als adjektiv, also als Eigenschaft eines Algorithmus.
Dieser Raumverteilungsalgorithmus löst ein ganz spezielles Problem. Ein anderes Beispiel für einen Greedy Algorithmus ist der Dijkstra-Algorithmus zum Finden kürzester Wege, der selbe der auch in der Klausur vorkam und Namensgeber dieses Threads ist! 8)
Der funktioniert zum Beispiel ganz anders, hat aber mit allen Greedy Algorithmen gemein, dass alle anderen Teillösungen zu Gunsten der momentan günstigsten verworfen werden.
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
Xaver
Prototype

Beiträge: 90
|
Verfasst am: Di 21.07.09, 19:19
Titel:
|
|
|
was die Korrektoren davon gehalten haben siehst du ja bei der Einsicht…. ist ja müßig sich zu “beschweren” bevor das Ergebnis da ist(bald???)
|
|
|
|
|
|
|
|
|
|
|
Lotta
Implementor


Beiträge: 295
|
Verfasst am: Do 23.07.09, 22:55
Titel:
|
|
|
Wo/wann/in welcher Form haben wir denn longest increasing subsequence != longest common subsequence gemacht?
Und: Habe ich das richtig verstanden, es hätte also die Formel gereicht? Man will ja vorbereitet sein für Klausur 2! 
|
|
|
_________________ 
|
|
|
|
|
|
|
Julien Oster
Admin


Beiträge: 1154
|
Verfasst am: Fr 24.07.09, 14:25
Titel:
|
|
| Lotta hat Folgendes geschrieben: |
Wo/wann/in welcher Form haben wir denn longest increasing subsequence != longest common subsequence gemacht?
|
Das war eines der späteren Übungsblätter, welches genau müsste ich jetzt auch nachschauen…
| Zitat: |
Und: Habe ich das richtig verstanden, es hätte also die Formel gereicht? Man will ja vorbereitet sein für Klausur 2! :) |
Nachdem in der Angabe stand, dass es ausreicht, die Rekurrenz niederzuschreiben: ja! 8)
|
|
|
_________________ Wir sollen Malen nach Zahlen und schaffen es nicht!
|
|
|
|
|
|
|
Xaver
Prototype

Beiträge: 90
|
|
|
|
|
|
|
|
|
|
|
Lotta
Implementor


Beiträge: 295
|
Verfasst am: Mo 27.07.09, 11:50
Titel:
|
|
| Zitat: |
| ich glaube den Fachbegriff hat keiner verstanden…. vor allem weil da so viel Platz zum schreiben war ^^ |
*unterschreib*
|
|
|
_________________ 
|
|
|
|
|
|
|