SatSolverA.d.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { JavaObject } from '../../../java/lang/JavaObject';
  2. export declare abstract class SatSolverA extends JavaObject {
  3. static readonly RESULT_UNSATISFIABLE: number;
  4. static readonly RESULT_UNKNOWN: number;
  5. static readonly RESULT_SATISFIABLE: number;
  6. constructor();
  7. /**
  8. * Erzeugte eine neue Variable. Den zurückgegebenen Integer-Wert darf man nun in Klauseln (auch negiert)
  9. * benutzen. Eine Variable hat niemals den Wert 0, da dieser Wert nicht negiert werden kann.
  10. *
  11. * @return Die Nummer der neuen Variablen.
  12. */
  13. abstract createNewVar(): number;
  14. /**
  15. * Hinzufügen einer Klausel. Eine Klausel ist eine Menge von Variablen, die mit einem logischen ODER verknüpft
  16. * sind. Die Variablen dürfen negiert sein.<br>
  17. * {@code Beispiel: [-3, 8, 2] bedeutet (NOT x3) OR x8 OR x2}<br>
  18. * Die Menge aller Klauseln sind mit einem AND verknüpft.
  19. *
  20. * @param pVars Die Variablen (auch negiert) der Klausel mit den zuvor generierten Variablen. Ist das Array
  21. * leer, wird es ignoriert.
  22. */
  23. abstract addClause(pVars: Array<number>): void;
  24. /**
  25. * Gibt den Wert TRUE oder FALSE der angefragten Variable zurück. Das Verhalten dieser Methode ergibt nur dann
  26. * Sinn, wenn der Solver mit SATISFIABLE nach Aufruf der Methode {@link #solve } geantwortet hat.
  27. *
  28. * @param pVar Die angefragte Variable (kann auch negativ sein, aber nicht 0).
  29. * @return TRUE, falls die angefragte Variable nach der Berechnnung TRUE ist.
  30. */
  31. abstract isVarTrue(pVar: number): boolean;
  32. /**
  33. * Startet die Berechnung für maximal {@code maxTimeMillis} Millisekunden und liefert einen der drei möglichen
  34. * Werte {@link #RESULT_SATISFIABLE}, {@link #RESULT_UNKNOWN} oder {@link #RESULT_UNSATISFIABLE}.
  35. *
  36. * @param maxTimeMillis Die maximale Berechnungszeit (in Millisekunden).
  37. *
  38. * @return Liefert einen der drei möglichen Werte {@link #RESULT_SATISFIABLE}, {@link #RESULT_UNKNOWN} oder
  39. * {@link #RESULT_UNSATISFIABLE}.
  40. */
  41. abstract solve(maxTimeMillis: number): number;
  42. /**
  43. * Liefert die interne Anzahl an erzeugten Variablen.
  44. *
  45. * @return Die interne Anzahl an erzeugten Variablen.
  46. */
  47. abstract getVarCount(): number;
  48. /**
  49. * Liefert die interne Anzahl an erzeugten Klauseln.
  50. *
  51. * @return Die interne Anzahl an erzeugten Klauseln.
  52. */
  53. abstract getClauseCount(): number;
  54. isTranspiledInstanceOf(name: string): boolean;
  55. }
  56. export declare function cast_de_nrw_schule_svws_core_kursblockung_satsolver_SatSolverA(obj: unknown): SatSolverA;