die-informatiker.net Logo   2513 registrierte Benutzer.
Insgesamt 96850 Beiträge.
Suche
• erweiterte Suche
Login
Benutzername:
Passwort:
• Registrieren

Ein Projekt des

Dijikstra Algorithmus (Klausur)

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.
Foren-Übersicht / Algorithmen und Datenstrukturen (SS09)
 <   Seite  von 2
Autor Nachricht
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Mo 20.07.09, 18:01       Titel: Nach oben
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!

Antworten mit Zitat
gh0un
Observer
Observer


Beiträge: 47

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Mo 20.07.09, 18:54       Titel: Nach oben
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^^

Antworten mit Zitat
Micotom
Observer
Observer


Beiträge: 53

Private Nachricht senden
 

Beitrag Verfasst am: Mo 20.07.09, 19:13       Titel: Nach oben

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? :)

Antworten mit Zitat
alexg
Prototype
Prototype


Beiträge: 95

Private Nachricht senden
 

Beitrag Verfasst am: Mo 20.07.09, 19:59       Titel: Nach oben

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?

Antworten mit Zitat
Bastian Gebhardt
Admin
Admin
Bastian Gebhardt

Beiträge: 1032

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Mo 20.07.09, 20:00       Titel: Nach oben
Micotom hat Folgendes geschrieben:
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? :)

Nein! Man bekommt bei der Klausur allgemein nur Punkte wenn man alles komplett richtig hat. Teillösungen fließen nicht in die Wertung mit ein. (Klar gibts das! ;))

_________________

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)

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Mo 20.07.09, 20:01       Titel: Nach oben
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!

Antworten mit Zitat
alexg
Prototype
Prototype


Beiträge: 95

Private Nachricht senden
 

Beitrag Verfasst am: Mo 20.07.09, 20:39       Titel: Nach oben

ich meinte die teilaufgabe b) die sich auf das dyn programmieren bezog. die gesamte aufgabe gab ja 6 punkte. (a+b+c)

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Mo 20.07.09, 21:21       Titel: Nach oben
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!

Antworten mit Zitat
alexg
Prototype
Prototype


Beiträge: 95

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 0:04       Titel: Nach oben
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:

LaTeX

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).

Antworten mit Zitat
nixtun
Implementor
Implementor


Beiträge: 289

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 9:11       Titel: Nach oben

R-S-Bäume funktionieren auch mit gelben und grünen Blättern.

Antworten mit Zitat
F.Satzger
Implementor
Implementor
F.Satzger

Beiträge: 455

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 9:40       Titel: Nach oben

dann sinds aber G-G-Bäume xD

_________________

“Java is the most distressing thing to hit computing since MS-DOS.”
– Alan Kay

Antworten mit Zitat
nixtun
Implementor
Implementor


Beiträge: 289

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 10:23       Titel: Nach oben

Informatiker malen sich ihre Bäume an, wie es Ihnen gefällt!

Weiß eigentlich jemand noch wie echte Bäume aussehen?

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Di 21.07.09, 14:57       Titel: Nach oben
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!

Antworten mit Zitat
chRonaldo
Prototype
Prototype


Beiträge: 77

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 16:41       Titel: Algoaufgaben Nach oben

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?

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Di 21.07.09, 16:46       Titel: Re: Algoaufgaben Nach oben
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!

Antworten mit Zitat
Tobi Nawa
Prototype
Prototype
Tobi Nawa

Beiträge: 74

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 18:03       Titel: Nach oben
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 :-D

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Di 21.07.09, 18:16       Titel: Nach oben
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!

Antworten mit Zitat
Tobi Nawa
Prototype
Prototype
Tobi Nawa

Beiträge: 74

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 18:20       Titel: Nach oben

ja mist…. in der Klausur erschien der mir (und anscheinend vielen anderen) logisch…

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Di 21.07.09, 18:28       Titel: Nach oben
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!

Antworten mit Zitat
Xaver
Prototype
Prototype


Beiträge: 90

Private Nachricht senden
 

Beitrag Verfasst am: Di 21.07.09, 19:19       Titel: Nach oben

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???)

Antworten mit Zitat
Lotta
Implementor
Implementor
Lotta

Beiträge: 295

Private Nachricht senden
 

Beitrag Verfasst am: Do 23.07.09, 22:55       Titel: Nach oben

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! :)

_________________

Antworten mit Zitat
Julien Oster
Admin
Admin
Julien Oster

Beiträge: 1154

Private Nachricht senden
E-Mail senden

Beitrag Verfasst am: Fr 24.07.09, 14:25       Titel: Nach oben
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!

Antworten mit Zitat
Xaver
Prototype
Prototype


Beiträge: 90

Private Nachricht senden
 

Beitrag Verfasst am: Fr 24.07.09, 14:48       Titel: Nach oben
Julien Oster hat Folgendes geschrieben:

Nachdem in der Angabe stand, dass es ausreicht, die Rekurrenz niederzuschreiben: ja! 8)

ich glaube den Fachbegriff hat keiner verstanden…. vor allem weil da so viel Platz zum schreiben war ^^

Antworten mit Zitat
Lotta
Implementor
Implementor
Lotta

Beiträge: 295

Private Nachricht senden
 

Beitrag Verfasst am: Mo 27.07.09, 11:50       Titel: Nach oben
Zitat:
ich glaube den Fachbegriff hat keiner verstanden…. vor allem weil da so viel Platz zum schreiben war ^^


*unterschreib*

_________________

Antworten mit Zitat
Foren-Übersicht / Algorithmen und Datenstrukturen (SS09)
 <   Seite  von 2

Alle Zeiten sind GMT + 1 Stunde
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


die-informatiker.net
Das Forum der Informatik an der LMU (Uni München)
Ein Projekt des LMU Alumni Informatik e.V.
News
Mehr Privacy auf die-informatiker.net
Mo 26.07.10, 21:46

News Archiv
So 01.08.2010

#Event# Theatron Musik Sommer

Mo 02.08.2010

#Event# Theatron Musik Sommer

Di 03.08.2010

#Event# Theatron Musik Sommer

"Forum Lehre" - Bachelor/Masterverbesserung

Mi 04.08.2010

#Event# Theatron Musik Sommer

Do 05.08.2010

#Event# Theatron Musik Sommer

Fr 06.08.2010

#Event# Theatron Musik Sommer

Sa 07.08.2010

#Event# Theatron Musik Sommer

So 08.08.2010

#Event# Theatron Musik Sommer

Mo 09.08.2010

#Event# Theatron Musik Sommer

Di 10.08.2010

#Event# Theatron Musik Sommer

Mi 11.08.2010

#Event# Theatron Musik Sommer

Do 12.08.2010

#Event# Theatron Musik Sommer

Fr 13.08.2010

#Event# Theatron Musik Sommer

Sa 14.08.2010

#Event# Theatron Musik Sommer

alle Termine
Foren Info
Wichtige Links:
• Algebra I
• Informatik I
• Analysis I
• Informatik III
• Analysis II
• Programmierpraktikum
• Lineare Algebra I
• Analysis II
• Analysis II Übungen
• Bioinformatik-Portal
• Digitale Medien
• Diskrete Strukturen :: Übungsblätter
• Diskrete Strukturen
• Informatik II
• Informatik I



Impressum
© 2007 die-informatiker.net
Powered by phpBB 2.0.23 © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de und die-informatiker.net.