import { KursblockungAlgorithmusS } from '../../core/kursblockung/KursblockungAlgorithmusS'; import { KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten'; import { Logger } from '../../logger/Logger'; export declare class KursblockungAlgorithmusSZufaellig extends KursblockungAlgorithmusS { private static readonly MAX_RUNDEN_IN_FOLGE_OHNE_VERBESSERUNG; private readonly schuelerArr; private readonly perm; private readonly nurMultikurse; /** * Im Konstruktor kann die Klasse die jeweiligen Datenstrukturen aufbauen. Kurse * dürfen in diese Methode noch nicht auf Schienen verteilt werden. * * @param pLogger Logger zum Protokollieren von Warnungen und Fehlern. * @param pDynDat Die dynamischen Blockungsdaten. * @param pNurMultikurse Falls TRUE, dann werden nur die Multikurse der SuS * verteilt. */ constructor(pLogger: Logger, pDynDat: KursblockungDynDaten, pNurMultikurse: boolean); /** * Der Algorithmus verteilt die SuS auf ihre Kurse zufällig. Kommt es während * des Verteilens zur Kollision, so wird der Kurs nicht gewählt. */ berechne(pMaxTimeMillis: number): void; /** * Der Algorithmus verteilt die SuS ein weiteres Mal zufällig. Falls die * Verteilung schlechter ist, wird der vorherige Zustand wiederhergestellt. * * @return TRUE, falls der Zustand sich verbessert hat. */ private berechneSchritt; isTranspiledInstanceOf(name: string): boolean; } export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusSZufaellig(obj: unknown): KursblockungAlgorithmusSZufaellig;