Projekt Constraint-Programmierung Praxis

Erster Termin/Vorbesprechung: Donnerstag, 2011-10-20 14:00 in O27/121.

Übersicht

Die Constraint-Programmierung verbindet deklaratives Programmieren mit effizienten Problemlösungstechniken, insbesondere aus der mathematischen Optimierung und der Künstlichen Intelligenz. Es handelt sich um ein aktuelles Forschungsgebiet, das bereits eine beachtliche Zahl industrieller Anwendungen vorweisen kann.

In diesem Projekt wird in Prolog oder Java mit Constraint Handling Rules (CHR) programmiert. Eine Prolog-basierte Version von CHR kann online ausprobiert werden.

Die Studierenden sollen grundlegendes Verständnis und Kenntnisse über Prinzipien und Verfahren der Constraint-Programmierung erhalten. Diese sollen im Rahmen eines umfangreichen Projekts angewandt und vertieft werden. Die Studierenden sollen dabei lernen die Constraint-Programmierung für die Modellierung und das Lösen einer Problemstellung einzusetzen.

Vorkenntnisse in CHR und der Eclipse Umgebung sind von Vorteil, werden aber nicht vorausgesetzt.

Dieses Projekt ist teil des Projektmoduls Constraint-Programmierung, zu dem auch die beiden Vorlesungen Constraint-Programmierung und Regelbasierte Programmierung gehören.

Voraussetzungen für die Teilnahme am Projekt

  • keine Vorkenntnisse von (J)CHR sind nötig, aber der Wille sich einzuarbeiten.
  • gute Kenntnisse der Java- oder Prolog-Programmierung

Themen

Alle Themen sind an der aktuellen Forschung unserer CHR Forschungsgruppe angelehnt. Das Thema muss den Bearbeitenden zusagen, so dass neben den hier genannten Vorschlägen noch Abwandlungen, oder eigene Themenvorschläge berücksichtigt werden können.

  • IDE Support für CHR (Eclipse)
  • Code Generierung (CHR und/oder Java)
  • Constraint-Speicher Visualisierung
  • Paralleles CHR (mit GPUs)
  • Source-to-Source Transformationswerkzeug
  • Constraint-Löser
  • CHR Implementierung (f. persistente Constraints)
  • Werkzeuge zur Programmanalyse