WS 05/06 mod Verifikation
|
|
- Adam Küchler
- vor 6 Jahren
- Abrufe
Transkript
1 3.3 Verifikation WS 05/06 mod 351 Verifikation ist der Beweis der Korrektheit eines Algorithmus relativ zu seiner Spezifikation. Die Aussagen gelten für alle Ausführungen des Algorithmus. Sie werden statisch getroffen, ohne das Programm auszuführen (im Gegensatz zum dynamischen Testen). Die Hoaresche Logik ist ein Kalkül zum Beweisen von Aussagen über Algorithmen und Programme [C.A.R. Hoare, 1969]. Nach Hoare schreiben wir: { Vorbedingung P} Algorithmus A { Nachbedingung Q} z. B. { a, b ΙN + } Euklidischer Algorithmus { x ist größter gemeinsamer Teiler von a, b } Gilt vor der Ausführung des Algorithmus A die Bedingung P, so gilt nach der Ausführung die Bedingung Q. Die Hoaresche Schreibweise { P } A { Q } überarbeitet 2005 Prof. Dr. W.Hauenschild kann als Forderung gelesen werden im Sinne einer Spezifikation. In diesem Kapitel bedeutet sie im Sinne der Verifikation eine bewiesene Aussage. P und Q sind dabei häufig Interpretationen prädikatenlogischer Formeln, die z. B. Aussagen über die Ein- und Ausgabeparameter (Vor- und Nachbedingung) machen.
2 Notation von Algorithmenelementen WS 05/06 mod 352 Anweisungsform Notation Beispiel Zuweisung Variable := Ausdruck a := x Sequenz Anweisung 1 ; a := x; Anweisung 2 b := y Bedingte Anweisung falls Bedingung : falls a > b : (bzw. Alternative) Anweisung 1 a := a - b (sonst Anweisung 2 ) (sonst b := b - a) Schleife solange Bedingung wiederhole solange a b wiederhole Anweisung falls a > b:...
3 Regel für Zuweisung WS 05/06 mod 353 Die Zuweisung x := e wertet den Ausdruck e aus und weist das Ergebnis der Variablen x zu. Beispiele: { x = 7} x := 5 { x = 5} { x 1} x := x - 1 { x 0} Wir wollen versuchen, die Nachbedingungen von Zuweisungen direkt zu erschließen. Zur Kontrolle kann dabei folgende Regel angewendet werden: Wenn man zeigen will, dass nach der Zuweisung eine Aussage Q(x) für x gilt, muss man zeigen, dass vor der Zuweisung die Aussage Q(e) für e anstelle von x gilt. { Q(e) } x := e { Q(x) } Falls also gilt: aus P folgt Q(e),dann gilt: { P } x := e { Q(x) } Beispiel: Wir wollen zeigen x = 5 (Q(x)). Wir benötigen also 5 = 5 (Q(5)). Das folgt aber, da es immer wahr ist, auch aus x = 7 (P).
4 Beispiele für Zuweisungen WS 05/06 mod 354 { Q(e) } x := e {Q(x) } in Q(x): x durch e ersetzt 1. { a > 0 } x := a { x > 0 } 2. { a > 0 a > 0 } x := a { x > 0 a > 0 } x durch a ersetzen - nicht umgekehrt 3. { a > 0 x = 7 } x := a { x > 0 x = 7 } falscher Schluss! alle x durch a ersetzen! 4. { a > 0 z > 0 } x := a { x > 0 z > 0 } z > 0 ist nicht betroffen 5. { i + 1 > 0 } i := i + 1 { i > 0 } 6. { i = 2 } { i + 1 = 3 } i := i + 1 { i = 3 } passend umformen 7. { 1 = 1 } x := 1 { x = 1 } passend umformen 8. { z = 5 } passend umformen { z = 5 1 = 1 } x := 1 { z = 5 x = 1 } 9. { i > 0 i ΙN } passend umformen { i } i := i - 1 { i 0 }
5 Konsequenzregeln WS 05/06 mod 355 Abschwächung der Nachbedingung { P } S { R } R Q { P } S { Q } Verschärfung der Vorbedingung P R { R } S { Q } { P } S { Q } Beispiel: a > 0 b > 0 a+b > 0 { a+b > 0 } x := a+b { x > 0 } { x > 0 } { x 0} {a > 0 b > 0}x := a+b{ x 0 } im Algorithmus können Implikationen in Ausführungsrichtung eingefügt werden: { a+b > 0 } x := a+b { x > 0 } { 2*x 0} y := 2*x { y 0}
6 Regel für Sequenz WS 05/06 mod 356 Der Hoaresche Kalkül definiert für jede Anweisungsform ein Regelschema. Sequenzregel: {P} {Q} {P} S 1 S 2 S 1 ; S 2 {Q} {R} {R} Bedeutung: Wenn {P} S 1 {Q} und {Q} S 2 {R} korrekte Schlüsse sind, dann ist auch {P} S 1 ; S 2 {R} ein korrekter Schluss Beispiel: { x>0 y>0 } a := x; { a>0 y>0 } { a>0 y>0 } b := y { a>0 b>0 } { x>0 y>0 } a := x; b := y { a>0 b>0 } im Algorithmus die Schritte { x>0 y>0 } a := x { a>0 y>0 } und { a>0 y>0 } b := y { a>0 b>0 } zusammensetzen: { x>0 y>0 } a := x; { a>0 y>0 } b := y { a>0 b>0 }
7 Regel für Alternative und bedingte Anweisung Alternative: WS 05/06 mod 357 { P B } { P B } S 1 { Q 1 } S 2 { Q 2 } { P } falls B: S 1 sonst S 2 { Q 1 Q 2 } Aus der gemeinsamen Vorbedingung P führen beide Zweige auf dieselbe Nachbedingung Q 1 Q 2 Beispiel: { a > 0 } b := a { b > 0 } { b 0 } { (a > 0) } { -a 0 } b := - a { b 0 } { } falls a > 0: b := a sonst b := - a { b 0 } Bedingte Anweisung: { P B } P B S { Q 1 } { Q 2 } { P } falls B: S { Q 1 Q 2 } im Algorithmus: { a>0 b>0 a b } falls a > b : { a>0 b>0 a>b } { a-b>0 b>0 } a := a - b { a>0 b>0 } sonst { a>0 b>0 b>a } { a>0 b-a>0 } b := b - a { a>0 b>0 } { a>0 b>0 }
8 Regel für Schleifen WS 05/06 mod 358 Wiederholung, Schleife: { INV B } S {INV } {INV } solange B wiederhole S { INV B} Eine Aussage INV heißt Schleifeninvariante, wenn man zeigen kann, dass sie an folgenden Stellen gilt: vor der Schleife, vor und nach jeder Ausführung von S und nach der Schleife. Beispiel: Algorithmus zum Potenzieren (Bedingung: y ΙN ) a := x; b := y; z := 1; INV: z a b = x y b ΙN { INV } solange b > 0 wiederhole { INV b > 0 } { z a a b-1 = x y (b-1) ΙN } b := b - 1; { z a a b = x y b ΙN } z := z a { INV } { INV b 0 } { z a b = x y b = 0 } { z = x y }
9 Terminierung von Schleifen WS 05/06 mod 359 Die Terminierung einer Schleife muss zusätzlich nachgewiesen werden. 1. Gib einen ganzzahligen Ausdruck E an über Variablen, die in der Schleife vorkommen, und zeige, dass E bei jeder Iteration durch S verkleinert wird. 2. Zeige, dass E nach unten begrenzt ist, z. B. dass 0 E eine Invariante der Schleife ist. Das kann zum Beispiel durch folgende Erweiterung der Schleifenregel bewiesen werden: { INV E ΙN E = k B } S {INV E ΙN E < k } {INV } solange B wiederhole S { INV B} Es kann auch eine andere Grenze als 0 gewählt werden. E kann auch streng monoton wachsen und nach oben begrenzt sein. Nichtterminierung wird bewiesen, indem man zeigt, dass R B eine Invariante der Schleife ist und dass es eine Eingabe gibt, so dass R B vor der Schleife gilt. R kann einen speziellen Zustand charakterisieren, in dem die Schleife nicht anhält. Es gibt Schleifen, für die man nicht entscheiden kann, ob sie für jede Vorbedingung terminieren.
10 Beispiele zur Terminierung WS 05/06 mod { a > 0 b > 0} terminiert Schleife1 solange a b wiederhole Schleife2 solange a > b wiederhole a := a - b; Schleife3 solange a < b wiederhole b := b - a 2. { a > 0 b > 0} terminiert nicht immer Schleife1 solange a b wiederhole Schleife2 solange a b wiederhole a := a - b; Schleife3 solange a < b wiederhole b := b - a 3. { n ΙN n > 1 } Terminierung ist unbewiesen solange n > 1 wiederhole falls n gerade: n := n / 2 sonst n := 3 * n + 1
11 Denksportaufgabe zu Invarianten WS 05/06 mod 361 In einem Topf seien s schwarze und w weiße Kugeln, s + w > 0 solange mindestens 2 Kugeln im Topf sind nimm 2 beliebige Kugeln heraus falls sie gleiche Farbe haben: wirf beide weg und lege eine neue schwarze Kugel in den Topf falls sie verschiedene Farben haben: lege die weiße Kugel zurück in den Topf und wirf die schwarze Kugel weg Welche Farbe hat die letzte Kugel? Finden Sie Invarianten, die die Frage beantworten.
12 Verifikation: Algorithmus berechnet ggt WS 05/06 mod 362 Vorbedingung: a, b ΙN + ; sei G größter gemeinsame Teiler von a und b Nachbedingung: x = G Algorithmus mit { Aussagen über Variable }: { G ist ggt von a und b a ΙN + b ΙN + } x := a; y := b; { INV: G ist ggt von x und y x ΙN + y ΙN + } solange x y wiederhole Terminierung der Schleife: E = x+y fällt monoton E = x+y > 0 ist Invariante { INV x y } falls x > y : { G ist ggt von x und y x>y x ΙN + y ΙN + } { G ist ggt von x-y und y x-y ΙN + y ΙN + } x := x - y { INV } sonst { G ist ggt von x und y y>x x ΙN + y ΙN + } { G ist ggt von x und y-x x ΙN + y-x ΙN + } y := y - x { INV } { INV } / { INV x = y } { x = G }
13 Verifikation: Algorithmus sucht Minimum WS 05/06 mod 363 Vorbedingung: (a 1,..., a n ) ist Folge natürlicher Zahlen Nachbedingung: j die Position und min der Wert eines minimalen Elements der Folge Idee: Beginne links mit a 1 ; nimm bei jedem Schritt das nächste Element dazu und prüfe, ob es kleiner ist als das bisher gefundene Minimum. Falls ja, ändere Position und Wert. {INV} = { i {1,.., n } a j = min {a 1,..,a i } min = a j } Algorithmus: i := 1; min := a 1 ; j := 1; solange i < n wiederhole i := i + 1; 2005 Prof. Dr. W. Hauenschild 1 falls a i < min : min := a i ; j := i;
Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -
Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete
MehrPartielle Korrektheit von Programmen. Beispiele an der Tafel
Partielle Korrektheit von Programmen Beispiele an der Tafel ALP II: Margarita Esponda, 12. Vorlesung, 24.5.2012 36 Beispiel: Partielle Korrektheit von Programmen Nehmen wir an, wir möchten beweisen, dass
MehrEin Beispielbeweis zur Verifikation des Programms zur Division mit Rest auf der Basis der Hoare-Regeln
Ein Beispielbeweis zur Verifikation des Programms zur Division mit Rest auf der Basis der Hoare-Regeln Ralf Lämmel 24. Dezember 2014 1 Hoare-Regeln Im folgenden müssen wie folgende Hoare-Regeln benutzen:
MehrÜbung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013
Übung zu Grundbegriffe der Informatik Simon Wacker 15. November 2013 Vollständige Induktion über die Wortlänge Es sei B ein Alphabet. Dann ist B = n N 0 B n. Für jedes Wort w B sei A w eine Aussage, die
MehrKapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
MehrInformatik II - Tutorium
Sommersemester 2008 http://info2tut.blogspot.com 29. April 2007 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Quellennachweis & Dank an: Joachim Wilke, Susanne Dinkler, Bernhard Müller,
MehrKurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am
1 Aufgabe 1 a) Da Effizienzbetrachtungen bei der Lösung der Aufgabe keine Rolle spielen, wählen wir einen einfachen, aber ineffizienten Algorithmus mit zwei ineinander verschachtelten for-schleifen. Dadiefor-Schleifen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrAlgorithmen und Datenstrukturen Korrektheit von Algorithmen
Algorithmen und Datenstrukturen Korrektheit von Algorithmen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren,
MehrAllgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Klausur Prof. Dr. Helmut Seidl, T. M. Gawlitza, S. Pott,
MehrStudent: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
MehrAlgorithmen und Datenstrukturen 1 Kapitel 4.1
Algorithmen und Datenstrukturen 1 Kapitel 4.1 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 4: Maschinenmodelle [Dieses Kapitel hält sich eng an
MehrStatisches Programmverständnis. pk12w16,
Statisches Programmverständnis pk12w16, 10. 12. 2012 1 Verifikation einer Klasse für jede Methode und jeden Konstruktor: Annahme: Vorbedingungen und Invarianten erfüllt Nachbedingungen und Invarianten
MehrI. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.
I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten
MehrTeil X. Programmverifikation. Spezifikation eines Algorithmus einer Funktion einer Prozedur. Vorbedingungen Parameter Wertebereiche
Teil X Programmverifikation STRUKTURIERTES PROGRAMMIEREN Vorlesung im Wintersemester 2015 Prof. E.G. Schukat-Talamazzini Stand: 24. Juli 2015 Robert W Floyd 1936 2001 Sir Charles Antony Richard Hoare *1934
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:
MehrInhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe
Inhaltsverzeichnis Einführende Bemerkungen 11 Das Fach Informatik 11 Zielsetzung der Vorlesung 12 1. Grundbegriffe 1 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Information und Nachricht 1.1.1 Information 1.1.2 Nachricht
MehrSoftware Entwicklung 2. Formale Verifikation
Software Entwicklung 2 Formale Verifikation Inhalt Verifikation Intuitive Einführung: Die induktive Zusicherungsmethode Zusicherungen Spezifizieren mit Anfangs- und Endebedingung Der Hoare-Kalkül Totale
MehrAnnehmende Schleife do while
Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,
MehrPräzedenz von Operatoren
Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrResolutionsalgorithmus
112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:
MehrAussagenlogik. Aussagen und Aussagenverknüpfungen
Aussagenlogik Aussagen und Aussagenverknüpfungen Aussagen sind Sätze, von denen sich sinnvollerweise sagen läßt, sie seien wahr oder falsch. Jede Aussage besitzt also einen von zwei möglichen Wahrheitswerten,
MehrInformatik II Musterlösung
Ludwig-Maximilians-Universität München SS 2006 Institut für Informatik Übungsblatt 4 Prof. Dr. M. Wirsing, M. Hammer, A. Rauschmayer Informatik II Musterlösung Zu jeder Aufgabe ist eine Datei abzugeben,
MehrFunktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung
Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge
MehrAbstrakte Algorithmen und Sprachkonzepte
Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise
MehrGrundlagen der Theoretischen Informatik
FH Wedel Prof. Dr. Sebastian Iwanowski GTI22 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 2: Logik, Teil 2.2: Prädikatenlogik FH Wedel Prof. Dr. Sebastian Iwanowski
MehrLogik für Informatiker
Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:
MehrKlausurvorbereitung für die Semesterferien - 20 Aufgaben -
Klausurvorbereitung für die Semesterferien - 20 Aufgaben - Sebastian Heger B.Sc. - SoSe 2010 Mathematik für Informatiker II bei Prof. Dr. J. Baumeister Aufgabe 1. (Mengenbeweise) Seien ABC beliebige Mengen.
MehrAlgorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration
Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Beweise)
WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Mehr1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
MehrEinführung in die Informatik Algorithms
Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren
MehrAlgorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
Mehr3. Grundlegende Begriffe von Logiken - Aussagenlogik
3. Grundlegende Begriffe von Logiken - Aussagenlogik Wichtige Konzepte und Begriffe in Logiken: Syntax (Signatur, Term, Formel,... ): Festlegung, welche syntaktischen Gebilde als Formeln (Aussagen, Sätze,
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrFlussdiagramm / Programmablaufplan (PAP)
Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze
MehrTheorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007
Seite 1 Theorem Proving Prädikatenlogik Seite 2 Gliederung Warum Theorembeweisen? Wie funktioniert Theorembeweisen? Wie kann mir das Werkzeug KIV dabei helfen? Seite 3 Warum Theorembeweisen? Wie kann man
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrEinführung in die Programmierung I Systema=sches Programmieren
252-0027 Einführung in die Programmierung I 10.0 Systema=sches Programmieren Thomas R. Gross Department Informa=k ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht!
Mehr3.2 Prädikatenlogik. WS 06/07 mod 321
3.2 Prädikatenlogik WS 06/07 mod 321 Prädikatenlogik umfasst Aussagenlogik mit atomaren Aussagen, Variablen, Junktoren. Zusätzliche Konzepte: A = (τ, Σ) sei die so genannte Termalgebra (mit Variablen,
Mehr3.1.1 Die Variante T1 und ein Entscheidungsverfahren für die Aussagenlogik
Deduktionssysteme der Aussagenlogik, Kap. 3: Tableaukalküle 38 3 Tableaukalküle 3.1 Klassische Aussagenlogik 3.1.1 Die Variante T1 und ein Entscheidungsverfahren für die Aussagenlogik Ein zweites Entscheidungsverfahren
Mehr1.2 Eigenschaften der ganzen Zahlen
Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen
Mehr5. Elementare Befehle und Struktogramme
5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen
MehrKlausur zur Vorlesung Mathematische Logik
Universität Heidelberg 13. Februar 2014 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl.-Math. Thorsten Kräling Klausur zur Vorlesung Mathematische Logik Musterlösung Aufgabe 1 (Aussagenlogik
MehrTeil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik
Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für
MehrMathematische Grundlagen der Ökonomie Übungsblatt 8
Mathematische Grundlagen der Ökonomie Übungsblatt 8 Abgabe Donnerstag 7. Dezember, 0:5 in H 5+7+8 = 20 Punkte Mit Lösungshinweisen zu einigen Aufgaben 29. Das Bisektionsverfahren sucht eine Nullstelle
MehrÜberblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung
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
MehrAlgorithmen & Programmierung. Algorithmen als Funktionen Funktionen in C
Algorithmen & Programmierung Algorithmen als Funktionen Funktionen in C Algorithmus in der Informatik Algorithmen in der Informatik können nur Informationen verarbeiten, die als Daten bezeichnet werden.
Mehr1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit
1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit 1.1 Korrektheit Mit dem Kalkül der Prädikatenlogik, z.b. dem Resolutionskalkül, können wir allgemeingültige Sätze beweisen. Diese Sätze
MehrEinstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
MehrGrundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem
Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung
MehrVorlesung. Vollständige Induktion 1
WS 015/16 Vorlesung Vollständige Induktion 1 1 Einführung Bei der vollständigen Induktion handelt es sich um ein wichtiges mathematisches Beweisverfahren, mit dem man Aussagen, die für alle natürlichen
MehrVorlesung Datenbanktheorie. Church-Rosser-Eigenschaft der Verfolgungsjagd. Berechnung von chase(t, t, Σ) Vorlesung vom Mittwoch, 05.
Vorlesung Datenbanktheorie Nicole Schweikardt Humboldt-Universität zu Berlin Sommersemester 2006 Vorlesung vom Mittwoch, 05. Juli 2006 Letzte Vorlesung: Kurze Bemerkungen zum Armstrong-Kalkül The Chase:
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
Mehr5. Spezifikation und Verifikation von Programmen. Hier: Spezifikation einfacher Programme
5. Spezifikation und Verifikation von Programmen Programmentwicklung: genaue Kenntnis der gewünschten Leistungen offensichtlich unabdingbar In größeren Systemen: Anforderungsdefinition legt fest: - Funktionalität
MehrAlgorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 8, 4.11.08 Friedhelm Meyer auf der Heide 1 Organisatorisches Am Dienstag, 11.11., fällt die
Mehr3: Zahlentheorie / Primzahlen
Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,
MehrGruppe: Thema 1
Thema 1 Sequenz Der Roverbot soll eine digitale Acht fahren. Erstelle zu dieser Aufgabe ein Struktogramm, einen Screenshot deines mit Mindstorms-RIS angefertigten Programms und erkläre mit eigenen Worten
MehrGrundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de
MehrMinimal spannende Bäume
Minimal spannende Bäume Ronny Harbich 4. Mai 006 (geändert 19. August 006) Vorwort Ich danke Patrick Bahr und meinem Bruder Steffen Harbich für die Unterstützung bei dieser Arbeit. Sie haben sowohl zu
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen
Grundlagen der Programmierung Prof. H. Mössenböck 4. Schleifen While-Schleife Führt eine Anweisungsfolge aus, solange eine bestimmte Bedingung gilt i 1 sum 0 i n sum sum + i i i + 1 i = 1; sum = 0; while
MehrEinführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrKapitel 1.5. Ein adäquater Kalkül der Aussagenlogik. Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls
Kapitel 1.5 Ein adäquater Kalkül der Aussagenlogik Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls Mathematische Logik (WS 2012/13) Kapitel 1.5: Kalküle 1/30 Syntaktischer
MehrGleichungen und Ungleichungen
Gleichung Eine Gleichung erhalten wir durch Gleichsetzen zweier Terme. Kapitel 3 Gleichungen und Ungleichungen linke Seite = rechte Seite Grundmenge: Menge aller Zahlen, die wir als Lösung der Gleichung
MehrKlausur zur Wirtschaftsinformatik II im Grundstudium
Prof. Dr. R. Gabriel Sommersemester 2005 Wirtschaftsinformatik 19. August 2005 Ruhr-Universität Bochum Klausur zur Wirtschaftsinformatik II im Grundstudium - Die Bearbeitungszeit der Klausur beträgt 90
MehrMathematik 1 für Wirtschaftsinformatik
für Wirtschaftsinformatik Wintersemester 2012/13 Hochschule Augsburg : Gliederung 1 Grundlegende 2 Grundlegende 3 Aussagenlogik 4 Komplexe Zahlen 5 Lineare Algebra 6 Lineare Programme 2 Grundlegende
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
Mehr5.10. Mehrdimensionale Extrema und Sattelpunkte
5.1. Mehrdimensionale Extrema und Sattelpunkte Zur Erinnerung: Eine Funktion f von einer Teilmenge A des R n nach R hat im Punkt a ein (strenges) globales Maximum, falls f( x ) f( a ) (bzw. f( x ) < f(
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrÜbersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
MehrAlgorithmen in Java. 1. Was sind Algorithmen? 2. Wie beschreibt man Algorithmen? 3. Wie erstellt man Algorithmen? 4. Wie untersucht man Algorithmen?
Algorithmen in Java 1. Was sind Algorithmen? 2. Wie beschreibt man Algorithmen? 3. Wie erstellt man Algorithmen? 4. Wie untersucht man Algorithmen? 02.11.2006 Grundlagen der Programmierung 1 Lernziele
MehrDie Folgerungsbeziehung
Kapitel 2: Aussagenlogik Abschnitt 2.1: Syntax und Semantik Die Folgerungsbeziehung Definition 2.15 Eine Formel ψ AL folgt aus einer Formelmenge Φ AL (wir schreiben: Φ = ψ), wenn für jede Interpretation
MehrVorsemesterkurs Informatik
Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung
MehrSteuerung von Programmabläufen. Vorlesung Computergestützte Mathematik zur Linearen Algebra. Lehrstuhl für Angewandte Mathematik Sommersemester 2009
Steuerung von Programmabläufen Vorlesung Computergestützte Mathematik zur Linearen Algebra Lehrstuhl für Angewandte Mathematik Sommersemester 2009 7. und 14. Mai 2009 For-Schleifen Bisher: Matlab -Kommandos
MehrDiskrete Strukturen Kapitel 1: Einleitung
WS 2015/16 Diskrete Strukturen Kapitel 1: Einleitung Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15
MehrWeitere Beweistechniken und aussagenlogische Modellierung
Weitere Beweistechniken und aussagenlogische Modellierung Vorlesung Logik in der Informatik, HU Berlin 2. Übungsstunde Aussagenlogische Modellierung Die Mensa versucht ständig, ihr Angebot an die Wünsche
MehrLösungen zur 3. Projektaufgabe TheGI1
Marco Kunze (makunze@cs.tu-berlin.de) WS 2001/2002 Sebastian Nowozin (nowozin@cs.tu-berlin.de) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer
MehrDr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
MehrLogik-Grundlagen. Syntax der Prädikatenlogik
Logik-Grundlagen X 1 :...: X k : ( A 1 A 2... A m B 1 B 2... B n ) Logische und funktionale Programmierung - Universität Potsdam - M. Thomas - Prädikatenlogik III.1 Syntax der Prädikatenlogik Prädikat:
MehrBKTM - Programmieren leicht gemacht.
BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi
Mehr2 Der Beweis. Themen: Satz und Beweis Indirekter Beweis Kritik des indirekten Beweises
2 Der Beweis Themen: Satz und Beweis Indirekter Beweis Kritik des indirekten Beweises Satz und Beweis Ein mathematischer Satz besteht aus einer Voraussetzung und einer Behauptung. Satz und Beweis Ein mathematischer
MehrMaster Technische Informatik. Seminar Informatik- SS 2010. Formale Programmverifikation: theoretische Grundlagen und Beispiele
Master Technische Informatik Seminar Informatik- SS 2010 (Betreuer: Prof. Nissen) Formale Programmverifikation: theoretische Grundlagen und Beispiele Bearbeiterin: Dorota Buczynski Matrikelnr. 11035857
MehrKapitel 1.3. Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln
Kapitel 1.3 Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 1/ 29 Übersicht
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrJAVA Projekt Mensch ärgere dich nicht
JAVA Projekt Mensch ärgere dich nicht Rechnerpraktikum aus Programmierung, WS06/07 Unter der Leitung von Dr. Michael Hahsler Autor: Name: Patrick Siebert Matrikelnummer: 0252978 Inhalt: PROBLEMBESCHREIBUNG:...
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf
Mehr(c) x = a 2 b = ( ) ( ) = Anzahl der Teiler von x: τ(x) = (1 + 1) (3 + 1) (1 + 1) (7 + 1) = 128
Aufgabe 1 Wir betrachten die beiden Zahlen a = 57 101 3 und b = 3 57 79 101 (4+2+4=10 Punkte) ( Es gilt: 3, 57, 79, 101 P ) Hier liegt ein Fehler in der Aufgabenstellung vor, denn wegen 57 = 3 19 ist 57
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016
Mehr(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)
3. Untergruppen 19 3. Untergruppen Nachdem wir nun einige grundlegende Gruppen kennengelernt haben, wollen wir in diesem Kapitel eine einfache Möglichkeit untersuchen, mit der man aus bereits bekannten
Mehr6. Flüsse und Zuordnungen
6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über solch eine Kante pro Zeiteinheit transportiert werden können. Wir können uns einen
MehrVorlesung. Einführung in die mathematische Sprache und naive Mengenlehre
Vorlesung Einführung in die mathematische Sprache und naive Mengenlehre Allgemeines RUD26 Erwin-Schrödinger-Zentrum (ESZ) RUD25 Johann-von-Neumann-Haus Fachschaft Menge aller Studenten eines Institutes
MehrWarum Mathe? IG/StV-Mathematik der KFU-Graz. 1 Mengen Mengenoperationen Rechenregeln Mengen 4. Funktionen 7
Warum Mathe? IG/StV-Mathematik der KFU-Graz März 2011 Inhalt 1 Mengen 1 1.1 Mengenoperationen.............................. 2 1.2 Rechenregeln.................................. 3 2 Übungsbeispiele zum
MehrInformatik I WS 07/08 Tutorium 24
Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 3.2.07 astian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches / Review is zum 2.2 müssen alle Praxisaufgaben
MehrAussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen. notwendig: Existenz- und Allaussagen
Prädikatenlogik 1. Stufe (kurz: PL1) Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen notwendig: Existenz- und Allaussagen Beispiel: 54 Syntax der Prädikatenlogik erster Stufe (in der
Mehr