Package de.svws_nrw.core.kursblockung
Klasse KursblockungAlgorithmusKMatching
java.lang.Object
de.svws_nrw.core.kursblockung.KursblockungAlgorithmusK
de.svws_nrw.core.kursblockung.KursblockungAlgorithmusKMatching
Dieser Kursverteilungs-Algorithmus verteilt die Kurse auf ihre Schienen, indem es die Kurslage zufällig verändert und
dabei versucht die Nichtwahlen zu minimieren. Die minimale Anzahl an Nichtwahlen wird mit einem
Bipartiten-Matching-Algorithmus berechnet.
-
Feldübersicht
Von Klasse geerbte Felder de.svws_nrw.core.kursblockung.KursblockungAlgorithmusK
_random, dynDaten, logger
-
Konstruktorübersicht
KonstruktorBeschreibungKursblockungAlgorithmusKMatching
(@NotNull Random pRandom, @NotNull Logger pLogger, @NotNull KursblockungDynDaten pDynDat) Im Konstruktor kann die Klasse die jeweiligen Datenstrukturen aufbauen. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoid
berechne
(long pEndzeit) Der Algorithmus verändert die Kurslage zufällig und bewertet die neue Lage mit dem AlgorithmusKursblockungAlgorithmusSMatching
.@NotNull String
toString()
-
Konstruktordetails
-
KursblockungAlgorithmusKMatching
public KursblockungAlgorithmusKMatching(@NotNull @NotNull Random pRandom, @NotNull @NotNull Logger pLogger, @NotNull @NotNull KursblockungDynDaten pDynDat) Im Konstruktor kann die Klasse die jeweiligen Datenstrukturen aufbauen. Kurse dürfen in diese Methode noch nicht auf Schienen verteilt werden.- Parameter:
pRandom
- EinRandom
-Objekt zur Steuerung des Zufalls über einen Anfangs-Seed.pLogger
- Logger für Benutzerhinweise, Warnungen und Fehler.pDynDat
- Die dynamischen Blockungsdaten.
-
-
Methodendetails
-
toString
-
berechne
public void berechne(long pEndzeit) Der Algorithmus verändert die Kurslage zufällig und bewertet die neue Lage mit dem AlgorithmusKursblockungAlgorithmusSMatching
. Falls sich die Bewertung verschlechtert, wird die Veränderung rückgängig gemacht.- Angegeben von:
berechne
in KlasseKursblockungAlgorithmusK
- Parameter:
pEndzeit
- Die Endzeit (in Millisekunden).
-