Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Stundenplanerstellung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Stundenplanerstellung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
TomS
Grünschnabel


Dabei seit: 25.09.2011
Beiträge: 1

Stundenplanerstellung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Meine Frau ist jetzt Leiterin einer kleinen Schule - und steht zum ersten Mal vor dem Problem, eine Stundenplan zu erstellen bzw. aktuell einen existierenden Stundenplan zu "verbessern". Dazu gibt es nun einige (frei verfügbare oder auch teure) Programme, mit denen man Zeiten, Klassen, Lehrer, Fächer sowie Nebenbedingungen definieren kann.

Bsp.
- Deutsch immer sechs Stunden / Woche (zwingend)
- bestimmte Fächer nur Vormittags (zwingend)
- keine Lücken im Stundenplan (zwingend)
- Lehrer X nur Mittwoch (erwünscht)
- nur Sport oder Werken am Nachmittag (zwingend)
- Sport immer als Doppelstunde (erwünscht)
- ...

Das geht mit den Programmen wohl ganz gut, aber ich bin auf der Suche nach einer (am besten frei verfügbaren) Programmiersprache, mittels der man diese Bedingungen einigermaßen sinnvoll formulieren kann. Dabei soll z.B. eine Liste dieser Bedingungen formuliert und anschließend ein möglicher Stundenplan erstellt weren.

Ich lerne aus den Diskussionen, dass in einem bestimmten Stundenplan wieder irgend etwas nicht passt ("dann hätte die zweite Klase am Freitag nur zwei Stunden, das geht nicht"), so dass dann eine neue Bedingung hinzukommt:
- mindestens vier, maximal acht Stundne am Tag

Die Idee ist also, diese neue Bedingung zu der Liste hinzuzufügen und eine neue Berechnung zu starten.

Kennt jemand so eine Programmiersprache? Oder hat jemand eine Idee, wie ich mir selbst einen Interpreter für soetwas bauen kann? Welche Sprache wäre dafür geeignet?
(ich habe früher sehr viel C/C++, teilw. JAVA u.ä. gearbeitet; damit ginge das, wäre aber sehr unschön zu formulieren; gibt es etwas, das ziemlich gut auf diese Art der Problemstellung darauf zugeschnitten ist?)

Meine Ideen:
Schwierig, wenn ich eine Idee hätte, würde ich es ausprobieren.

In C/C++ würde ich Klassen bzw. Funktionen mit Constraints formulieren und eine Iteration über Stunden, Klassen, Lehrer usw. schreiben.

Alternativ könnte ich mir eine Monte-Carlo-Simulation mit Importance Sampling vorstellen, wobei ich bei Erfüllung / Nichterfüllung entsprechende Gewichte vergebe.
25.09.2011 18:19 TomS ist offline E-Mail an TomS senden Beiträge von TomS suchen Nehmen Sie TomS in Ihre Freundesliste auf
bla
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

evtl. Prolog
26.09.2011 15:32
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Prolog müsste sowas theoretisch können. Ich weis jedoch nicht, ob Prolog auch "ungenaue Lösungen" angeben kann. Soweit ich weis errechnet Prolog Ergebnisse richtig. Bei der Menge der möglichen Kombinationen kann das jedoch sehr lange dauern (Tage/Wochen/Jahre).

Soweit ich weis werden für die Erstellung von Stundenplänen evolutionäre Algorithmen angewendet. Eine andere Lösung kenne ich nicht, was aber nicht heißt dass es keine gibt Augenzwinkern

VG,

Karlito
26.09.2011 17:23 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
TomS-2
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich tendiere momentan zu Simulated Annealing; EAs kenne ich nicht, soll aber teilw. sehr effizient sein. Constraint / Logic Programming, Prolog u.ä. kenne ich ebenfalls noch nicht; würde mich interessieren, aber ich habe Sorge bzgl. Leistungsfähigkeit und Perfomance - und das weiß ich erst hinterher.
26.09.2011 22:33
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Simulated Annealing klingt interessant. Leider kann ich hier nicht beratend an der Seite stehen (so weit bin ich leider noch nicht).

Schau dir mal AForge an. Vlt kann dir das weiterhelfen.

VG,

Karlito
26.09.2011 23:26 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Stundenplanerstellung