2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

Ähnliche Dokumente
Abschnitt 7: Komplexität von imperativen Programmen

Prof. Dr. Margarita Esponda

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

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

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

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

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Grundlagen der Informatik I (Studiengang Medieninformatik)

Flussdiagramm / Programmablaufplan (PAP)

Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/

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

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

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

Komplexität von Algorithmen

Kapitel 1: Informationsverarbeitung durch Programme

Informatik I Komplexität von Algorithmen

Komplexität von Algorithmen:

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

Einführung in die Programmierung

2. Algorithmenbegriff

2. Effizienz von Algorithmen

Prof. Dr. Margarita Esponda

Programmieren und Problemlösen

Datenstrukturen & Algorithmen

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Komplexität von Algorithmen

Ideen und Konzepte der Informatik

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

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

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

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

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kapitel 1: Algorithmen und ihre Analyse

Klassische Informationstheorie: Berechenbarkeit und Komplexität

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Algorithmen. Beispiele: Beispiele: Algorithmen zum Test auf Primzahl. Programmieren - Java I WS 2001

Zunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:

11. Rekursion, Komplexität von Algorithmen

Vorlesung Datenstrukturen

Ingenieurmathematik mit Computeralgebra-Systemen

ECDL MODUL COMPUTING. Syllabus Version 1.0

A6.1 Logarithmus. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A6.1 Logarithmus. A6.2 Landau-Notation. A6.

Algorithmen und Datenstrukturen (für ET/IT)

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018

Übung Algorithmen und Datenstrukturen

Informatik II. 1. Einführung. Inhalte der Vorlesung. Ziele der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Speichern von Zuständen

Informatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

Übung zur Vorlesung Berechenbarkeit und Komplexität

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

4.Grundsätzliche Programmentwicklungsmethoden

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT)

Einführung in die Informatik Algorithms

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Fehlerarten. Validation. Wintersemester 2012/13. Dr. Tobias Lasser

Theoretische Informatik SS 03 Übung 3

Martin Unold INFORMATIK. Geoinformatik und Vermessung

AlgoDat Fragen zu Vorlesung und Klausur

Berechenbarkeit. Script, Kapitel 2

abgeschlossen unter,,,, R,

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

Ziele. Kapitel 10: Komplexität von Algorithmen und Sortierverfahren. Beispiel: Lineare Suche eines Elements in einem Array (1)

Lösungsvorschlag Serie 2 Rekursion

Komplexität von Algorithmen OOPM, Ralf Lämmel

Control Beispiel. Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Control

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

Theoretische Informatik 1

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

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

Algorithmen und Datenstrukturen (für ET/IT)

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion

Clevere Algorithmen programmieren

5.3 Korrektheit und Verifikation

3.3 Laufzeit von Programmen

5.3 Korrektheit und Verifikation

Abschnitt 11: Korrektheit von imperativen Programmen

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen

Labor Software-Entwicklung 1

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

5. Übung - Kanalkodierung/Programmierung

Ausgewählte Algorithmen: Sortieren von Listen

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen und Datenstrukturen

Informatik I Komplexität von Algorithmen

Algorithmen und Datenstrukturen I Grundlagen

99 - Struktogramme - 2. Sequenz I

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

Transkript:

Algorithmen und Algorithmisierung von Aufgaben 2-1

Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung von Algorithmen: 1. Flussdiagramme 2. Struktogramme 3. Metasprachen 4. Höhere Programmiersprachen 2-2

Computerverarbeitung als Black-Box: Eingabedaten Ausgabedaten Verarbeitungsverfahren (Algorithmus) Wann die Verarbeitungsverfahren die Eigenschaften der Algorithmen haben? 2-3

A L G O R I T H M E N Zum intuitiven Algorithmusbegriff sind folgende Fragestellungen zu beantworten: Gibt es zu einem Problem einen Algorithmus, der es läßt? Stellt eine Verfahrensbeschreibung einen Algorithmus dar? Gibt es zu einem Problem einen Algorithmus, der es in einer bestimmten Zeit läßt? 2-4

Merkmale von Algorithmen Wir betrachten Verfahrensvorschriften zur Lösung eines Problems als Algorithmen, wenn sie die folgenden (Markov sche) Merkmale besitzen: sie bestehen aus endlich vielen Verarbeitungsvorschriften ; die für den Verfahrenablauf notwendigen Informationen liegen vollständig zu Beginn der Verarbeitung vor ; sie spezifizieren eindeutig eine Folge elementarer, eindeutig definierter Operationen ; für jeden Satz von Eingabedaten kommt das Verfahren nach endlich vielen Schritten zu einem Ergebnis; die Anzahl der Schritte muß dabei nicht von vornherein abschätzbar sein. 2-5

Bei jedem Algorithmus unterscheiden wir zwischen dem Algorithmus als dem maschinenunabhängigen Verfahrensvorschrift und der Implementierung dieser Vorschrift, z. B. als Programm in einer Programmiersprache. Komplexität von Algorithmen Drei unterschiedliche Hauptkriterien sind zu berücksichtigen: die Komplexität der Methode (die algoritmische Komplexität), der Speicherplatzbedarf des Verfahrens (die Speicherkomplexität), die Laufzeit des Verfahrens (die Zeitkomplexität). 2-6

Komplexitätsmaße die Anzahl zeitkritischer Elementaroperationen (Vertauschungen, Multiplikationen,...), die Anzahl der Durchläufe innerer Schleifen, die Anzahl von Vergleichsoperationen, die Anzahl der belegten Speicherplätze, Records, Sektoren Anmerkung: Jedes der oben angeführten Komplexitätsmaße wird ausgewertet: im ungünstigsten Fall (für die schlimmste Kombination von Eingabedaten), im mittleren Fall (für die übliche Kombination von Eingabedaten). 2-7

Die häufigsten Arten der Komplexität: konstant (eins) logarithmische lineare linearithmische quadratische kubische (dritter Ordnung) exponentielle Anmerkungen: Die Komplexität aller praktisch brauchbaren Verfahren ist höchstens polynomial, d. h. von einer Ordnung Methoden mit exponentieller Komplexität, sind in der Regel zu aufwendig für einen praktischen Einsatz. 2-8

Entwicklung von Algorithmen Dekomposition der Aufgabe Zerlegung von komplexen Aktionen (Verarbeitungsphasen, Teilaufgaben) auf die einfachere... auf elementare Abstraktion Vereinfachung des komplexen Problems durch Ignorieren von unwichtigen Details Formalismen für die Algorithmenentwicklung. 2-9

1. Flussdiagramme Symbole von speziell definierten Blöcken, verbundene mit Pfeilen. Symbol Bedeutung Anweisung Verarbeitungsschritt (Berechnung, Zuweisung,...) Bedingung Verzweigung (Test) Ein- / Ausgabeoperation (Einlesen, Druck,...) START 5 Anfang / Ende Verbindungsmarke 2-10

Beispiel: Zuweisung z = max ( x, y ) 2-11

2. Struktogramme Symbolische Darstellung: logischer Ausdruck ja nein Anweisung 1 Anweisung 2 Beispiel: Zuweisung z = max ( x, y ) x > y ja nein z x z y 2-12

Komplett: Eingabe von x und y x > y ja nein z x z y Ausgabe von z 2-13

2-14

Beispiel: Lösung der quadratischen Gleichung 2-15

Struktogramm: 2-16

3. Metasprachen Darstellung von Algorithmen in speziell entwickelten Sprachen, z.b.: Beispiel: Summe von N Ganzzahlen: EINGABE (N); S = 0; FOR I = 1 TO N S = S + I; AUSGABE (S); END; 2-17

4. Höhere Programmiersprachen Darstellung von Algorithmen in problemorientierten Programmiersprachen der höchsten Abstraktionsebene, z.b. in der Programmiersprache PASCAL: Read (N); S := 0; for I:=1 to N do S := S + I; Write (S);... 2-18