Künstliche Intelligenz
 

This page is only available in german language. It describes the course "Artificial Intelligence", which will also be held in german, and provides links to the course material.


Inhalt der Vorlesung

Der Bereich der Künstlichen Intelligenz beschäftigt sich mit der Übertragung menschlichen Problemlösungsverhaltens auf den Computer. Hierbei soll erreicht werden, dass Computer selbstständig Probleme bearbeiten, von denen man gemein hin annimmt, dass deren Lösung Intelligenz voraussetzt. Die Veranstaltung beschäftigt sich mit grundlegenden Methoden zur Darstellung von Wissen, sowie Methoden, die mit Hilfe von Wissen Lösungen für komplexe Probleme berechnen.


Organisation

Es handelt sich um eine Veranstaltung, die in 2 Vorlesungstermine (2 Blöcke) + Übung (1 Block) unterteilt ist. Der zweite Vorlesungstermin wird je nach Bedarf auch als zusätzlicher Übungstermin bzw. zu Demonstrationszwecken genutzt.

  • Vorlesung: Montags 15:30-17:00 in A5 C015, erstmals 18.02.2008
  • Übung: Mittwochs 13:45-15:15 in A5 B144, erstmals 27.02.2008
  • Vorlesung / Demo: Freitags 10:15-11:45 in A5 C014, erstmals 22.02.2008

Die Übung folgt dem klassischen Ablauf des Übungsbetriebs. Es werden alle ein bis zwei Wochen Übungsblätter ausgeteilt, die korrigiert zurückgegeben werden. Die Blätter können in Gruppen von 2 bis 4 Teilnehmern bearbeitet werden. In Ausnahmefällen ist auch eine Einzelabgabe möglich (hängt unter anderem von der Teilnehmerzahl ab).

Neben der Übung (in der es eher um ein besseres Verständnis der theoretischen Grundlagen geht) wird es eine Reihe von Programmierprojekten geben, die mit Hilfe des in der Vorlesung vermittelten Wissens gelöst werden sollen. Die Probleme werden zunächst einzelnen Arbeitsgruppen zugeordnet (bzw, können frei gewählt werden). Zur Lösung dieser Probleme sollen Computerprogramme entwickelt werden. In einer Präsentation (siehe unter Termine als 'Demo', jeweils ca 30 Minuten) soll den anderen Vorlesungsteilnehmern das Problem vorgestellt werden, mögliche Lösungsansätze diskutiert werden und der letztlich gewählte Lösungsansatz und dessen Implementierung präsentiert werden.

Programmierkenntnisse sind daher zwingend erforderlich (allerdings keine Einschränkung auf eine bestimmte Programmiersprache). Ohne die (halbwegs) erfolgreiche Bearbeitung eines Programmierprojekts, ist es nicht möglich an der abschließenden Prüfung teilzunehmen!


Scheinkriterien

  • Mündliche Prüfung (Themen: Alles was in den angegebenen Kapiteln des Lehrbuchs steht), evtl. Klausur bei hoher Teilnehmerzahl.
  • Aktive Teilnahme an der Vorlesung und insbesondere (!) an den Lektüre-Sitzungen.
  • Mindestens einmal in einer Gruppe die Lösung einer komplexe Programmieraufgabe demonstriert.
  • 50% der Punkte über alle Übungblätter (Abgabe in Gruppen)

Themenübersicht (grob)

Die folgenden Themengebiete werden in der Vorlesung vorraussichtlich behandelt. Mögliche Änderungen sind vorbehalten.

Einleitung

  • Was ist Künstliche Intelligenz?

Block I: Suche und Constraints

  • Problemlösen als Suche
  • Suchalgorithmen für Spiele
  • Problemlösen mit Constraints

Block II: Logik

  • Aussagenlogik
  • Relationale Logik

Block III: Planen

  • Logik und Planen
  • Planen mit KI Methoden

Block IV: Unsicherheit

  • Unsicheres Wissen
  • Maschinelles Lernen

Die Vorlesung basiert auf einem Standard-Lehrbuch zu dem Thema (nähere Informationen unter http://aima.cs.berkeley.edu/) und richtet sich an Studierende im Hauptstudium. Voraussetzung zur Teilnahme sind Grundkenntnisse in Komplexitätstheorie sowie Programmierung in einer höheren Programmiersprache. Grundwissen in den Bereichen formale Logik und Wahrscheinlichkeitsrechnung sind von Vorteil, jedoch nicht zwingend erforderlich.


Termine und Inhalte

Im folgenden die etwas genauere Planung der Themen und Termine. Änderungen sind jederzeit, auch kurzfristig, möglich.

  • 1.Woche:
    • Montag 18.02 (Vorlesung): Organisatorisches / Was ist Künstliche Intelligenz ? (Folien)
    • Mittwoch 20.02: findet noch nicht statt (geändert)
    • Freitag 22.02 (Vorlesung): Problemlösungsagenten, Problemtypen (Folien)
  • 2.Woche
    • Montag 25.02 (Lektüre): Computer Science as Empirical Inquiry (Text)
    • Mittwoch 27.02 (Übung) Organisatorisches / Interessante Beispielaufgaben / evtl. Gruppenbildung / Ausgabe von Blatt1
    • Freitag 29.02 (Vorlesung): Uninformierte Suche (Folien)
  • 3.Woche
    • Montag 03.03 (Vorlesung): Heuristische Suche (Folien)
    • Mittwoch 05.03 (Übung)
    • Freitag 07.03 (Vorlesung): Lokale Suchverfahren (Folien)
  • 4.Woche
    • Montag 10.03 (Lektüre): Programming a Computer to Play Chess (Text)
    • Mittwoch 12.03 (Übung)
    • Freitag 14.03 (Vorlesung): Spielbaumsuche (Folien)
  • 5. Woche + 6.Woche (Osterferien)
  • 7.Woche
    • Montag 31.03 (Demo): Präsentation der Programmierprojekte (A)
    • Mittwoch 02.04 (Übung)
    • Freitag 04.04. (Vorlesung): Constraintprobleme (Folien)(Algorithmen)
  • 8.Woche
    • Montag 07.04 (Vorlesung): Constraint Propagation (Folien)
    • 09.04 (Übung)
    • Freitag 11.04. (Lektüre): Programms with Common Sense (Artikel),
  • 9.Woche
    • Montag 14.04 (Vorlesung): Aussagenlogik (Folien)
    • Mittwoch 16.04 (Übung)
    • Freitag 18.04. (Vorlesung): Beweisverfahren für Aussagenlogik (Folien)
  • 10.Woche
    • Montag 21.04. (Vorlesung): Prädikatenlogik (Folien)
    • Mittwoch 23.04. (Übung)
    • Freitag 25.04. ÄNDERUNG: (Lektüre): Das Frame-Problem (Links); STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving (Artikel)
  • 11.Woche
    • Montag 28.04. ÄNDERUNG: (Demo): Präsentation der Programmierprojekte (B)
    • Mittwoch 30.04. (Übung)
    • Freitag 02.05. (Vorlesung): Planungssprachen (Folien)
  • 12.Woche
    • Montag 05.05. (Vorlesung): Planen als Suche (Folien)
    • Mittwoch 07.05. (Übung)
    • Freitag 09.05. (Vorlesung): Effizientes Planen (Folien)
  • 13.Woche
    • Montag 12.05.: Feiertag!
    • Mittwoch 14.05. (Übung + Nachtrag zur Vorlesung 'Effizientes Planen')
    • Freitag 16.05. (Vorlesung): Unsicherheit und Wahrscheinlichkeiten (Folien)
  • 14.Woche
    • Montag 19.05. (Demo): Präsentation der Programmierprojekte (C)
    • Mittwoch 21.05. (Übung)
    • Freitag 23.05. Entfällt, Lektürestunde als Heimarbeit (siehe Blatt 8)
  • 15.Woche
  • 16.Woche
    • Montag 02.06. (Demo): PAC-Lerntheorie, Bayes'sches Lernen und Lernen von Bayes'schen Netzen (Folien)
    • Mittwoch 04.06. (Übung)
    • Freitag 06.06. (Vorlesung): EM-Algorithmus & Inductive Logic Programming (Folien)

Alle Angaben ohne Gewähr.


Übungsblätter und weitere Materialien

 

Programmierprojekte

A - Suche (Präsentation am 31.03. 2008)

A1: Das Seemannsspiel
A2: Das Bohnenspiel

B - Constraints (Präsentation am 25.04. 2008)

B1: Das Tal des Todes
B2: Der glückliche Würfel

C - Logik und Planen (Präsentation am 19.05.2008)

C1: Der Minenräumdienst (Minenfelder)
C2: Total verplant!

Ausführlichere Infos zu den Programmierprojekten (Bewerbung und Vergabe) im Forum.

Übungsblätter

 

Zusatzblätter (evtl, zur Vorbereitung auf die Prüfung):

Bitte benutzt das Forum, wenn ihr Lösungsmöglichkeiten zu diesen oder den Standardaufgabenblättern diskutieren wollt.

Abgabe + Korrektur: Lösungen der Übungsblätter entweder (1) zur Übung mitbringen, (2) bis 10 Minuten vor Übungsbeginn in den Übungskasten einwerfen (3) oder als PDF per Mail an den Übungsleiter bis 10 Minuten vor Übungsbeginn. Bei Programmieraufgaben immer den Code + kleine Anleitung/Doku per Mail an den Übungsleiter schicken (auf dem Lösungszettel bei dieser Aufgabe dann bitte "bearbeitet, siehe Mail" notieren).


Forum und Mailingliste

Es gibt ein Forum zur Vorlesung. Fragen zur Übung und Vorlesung können dort jederzeit gestellt und diskutiert werden (Link zum Forum).

Studierende der Universität Mannheim können sich dort mit ihrem Universitätsaccount einloggen (oben rechts auf "Anmelden" klicken). Es muss kein zusätzlicher Forumsaccount angelegt werden. Studierende anderer Universitäten schreiben bitte an Christian Meilicke eine E-Mail (Name, Uni, Studiengang) und ihr bekommt in Kürze eure Zugangsdaten zugesendet. Was die Mailingliste betrifft, so könnt (und solltet) ihr euch anmelden über:

https://mailman.uni-mannheim.de/mailman/listinfo/ki

Bitte im Feld 'Name (optional)' Vor und Nachname eintragen. Nach der Anmeldung werdet ihr durch den Moderator freigeschaltet.