import { JavaObject } from '../../java/lang/JavaObject'; import { KursblockungDynKurs } from '../../core/kursblockung/KursblockungDynKurs'; import { Class } from '../../java/lang/Class'; import { Logger } from '../../core/logger/Logger'; export declare class KursblockungDynStatistik extends JavaObject { /** * Logger für Benutzerhinweise, Warnungen und Fehler. */ private readonly _logger; /** * In der Matrix ist zu jedem Kursart-Paar eine Bewertung die angibt, wie gut es wäre wenn zwei Kurses dieser * Fachart in der selben Schiene landen. Je kleiner der Wert, desto besser. Erhöht man den Wert der Haupt-Diagonale * in der Matrix, so werden Kurse der gleichen Fachart eher selten in eine Schiene getan. */ private matrixFachartPaar; /** * Regel: Kurs verbiete mit Kurs. */ private regelVerletzungKursMitKurs; /** * Die aktuelle Bewertung aller Regelverletzungen. */ private bewertungRegelverletzungen; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungRegelverletzungen} auf Schüler-Ebene. */ private bewertungRegelverletzungenSaveS; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungRegelverletzungen} auf Kurs-Ebene. */ private bewertungRegelverletzungenSaveK; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungRegelverletzungen} auf Globaler-Ebene. */ private bewertungRegelverletzungenSaveG; /** * Die aktuelle Bewertung der Fachart-Paare aller Schienen. */ private bewertungFachartPaar; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungFachartPaar} auf Kurs-Ebene. */ private bewertungFachartPaarSaveK; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungFachartPaar} auf Globaler-Ebene. */ private bewertungFachartPaarSaveG; /** * Die aktuelle Bewertung der Nichtwahlen aller Schüler. */ private bewertungNichtwahlen; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungNichtwahlen} auf Schüler-Ebene. */ private bewertungNichtwahlenSaveS; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungNichtwahlen} auf Kurs-Ebene. */ private bewertungNichtwahlenSaveK; /** * Zum Speichern des Wertes von {@link KursblockungDynStatistik#bewertungNichtwahlen} auf Globaler-Ebene. */ private bewertungNichtwahlenSaveG; /** * Das Array aller Kursdifferenzen. */ private bewertungKursdifferenzen; /** * Zum Speichern des Arrays von {@link KursblockungDynStatistik#bewertungKursdifferenzen} auf Schüler-Ebene. */ private bewertungKursdifferenzenSaveS; /** * Zum Speichern des Arrays von {@link KursblockungDynStatistik#bewertungKursdifferenzen} auf Kurs-Ebene. */ private bewertungKursdifferenzenSaveK; /** * Zum Speichern des Arrays von {@link KursblockungDynStatistik#bewertungKursdifferenzen} auf Globaler-Ebene. */ private bewertungKursdifferenzenSaveG; /** * Verweist im Array {@link KursblockungDynStatistik#bewertungKursdifferenzen} auf den höchsten Index mit einem * Wert größer als 0. Das ist die größte Kursdifferenz.
* Ausnahme: Falls das Array nur aus Nullen besteht, dann ist der Wert ebenfalls Null. */ private bewertungKursdifferenzenMaxIndex; /** * Initialisiert alle Attribute mit Dummy-Werten. * * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler. */ constructor(pLogger: Logger); /** * Initialisiert alle Attribute mit Dummy-Werten. * Setzt alle Werte auf 0 und initialisiert alle Arrays auf die Länge 0. */ clear(): void; /** * Initialisiert dieses Objekt mit den Anfangswerten. * * @param pMatrixFachartPaar Das 2D-Array beinhaltet pro Fachart-Paar eine Bewertung. * @param pMaxSchueler Die maximale Anzahl an Schülern. * @param pMaxFacharten Die maximale Anzahl an Facharten. * @param pMaxKurse Die maximale Anzahl an Kursen. */ aktionInitialisiere(pMatrixFachartPaar: Array>, pMaxSchueler: number, pMaxFacharten: number, pMaxKurse: number): void; /** * Ausgabe von Debug-Informationen. Nur für Testzwecke. * * @param pPrefix Ein String-Prefix vor der Ausgabe. */ debug(pPrefix: string): void; /** * Liefert Debug-Informationen in einer Zeile. * * @return Debug-Informationen in einer Zeile. */ debugRow(): string; /** * Liefert Debug-Informationen in einer Zeile (ohne ausführliche Kursdifferenzen). * * @return Debug-Informationen in einer Zeile (ohne ausführliche Kursdifferenzen). */ debugRowKurz(): string; /** * Liefert die aktuelle Fachart-Paar-Bewertung. * * @return Die aktuelle Fachart-Paar-Bewertung. */ gibBewertungFachartPaar(): number; /** * Liefert die aktuelle Anzahl an Nichtwahlen. * Das ist die Summe aller Kurs, die bei Schülern nicht zugeordnet wurden. * * @return Die aktuelle Anzahl an Nichtwahlen. */ gibBewertungNichtwahlen(): number; /** * Liefert die aktuell größte Kursdifferenz (über alle Facharten). * * @return Die aktuell größte Kursdifferenz (über alle Facharten). */ gibBewertungKursdifferenz(): number; /** * Liefert die aktuell Anzahl an Regelverletzungen. * * @return die aktuell Anzahl an Regelverletzungen. */ gibBewertungRegelverletzungen(): number; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, Kursdiffenzen) des Zustandes S sich * verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, Kursdiffenzen) des Zustandes K sich * verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibBewertungZustandS_NW_KD(): number; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, Kursdiffenzen) des Zustandes K sich * verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, Kursdiffenzen) des Zustandes K sich * verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibCompareZustandK_NW_KD_FW(): number; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Reihenfolge: Fachwahlmatrix, Nichtwahlen, * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Reihenfolge: Fachwahlmatrix, Nichtwahlen, Kursdiffenzen) des * Zustandes K sich verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibCompareZustandK_FW_NW_KD(): number; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, Kursdiffenzen, FachartPaar) des * Zustandes-G sich verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, Kursdiffenzen, FachartPaar) des Zustandes-G sich * verschlechtert (-1), sich verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibCompareZustandG_NW_KD_FW(): number; /** * Liefert TRUE, falls dieses Objekt besser ist als das übergebene Objekt b. * * @param b Das zu vergleichende Objekt. * * @return TRUE, falls dieses Objekt besser ist als das übergebene Objekt b. */ gibIstBesser_NW_KD_FW_Als(b: KursblockungDynStatistik): boolean; /** * Liefert das Array bzw. das Histogramm der Kursdifferenzen. * * @return das Array bzw. das Histogramm der Kursdifferenzen. */ gibArrayDerKursdifferenzen(): Array; /** * Informiert die Statistik, dass ein Kurs-Paar hinzuzufügen ist. * * @param pKurs1 Der 1. Kurs des Kurs-Paares. * @param pKurs2 Der 2. Kurs des Kurs-Paares. */ aktionKurspaarInSchieneHinzufuegen(pKurs1: KursblockungDynKurs, pKurs2: KursblockungDynKurs): void; /** * Informiert die Statistik, dass ein Kurs-Paar zu entfernen ist. * * @param pKurs1 Der 1. Kurs des Kurs-Paares. * @param pKurs2 Der 2. Kurs des Kurs-Paares. */ aktionKurspaarInSchieneEntfernen(pKurs1: KursblockungDynKurs, pKurs2: KursblockungDynKurs): void; /** * Informiert die Statistik über eine Veränderung der Nichtwahlen. * * @param pVeraenderung Die Veränderungen der Nichtwahlen (negative Werte sind möglich). */ aktionNichtwahlenVeraendern(pVeraenderung: number): void; /** * Fügt eine Kursdifferenz {@code pIndex} dem Histogramm {@link KursblockungDynStatistik#bewertungKursdifferenzen} * aller Kursdifferenzen hinzu. Der Index des größten Nicht-Null-Wertes * {@link KursblockungDynStatistik#bewertungKursdifferenzenMaxIndex} wird dabei möglicherweise größer.
* {@code Beispiel vorher: 5, 0, 6*, 0, 0, 0, 0, 0, 0}
* {@code Beispiel danach: 5, 0, 6, 0, 0, 1*, 0, 0, 0}
* * @param pIndex Die Kursdifferenz von der es eine weniger geben soll. */ aktionKursdifferenzHinzufuegen(pIndex: number): void; /** * Entfernt eine Kursdifferenz {@code pIndex} aus dem Histogramm * {@link KursblockungDynStatistik#bewertungKursdifferenzen} aller Kursdifferenzen. Der Index des größten * Nicht-Null-Wertes {@link KursblockungDynStatistik#bewertungKursdifferenzenMaxIndex} wird dabei möglicherweise * kleiner.
* {@code Beispiel vorher: 5, 0, 6, 0, 0, 1*, 0, 0, 0}
* {@code Beispiel danach: 5, 0, 6*, 0, 0, 0, 0, 0, 0}
* * @param pIndex Die Kursdifferenz von der es eine weniger geben soll. */ aktionKursdifferenzEntfernen(pIndex: number): void; /** * Speichert die aktuellen Werte (im Zustand S). */ aktionBewertungSpeichernS(): void; /** * Speichert die aktuellen Werte (im Zustand K). */ aktionBewertungSpeichernK(): void; /** * Speichert den aktuellen Blockungsdaten (im Zustand G). */ aktionBewertungSpeichernG(): void; /** * Fügt die Regel {@link GostKursblockungRegelTyp#KURS_VERBIETEN_MIT_KURS} zur Bewertung hinzu. *
Erhöht den Malus 'bewertungRegelverletzungen', falls die Kurse bereits gemeinsam in einer Schiene sind. * * @param kurs1 Der 1. Kurs der Regel. * @param kurs2 Der 2. Kurs der Regel. */ regelHinzufuegenKursVerbieteMitKurs(kurs1: KursblockungDynKurs, kurs2: KursblockungDynKurs): void; /** * Fügt die Regel {@link GostKursblockungRegelTyp#KURS_ZUSAMMEN_MIT_KURS} zur Bewertung hinzu. *
Erhöht den Malus 'bewertungRegelverletzungen' um den Wert, der bis zur maximalen Schnittmenge fehlt. * * @param kurs1 Der 1. Kurs der Regel. * @param kurs2 Der 2. Kurs der Regel. */ regelHinzufuegenKursZusammenMitKurs(kurs1: KursblockungDynKurs, kurs2: KursblockungDynKurs): void; private static gibAnzahlGemeinsamerSchienen; /** * Verändert die aktuelle Anzahl an Regelverletzungen. * * @param unterschied Der Unterschied (auch negativ). */ regelverletzungVeraendern(unterschied: number): void; transpilerCanonicalName(): string; isTranspiledInstanceOf(name: string): boolean; static class: Class; } export declare function cast_de_svws_nrw_core_kursblockung_KursblockungDynStatistik(obj: unknown): KursblockungDynStatistik; //# sourceMappingURL=KursblockungDynStatistik.d.ts.map