ebook img

Prolog: Eine methodische Einführung PDF

255 Pages·1990·10.088 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Prolog: Eine methodische Einführung

RalfCordes Rudolf Kruse Horst Langendorfer Heinrich Rust Prolog Artificial Intelligence Kiinstliche Intelligenz Kunstliche Intelligenz steht hier fUr das Bemuhen urn ein Ver standnis und urn die technische Realisierung intelligenten Ver haltens. Die Bucher dieser Reihe sollen Wissen aus den Gebieten der Wissensverarbeitung, Wissensreprasentation, Expertensysteme, Wissenskommunikation (Sprache, Bild, Klang, etc.), Spezial maschinen und -sprachen sowie Modelle biologischer Systeme und kognitive Modellierung vermitteln. Bisher sind erschienen: Automated Theorem Proving von Wolfgang Bibel Die Wissensreprasentationssprache OPS 5 von Reinhard Krickhahn und B'ernd Radig Prolog von Ralf Cordes, Rudolf Kruse, Horst Langendorfer, Heinrich Rust LISP von Rudiger Esser und Elisabeth Feldmar Logische Grundlagen der Kiinstlichen Intelligenz von Michael R. Genesereth und Nils J. Nilsson Wissensbasierte Echtzeitplanung von Jurgen Dorn Modulare Regelprogrammierung von Siegfried Bocionek RalfCordes Rudolf Kruse Horst Langendorfer Heinrich Rust Prolog Eine methodische Einfiihrung Herausgege ben von Paul Schmitz 2., verbesserte und erweiterte Aufiage II vleweg Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgen( einer Art verbunden. Die Autoren, der Herausgeber und der Verlag ubernehmen infolgedessen keir: Verantwortung und werden keine daraus folgende oder sonstige Haftung ubernehmen, die aufirgenc eine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1. Auflage 1988 2., verbesserte und erweiterte Auflage 1990 Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International. Al1e Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1990 Das Werk einschlie~lich aller seiner Teile ist urheberrechtlich geschutzt. Jede Verwertung au~erhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzuliissig und strafbar. Das gilt insbesondere ftir Vervielfiiltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Peter Lenz, Wiesbaden ISBN 978-3-528-14584-2 ISBN 978-3-322-90619-9 (eBook) DOl 10.1007/978-3-322-90619-9 Vorwort Die Programmiersprache Prolog gewinnt in weiten Kreisen von EDV-Fachleuten und Anwendern stark an Popularitat. 1m universitaren Kreis besitzt diese Spra che besonders im Bereich der wissensbasierten Systeme seit geraumer Zeit einen hohen Stellenwert. Das Ziel des Buches ist es, einen in Lektionen eingeteilten, methodisch geglie derten Einfuhrungskurs in die Programmierung mit Prolog zu geben. Das Buch basiert auf dem Praktikum "Programmieren in Prolog", das an der Technischen Universitat in Braunschweig seit dem Wintersemester 1984/85 regelmafiig an ge boten wird. Das Buch wendet sich an Schuler und Student en ebenso wie an Interessierte aller Fachrichtungen, die sich einen Einblick in die logis~he Programmierung und ihre Anwendungen verschaffen wollen. Fi.ir die erste Aufiage des Buches haben uns K. Drosten, D. Kruse, J. Risius und W. Struckmann wertvolle Anregungen gegeben. In der zweiten Aufiage haben wir zahlreiche Hinweise unserer Leser berucksichtigt. Wir danken insbesondere Herrn U. Schreiweis, der uns das Material fUr die neue praxisbezogene Lektion 19 zu Verfiigung gestellt hat und uns bei der Durchsicht des Manuskripts sehr behilfiich war. Ferner danken wir dem Vieweg-Verlag fUr die gute Zusammenarbeit. Braunschweig, im November 1989 R. Cordes R. Kruse H. Langendorfer H. Rust Inhalt sverzeichnis Einleitung 1 Zur historischen Entwicklung von Prolog . . . . . . . . . . . . . 2 Einsatz von Prolog in Fachgebieten der Kiinstlichen Intelligenz 3 Verarbeitungsmodelle und Programmierstile . . . 5 Prolog - eine logik-basierte Programmiersprache 7 Zu dies em Buch . . . . . . . . . . . . . . . . . . . 7 I Reines Prolog 9 1 Fakten und Regeln 10 1.1 Fakten ..... . 10 1.2 Regeln ..... . 12 1.3 Ubungsaufgaben 14 2 Arbeitsweise des Prologinterpreters 16 2.1 Anfragen .. 16 2.2 Unifikation ... 19 2.3 Backtracking . . 22 2.4 Ubungsaufgaben 23 *3 Grundlagen der PriidikRtenlogik 24 3.1 Syntax .. 24 3.2 Semantik ............ . 27 Inhaltsverzeichnis VII 3.3 Klauseln..... 31 3.4 Ubungsaufgaben 36 *4 Grundlagen der logischen Programmierung 37 4.1 Das Resolventenprinzip ..... . 37 4.2 Semantik von Prologprogrammen 44· 4.3 Ubungsaufgaben . . . . . . . . . . 48 II Prolog - Sprache und Programmierumgebung 51 I) Pridikate mit Seitenefl'ekten 52 5.1 Ein- und Ausgabe ...... 52 5.2 Dateibearbeitung....... 56 5.3 Vera.nderung der Wissensbank . 60 5.4 Ubungsaufgaben . . . . . . . . 63 6 Kontrollstrukturen 64 6.1 Und und Oder 64 6.2 Das Fail . . . . . . 65 6.3 Das Cut . .... . 67 6.4 Die Cut-Fail-Kombination . 69 6.5 Das Repeat '" 70 6.6 Ubungsaufgaben . . . . . . 71 *7 Graphische Darstellung von Prologprogrammen 73 7.1 Der Beweisbaum .. 74 7.2 Das Vierportmodell . 78 7.3 Ubungsaufgaben . . 80 8 Arithmetische und relationale Operatoren 81 8.1 Arithmetische Operatoren .............. . 81 8.2 Relationale Operatoren fiir arithmetische Ausdriicke 83 8.3 Relationale Operatoren fiir Terme 84 8.4 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . 86 9 Klassifikation, Analyse und Synthese von Termen 87 9.1 Klassifikation von Termen . '.' .. 87 9.2 Analyse und Synthese von Termen 89 ·9.3 Ausfiihren von Termen: Das Call 92 9.4 Ubungsaufgaben ......... . 93 *Diese Kapitel konnen durchaus vernachlassigt werden, wenn man nur einen schne11en Einblick in die Programmiersprache Prolog gewinnen will. VIII Inhal tsverzeichnis 10 Terme und Operatoren 94 10.1 Definition von Operatoren .......... . 95 10.2 Probleme bei der Benutzung von Operatoren 98 10.3 Listennotationen 99 10.4 Ubungsaufgaben ............... . 100 III Datenstrukturen, Algorithmen und Anwendungenl03 11 Listen und Listenoperationen 104 11.1 Die Datenstruktur Liste ... 105 11.2 Reprasentation von Listen in Prolog . . . 105 11.3 Definierbare Listenoperationen in Prolog. 108 11.4 Ubungsaufgaben .............. 113 12 Sortierverfahren 115 12.1 Permutation. 116 12.2 Tauschsort. 117 12.3 Quicksort 117 12.4 Mergesort . 119 12.5 Treesort . . 120 12.6 Ubungsaufgaben 121 *13 Graphen und Graphsuche 122 13.1 Zum Begriff des Graphen ......... 122 13.2 Reprasentation von Graphen in Prolog . . 123 13.3 Wegermittlung in ungerichteten Graphen 124 13.4 Suchstrategien . 128 13.5 Ubungsaufgaben ...... . . . . . . . . 130 *14 Symbolmanipulation 131 14.1 Symbolische Differentiation 131 14.2 Symbolische Klauseltransformation 133 14.3 Ubungsaufgaben ...... . . . . 141 15 Ein Interpreter fUr applikative Programme 142 15.1 Das applikative Konzept 142 15.2 Der Interpreter . 144 15.3 Ubungsaufgaben .. . . 149 *16 Realisierung weiterer Programmierkonzepte in Prolog 150 16.1 Das Datenfiuf3konzept .......... . . . . 150 16.2 Der Stream-Interpreter. . . . . . . . . . . . . . 151 16.3 Ein Interpreter fiir quasiparallele Abarbeitung . 152 16.4 Ubungsaufgaben ., . . . . . . . . . . . . . . . 157 Inhaltsverzeichnis IX 17 Grammatiken und Sprachen 158 17.1 Formale Sprachen ................... . 158 17.2 Grammatik einer kontextfreien Sprache ...... . 159 17.3 Das Erkennen der Worte einer kontextfreien Sprache 161 17.4 Semantik eines Wortes 162 17.5 Ubungsaufgaben ................... . 166 18 Prolog als Implementierungssprache fUr Expertensysteme 167 18.1 Begriffsbestimmungen . . . . . . . . . . . . . . . . . . . . . .. 168 18.2 Vorteile von Prolog bei der Entwicklung wissensbasierter Systeme 169 18.3 Beispielentwicklung eines Expertensystems . 170 18.4 Ubungsaufgaben ........................... 178 19 Fallstudie: Ein Expertensystem fUr Anderungskonfigurationen179 19.1 Die Domane . . . . . 180 19.2 Die Realisierung .. 181 19.3 Das Inferenzsystem . 187 19.4 Ubungsaufgaben . . 191 *20 Ein Spiel mit der Datenbasis: Mastermind 192 20.1 Der Rechner rat 192 20.2 Der Rechner laBt raten . 196 20.3 Ubungsaufgaben . . . . 197 Anhang 199 A. Syntax von Prolog 200 B. Benutzung von Prologsystemen 204 C. Hardware fiir Prologsysteme 207 D. Turbo-Prolog == Ein Nicht-Standard-Prolog 213 E. Begriffsdefinitionen 216 F. Losungen 220 Literatur 234 Stichwortverzeichnis 241 Pradikatsverzeichnis 246 Einleitung Die Programmiersprache Prolog gewinnt in weiten Kreisen von EDV-Fachleu ten und Anwendern stark an Popularitat. 1m universitaren Bereich sowie an anderen Forschungsinstitutionen, besonders im Bereich der Kiinstlichen In telligenz (KI) , besitzt diese Sprache schon seit geraumer Zeit einen sehr hohen Stellenwert. Dieser ist nicht nur mit dem Fifth Generation Computer Sy stems Projekt in Japan, das Prolog zur Kernsprache hat, begrundbar. Auch eine Vielzahl von kontinuierlichen Forschungsaktivitaten im europiiischen Raum in den letzten zehn Jahren belegen die wachsende Bedeutung von Prolog. 1m Rahmen dieses Buches wild ein Einblick in die Programmierung mit der Programmiersprache Prolog ( Programming in logic ) gegebenj aufierdem werden grundlegende Verarbeitungsmechanismen und -modelle fiir die logik basierte Programmierung vermittelt. 1m folgenden geben wit eine kurze Darstellung der historischen Entwicklung der logischen Programmierung sowie der Programmiersprache Prolog, zeigen bevorzugte Anwendungsgebiete von Prolog im Forschungsbereich der Kunst lichen Intelligenz auf und geben einen groben Uberblick uber Verarbeitungsmo delle sowie Programmierstile. Abschliefiend beschreiben wir kurz die methodische Konzeption unseres Prolog-Lehrgangs.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.