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

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Stundenplanerstellung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
Karlito

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
TomS-2

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.
Karlito

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
bla

evtl. Prolog
TomS Stundenplanerstellung

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.