Stundenplan Assistent
Aus StudyWiki
Dokumentation zum KI Projekt (Expertensystem)
Inhaltsverzeichnis |
[bearbeiten] Projektteam
- Daniel Alder
- Michel Racic
[bearbeiten] Anforderungen
- User kann diverse kriterien gewichten
- Aufwand für das Fach (aus erfahrungen über den Lehrer)
- Benötigte Punkte (inkl. Punktverteilungen)
- Bevorzugte Zeiten
- Punkt/Zeit Optimierung oder Themenoptimierung
- Themengebiete
- Die KI darf keine Zeitüberschneidungen zulassen
- Die KI soll nach user gewichtung die Fächer Auswählen damit ein Optimaler Stundenplan entsteht
- Die KI muss die bereits besuchten (und bestandenen) Fächer ausschliessen
- bei nicht bestandenen muss der User entscheiden ob er es wiederholen möchte oder nicht
- Die KI muss die bereits besuchten (und bestandenen) Fächer ausschliessen
- Bei manuellen eingriffen des users (z.B. Abwahl eines Faches) muss die KI unter berücksichtigung der neuen Kriterien den Stundenplan umstellen
[bearbeiten] Repository
Subversion: http://svn.2030.tk/hsz-t/ki/kurswahl/src/hsz/alderac/kurswahl/
Download: Stundenplan_Assistent.zip
[bearbeiten] Dokumentation
[bearbeiten] KI (Expertensystem)
[bearbeiten] Was macht das Expertensystem?
Es Sortiert die Liste mit den möglichen Kursen Absteigend nach Rating. Das Rating wird vom Benutzer durch die Auswahl von unmöglichen, schlechten, neutralen, guten und besten Zeiten sowie die Bewertung der einzelnen Dozenten und Kurse nach Interesse gesetzt und danach von der KI Ausgewertet. In einem Testlauf mit den Daten vom laufenden Semester unter Bewertungskriterien (Lehrer Meinungen und Themen Interesse) mit dem Stand von vor dem Semester, hatte die KI, bis auf ein Fach, die selbe Liste erstellt die ich (Michel) gewählt habe. Reiner Zufall war das nicht, da ich bei meiner Manuellen Auswertung mit Hilfe einer Excel Tabelle die Zeiten verglichen und die Themen bewertet sowie die Dozenten nach persönlicher Erfahrung Sortiert habe, was in dem Programm unsere KI übernimmt und somit ein sehr gutes Resultat in 5 minuten Liefert, für das ich Manuell ein paar Stunden Investiert habe.
[bearbeiten] Wie wird eine günstige Sortierung Berechnet?
Rating(L) = (kursRating(L) * kursGewichtung) + (dozentenRating(dozentVonKurs(L)) * dozentGewichtung) + (zeitRating(L) * zeitGewichtung)
Rating(Kurs) ergibt den Sortierungs Schlüssel, mit dem die Auswahl Tabelle Absteigend Sortiert wird.
Somit kann ein User aufgrund der Bisher eingegebenen Präferenzen davon Ausgehen, das mit der Wahl der ersten paar Kurse eine gute Auswahl getroffen hat.
Er kann desweiteren auch seine Gewünschte Anzahl Punkte, die er in diesem Semester holen möchte, angeben und kann sehen wann er genügend Kurse Ausgewählt hat um sein Ziel zu erreichen.
[bearbeiten] Was ist die Idee dahinter (Was gibt es für Output)?
Als Output sollte eine Liste entstehen, die Optimal auf die Präferenzen des Users rücksicht nimmt und ihm die Auswahl von geeigneten Kursen vereinfacht. Die Kurse, die zuoberst in der Liste sind, sind am optimiert im Bereich der Zeit, den Lehrer und Themen Bewertung sowie die Gewichtung der einzelnen Kriterien im gesamt Rating.
[bearbeiten] Implementations Details
[bearbeiten] GUI
Das GUI ist in verschiedene Panels Aufgeteilt
[bearbeiten] Panel Einstellungen
Im Einstellungen Panel kann man das Rating für einzelne Kurse oder Dozenten mithilfe eines Sliders nach belieben zwischen -2 und +2 setzen.
[bearbeiten] Panel Wochenplan
In Präferenzen Tab des Wochenplan Panels kann man durch einen klick mit der rechten oder linken maustaste bestimmte Zeiten bevorzugen oder als killer kriterium setzen.
Im Übersichts Tab werden die Ausgewählten Kurse Angezeigt und entsprechend Eingefärbt (Bei Kollisionen ist es rot).
Klickt man auf eine Zeit zelle, werden in der Auswahl Liste alle Kurse, die zu dieser Zeit stattfinden eingefärbt.
[bearbeiten] Panel Auswahl
Im Auswahl Panel werden alle Kurse, nach Rating Sortiert, Angezeigt und können in der Wahl Spalte ausgewählt werden, womit sie in der Wochenplan Übersicht und im Info Panel in den Points used sichtbar sind. Des weiteren wird nach einer Auswahl eine mögliche Zeitüberschneidung durch ein Warn Signal bei den nicht Ausgewählten Kursen in der Warn Spalte angezeigt.
[bearbeiten] Panel Gewichtungen
Die Gewichtungen entsprechen den möglichen Präferenzen und bestimmen den Faktor, den die einzelnen Rankings im Gesamt-ranking einnehmen.
Mit diesen Optionen kann gesteuert werden, wie wichtig einem das Ranking eines Dozenten ist, wie flexibel man in der Zeit ist und wie viel einem das Interesse an den Kursinhalten bedeutet.
[bearbeiten] Panel Info Panel
Im Info Panel wird der Punkte stand (Credits) der aktuellen Auswahl sowie ein Eingabefeld der zu erreichenden Punkte Angezeigt.
Werden die Punkte Grün dargestellt, hat man das gewünschte Punkteziel erreicht oder überschritten andernfals werden die Punkte Rot dargestellt.
[bearbeiten] Fertige Liste Anzeigen und Drucken
Im Menu unter File->Show Final List, oder über den shortcut <ctrl>+l kann man sich eine Liste der Ausgewählten Fächer Anzeigen und Ausdrucken lassen.
[bearbeiten] Logik
[bearbeiten] Rating Berechnung / Sortierung der Auswahltabelle
[bearbeiten] Stundenplan Grafik
[bearbeiten] DB
[bearbeiten] EJB Abstraktions Layer
[bearbeiten] HSQL-DB Setup
[bearbeiten] XML Importer/Exporter
[bearbeiten] Übersichtsliste
| | E-Learning |
| | Gerade |
| | Überbucht |
| | Ranking |
| | Spezialplan |
[bearbeiten] Glossar
[bearbeiten] Rank
Zeit, wie man selbst zu einem Fach / Dozent steht
[bearbeiten] Punkte
Akkumulierte Rankings, die für die Sortierung gebraucht werden
[bearbeiten] Konflikt
Wenn sich zwei Kurse zeitlich überschneiden. Dies kann auch passieren, wenn an einem Abend z.B. ein Kurs im Wochenrithmus und einer im Zweiwochenrithmus aktiviert sind. Zwei alternierende Kurse wiederum sind ok. Problematisch ist hier vor allem die Behandlung von Kursen mit Spezialplan und bei E-Learning
[bearbeiten] Gewichtung
Mit den Schiebereglern lässt sich der Einfluss der Präferenzen in den Bereichen Dozent / Lektion / Zeit allgemein justieren.
Kategorien: KI | Projects

