Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Ähnliche Dokumente
Algorithmen und Programmierung

Algorithmen und Programmierung

Algorithmen und Programmierung

Übersicht. Thematik dieser Vorlesung Algorithmische Grundkonzepte. 2 Algorithmische Grundkonzepte

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Hausübung Algorithmen und Datenstrukturen

Algorithmen und Programmierung

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

1 Algorithmische Grundlagen

Algorithmen & Komplexität

Algorithmen und Programmierung

Kapitel 1: Informationsverarbeitung durch Programme

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Einführung in die Informatik Turing Machines

1 Vom Problem zum Programm

1 Vom Problem zum Program

Einführung in die Informatik Turing Machines

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

1. Bisher: Daten, Information, Wissen. 2. Heute: Datenverarbeitung. 1. Was ist ein Algorithmus. 2. Vom Problem zur Lösung

Algorithmen & Programmierung. Aspekte von Algorithmen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Einführung in die Informatik Algorithms

Kapitel 1: Informationsverarbeitung durch Programme

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

3 DATENVERARBEITUNG - ALGORITHMEN. Marcel Götze

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te

Einführung in die Informatik 1

Euklidischer Algorithmus

Einführung in die Programmierung

Bekannte Algorithmen:

Einführung in die Programmierung

2. Algorithmenbegriff

Seminararbeit zum Thema Was ist ein Algorithmus?

GRUNDKURS INFORMATIK PROBLEMLÖSEN ZUM ALGORITHMUS. Marcel Götze

Einführung in die Programmierung Wintersemester 2016/17

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Programmieren und Problemlösen

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt?

Einführung in die Informatik I (autip)

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Angewandte Mathematik am Rechner 1

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

Grundlagen der Programmierung (Vorlesung 24)

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.

Algorithmen & Komplexität

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus

Übersicht. 3.1 Datendarstellung durch Zeichenreihen. 3.2 Syntaxdefinitionen. 3.3 Algorithmen

Algorithmen und Datenstrukturen

Informatik I: Einführung in die Programmierung

Informatik Vorkurs Sommersemester 2015

Kapitel 1: Informationsverarbeitung durch Programme

Algorithmen und Datenstrukturen 1 Kapitel 5

Einführung in die Programmierung

Grundlagen der Informatik I Einführung

Grundlagen: Algorithmen und Datenstrukturen

Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking.

Algorithmen und Datenstrukturen (für ET/IT)

Unentscheidbarkeitssätze der Logik

Algorithmen und Datenstrukturen

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Theoretische Grundlagen der Informatik

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

Grundlegende Definitionen Technik Hardware Software Beschaffung vom Informationssystemen Datenorganisation Kommunikation

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Informatik. Teil 1 - Sommersemester Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

Abschnitt 11: Korrektheit von imperativen Programmen

Komplexität von Algorithmen:

Algorithmen und deren Beschreibung

Datenstrukturen & Algorithmen

Einführung in die Programmierung

Infovorkurs, Teil II: Theoretische Informatik. Motivation. Turing-Maschine. Programmiersprachen

Man sieht hier einzelne Fragmente, die man häufig bei der Programmierung mit Schleifen antrifft. Es gibt eine lokale Variable, die vor dem

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

ALP I Turing-Maschine

Ideen und Konzepte der Informatik

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Der Lese-Schreib-Kopf kann auch angehalten werden (H). Die Verarbeitung ist dann beendet.

Hier ist ein einfaches Turingprogramm. Außer dem Leerzeichen ist das Band nur mit. 1 belegt.

Einführung in die Informatik Algorithms II

Algorithmen und Datenstrukturen (für ET/IT)

Transkript:

Teil I Einführung

Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1

Vorbemerkungen Was ist Informatik? Informatik hat zentral zu tun mit systematischer Verarbeitung von Informationen Maschinen, die diese Verarbeitung automatisch leisten ( Computer) Die systematische Verarbeitung wird durch den Begriff Algorithmus präzisiert, Information durch den Begriff Daten. Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 2

Algorithmen Was ist ein Algorithmus? allgemein: Ein Algorithmus ist eine eindeutige Beschreibung eines in mehreren Schritten durchgeführten (Bearbeitungs-)Vorganges. in der Informatik speziell: Berechnungsvorgänge statt Bearbeitungsvorgänge, Schwerpunkt auf Ausführbarkeit durch (abstrakte) Maschinen. Ein Prozessor führt einen Prozess (Arbeitsvorgang) auf Basis einer eindeutig interpretierbaren Beschreibung (dem Algorithmus) aus. Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 3

Algorithmen Typische algorithmisierbare Prozesse Kochrezepte Pizza aufwärmen Seeteufel mit Kräuterkruste auf Lauch Bedienungsanleitungen Suchen eines Telefonbucheintrags Herausgeben von Wechselgeld Sortieren von Spielkarten Berechnungsvorschriften schriftliches Addieren Berechnung der Fakultät (x! = x (x 1) 3 2 1) Berechnung des größten gemeinsamen Teilers Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 4

Algorithmen Algorithmus-Begriff Ein Algorithmus ist eine präzise (in einer festgelegten Sprache abgefasste) endliche Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer elementarer (Verarbeitungs-)Schritte. Ein Programm ist die Formulierung eines Algorithmus in einer konkreten Programmiersprache. Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 5

Algorithmen Bekannte Algorithmen 1 Addition zweier positiver Dezimalzahlen (mit Überträgen) 3 3 + 4 8 1 8 1 2 Test, ob eine gegebene natürliche Zahl eine Primzahl ist 3 Sortieren einer unsortierten Kartei (etwa lexikographisch) 4 Berechnung der Zahl e = 2.7182... Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 6

Notation für Beschreibung Ausdrucksfähigkeit Terminierung Determinismus Berechenbarkeit Korrektheit / Genauigkeit / Eindeutigkeit Zeitbedarf / Geschwindigkeit Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 7

Notation Hal, bitte berechne mir die Fakultät von 20! 0! = 1 x! = x (x 1)! x = 20; y = 1; while (x > 1) { y = y * x; x = x - 1; } return y; Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 8

Ausdrucksfähigkeit verschiedene Notationen = gleiche Ausdrucksfähigkeit? Wahl der Programmiersprache universelle Programmiersprache? aber, man vergleiche z.b. Bienensprache vs. Sprache zur Wegfindungsprogrammierung für Roboter Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 9

Terminierung Ein Algorithmus heißt terminierend, wenn er (bei jeder erlaubten Eingabe von Parameterwerten) nach endlich vielen Schritten abbricht. Frage: Terminieren die Algorithmen von Folie 2-3? Beispiel e = 1 + 1 1! + 1 2! + 1 3! + = n=0 1 n! Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 10

Determinismus legt Wahlfreiheit bei der Ausführung fest Formen deterministischer Ablauf: eindeutige Vorgabe der Folge der auszuführenden Schritte determiniertes Ergebnis: eindeutiges Ergebnis bei vorgegebenen Parameterwerten Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 11

Determinismus /2 Nichtdeterminierter vs. determinierter Algorithmus Beispiel #1 1. Nimm eine beliebige Zahl x 2. Addiere 5 hinzu und multipliziere mit 3 3. Gib das Ergebnis aus Beispiel #2 1. Nimm eine Zahl x 0 2. Entweder: Addiere das Dreifache von x zu x und teile das Ergebnis durch x: (3x + x)/x Oder: Subtrahiere 4 von x und subtrahiere das Ergebnis von x: x (x 4) 3. Gib das Ergebnis aus Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 12

Berechenbarkeit Kann man alles programmieren (berechnen)? Antwort: Nein! Nichtentscheidbare Probleme Halteproblem semantische, z.b.: Berechnen zwei Algorithmen dieselbe Funktion? Ist ein gegebener Algorithmus korrekt, d.h. berechnet er die gegebene (gewünschte) Funktion? Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 13

Korrektheit Algorithmen (Programme) sollen sich wie beabsichtigt verhalten Korrektheit Beispiele für Programmfehler (de.wikipedia.org/wiki/programmfehler) 1962: Verlust der Venus-Sonde Mariner 1 durch fehlenden Bindestrich in einem Fortran-Programm (80 Mill. Dollar) 1996: Zerstörung der Ariane 5-Rakete kurz nach dem Start durch übernommenen und nicht korrekt spezifizierten Programmcode 1999: Verlust der Mars-Sonde Climate Orbiter durch falsches Maßsystem (Yard statt Meter) bei Programmierung Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 14

Zeitbedarf Wie aufwändig ist ein gegebener Algorithmus? Abschätzung des Aufwands unabhängig von konkreter Hardwareleistung (Mooresches Gesetz: Komplexität von integrierten Schaltungen / Rechenleistung verdoppelt sich alle 18 Monate ) in Abhängigkeit von der Problemgröße für den schlechtesten Fall (worst case) und im Mittel Beispiel: Operation Aufwand n = 2 n = 2 10 n = 2 20 sequenzielle Suche n 2 1024 1048576 Baum-Suche log n 1 10 20 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 15

Historischer Überblick Historischer Überblick: Algorithmen 300 v. Chr.: Euklids Algorithmus zur Bestimmung des ggt (7. Buch der Elemente): ggt(300, 200) = 100 800 n. Chr.: Muhammed ibn Musa abu Djafar alchoresmi: Aufgabensammlung für Kaufleute und Testamentsvollstrecker (lat.: Liber Algorithmi, Kunstwort aus dem Namen und griechisch arithmos für Zahl) 1574: Adam Rieses Rechenbuch 1614: Logarithmentafeln (30 Jahre für Berechnung!) 1703: Binäres Zahlensystem (Leibnitz) 1931: Gödels Unvollständigkeitssatz 1936: Church sche These Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 16