123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import { JavaObject } from '../../java/lang/JavaObject';
- export declare class KursblockungMatrix extends JavaObject {
- private readonly RND;
- private readonly matrix;
- private readonly rows;
- private readonly cols;
- private readonly permR;
- private readonly permC;
- private readonly r2c;
- private readonly c2r;
- private readonly besuchtR;
- private readonly abgearbeitetC;
- private readonly vorgaengerCzuR;
- private readonly queueR;
- private readonly potentialR;
- private readonly potentialC;
- private readonly distanzC;
- /**
- * Erzeugt eine neue Matrix mit {@code rows} Zeilen und {@code cols} Spalten.
- *
- * @param rows Die Anzahl der Zeilen der Matrix.
- * @param cols Die Anzahl der Spalten der Matrix.
- */
- constructor(rows: number, cols: number);
- /**
- * Berechnet zur aktuellen Matrix ein maximales bipartites Matching. Die Methode
- * geht davon aus, dass in der Matrix ausschließlich die Werte 0 und 1
- * vorkommen. Werte ungleich 0 werden andernfalls als 1 (eine Kante im Graphen)
- * interpretiert. Nichtquadratische Matrizen sind erlaubt. Das Ergebnis der
- * Methode ist eine größtmögliche Zeilen- zu Spaltenzuordnung. Der Algorithmus
- * hat eine Laufzeit von O(n³).
- *
- * @param nichtdeterministisch definiert, ob das Ergebnis zufällig sein soll,
- * falls es mehrere optimale Lösungen gibt.
- *
- * @return die Zeilen- zu Spaltenzuordnung, negative Werte entsprechen einer
- * Nichtzuordnung.
- */
- gibMaximalesBipartitesMatching(nichtdeterministisch: boolean): Array<number>;
- /**
- * Berechnet zur aktuellen Matrix ein minimales gewichtetes Matching. Die
- * Methode geht davon aus, dass in der Matrix ganzzahlige Werte vorkommen, d.h.
- * es existiert eine Kante von jedem linken Knoten zu jedem rechten Knoten.
- * Negative Werte und nichtquadratische Matrizen sind erlaubt. Zur Berechnung
- * eines maximalen Matching kann man vorher alle Zellenwerte negieren. Das
- * Ergebnis der Methode ist eine Zeilen- zu Spaltenzuordnung, deren Summe
- * minimal ist. Der Algorithmus verwendet mehrere Runden eines SSSP-Algorithmus
- * (Dijkstra). Damit dies bei negativen Werten funktioniert, werden die Kanten
- * mit Hilfe von Knoten-Potentialen umgewichtet. Der Algorithmus hat eine
- * Laufzeit von O(n³).
- *
- * @see <a href= "https://en.wikipedia.org/wiki/Shortest_path_problem">Wikipedia
- * - Shortest_path_problem</a>
- *
- * @see <a href= "https://en.wikipedia.org/wiki/Johnson%27s_algorithm">Wikipedia
- * - Johnsons Algorithm</a>
- *
- * @param nichtdeterministisch definiert, ob das Ergebnis zufällig sein soll,
- * falls es mehrere optimale Lösungen gibt.
- *
- * @return die Zeilen- zu Spaltenzuordnung, negative Werte entsprechen einer
- * Nichtzuordnung.
- */
- gibMinimalesBipartitesMatchingGewichtet(nichtdeterministisch: boolean): Array<number>;
- /**
- * Interne Methode zum Permutieren oder Initialisieren der Arrays
- * {@link KursblockungMatrix#permR} und {@link KursblockungMatrix#permC}.
- *
- * @param nichtdeterministisch falls {@code true} werden
- * {@link KursblockungMatrix#permR} und
- * {@link KursblockungMatrix#permC} permutiert,
- * sonst initialisiert.
- */
- private initialisierPermRundPermC;
- /**
- * Interne Methode zum Initialisieren eines Arrays so, dass das Array mit den
- * Zahlen {@code 0,1,2...} gefüllt wird.
- *
- * @param perm Das Array, welches mit den Zahlen {@code 0,1,2...} gefüllt wird.
- */
- private static initialisiere;
- /**
- * Interne Methode zum zufälligen Permutieren eines Arrays.
- *
- * @param perm Das Array, dessen Inhalt zufällig permutiert wird.
- */
- private permutiere;
- /**
- * Erlaubt Zugriff auf den Inhalt des Arrays.
- *
- * @return Die Array-Referenz.
- */
- getMatrix(): Array<Array<number>>;
- /**
- * Erzeugt String-Ausgabe des Arrays sowie der Zeilen-zu-Spalten-Zuordnung
- * {@link KursblockungMatrix#r2c}. Diese Methode ist für Debug-Zwecke gedacht.
- *
- * @param kommentar Ein Kommentar der über der Matrix angezeigt wird.
- * @param zellenbreite Die Breite bei der Ausgabe der Zelle.
- * @param mitKnotenPotential Falls {@code true}, werden die Kantenwerte
- * umgewichtet entsprechenden der Knotenpotentiale,
- * andernfalls bleiben die Kantenwerte unverändert.
- *
- * @return Eine String-Representation der Matrix.
- */
- convertToString(kommentar: String, zellenbreite: number, mitKnotenPotential: boolean): String;
- /**
- * Füllt die Matrix mit ganzzahligen zufälligen Zahlenwerten aus dem Intervall
- * {@code [von;bis]}.
- *
- * @param von Der kleinstmögliche zufällige Wert (inklusive).
- * @param bis Der größtmögliche zufällige Wert (inklusive).
- */
- fuelleMitZufallszahlenVonBis(von: number, bis: number): void;
- isTranspiledInstanceOf(name: string): boolean;
- }
- export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungMatrix(obj: unknown): KursblockungMatrix;
|