Bekannte Algorithmen:

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

3 DATENVERARBEITUNG - ALGORITHMEN. Marcel Götze

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

2. Algorithmenbegriff

Einführung in die Informatik Algorithms

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

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

Grundlagen der Informatik I (Studiengang Medieninformatik)

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

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

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

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

Kapitel 1: Informationsverarbeitung durch Programme

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

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)

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einführung in die Programmierung WS 2014/ Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

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

Grundlagen der Informatik I Einführung

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

Informatik I: Einführung in die Programmierung

Einführung in die Informatik 1

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

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

Kapitel 1: Informationsverarbeitung durch Programme

Abstrakte Algorithmen und Sprachkonzepte

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

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Kochen mit Männern im Pfarrheim Spay

Konzepte der Informatik

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Seminararbeit zum Thema Was ist ein Algorithmus?

1 Vom Problem zum Programm

Einstieg in die Informatik mit Java

Grundbegriffe der Informatik

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

Kürbis-Pfannkuchen (für 4 Personen)

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

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

Grundbegriffe der Informatik

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

Struktogramme. Hinweise 1 Stand:

Flussdiagramm / Programmablaufplan (PAP)

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (fu r ET/IT) Personen. Programm heute. Wintersemester 2012/13. Wintersemester 2012/13. Dr.

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Einführung in die Informatik Turing Machines

Programme erstellen in Java

Kochen im März Entenbrust mit Apfelschnitze

Zucchini: ita. Kürbis, ursprünglich aus Mittelamerika

Einführung in die Informatik Turing Machines

Grundlegende Definitionen Technik Hardware Software Beschaffung vom Informationssystemen Datenorganisation Kommunikation

Suchen und Sortieren

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Algorithmen & Programmierung. Rekursive Funktionen (1)

Vom Problem über den Algorithmus zum Programm

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

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Syntax von Programmiersprachen

Algorithmen und Datenstrukturen Sommersemester 2007

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany

ENGLISCHER SALAT MIT SPECK UND BIRNEN

Festliches Ostern Rezepte von Nelson Müller

Algorithmen und Datenstrukturen (für ET/IT)

Kontrollstrukturen. Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

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

Algorithmen und Datenstrukturen Laufzeitabschätzung

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Kapitel 1: Algorithmen und ihre Analyse

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

Kartoffeln und Karotten schälen. In 1 cm dicke Scheiben schneiden und in wenig Salzwasser bissfest kochen.

Einführung in die Programmierung

Die Küchenschlacht - Menü am 06. Oktober 2015 Spezialtag: Wiener Schnitzel mit Bratkartoffeln und Gurkensalat Nelson Müller

Vorkurs Informatik SoSe 15 Algorithmen 1

Programmentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ]

Fakultät Angewandte Informatik Lehrprofessur für Informatik Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung

Einführung in die Programmierung Wintersemester 2016/17

Prinzenrollen. Fleisch bestreichen. 3 Scheiben gek. Schinken jeweils mit einer halben Scheibe die Schnitzel belegen.

DOWNLOAD. Jägerschnitzel und Wiener Schnitzel. Einfaches Kochen nach Fotos. Doris Thoma-Heizmann/Friedrich Strobel

Algorithmen & Komplexität

VBA-Programmierung: Zusammenfassung

Algorithmen und Programmierung

Datenstrukturen & Algorithmen

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

Angewandte Mathematik am Rechner 1

Labor Software-Entwicklung 1

Theoretische Informatik I

Kochstudio

Grundbegriffe der Informatik

HIGHLIGHTS // 2017 MÄRZ. Alles Hering oder was? HERINGSSALAT MIT GURKE UND SCHNITTLAUCH AN ROSMARINKARTOFFELN

Hessische Schnitzelgerichte von Mario Obermoser, Chef des Schnitzel's, Limburg-Staffel

Rindersteak mit Möhren-Pilz-Gemüse. Sellerie-Quark-Tortilla

Transkript:

Vergangenes Thema Daten Information - Wissen GRUNDKURS INFORMATIK 3 DATENVERARBEITUNG: VOM PROBLEMLÖSEN ZUM ALGORITHMUS Damit aus Informationen Wissen entsteht, muss der Mensch sie in seinen Erfahrungskontext, seine Denk-, Gefühls-, Handlungs- und Wollensstruktur aufnehmen. Information vermittelt einen Unterschied. Die Information verliert, sobald sie informiert hat, ihre Qualität als Information: News is what's different. Information wird durch Daten repräsentiert Informationstechnologie hat zentral zu tun mit systematischer Verarbeitung von Informationen Informationsverarbeitung Datenverarbeitung Marcel Götze Überblick 1. Algorithmus Näherung, Definition 2. Was ist eine Algorithmus? wie setzt man ein Problem in einen Algorithmus um? 3. Arten der Beschreibung von Algorithmen 4 2. Algorithmus (erste Näherung) Das Wort Algorithmus ist eine Abwandlung oder Verballhornung des Namens von Muhammad ibn Musa al-chwarizmi (* ca. 783, ca. 850), dem Autor des Buchs Hisab al-dschabr wa-l-muqabala (825, Regeln zur Wiederherstellung und Reduktion), durch das die Algebra im Westen verbreitet wurde. Die lateinische i Fassung beginnt mit Dixit Algoritmi... (Algoritmus sprach...), womit der Autor gemeint war. Das Wort Algebra stammt ebenfalls (al-jabr Einrenkung ) aus dem Titel des Buches. Quelle: Wikipedia 2. Bestandteile eines Algorithmus 5 Eindeutige und exakte Beschreibung eines Verarbeitungsvorganges. Ein Prozessor führt einen Prozeß (Arbeitsvorgang) auf Basis einer eindeutig interpretierbaren Beschreibung (des Algorithmus) aus. Typische algorithmisierbare Prozesse: Kochrezepte Bedienungsanleitungen Rechnerprogramm (Prozessor: Computer!) 6 Objekte darauf soll eine Wirkung ausgeübt werden können abstrakter oder auch konkreter Natur sein. Handlungen Wirken in einer bestimmten Reihenfolge ausgeführt auf gewünschte Weise auf die Objekte ein. Zustandsänderungen an Objekten 1

2.1. Beobachtungen 7 Beispiel: Auswechseln eines Rades am Auto 1. Löse die Radmuttern. 2. Hebe den Wagen an. 3. Schraube die Radmuttern ab. 4. Tausche das Rad gegen ein anderes Rad aus. 5. Schraube die Radmuttern an. 6. Setze den Wagen ab. 7. Ziehe die Radmuttern fest. 8 Anwender des Algorithmus muß jeden einzelnen Schritt verstehen und ausführen können Verfahren enthält Folge von Handlungen in fester Reihenfolge ODER über Reihenfolge wird erst während der Ausführung des Algorithmus entschieden (notwendig: entsprechende Sprachkonstrukte) Abarbeitungsreihenfolge mancher Einzelschritte nicht von Bedeutung Ausführungsorgan / Prozessor muß über gewisse elementare Fähigkeiten verfügen Elementaroperationen 3. Algorithmus Definition 1. Vom Problem zur Lösung 9 10 Ein Algorithmus ist eine präzise (d.h., in einer festgelegten Sprache abgefaßte) endliche Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer elementarer (Verarbeitungs-) Schritte. Algorithmus eine wohldefinierte * Methode, ein Problem zu lösen. beschrieben durch eine endliche Folge von Anweisungen Anweisungen werden nacheinander ausgeführt Anweisungsfolge kann (in festgelegter Weise) wiederholt werden. * genaue, eindeutige, endliche und ausführbare Beschreibung Ausgangspunkt: gegebenes Problem Schritt 1: Analyse des Problems, ggf. genauere Darstellung (Spezifikation) exakte Problemspezifikation Schritt 2: Herausfinden eines Lösungsweges, Entwicklung eines Algorithmus Algorithmus in (halb-)formaler Darstellung Schritt 3: Übersetzung des Algorithmus in eine computerverständliche Form Programm in geeigneter Programmiersprache Schritt 4: Einsatz des Computers zur Erstellung der Lösung Lösung 11 Ein Algorithmus ist unabhängig von der Umsetzung im Rechner! Beispiele Eine Algorithmus zum Durchlaufen des Studiums Ein Algorithmus zum Erstellen see eines es Apfelkuchens pe uces heißt eß Backrezept Bedienungsanleitungen Gebrauchsanleitungen Bauanleitungen Partitur Spielanleitung Umwandlung von Dezimal- in Dualzahlen 12 Bekannte Algorithmen: Addition zweier positiver Dezimalzahlen (mit Überträgen) Test, ob einen gegebene natürliche Zahl eine Primzahl ist Sortieren einer unsortierten Kartei (etwa lexikographisch) Berechnung der Zahl e = 2.7182... 2

4. Beispiel für einen Algorithmus 13 Suche des Namens Götze im Telefonbuch (Variante 1) 1. Schlage die erste Seite des Buches auf 2. Lese beginnend mit dem ersten Namen einen Namen nach dem anderen, bis a) Götze gelesen wird Ende (gefunden) b) das Ende des Buches erreicht ist Götze steht nicht im Telefonbuch 14 Suche des Namens Götze im Telefonbuch (Variante 2) 1. Telefonbuch in der Mitte des Buches aufschlagen. Ein Name x wird gelesen. 2. Wenn x alphabetisch vor Götze liegt, dann wird der hinter x liegende Teil des Telefonbuches in der Mitte aufgeschlagen. Wenn x aber hinter diesem Namen liegt, dann wird der vordere Teil des Telefonbuchs in der Mitte aufgeschlagen. 3. Schritt 2 wird solange wiederholt, bis a) Götze gelesen wird Ende (gefunden) b) zwei aufgeschlagene Namen hintereinander liegen Götze steht nicht im Telefonbuch 5. Eigenschaften von Algorithmen 15 Abstraktion Ein Algorithmus löst im Allgemeinen eine Klasse von Problemen und nicht nur eine einzelnes ganz spezielles Problem. Finitheit / Endlichkeit Die Beschreibung wie auch die Anzahl an Zwischenergebnissen ist beschränkt bzw. endlich lang. Terminierung Algorithmen, die für jede(!) Eingabe nach endlich vielen Schritten ein Endekriterium erreichen, heißen terminierend. Determiniertheit (globale Eindeutigkeit) Liefern bei gleichen Daten bei wiederholter Ausführung stets gleiche Ergebnisse. 16 Determinismus (lokale Eindeutigkeit) Eindeutige Festlegung des nächsten Schrittes im Ablauf schließt Determiniertheit ein Effizienz üblicherweise wird hierunter der Ressourcenverbrauch (CPU, RAM, Speicher) verstanden Wartbarkeit, Änderbarkeit Wie gut ist ein Algorithmus an geänderte Problemstellungen oder auf andere Anwendungsumgebungen anzupassen? Zuverlässigkeit, Robustheit Wie gutmütig reagiert ein Algorithmus auf fehlerhafte Eingaben (s.a. Anwendungstests,...)? bei numerischen Algorithmen: Welche Auswirkungen haben Rundungsfehler? 5.1. Eigenschaften: Abstraktion 5.2. Eigenschaften: Terminierung 17 18 Ein Algorithmus löst im Allgemeinen eine Klasse von Problemen man abstrahiert von konkreten Eingabedaten und sucht ein allgemeines Verfahren Beispiel: Algorithmen zum Sortieren kann man auf Zahlen, Buchstaben, Namen,... miteinander vergleichbare Dinge anwenden Ein Algorithmus heißt terminierend, wenn er (bei jeder erlaubten Eingabe von Parameterwerten) nach endlich vielen Schritten abbricht bzw. beendet ist. Oft schwer oder überhaupt nicht feststellbar, ob ein Algorithmus terminiert (eine der Fragestellungen, mit der sich die Theoretische Informatik beschäftigt) 3

5.3. Eigenschaften: Determinismus 19 Beispiel (Ulam-Algorithmus): Beginne mit einer beliebigen Zahl n. Ist sie ungerade, multipliziere sie mit 3 und addiere 1, ansonsten halbiere sie. Fahre fort, bis 1 erreicht ist. Bis heute nicht geklärt, ob Ulam-Algorithmus für jedes n terminiert einige Folgen: 1 Ende 2, 1 Ende 3, 10, 5, 16, 8, 4, 2, 1 Ende... 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 Ende... 63 geht in 108 Schritten fast bis 10000 und endet dann bei 1... 20 deterministischer Ablauf: eindeutige Vorgabe der Schrittfolge d.h. zu jedem Zeitpunkt der Ausführung gibt es maximal eine Möglichkeit der Fortsetzung Algorithmen, bei denen die die Fortsetzung über Wahrscheinlichkeiten bestimmt ist heißen stochastisch oder randomisiert und sind nicht deterministisch Beispiele für nicht-deterministischen Ablauf: Sortieren: Wähle zufällig eine Karte, bilde zwei Stapel (lexikographisch vor der Karte, lexikographisch nach der Karte), sortiere diese (kleineren) Stapel, füge die sortierten Stapel wieder zusammen. Variante 2 von Suchen des Namen Götze im Telefonbuch wegen der beliebigen Auswahl des Namens X. 5.4. Eigenschaften: Determiniertheit 6. Aufbau von Algorithmen 21 Liefern bei gleichen Daten bei wiederholter Ausführung stets gleiche Ergebnisse Beispiel für einen nicht determinierter Algorithmus 1. Wählen Sie eine beliebige Zahl zwischen 1 und 100 2. Multiplizieren Sie die Zahl mit der Anzahl der seit dem 1.1.2000 vergangenen Minuten 3. Schreiben Sie das Ergebnis auf Nicht determiniert wegen Beliebigkeit der Auswahl zum Ausführungszeitpunkt und der Abhängigkeit vom Ausführungszeitpunkt Jeder deterministische Algorithmus ist auch determiniert. Nicht jeder determinierte Algorithmus ist jedoch deterministisch. 22 Größen beschreiben gegebenen Zustand von Objekten mit Variablen (Bezeichnern) Elementare Operationen werden auf betrachtete Größen angewendet; unterschiedliche Abstraktionsebenen denkbar (benutzernah maschinennah) Kontrollstrukturen/Ablaufbedingungen beschreiben Reihenfolge und Bedingungen für elementare Operationen 23 24 Algorithmen werden konstruiert, indem kleinere Bausteine zu größeren zusammengesetzt werden. Bausteine und Kompositionsprinzipien: Elementare Operation: nicht weiter erläutert schneide Fleisch in kleine Würfel Sequentielle Ausführung: bei kausaler Abhängigkeit oder wenn nur ein Prozessor zur Verfügung steht bringe das Wasser zum Kochen, dann gib Paket Nudeln hinein schneide das Fleisch, dann das Gemüse Parallele Ausführung: falls es keine Kausalitätsbeziehungen gibt und mehrere Prozessoren zur Verfügung stehen ich schneide das Fleisch, du das Gemüse Bedingte Ausführung: nur wenn Bedingung erfüllt ist wenn Soße zu dünn, dann füge Mehl hinzu Schleife: Wiederholung, bis Bedingung erfüllt ist Rühre so lange, bis Soße dick Unterprogramm: die Tätigkeit wird anderswo beschrieben und ist mehrfach benutzbar Bereite Soße (siehe S. 42) Rekursion: Anwendung desselben Algorithmus auf (kleineres) Teilproblem Es darf daher getrost, was auch von allen, deren Sinne, weil sie unter Sternen, die, wie der Dichter sagt, zu dörren, statt zu leuchten, geschaffen sind, geboren sind, vertrocknet sind, behauptet wird, enthauptet werden [ ]" (Christian Morgenstern, Galgenlieder) 4

7. Darstellung von Algorithmen 26 natürlichsprachlich (detailliert und explizit) graphisch: Flußdiagramme, Struktogramme,... Pseudo-Code Formale Sprache Programmiersprache Church sche These: Alle vernünftigen Darstellungen eines Algorithmus sind äquivalent 7.1. Darstellung: natürlichsprachlich 7.2. Darstellung: Programmablaufplan 27 Einen Apfel waschen, in Viertel schneiden, Kerngehäuse entfernen und in dünne Scheiben schneiden. Mit 1 EL Zitronensaft beträufeln. 250 g Geflügelleber waschen, trocken tupfen und in mundgerechte Stücke schneiden. In einer Pfanne 10 g Butter heiß werden lassen. Leber darin kurz braten und mit 1 TL Würzmischung würzen. Leber auf Küchenpapier legen, damit das Fett abtropft, dann zum Apfel geben. Für die Marinade 1 Beutel MAGGI Salat mit Pfiff Joghurt-Kräuter mit einem Becher (150 g) Joghurt, 3,5% Fett und 1 EL Sonnenblumenöl verrühren. Salatzutaten t t damit mischen und kurz durchziehen lassen. 3 Salatblätter waschen, abtropfen lassen, auf drei Teller verteilen und den Apfelsalat darauf anrichten. für Kochrezepte noch ganz angebracht 28 auch: Flußdiagramm graphische Darstellung eines Algorithmus normiert nach DIN 66001 nutzt t Sinnbilder für elementare Operationen und Ablaufstrukturen Linien bzw. Pfeile verbinden Beschreibung sehr umfangreich, enthält unwichtige Details unstrukturiert, unübersichtlich 29 Anfang / Ende: Start Eingabe / Ausgabe von Daten: Ende 30 Verzweigung / Bedingung ja nein ja Wasser warm? t > 128 Eingabe: Zeit t (elementare) Operation Ausgabe: Ergebnis Unterablauf (in einem anderen PAP spezifiziert) nein Erwärme Wasser t := t + 1 Nudeln kochen 5

Start 1 31 Ablauf wird durch Pfeile gekennzeichnet, die die Symbole verbinden zusätzlich: Übergangsstelle (wenn Platz nicht reicht) Kommentare (an andere Symbole anfügen und Erläuterungen hinter Klammer schreiben) Das hier ist ein nicht sehr sinnvoller Kommentar! 32 nein Herdplatte einschalten Topf mit Wasser füllen Topf auf Herdplatte stellen Kocht Wasser? ja 1 Eier in Topf geben 5 Min warten Herdplatte ausschalten Eier abschrecken Ende Wichtig, nicht vergessen! 8. Zusammenfassung 34 Algorithmus als exakte Beschreibung eines Verarbeitungsvorganges kann analysiert, auf Korrektheit und andere Eigenschaften getestet werden wichtiger Schritt auf dem Weg vom Problem zu einem Programm verschiedene Notationen natürlichsprachlich Pseudocode Struktogramm Programmablaufplan... 33 35 Quellen: Gumm/Sommer: Einführung in die Informatik Stucky: Vorlesung Informatik A, Uni Karlsruhe Fellner: Vorlesung Alg & DS 1, TU Braunschweig 6