4 research outputs found

    Simulation von Prüfungsordnungen und Studiengängen mit Hilfe von Constraint-logischer Programmierung

    No full text
    In dieser Arbeit wurde versucht die Prüfungsordnung des Bachelorstudiengangs Informatik mit Hilfe der Constraint-logischen Programmiersprache - genauer der Programmiersprache ECLiPSe e zu simulieren und diese auf logische Fehler zu überprüfen. Hierfür wurden die beiden deklarativen Programmierparadigmen, die logische Programmierung und die Constraint-Programmierung, getrennt erläutert, da sie unterschiedliche Techniken bei der Problembehandlung einsetzen. Zunächst wurde als Grundlage die Prädikatenlogik (Kapitel 2), erarbeitet und ausführlich dargestellt. Anschließend wurde die logische Programmierung mit der, auf Prädikatenlogik basierenden, Programmiersprache Prolog erläutert (Kapitel 3). Nach der Erläuterung des logischen Teils wurde die Constraint-Programmierung (Kapitel 4) eingehend erläutert. Damit wurde eine Basis geschaffen, um die Constraint-logische Programmierung zu erläutern. Die Constraint-logische Programmierung (Kapitel 5) wurde als eine Erweiterung der logischen Programmierung um Constraints und deren Behandlung dargestellt. Dabei wurde zunächst ein allgemeiner Ansatz der Constraint-logischen Programmierung (CLP-Paradigma) erläutert. Mit der Einführung der Programmiersprache ECLiPSe, wurden alle Werkzeuge behandelt, die für die Simulation benötigt wurden. Schließlich wurde genauer auf die Modellierung des Problems und seine Implementierung in der Sprache ECLiPSe eingegangen (Kapitel 6). Grundidee der Simulation war, die Regeln der Prüfungsordnung als Constraints zu formulieren, so dass sie formal bearbeitet werden konnten. Hier wurden zwei Arten von Tests durchgeführt: • Constraint-Erfüllbarkeitsproblem: Mit dem ersten Test wurde nach eine Lösung gesucht, in der alle Constraints erfüllt sind. • Constraint-Optimierungsproblem: Hier wurde nach einer optimalen Lösung gesucht unter mehreren Kandidaten, in der alle Constraints erfüllt sind. Fazit: Die Constraint-logische Programmierung ist ein viel versprechendes Gebiet, da sie ein Mittel zur Behandlung kombinatorischer Probleme darstellt. Solche Probleme treten in vielen verschiedenen Berufsfeldern auf und lassen sich sonst nur mit großem Aufwand bewältigen. Beim Auftreten solcher Probleme kann schnell ein konzeptuelles Modell erstellt werden, das sehr einfach in ein ausführbares Programm (Design-Modell) umgewandelt wird. Programm-Modifikation ist erheblich leichter als in den prozeduralen Programmiersprachen

    Ein wissensbasierter Planungsansatz für Reihenfolgeprobleme in einer Roboterzelle

    Get PDF

    Constraint basierte Modellierung von Komponentennetzwerken am Beispiel eines autonomen Unterwasserfahrzeugs

    Get PDF
    Moderne Robotersysteme werden zunehmend komplexer. Die Forschung im Bereich der Robotik sieht sich immer mehr mit dem Problem der Integration von Algorithmen in neue Plattformen konfrontiert. Es gibt zahlreiche innovative Verfahren und Algorithmen, die die Robotersysteme mit neuen Fähigkeiten ausstatten. Diese Erweiterungen lassen sich sowohl auf der Hardware- als auch der Softwareebene erkennen. Jedoch findet diese Vielzahl an neuen Entwicklungen nur selten Anwendung auf den aktuellen Ziel-Plattformen. Dies bremst weitere Entwicklungen, da mehr Zeit für die Integration als für die eigentliche Forschung aufgewendet wird. Mit einem Blick über die eigene Forschung hinaus oder durch die detailliertere Beschäftigung mit den eingesetzten Verfahren lässt sich erkennen, dass die Lösungen zumeist systemspezifisch sind oder sich nur mit großer Mühe auf andere oder gar größere komplexere Maßstäbe übertragen lassen. Das Ziel dieser Arbeit ist es daher zu identifizieren, wo die größten Herausforderun liegen. Im Anschluss soll das markanteste Problem gelöst werden. Die Modularisierung sowie die modellgetriebene Entwicklung sind dabei die größten Änderungen, die sich Abzeichen. Beide Trends haben verschiedene, teils gravierende Einflüsse auf die Art und Weise, wie Entwicklung stattfindet. Modularisierung erhöht die Wiederverwendbarkeit einzelner Module und führt zu kleineren Verbunden. Modellgetriebene Entwicklung versucht mögliche Fehler in Konzepten zu einem frühen Zeitpunkt zu erkennen. Konkret bedeuten beide Verfahren jedoch Mehrarbeit im Vergleich zu der klassischen monolithischen und reaktiven Systementwicklung. Die Komponenten lassen sich zwar oftmals wiederverwenden, aber die Konsistenz und Nebeneffekte der Selektion bzw. der Abhängigkeiten erfordern viel Zeit und Expertenwissen. Die modellgetriebene Softwareentwicklung verlangt von den Entwicklern von Algorithmen bereits im Voraus Informationen darüber, wie und unter welchen Bedingungen ihr Algorithmus operieren kann. Auf der anderen Seite, der Hardwareentwicklung, stehen immer kleinere und hoch integrierte Sensoren und Aktuatoren zur Verfügung, die wiederum die Konstruktion immer komplexerer Systeme erlauben. Die Systeme bieten oftmals ausreichend Redundanz, um Probleme auf unterschiedliche Art und Weise lösen zu können
    corecore