import { KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten'; import { KursblockungAlgorithmusK } from '../../core/kursblockung/KursblockungAlgorithmusK'; import { Logger } from '../../logger/Logger'; export declare class KursblockungAlgorithmusKMatching extends KursblockungAlgorithmusK { private static readonly MAX_RUNDEN_IN_FOLGE_OHNE_VERBESSERUNG; private readonly schuelerAlle; /** * Im Konstruktor kann die Klasse die jeweiligen Datenstrukturen aufbauen. Kurse * dürfen in diese Methode noch nicht auf Schienen verteilt werden. * * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler. * @param pDynDat Die dynamischen Blockungsdaten. */ constructor(pLogger: Logger, pDynDat: KursblockungDynDaten); /** * Der Algorithmus entfernt zunächst alle SuS aus ihren Kursen. Anschließend * werden die Kurse zufällig verteilt. Anschließend verändert der Algorithmus * die Lage eines zufälligen Kurses. Falls sich die Bewertung verschlechter, * wird die Veränderung rückgängig gemacht. */ berechne(pMaxTimeMillis: number): void; /** * Die Lage einiger Kurse wird verändert. Falls sich die Bewertung * verschlechter, wird die Veränderung rückgängig gemacht. */ private berechneSchritt; /** * Verteilt die SuS. Multikurse werden zufällig verteilt. Alle anderen Kurse mit * Hilfe eines Matching-Algorithmus. */ private verteileSuS; isTranspiledInstanceOf(name: string): boolean; } export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusKMatching(obj: unknown): KursblockungAlgorithmusKMatching;