Künstliche Intelligenz

Ein Grundlagenbuch: Konzepte der Künstlichen Intelligenz ganz praktisch

Unser Buch bietet eine Einführung in die Künstlichen Intelligenz (KI) und richtet sich an:

  • Studenten der Informatik und "Bindestrich"-Informatiken,
  • Studenten mit Nebenfach Informatik,
  • Informatik-Lehrer,
  • alle, die Interesse an der Künstlichen Intelligenz haben und wissen wollen, was dahinter steckt.

Eine Einführung in die Künstlichen Intelligenz ist häufig Teil des Bachelor-Programmes. Aber auch für Master-Studenten sind je nach Curriculum KI-Themen relevant und unser Buch hoffentlich eine Hilfe.

Diese Seite ergänzt unser Buch. Sie finden:

  • Beispiele und Aufgaben
  • Demo-Software
  • weiterführende Verweise

 

Kapitel 1 - Künstliche Intelligenz

Kapitel 1 - Künstliche Intelligenz

Dieses Kapitel gibt eine allgemeine Einführung in das Gebiet der künstlichen Intelligenz und klärt einige grundlegende Begriffe.

  • Was ist, was kann künstliche Intelligenz?
  • Struktur des Buches
  • Intelligenten Agenten
  • Künstliche Intelligenz und Wissensmanagement
  • Übungen

Beispiele

  • Der erste(?) maschinelle Kommunikationspartner: Eliza von Joseph Weizenbaum, hier als Prolog-Datei:[1] Eliza kann auch im Editor Emacs (Unix/Linux) ausprobiert werden: ESC x doctor
  • Einige Knobelaufgaben, die jeweils einen kleinen Weltausschnitt darstellen, in dem eine Lösung mittels KI-Techniken gefunden werden kann:
    • Ein typisches Zuordnungsproblem (aus PM 11/92): Edmunds Zuckerrohrplantage wird nicht in Island sein. Richard Spinnerlein besitzt kein Grundstueck in Alaska. Gauckelmann, der nicht Moritz heisst, will seine Orangen weder in Island noch in Groenland ernten. Stefan, der nicht Traeumling heisst, hat sich ein grosses Grundstueck in Groenland gekauft; er will aber keine Baumwolle anpflanzen. Wanwerk hat zu aeusserst guenstigen Preis ein grosses Grundstueck in Sibirien erworben. Wer hat welchen Vornamen und baut wo welche Frucht an?

    • Wer hat welchen Beruf? Mueller , Meier und Lehmann wohnen in unserer Strasse. Der eine ist Maler, der andere Klempner und der dritte Tischler. Unlaengst wollte der Maler seinen Bekannten, den Tischler, um die Anfertigung eines Moebelstueckes bitten. Man sagte ihm, dass der Tischler jetzt im Hause des Klempners arbeitet. Ausserdem ist bekannt,dass Meier noch nie von Lehmann gehoehrt hat.

    • Ein Planungsproblem: Vier Personen wollen nachts eine Haengebruecke benutzen. Aus Sicherheitsgruenden muss dabei eine Taschenlampe benutzt werden. Die Batterie der Lampe reicht genau fuer 60 Minuten. Außerdem duerfen hoechstens 2 Personen gleichzeitig auf der Haengebruecke sein. Die Lampe kann nicht zurueck geworfen werden, sie muss uebergeben werden. Die Personen sind unterschiedlich schnell: Anna: 5 min; Boris: 10 min; Clara: 20 min; Dirk: 25 min; Wie gelangen alle über die Brücke?

    • Gibt es einen Vorstand? Sechs Mann, nenne wir sie a,b,c,d,e,f wurden in die engere Wahl gezogen fuer die Funktion des Vorsitzenden, des Stellvertreters und des Sekretaers der Gesellschaft der Freunde von logischen Aufgaben. Aber die Bestimmung dieser drei erwies sich als nicht so leicht, weil jeder der sechs gewisse Ansprueche stellte: a will nicht zur Leitung gehoeren, wenn e nicht Vorsitzender wird. b will nicht zur Leitung gehoeren, wenn er ueber c stehen soll. b will unter gar keinen Umstaenden zusammen mit F arbeiten. c will nicht mitarbeiten, wenn der Leitung e und f zusammen angehoeren. c wird nicht mitarbeiten,wenn f Vorsitzender oder b Sekretaer ist. d wird nicht mit c oder e arbeiten, wenn er dem einen oder anderen unterstellt ist. e will nicht Stellvbertreter sein. e will nicht Sekretaer sein, wenn d Mitglied der Leitung ist. e will nicht zusammen mit a arbeiten, wenn f nicht der Leitung angehoert. f will nur mitarbeiten, wenn er oder c Vorsitzender wird. Wie wurden die Posten verteilt ?

Links

Kapitel 2 - Wissensrepräsentation und -verarbeitung

Kapitel 2 - Wissensrepräsentation und -verarbeitung

Dieses Kapitel befasst sich mit der Wissensrepräsentation und -verarbeitung.

Beispiele

2.1 Logik

2.2 Regelverarbeitung

2.3 Semantische Netze und Frames

  • Semantische Netze stellen die Grundlage für Wissensnetze dar:
    • Die Firma Ontopia bietet ihr Produkt zur Entwicklung von Wissensnetz kostenlos zum Download an.
    • Auf den Seiten der Firma intelligent views GmbH findet man Einführungen in das Thema sowie ein Demo-Netz.
  • Ein Auto-Frame in PROLOG. Sie benötigen hierzu LPA-Prolog.

2.4 Vages Wissen

Links

Lösungshinweise

Logik

Semantische Netze und Frames

  • CMU AI Repository on KR: Includes several KR systems: COLAB, several frame systems (FRAMEWRK, FRL, FROBS, KR, PARMENID), KNOWBEL, ONTIC, RHET, SNePS, URANUS, and several KL-ONE-based systems (BACK, CEC, DP, MOTEL).

Vages Wissen

  • Informationen u.a. zu Fuzzy
Kapitel 3 - Problemlösung mittels Suche

Kapitel 3 - Problemlösung mittels Suche

In diesem Kapitel werden Suchverfahren behandelt.

Beispiele

  • Die Dateien zum Wasserbeispiel. Hier ist das Suchprogramm. Implementiert sind hier die Strategien: Tiefen-, Breiten-, Besten-Suche, Hill climbing, Nearest Neighbour. Die jeweilige Strategie kann man in der Beispiel-Datei einstellen. Der Aufruf erfolgt mittels suche(X). Im Gegensatz zum Buch muss man hier nicht das Pädikat nachfolger/2, welches alle Nachfolger berechnet, definieren. Es reicht, dass man die Zustandsübergänge mittels zustandsuebergang/2 definiert.
  • Hinweis: Sollten Sie SWI-Prolog nutzen, so laden Sie bitte als erstes diese Datei, die eine Anpassung auf SWI-Prolog vornimmt.
  • Die Dateien zur A-Stern-Suche: A-Stern-Programm, ein kleines Beispiel. Der Aufruf erfolgt mittels astern(X). Im Gegensatz zum Buch muss man hier nicht das Prädikat nachfolger/2, welches alle Nachfolger berechnet, definieren. Es reicht, dass man die Zustandsübergänge mittels zustandsuebergang/2 definiert.
  • Hinweis: Falls Sie SWI-Prolog nutzen, so laden Sie bitte als erstes diese Datei, die eine Anpassung an SWI-Prolog vornimmt.
  • Die Datei zum Steine-Beispiel mittels A-Stern-Suche.

Links

Kapitel 4 - Prolog

Kapitel 4 - Prolog

Dieses Kapitel gibt eine Einführung in die logische Programmierung mittels Prolog.

Inhalt

  • Logische Programmierung
  • Deklarative Programmierung vs. prozedurales Programmierung
  • Grundstruktur von Prolog-Programmen
  • einfache Prolog-Programme, Fakten und Regeln
  • Rekursion
  • Listen-Prädikate

Beispiele

Hier finden Sie die Dateien zu folgenden Beispielen aus unserem Buch:

Einige weitere Beispiele (nicht aus unserem Buch)

Links

Kapitel 5 - Neuronale Netze

Kapitel 5 - Neuronale Netze

Dieses Kapitel führt in die neuronalen Netze ein.

Inhalt

  • Das künstliche Neuron
  • Architekturen
  • Arbeitsweise
  • Übungen

Beispiele

  • Das Neuron für die UND-Funktion als EXCEL-Tabelle (Falls nur kritische Zeichen zu sehen sind, dann kann mit shift+mausklick oder der rechten Maustaste die Datei kopiert werden.)
  • Eine Beispiel-Frage: Wie sind die Gewichte und der Schwellwert bei mehr als zwei Eingaben (n>2) für die UND- (ODER-) Funktion zu gestalten?

Links

  • Günter Daniel Rey und Fabian Beck: Eine Einführung in Neuronale Netze
  • 20 Questions - 20Q is a true neural network. The answers to questions stimulate target nodes (objects), which in turn stimulate the next question to ask. The "brain" is about as complex as an insect's brain [1].
Kapitel 6 - Vorwärts gerichtete neuronale Netze

Kapitel 6 - Vorwärts gerichtete neuronale Netze

Gegenstand dieses Kapitels sind die vorwärts gerichteten Netze.

Inhalt

  • Das Perzeptron
  • Backpropagation-Netze
  • Typische Anwendungen
  • Datenvorverarbeitung
  • Netzgröße und Optimierungen
  • Partiell rückgekoppelte Netze

Übungen sind jedem Abschnitt zugeordnet.

Beispiele

Links

  • Jedes Jahr werden Künstliche Neuronale Netze von uns eingesetzt, um Aufgaben im Data Mining zu lösen:
  • Machen Sie mit beim Data-Mining-Cup: Jedes Jahr wird eine interessante Aufgabe gestellt, die auch sehr gut mit künstlichen neuronalen Netzen bearbeitet werden kann.
Kapitel 7 - Wettbewerbslernen

Kapitel 7 - Wettbewerbslernen

Inhalt

  • Selbstorganisierende Karte
    • Architektur und Arbeitsweise
    • Training
    • Visualisierung einer Karte und deren Verhalten
    • Übungen
  • Neuronale Gase
    • Architektur und Arbeitsweise
    • Wachsenden neuronale Gase
    • Übungen
  • Adaptive Resonanz Theorie (ART)
    • Das Plastizitäts-Stabilitäts-Dilemma
    • Struktur eines ART-Netzes
    • Das Besipiel Würfelmuster
    • Arbeitsweise
    • Übungen

Beispiele

  • Die TSP-Demo wurde von Wismarer Studenten implementiert und erlaubt den Vergleich verschiedener Algorithmen zur Lösung des Rundreiseproblems (Traveling Salesman Problem), darunter auch eine selbstorganisierende Karte.
  • Das Beispiel SOM-Demo als ZIP-Datei für BlueJ. 
  • SokoWismar ist eine von Studenten entwickelte Demo-Software für eine SelbstOrganisierende KOhonen-Karte.

Links

  • DemoGnG - die Software von Bernd Fritzke für die Veranschaulichung von SOM oder neuronalen Gasen: https://www.demogng.de

Kapitel 8 - Autoassoziative Netze

Kapitel 8 - Autoassoziative Netze

Inhalt

  • Hopfield-Netze
    • Wiedererkennung von Mustern
    • Energie-Niveau eines Netzes
  • Lösung von Optimierungsproblemen
  • Die Boltzmann-Maschine
  • Übungen

Beispiele

  • DIe Wiedererkennung von Mustern als Tabellenkalkulation
  • Die Studenten A. Günther und A. Wiehnke haben eine Hopfield-Demo zur Wiedererkennungvon Mustern programmiert (WS 2000/2001). Start des jar-Files mittels Doppelklick oder über die Kommandozeile

    >java -jar Hopfield.jar

    (download)

Links

Kapitel 9 - Entwicklung neuronaler Netze

Kapitel 9 - Entwicklung neuronaler Netze

Inhalt

  • JavaNNS
  • Implementation neuronaler Netze
    • Einsatz von Array-Datenstrukturen
    • Der objektorientierte Ansatz
    • Ein einfaches Perzeptron
    • Übungen

Beispiele

Für die im Buch dargestellten Java-Klassen stellen wir hier keine vorgefertigten Java-Dateien bereit. Wir sind der Meinung, dass das eigene Entwickeln einer Klasse, selbst das reine Abtippen, einen größeren Lernerfolg in Richtung Programmierung sowie für das Verständnis neuronaler Netze bringt.

Links

  • Der JavaNNS ist eine in Java implementierte Oberfläche für den SNNS. 
  • Systeme zum Entwickeln und zum Einsatz Künstlicher Neuronaler Netze: