Klasse KursblockungAlgorithmusKMatching

java.lang.Object
de.svws_nrw.core.kursblockung.KursblockungAlgorithmusK
de.svws_nrw.core.kursblockung.KursblockungAlgorithmusKMatching

public final class KursblockungAlgorithmusKMatching extends KursblockungAlgorithmusK
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.
  • 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 - Ein Random-Objekt zur Steuerung des Zufalls über einen Anfangs-Seed.
      pLogger - Logger für Benutzerhinweise, Warnungen und Fehler.
      pDynDat - Die dynamischen Blockungsdaten.
  • Methodendetails

    • toString

      @NotNull public @NotNull String toString()
      Setzt außer Kraft:
      toString in Klasse Object
    • berechne

      public void berechne(long pEndzeit)
      Der Algorithmus verändert die Kurslage zufällig und bewertet die neue Lage mit dem Algorithmus KursblockungAlgorithmusSMatching. Falls sich die Bewertung verschlechtert, wird die Veränderung rückgängig gemacht.
      Angegeben von:
      berechne in Klasse KursblockungAlgorithmusK
      Parameter:
      pEndzeit - Die Endzeit (in Millisekunden).