Algorithmen Projektarbeit: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
[[Kategorie:Informatik]]
[[Kategorie:Informatik]]
[[Kategorie:Algorithmen]]
[[Kategorie:Algorithmen]]
=Anforderungen an die Projektarbeit=
In der Regel umfasst die Projektarbeit die folgenden Teile:
# '''Beschreibung des Algorithmus'''
## Zweck
## Funktionsweise
## Vorteile / Nachteile
# '''Laufzeitabschätzung / Genauigkeitsabschätzung für n Elemente'''
## Average Case
## Worst Case
# '''Quelltext des Algorithmus, gut erläutert'''
# '''Praxistest'''
## Dokumentation von Beispielläufen des Algorithmus
### Average Case
### (wenn möglich:) Worst Case
# '''Vergleich Theorie - Praxis'''
## ggf.: welche Probleme ergaben sich?
## ggf.: Warum ist der Algorithmus in der Praxis langsamer/schneller als in der Theorie?
# Resumee
## z.B.: Verbesserungsvorschläge
## Bedeutung in der Praxis
## andere Optionen für das Problem
# Programmquelltext (->  Anhang)


=Themen für die Projektarbeit=
=Themen für die Projektarbeit=
Zeile 16: Zeile 40:
# '''Suchen in O(1):'''<br>Hashing <br>[https://de.wikipedia.org/wiki/Hashfunktion Wikipedia: Hash-Funktion] <br>[http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo34.php Algorithmus der Woche]
# '''Suchen in O(1):'''<br>Hashing <br>[https://de.wikipedia.org/wiki/Hashfunktion Wikipedia: Hash-Funktion] <br>[http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo34.php Algorithmus der Woche]
# '''Wo ist der beste Standort für einen Rettungshubschrauber?''' <br>Kleinster umschließender Kreis. <br>[http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo42.php Algorithmus der Woche]
# '''Wo ist der beste Standort für einen Rettungshubschrauber?''' <br>Kleinster umschließender Kreis. <br>[http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo42.php Algorithmus der Woche]
# '''Der kürzeste Zaun um einen Wald:''' <br>Konvexe Hülle. <br>[https://de.wikipedia.org/wiki/Konvexe_Hülle Wikipedia: Konvexe Hülle]
# '''Große Primzahlen (500stellig!) finden:''' <br>Der Miller-Rabin-Test <br>[https://de.wikipedia.org/wiki/Miller-Rabin-Test Wikipedia: Miller-Rabin-Test]
# '''Große Primzahlen (500stellig!) finden:''' <br>Der Miller-Rabin-Test <br>[https://de.wikipedia.org/wiki/Miller-Rabin-Test Wikipedia: Miller-Rabin-Test]
# '''Flächenberechnung mit dem Monte-Carlo-Algorithmus'''<br>Die Programmierung ist sehr einfach - hier wäre der Schwerpunkt mathematisch: Wie oft muss man "schießen", um mit 95%er Wahrscheinlichkeit eine Abweichung von 1% (bzw. 0,1% oder 0,001%) zu erzielen. D.h. man braucht hier Statistik.<br>Daran schließt sich die Frage an, wie effektiv der Algorithmus ist.
# '''Flächenberechnung mit dem Monte-Carlo-Algorithmus'''<br>Die Programmierung ist sehr einfach - hier wäre der Schwerpunkt mathematisch: Wie oft muss man "schießen", um mit 95%er Wahrscheinlichkeit eine Abweichung von 1% (bzw. 0,1% oder 0,001%) zu erzielen. D.h. man braucht hier Statistik.<br>Daran schließt sich die Frage an, wie effektiv der Algorithmus ist.

Version vom 11. Oktober 2015, 14:38 Uhr


Anforderungen an die Projektarbeit

In der Regel umfasst die Projektarbeit die folgenden Teile:

  1. Beschreibung des Algorithmus
    1. Zweck
    2. Funktionsweise
    3. Vorteile / Nachteile
  2. Laufzeitabschätzung / Genauigkeitsabschätzung für n Elemente
    1. Average Case
    2. Worst Case
  3. Quelltext des Algorithmus, gut erläutert
  4. Praxistest
    1. Dokumentation von Beispielläufen des Algorithmus
      1. Average Case
      2. (wenn möglich:) Worst Case
  5. Vergleich Theorie - Praxis
    1. ggf.: welche Probleme ergaben sich?
    2. ggf.: Warum ist der Algorithmus in der Praxis langsamer/schneller als in der Theorie?
  6. Resumee
    1. z.B.: Verbesserungsvorschläge
    2. Bedeutung in der Praxis
    3. andere Optionen für das Problem
  7. Programmquelltext (-> Anhang)

Themen für die Projektarbeit

Hier werden einige Themen vorgeschlagen. Nach Absprache sind natürlich auch ganz andere Themen möglich!

  1. Rucksackproblem:
    Pareto-optimale Punkte nutzen
    Algorithmus der Woche
  2. Wie finde ich den Ausweg aus einem Labyrinth?
    Pledge-Algorithmus mit Kara programmieren!
    Algorithmus der Woche
    Das lässt sich auch mit Scratch programmieren.
  3. Ein Stromnetz optimal planen:
    Minimaler Spannbaum
    Algorithmus der Woche
  4. Facemash:
    Wie erstellt man ein Ranking mithilfe des Vergleichs von Paaren?
    Wikipedia: Schweizer System
    Fahrzeug-Ranking am SIBI
  5. Wie werden Internetseiten gerankt?
    Page-Rank-Algorithmus
    Algorithmus der Woche Diesen Algorithmus könnte man auf sibi-wiki.de anwenden.
  6. Der Computer spielt "Vier gewinnt":
    Minimax-Algorithmus
    Algorithmus der Woche
  7. Wie macht man die beste Ausbeute an Glücksspielautomaten?
    Das Multi-Armed-Bandit Problem:
    Wikipedia (en): Multi-Armed-Bandit
  8. Optimale Verkehrsplanung:
    Maximale Flüsse
    Algorithmus der Woche
  9. Wie findet man in einem Text möglichst schnell alle Vorkommen eines Wortes?
    String-Matching-Algorithmen
    Wikipedia: String-Matching-Algorithmus
  10. Suchen in O(1):
    Hashing
    Wikipedia: Hash-Funktion
    Algorithmus der Woche
  11. Wo ist der beste Standort für einen Rettungshubschrauber?
    Kleinster umschließender Kreis.
    Algorithmus der Woche
  12. Große Primzahlen (500stellig!) finden:
    Der Miller-Rabin-Test
    Wikipedia: Miller-Rabin-Test
  13. Flächenberechnung mit dem Monte-Carlo-Algorithmus
    Die Programmierung ist sehr einfach - hier wäre der Schwerpunkt mathematisch: Wie oft muss man "schießen", um mit 95%er Wahrscheinlichkeit eine Abweichung von 1% (bzw. 0,1% oder 0,001%) zu erzielen. D.h. man braucht hier Statistik.
    Daran schließt sich die Frage an, wie effektiv der Algorithmus ist.
  14. Welche Funktion erfüllt die Differentialgleichung y'(x) = y2(x) + y(x) ?
    Für Differentialgleichungen dieser Art gibt es numerische Verfahren, die (gute!) näherungsweise Lösungen ausgeben.
    Wikipedia: Numerische Verfahren für gewöhnliche Differentialgleichungen
  15. Numerische Verfahren:
    Ziel der Numerik ist es "das eigentlich Unberechenbare zu berechnen, und das in Lichtgeschwindigkeit."
    Es gibt SEHR unterschiedliche numerische Verfahren für SEHR VIELE unterschiedliche Problemstellungen
    Wikipedia: Liste numerischer Verfahren
  16. automatische Troll-Erkennung?!
    Als Troll bezeichnet man im Netzjargon eine Person, welche Kommunikation im Internet fortwährend und auf destruktive Weise dadurch behindert, dass sie Beiträge verfasst, die sich auf die Provokation anderer Gesprächsteilnehmer beschränken und keinen sachbezogenen und konstruktiven Beitrag zur Diskussion enthalten. Dies erfolgt mit der Motivation, eine Reaktion der anderen Teilnehmer zu erreichen. (Definition aus Wikipedia: Troll (Netzkultur))
    Wired.de: Ein Algorithmus, der Trolle erkennt