Regelbasierte Expertensysteme Am Beispiel Des Jassens
Total Page:16
File Type:pdf, Size:1020Kb
Regelbasierte Expertensysteme am Beispiel des Jassens Samuel Burri (Jg. 85) und Jonas Wagner (Jg. 85) Wettbewerbsarbeit Schweizer Jugend forscht“ ” Bern 2004 Mathematisch- Naturwissenschaftliches Gymnasium Bern-Neufeld Vorwort Sehr geehrte Leserin, sehr geehrter Leser Diese Arbeit ist im Jahr 2003 als Maturaarbeit unter der Leitung von Herrn Tobias B¨aum- lin am Gymnasium Bern-Neufeld entstanden. Ziel war es, einen Uberblick¨ uber¨ Exper- tensysteme zu liefern und diese anhand eines Beispielprogramms zum Thema Jassen zu erl¨autern. Falls Sie Anmerkungen, Lob oder Kritik zu dieser Arbeit haben oder einen Fehler bemerken, wurden¨ wir uns freuen, von Ihnen zu h¨oren. Diese Arbeit kann ebenfalls im Internet unter http://www.acid-code.ch bezogen wer- den. Dort l¨asst sich stets die aktuellste Version und Zusatzmaterial wie zum Beispiel ein grafisches Frontend fur¨ das Jassprogramm finden. Wir m¨ochten allen Personen danken, die uns unterstutzt¨ haben, insbesondere Herrn Tobi- as B¨aumlin fur¨ seine Hilfe als betreuende Lehrkraft dieser Arbeit. Die grosse Hilfe und die Zustimmung fur¨ das etwas ausgefallene Maturaarbeitsthema sind nicht selbstverst¨andlich. Ein Dank auch den Entwicklern von St¨ock Wyys Stich“, die in ihr Programm viele at- ” traktive Features eingebaut haben. Es diente uns als Referenz zum Testen der Spielst¨arke unseres Expertensystems. Schliesslich danken wir dem AGM AGMuller-Verlag¨ (Neuhau- sen). Er hat uns die Jasskartenbilder in dieser Arbeit zur Verfugung¨ gestellt. Samuel Burri, Jonas Wagner 2 Vorwort zur sjf-Ausgabe Sehr geehrte Leserin, sehr geehrter Leser Ganz ehrlich: Mit einem so grossen Feedback hatten wir nie gerechnet, als wir uns an diese Arbeit machten. Inzwischen sind seit der Abgabe der Arbeit mehr als neun Monate vergangen und wir haben das ehrwurdige¨ Gymnasium Bern-Neufeld verlassen und sind zum Dienst am Vaterland“ eingeruckt.¨ ” Nun der Reihe nach die Stationen auf dem Weg zum Wettbewerb Schweizer Jugend ” forscht“. Zwischen der Abgabe der schriftlichen Arbeit und der mundlichen¨ Pr¨asentation haben wir erfahren, dass unsere Arbeit in die Auswahl der besten Maturaarbeiten aufge- nommen wurde und deshalb besonders begutachtet wurde. So war bei der Pr¨asentation im Dezember 2003 ein Kommitee der Schule anwesend, welches die Qualit¨at der Arbeit zu beurteilen hatte. Die Arbeit wurde schliesslich mit der Bestnote ausgezeichnet. Im neuen Jahr wurden wir angefragt, ob wir bereit w¨aren, unsere Arbeit im Rahmen einer schweizweiten Pr¨asentation von Maturaarbeiten an der ETH Zurich¨ auszustellen. Wir sagten zu, stellten unsere Arbeit aus und hatten einige interessante Gespr¨ache. Ein wenig sp¨ater wurde unsere Arbeit im Rahmen der Maturfeier unserer Schule mit dem Maturaarbeitspreis 2004“ ausgezeichnet. ” Wenig sp¨ater bekamen wir Post von der Stiftung Schweizer Jugend forscht“. Man schrieb ” uns, unsere Arbeit sei bei der Ausstellung an der ETH Zurich¨ speziell aufgefallen und fragte uns, ob wir bereit w¨aren, beim Wettbewerb von Schweizer Jugend forscht“ mit- ” zumachen. Wir beschlossen, dass dieses Projekt – als Ablenkung – gut in die Milit¨arzeit passen wurde¨ und so meldeten wir uns an. Nun wunschen¨ wir auch Ihnen, liebe Leserin, lieber Leser, viel Spass beim Lesen dieser zweiten Ausgabe unserer Arbeit Regelbasierte Expertensysteme am Beispiel des Jassens“. ” Samuel Burri, Jonas Wagner 3 Inhaltsverzeichnis Inhaltsverzeichnis Vorwort 2 Vorwort zur sjf-Ausgabe 3 Inhaltsverzeichnis 4 1 Einleitung 7 2 Expertensysteme 9 2.1 Allgemeines ................................... 9 2.1.1 Wissen .................................. 9 2.1.2 Implementierung ............................ 10 2.1.3 Anwendungsgebiete ........................... 10 2.2 Aufbau ...................................... 11 2.2.1 Ablauf einer Probleml¨osung ...................... 13 2.3 Verschiedene Arten von Expertensystemen .................. 13 2.3.1 Constraintbasierte Expertensysteme .................. 13 2.3.2 Objektbasierte Expertensysteme .................... 14 2.3.3 Fallvergleichende Expertensysteme .................. 14 2.3.4 Diagnose-Expertensysteme ....................... 15 2.3.5 Konstruktions-Expertensysteme .................... 16 2.3.6 Simulations-Expertensysteme ..................... 16 2.4 Regelbasierte Expertensysteme ........................ 16 2.4.1 Verkettung der Regeln ......................... 17 2.4.2 M¨achtigkeit der Regelsprache ..................... 18 2.4.3 Beliebtheit von Regeln ......................... 18 3 Kurze Einfuhrung¨ ins Jassen 20 3.1 Der Schieber ................................... 20 3.1.1 Die Karten ............................... 21 3.1.2 Die Kartenwerte ............................ 21 3.1.3 Trumpf ................................. 21 3.1.4 Das Spiel ................................ 22 3.1.5 Spieltipps ................................ 23 4 Inhaltsverzeichnis 4 Das Projekt 25 4.1 Allgemeines ................................... 25 4.2 Vorgehen ..................................... 25 4.2.1 Die Planung ............................... 25 4.2.2 Die Programmierung .......................... 26 4.2.3 Regeln und Facts ............................ 26 4.3 Aufbau ...................................... 27 4.3.1 Der Protokollinterpreter ........................ 27 4.3.2 Die Geschichte ............................. 27 4.3.3 Das Wissen ............................... 27 4.3.4 Der Regelinterpreter .......................... 28 4.3.5 Der Parser ................................ 28 4.3.6 Die Erkl¨arungskomponente ....................... 29 4.3.7 Und der ganze Rest ........................... 29 4.4 Funktionsweise ................................. 29 4.4.1 ladeSkript ................................ 30 4.4.2 geber ................................... 31 4.4.3 karten .................................. 31 4.4.4 trumpfe ................................. 31 4.4.5 spieleKarte ............................... 32 4.4.6 Parsen von Ausdrucken¨ ......................... 32 4.4.7 Erkl¨arungskomponente ......................... 34 4.5 Resultat ..................................... 35 4.5.1 Spielst¨arke ................................ 35 4.5.2 St¨arken und Schw¨achen des Skripts .................. 37 4.5.3 Theorie und Praxis ........................... 37 5 Folgerungen 39 6 Zusammenfassung 41 7 Quellen und Autorenbezeichnung 42 7.1 Autorenbezeichnung .............................. 42 7.2 Literatur ..................................... 42 7.3 Internetadressen ................................. 43 7.4 Computerprogramme .............................. 43 5 Inhaltsverzeichnis A Spezifikation des Kernprogramms 44 A.1 Grunds¨atzliches ................................. 44 A.2 Protokoll ..................................... 44 A.2.1 Formatierung .............................. 44 A.2.2 M¨ogliche Kommandos ......................... 46 A.2.3 Beispielrunde .............................. 51 A.3 Arbeitsweise ................................... 52 A.3.1 Speichern der Spielsituation ...................... 52 A.3.2 Berechnen eines Zuges ......................... 53 A.3.3 Variablen und Konstanten ....................... 56 A.3.4 Erkl¨arungskomponente ......................... 56 B Die Skriptsprache 58 B.1 Kommentare ................................... 58 B.2 Bereiche ..................................... 58 B.2.1 Konstanten ............................... 59 B.2.2 Trumpfen ................................ 59 B.2.3 Spielen .................................. 59 B.3 Regeln ...................................... 59 B.3.1 Kernbedingungen ............................ 61 B.3.2 Aktionen ................................. 61 B.4 Elemente der Ausdrucke¨ ............................ 61 B.4.1 Konstanten ............................... 61 B.4.2 Variablen ................................ 63 B.4.3 Wildcards ................................ 63 B.4.4 Facts ................................... 64 B.4.5 Spezielles ................................ 66 B.5 Zusammenfassung ................................ 67 B.6 Das einfachste Skript .............................. 67 6 1 Einleitung 1 Einleitung Das Thema dieser Arbeit kam folgendermassen zu Stande: Wir wollten zusammen ein Spiel analysieren und mit einem Computerprogramm l¨osen. In Betracht gezogen wurde Vier ” Gewinnt“, doch dieses Spiel schien zu einfach und als Thema einer Maturaarbeit schon zu oft gebraucht. So fiel die Idee auf das Jassen. Dieses Spiel war speziell: In der Schweiz be- liebt, der Welt und der Wissenschaft aber weitgehend unbekannt. Und Jassen ist ein Spiel mit unvollst¨andigen Informationen, im Gegensatz zu Spielen wie Vier Gewinnt, Schach oder Muhle.¨ Dort sind alle M¨oglichkeiten des Gegners bekannt, und ein Computer kann das Spiel gewinnen, indem er tausende von m¨oglichen Spielzugen¨ im Voraus berechnet. Beim Jassen hingegen sind nur die eigenen und die bereits ausgespielten Karten bekannt. Das Spiel l¨asst sich also nur schwer durch reine Rechenkapazit¨at knacken, sondern es ver- langt nach einer wissensbasierten L¨osung. Solche Programme heissen Expertensysteme, und damit stand der Titel dieser Arbeit fest. Die Ziele dieser Arbeit sind: Als praktischer Teil soll ein Programm entstehen, das einen Schieber nach offiziellen Schweizer Turnierregeln jassen kann. Das Programm soll ausserdem gut jassen k¨onnen, denn schliesslich hat ein Computer gegenuber¨ einem menschlichen Spieler gewisse Vorteile: Er vergisst zum Beispiel keine schon gespielte Karte. Das Wissen zum Jassen soll in Form von Regeln in einem Skript gespeichert sein. Dieses Skript wird vom Programm ausgewer- tet. Das Programm soll sowohl