• Keine Ergebnisse gefunden

Algorithmen und

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Heiko Röglin Institut für Informatik

Algorithmen und

Berechnungskomplexität I

Wintersemester 2013/14

(2)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Organisatorisches

Vorlesung

Dienstag und Donnerstag, 12:30 – 14:00 Uhr (HS 1)

Übungen

16 Übungsgruppen

Anmeldung über Tutorienvergabesystem https://puma.cs.uni-bonn.de/

bis Freitag, den 18.10., um 23:59 Uhr.

2

(3)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Dozenten und Tutoren

Vorlesung

Heiko Röglin

Professor für Theoretische Informatik E-Mail: roeglin@uni-bonn.de

Web: http://www.roeglin.org/

Sprechstunde: nach Vereinbarung

und nach der Vorlesung Büro: Friedrich-Ebert-Allee 144, E.63

Übungen

Organisation: Tobias Brunsch, Clemens Rösner

studentische Tutoren: Philipp Bruckschen, Patrick Loka, Yvonne Omlor, Sonja Schäfer, Patrick Seume

3

(4)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Übungsblätter und Studienleistung

Übungsblätter

• Ausgabe: Dienstag in der Vorlesung & auf Webseite

• Abgabe: Dienstag darauf, 12:30 Uhr, Briefkasten Römerstr.

• Besprechung: in der Woche nach der Abgabe

Studienleistung

• insgesamt mind. 50% der möglichen Punkte

(Abgabe in Gruppen mit max. 3 Studenten möglich)

• Präsentation von 3 (Teil)aufgaben in den Übungen

4

(5)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Literatur

• Zu dieser Vorlesung gibt es ein Skript:

http://www.roeglin.org/teaching/WS201 3/AlgoI/AlgoI.pdf

• Dieses wird während des Semesters kontinuierlich erweitert.

• Fallen Ihnen Fehler auf oder haben Sie Anregungen und Verbesserungs-

vorschläge zum Skript, so sagen Sie mir bitte Bescheid.

• Sekundärliteratur: siehe Skript

5

(6)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Algorithmik

Algorithmen sind formal definierte Handlungsvorschriften, die von Computern wie ein Rezept zur Lösung eines Problems ausgeführt werden. Dabei wird eine Eingabe in eine Ausgabe transformiert.

6

91236734982439371

Algorithmus

Primzahl ja/nein

Rezept

Eingabe Ausgabe

Algorithmus zum Primzahltest:

Bei Eingabe n

teste alle Zahlen 2,3,4,…,n-1, ob sie Teiler von n sind.

Ausgabe: Nein falls Teiler gefunden, sonst Ja.

(7)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Algorithmik (2)

Algorithmen begegnen uns täglich.

7

Navigationsgerät

Was ist der kürzeste Wege von A nach B?

Google

Online Banking, Einkaufen im Internet

Wie werden die Daten ver- und entschlüsselt?

Suchmaschinen

Wie sucht man in einer großen Datenmenge?

Paketdienste, Logistikdienstleister

In welcher Reihenfolge werden Kunden beliefert?

(8)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Datenstrukturen

Ziel: Korrekte und schnelle Algorithmen.

Wichtiges Hilfsmittel: Datenstrukturen.

Wie sollen Daten gespeichert werden, um schnelle Ausführung wichtiger Operationen zu ermöglichen?

Beispiel: Suchen in einer großen Datenmenge.

8

(9)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Lernziele

• Kenntnis grundlegender Datenstrukturen, Methoden und Algorithmen

• Fähigkeit, ein gegebenes Problem zu analysieren:

Einordnung der Schwierigkeit des Problems

Auswahl geeigneter Datenstrukturen und Algorithmen

• Entwurf von Algorithmen

• Analyse von Algorithmen

9

(10)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Berechenbarkeitstheorie

Welche Probleme können von Computern gelöst werden?

10

void foo (int a) { int i = a;

while (i != 10) { i++;

} }

Compilerwarnung: Eine Endlosschleife kann

auftreten.

Es wäre schön, wenn …

Ein Resultat der Berechenbarkeitstheorie besagt:

Es gibt keinen Compiler, der automatisch testet, ob ein

gegebenes Programm in eine Endlosschleife geraten kann;

egal, wie leistungsstark unsere Rechner auch sein mögen.

→ Algorithmen und Berechnungskomplexität II

(11)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Komplexitätstheorie

Welche Ressourcen (z.B. Rechenzeit und Speicherplatz) sind nötig, um ein Problem zu lösen?

11

Problem des Handlungsreisenden:

Finde kürzeste Tour durch alle Städte.

Algorithmus: Teste alle Möglichkeiten und wähle die kürzeste Tour.

Keine gute Idee: Bei 20 Städten mehr als 6∙1016 Möglichkeiten.

Das Problem ist NP-hart, d.h.

vermutlich, gibt es keinen effizienten Algorithmus.

(12)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Komplexitätstheorie (2)

12

Es gibt zahlreiche natürliche NP-harte Probleme.

Entweder: Für alle gibt es effiziente Algorithmen.

Oder: Für keines gibt es effizienten Algorithmus.

Negative Ergebnisse sind hilfreich:

Existiert kein (effizienter) Algorithmus, so kann die Suche eingestellt werden.

→ Algorithmen und Berechnungskomplexität II

Dies ist eine große ungelöste Frage (P≠NP-Vermutung).

Lösung ist 1 Million Dollar Wert.

(13)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Automatentheorie und formale Sprachen

• Was ist ein gültiges Java/C++-Programm?

• Wie funktioniert ein Compiler?

• Wie muss eine formale Sprache (Programmiersprache) aussehen, damit ein effizienter Compiler existiert?

13

Grammatik:

Regelsystem zur Erzeugung syntaktisch korrekter Programme.

WhileStatement:

while ( Expression ) Statement BasicForStatement:

for ( ForInitopt ; Expressionopt ; ForUpdateopt ) Statement

Automat:

Einfaches Rechnermodell, das bei Compilern zum Einsatz kommt, z.B. für die lexikalische Analyse (Zerlegung des Quelltextes in

Tokens).

(14)

Algorithmen und Berechnungskomplexität I Heiko Röglin

Viel Spaß und Erfolg!

14

© Dr. Thomas Mauersberg / Uni Bonn

Referenzen

ÄHNLICHE DOKUMENTE

Das Label macht die Geräte vergleichbar: Es hilft Ihnen, ein energieeffizientes Gerät auszuwählen und Energie zu sparen....

These surveys document the frequency of certain mis- treatments of students, such as verbal or physical abuse or even sexual harassment, but little is known about the perceived

Insbesondere werden alle Instanzen des Problems durch denselben Algorithmus gelöst (es gibt jedoch auch Algorithmen für Teilprobleme). Wichtig: Ein Algorithmus ist unabhängig

Vorlaeufige Ergebnisse Algorithmen der Numerischen

Quelle: Voigt, M.: Magdeburg: Energieeffiziente Stadt – Modellstadt für Erneuerbare Energien (MD-E4), Abschlusspräsentation BMBF-Forschungswettbewerb „Energieeffiziente

• Am besten wäre es, wenn wir erst auswerten, dann auf das Ergebnis zugreifen .... Helmut Seidl, TU München ;-).. dem Wert für stop ). → Es werden automatisch alle

Auch über die Pädagogische Hochschule Thurgau PHTG, die Partnerhochschule der Universität Konstanz mit gemeinsamen Studiengängen, kommt Konstanzer Studierenden die persönliche

Allgemein ist zu sagen, dass man alle Pfade des XSTree1 a elementweise (da ja der Pfad aus einer Liste besteht) besucht, dabei die Repeats (die verglichen werden sollen)