AuK
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
== Algorithmen und Komplexität ==
<!--
=== Leistungsnachweise ===
# Prüfungsform: PR = Referat, d.h. 2 Studis erarbeiten und präsentieren neuen Stoff
#* Thema 1: s. Tabelle, linker Teil - 2 Std. Vorlesung + 2 Std. Computerübung
#* Thema 2: s. Tabelle, rechter Teil - 1 Std. Vorlesung + 1 Std. Computerübung
# Benotung
#* 50%: Thema 1
#* 30%: Thema 2
#* 20%: Mitwirkung in den CÜ und in den Diskussionen
=== Ablauf ===
Von ''allen'' Studierenden wird erwartet, dass sie '''vor''' der betreffenden Veranstaltung (V+CÜ) den zum jeweiligen Thema gehörenden [http://www.inf.hs-zigr.de/~wagenkn/AuK-Buch/ Buchtext] gelesen haben.
Während der Vorlesung der jeweiligen Themenverantwortlichen machen die Zuhörer Notizen, die ihnen in der sich anschließenden Diskussion und Evaluation nützlich sind.
Die von den beiden Themenverantwortlichen jeweils gestalte CÜ soll Aufgaben steigenden Schwierigkeitsgrades enthalten und in direktem Bezug zur Vorlesung stehen.
''Konsultationsmöglichkeiten'' gibt es stets in der der betreffenden Veranstaltung vorausgehenden Woche.
Bei der Erarbeitung der Materialien für die Veranstaltungen gehen die jeweils Verantwortlichen bitte folgendermaßen vor:
# Lesen Sie das entsprechende Kapitel im [http://www.inf.hs-zigr.de/~wagenkn/AuK-Buch/ AuK-Buch].
# Greifen Sie die inhaltlichen Schwerpunkte heraus und sichten Sie passende Inhalte in diverser Zusatzliteratur (Bibliothek!!) und im Web.
# Entwerfen Sie die Gliederung Ihres ProgrammingWiki-Beitrags (ProgrammingWiki = PW) und planen Sie die Programmbeispiele.
# Füllen Sie die entworfene Struktur mit Inhalten und ergänzen Sie Übungsaufgaben an den Stellen, wo sie gelöst werden sollten.
# Gehen Sie das erarbeitete PW noch einmal komplett durch.
Zur Vorlesung soll nur das PW verwendet werden, also keine Powerpoint-Folien usw. Gestalten Sie die Vorlesung interaktiv, indem die Zuhörer in Diskussionen und durch das Lösen von kleineren Übungsaufgaben einbezogen werden. Planen Sie Methoden- und Medienwechsel (Tafel, Arbeitsblätter, Computerexperiment, ...).
=== Hinweise zum Thema Wiki bzw. PW ===
* Registrieren Sie sich unbedingt am PW und bearbeiten Sie PW-Seiten grundsätzlich als angemeldeter Nutzer.
* Übernehmen Sie die in der Tabelle vorgegebenen PW-Seitennamen unverändert. Rote Kreuze zeigen an, dass die entsprechende Seite noch nicht existiert.
* [[Wiki_Anleitung|Anleitung zur Arbeit mit einem Wiki]]
* [[Startseite|Programming Wiki]]
* [[Bildrechte im Internet]]
"[http://www.mpi-inf.mpg.de/~mehlhorn/Toolbox.html Data Structures and Algorithms: The Basic Toolbox]"
-->
=== Themen und Bearbeitungsplan ===
Frühere Referate
{|
|-
|
{| border="1" cellpadding="5" cellspacing="0"
!Thema (SS 09-11; '''WS 14/15''')
!SS 09
!SS 10
!SS 11
!WS 13/14
!Verantwortlich ('''WS 14/15''')
!Thema (SS 12)
!SS 12
!WS 13/14
!Verantwortlich ('''WS 13/14''')
{{GruppenEintragAuK|Einführung|Motivation | CW | }}
{{GruppenEintragAuK|Effizienz von Algorithmen|Einführung | CW | }}
{{GruppenEintragAuK|Hilfsmittel Mathematik 1|Felder und Listen | CW | }}
{{GruppenEintragAuK|Hilfsmittel Mathematik 2|Hash Tables und Assoziative Listen | CW | J. Klinger, D. Franke }}
{{GruppenEintragAuK|Teile und Herrsche 1|Sortieren und Suchen | [[Teile und Herrsche WS14-15|X]] | Dana Müller/Robert Stricker }}
{{GruppenEintragAuK|Teile und Herrsche 2|Prioritätswarteschlangen | -- | Oliver Krüger / Maciej Krzan }}
{{GruppenEintragAuK|Systematische Suche|Sortierte Folgen | -- | D. Bitterlich / A. Häse }}
{{GruppenEintragAuK|Verzweigen und beschränken |Graphrepräsentationen | [[Verzweigen und beschränken WS14-15|X]] | J. Hilsberg/H. Kretschmer }}
{{GruppenEintragAuK|Dynamisches Programmieren|Durchläufe durch Graphen | [[Dynamisches Programmieren WS14-15|X]] | S. Feuerriegel, D. Soldan }}
{{GruppenEintragAuK|Greedy-Algorithmen|Kürzeste Wege | [[Greedy-Algorithmen WS14-15|X]] | Andre Krause, Roman Stange }}
{{GruppenEintragAuK|Probabilistische Algorithmen|Minimaler Spannbaum |[[Probabilistische Algorithmen WS14-15|X]] | A.Danker / D.Richter }}
{{GruppenEintragAuK|P-NP-Problem|Algorithmische Entwurfsmuster |[[P-NP-Problem WS14-15|X]] | }}
{{GruppenEintragAuK|Näherungsverfahren 1 | String matching | -- | Y. Oliynyk }}
{{GruppenEintragAuK|Näherungsverfahren 2 | Maximale Flüsse | -- | Y. Oliynyk }}
|}
[http://f-ei.hszg.de/wagenkn/TI/Komplexitaet/Referatesammlung.html Referatesammlung]
=== '''WS 15/16''': Vorträge - je eine Vorlesung und eine Übung (180 min.) ===
Bewertung: 60%, alles im Programming Wiki, kein Extrabeleg
{| class="wikitable"
|-
! Thema (Graphentheorie) !! Passendes Thema (AuK, CW) !! Bearbeiter/in
|-
| -- || Effizienz von Alg. I || CW
|-
| -- || Effizienz von Alg. II || CW
|-
| Grundbegriffe der Graphentheorie 1 || ? || Frank Ehrlich, Ralf Zücker
|-
| Grundbegriffe der Graphentheorie 2 || ? || Anna Bremensztul, Maik Geier
|-
| Kürzeste Wege in un/bewerteten Graphen || ? || Alexander Preuß, Florian Haje
|-
| Minimal aufspannende Bäume || ? || Rene Krause ?
|-
| Matching Probleme || ? || Leonard Mory, Felix Lüpke
|-
| Euler-Kreise und -Wege; Postbotenproblem || ? || Kevin Richter, Patrick Schmidt
|-
| Hamilton-Kreise und -Wege, TSP, Heuristiken || ? || Falko Gawantka, Jonas Wolff
|-
| Färbungsprobleme || ? || Erik Bothe, Lars Eichhorn
|}
==== Hinweis zur Behandlung von Algorithmen im Vortrag ====
# Mathematische Beschreibung
# Effizienzbetrachtung (theoretisch)
# Implementierung in einer PS, die vom Programming Wiki unterstützt wird
# Empirische Effizienzanalyse
=== '''WS 15/16''': Vorträge - je 90 min. (innerhalb der V- und Ü-Zeit) ===
Bewertung: 40%, alles im Programming Wiki, kein Extrabeleg
{| class="wikitable"
|-
! Thema (Graphentheorie) !! Bearbeiter/in
|-
| Netzwerktheorie - Bedeutung und deren Anwendung || Anna Bremensztul, Kevin Richter, Patrick Schmidt
|-
| Eigenschaften von Netzwerken || Rene Krause, ? ?
|-
| Entstehung von Netzwerken || Florian Haje, Erik Bothe, Maik Geier
|-
| Dynamische Prozesse in großen Netzwerken || Alexander Preuß, Frank Ehrlich, Leonard Mory
|-
| Software-basierte Analyse und Modellierung großer Netzwerke || Ralf Zücker, Felix Lüpke, Falko Gawantka, Jonas Wolff
|}
==== Literatur ====
Wagenknecht, Chr.: Algorithmen und Komplexität
Krischke; Röpcke: Graphen und Netzwerktheorie
<!-- {{GruppenEintragAuK|Vertiefungsaufgabe|Präsentation zur Vertiefungsaufgabe| alle Gruppen, je 10 Min. -- noch unsicher!}}
==Vertiefungsaufgabe==
Wichtiger Hinweis: Die Vertiefungsaufgabe wird als Modulübergreifender Beleg bearbeitet - AuK + XML. Damit werden bei reduziertem Arbeitsaufwand Synergien befördert.
Mit der erfolgreichen Bearbeitung der Vertiefungsaufgabe sollen Sie nachweisen, dass Sie in der Lage sind, passende algorithmische Lösungsverfahren anzuwenden, deren Effizienz zu bewerten und alternative Näherungslösungen zu suchen.
Die gestellte Aufgabe ist für alle gleich. Sie wird in den gleichen '''Zweiergruppen''' bearbeitet, wie die Referate (s. obige Liste), die Sie gehalten haben. Es wird erwartet, dass jede Gruppe individuell arbeitet. Im ''schriftlichen Dokumentation'' (Erläuterungen, welche Verfahren ausgewählt und wie sie in den Lösungskontext eingebunden wurden) sind die Anteile der beiden Bearbeiter/innen auszuweisen.
Die Dokumentation soll genau 6 Seiten umfassen und folgendermaßen gegliedert sein:
# Seite (Titelseite): Thema, Name der Bearbeiter/innen; Aufgabenstellung
# Seite: Bild von den Rundreisepositionen und ggf. einer Rundreise, die von irgendeinem Programm ermittelt wurde; Entfernungsmatrix
# Seite: Intuitiver Lösungsversuch und dessen Bewertung
# Seite: Lösung mit einem algorithmischen Entwurfsmuster (Dynamisches Programmieren, ...), das Sie selbst für Ihren Vortrag (s. Liste) oben ''nicht'' ausgearbeitet haben; Empirische Effizienzbewertung
# Seite: Näherungslösung mit einem geeigneten Verfahren Ihrer Wahl; Effizienzbewertung
# Seite: Zusammenfassung und abschließende Bewertung, inkl. Literaturverzeichnis
Die einzelnen Seiten müssen nicht vollständig beschrieben sein: "Weniger" ist manchmal "Mehr"! Auch grafische Darstellungen, Tabellen, Berechnungen, ... sollten in den Text eingefügt werden.
'''Aufgabenstellung''': Navigation - mal etwas anders (''Modulübergreifender Beleg'')
Wir planen eine PKW-Fahrt von Ort A nach Ort B (Streckennetz Sachsen; GPS-Daten!).
Das Web-Interface, dem wir unseren Reisewunsch mitteilen, soll möglichst rasch nach Wunscheingabe wahlweise entweder die schnellste oder die kürzeste Route als Liste ausgeben (zusätzlich auch gern in grafischer Form). Der Nutzer dieses Web-Angebots soll außerdem die Möglichkeit haben, ''Pflichtpunkte'' (= unbedingt zu besuchende Zwischenstationen), ''Pflichtstreckenabschnitte'' (= Streckenabschnitte, die unbedingt auf der Route liegen müssen) und ''Sperrbereiche'' (= Orte bzw. Streckenabschnitte, die keinesfalls auf der Route liegen dürfen) anzugeben.
Die interne Repräsentation dieser Daten soll in XML (ggf. JSON) geschehen. Deren Verarbeitung geschieht mit selbstgewählten XML-Technologien. Die Effizienz der Verfahren ist zu bewerten und führt ggf. zum Ersatz eines Verfahrens durch ein anderes (auch Näherungsverfahren). ''Diese Aspekt gehört zu Ihrem Referat und geht folglich in die Bewertung (AuK) ein.
''
Für die Bearbeitung der Aufgabenlösung steht ein zeitliches Volumen aus dem Lehrgebiet ''Datenrepr. mit XML'' zur Verfügung (Modulübergreifender Beleg). Im Fach ''Datenrepr. mit XML'' geben Sie eine entsprechende Entwicklerdokumentation als ''Beleg zur Bewertung'' ab, die die XML-basierten Repräsenationen und Technologien in der konkreten Anwendung beschreibt.
Eine PKW-''Rundreise'' soll durch die folgenden Städte führen und dabei jeden dieser 16 Orte genau einmal besuchen:
Dresden, Berlin, Spröda, Lüneburg, Löbau, Limbach-Oberfrohna, Blankenheim, Dohna, Eisenach, Dürrhennersdorf, Callenberg, Eisenhüttenstadt, Pirna, Riesa, Coswig und Seerhausen. Ausnahme: Die Stadt, in der die Rundreise beginnt und endet, ist die einzige zweimal besuchte Stadt.
Gesucht ist die kürzeste Rundreise.
Kleine Anleitung: Nachdem Sie die Orte gewählt haben, ermitteln Sie die zugehörige Entfernungsmatrix. Routenplaner, die Sie im Web finden, unterstützen Sie dabei. Gehen Sie von einem ungerichteten Graphen aus, d.h. die Länge des Weges von A nach B soll genauso lang sein, wie von B nach A. Dadurch haben Sie lediglich (16*16-16)/2=120 Entfernungen zu bestimmen (untere Dreiecksmatrix).
Am Ende der LV-Reihe präsentiert jede Gruppe ihre Ergebnisse in einem jeweils '''10-min.-Vortrag'''.
Der Beleg, inkl. CD mit den entwickelten Programmen und Nutzerdoku, ist in der LV ''Datenrepr. mit XML'' abzugeben.
Vertiefungsthemen betreffen spezielle Inhalte, die (auf der Basis von Grundkenntnissen aus AuK) eine besondere Aufmerksamkeit verdienen.
Aus dem folgenden Themenangebot können bis zu 4 Studis je ein Thema auswählen und zu einem Referat (nur Vortrag, keine CÜ) ausarbeiten. Hierfür stehen der Gruppe '''20 min.''' zur Verfügung. Die '''Referate''' werden am Ende des Semsters (nach den V-CÜ-Themen aus obiger Tabelle) gehalten. Es werden '''Folien''' (z.B. Powerpoint, Latex-Beamer, OpenOffice, ...) - ''keine'' Belege - erwartet. Im sich anschließenden persönlichen Gespräch mit dem Dozenten werden die Anteile der einzelnen Gruppenmitglieder festgestellt, sodass eine individuelle Bewertung sichergestellt ist. Diese geht zu '''40%''' in die Gesamtbewertung ein, d.h., dass die V-CÜ-Beiträge (60%) zu einem der obigen Themen bei der Notenbildung dominieren.
* Thema 1: [http://de.wikipedia.org/wiki/AKS-Primzahltest AKS-Primzahltest]
* Thema 2: [http://de.wikipedia.org/wiki/Ameisenalgorithmus Selbstorganisation und Metaheuristiken]
* Thema 3: Zufallszahlen und Monte-Carlo-Methode - Eine theoretische Untersuchung (Material wird bereitgestellt)
* Thema 4: [http://de.wikiversity.org/wiki/Kurs:Algorithmen_und_Datenstrukturen/Kapitel_2/ExtraDix Sortieralgorithmus ExtraDix]
* Thema 5: ...
* Thema 6: ...
Bitte warten Sie mit der Auswahl, bis die Themenliste komplett ist. Dann schreiben Sie einfach Ihre Familiennamen hinter die Themen.
=== Evaluation der Lehrveranstaltung ===
Am Ende des Semesters bewerten Sie in gewohnter Weise die LV mit dem Ziel, gemeinsam an didaktischen Verbesserungen zu arbeiten, die den nachfolgenden Studierenden-Gruppen zugute kommen sollen. Vielen Dank! [[Evaluation-AuK]]
Bisherige Evaluationen: <document>Wagenkn_Evaluation-AuK-SS2012.pdf</document>
-->