SatSolver3.d.ts 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { SatSolverA } from '../../../core/kursblockung/satsolver/SatSolverA';
  2. export declare class SatSolver3 extends SatSolverA {
  3. private static readonly MAX_LEARNED_CLAUSE_SIZE;
  4. private heap;
  5. private vSize;
  6. private vArrayPos;
  7. private vArrayNeg;
  8. private cSize;
  9. private learnClauseMin;
  10. /**
  11. * Konstruktor.
  12. */
  13. constructor();
  14. isVarTrue(pVar: number): boolean;
  15. createNewVar(): number;
  16. addClause(pVars: Array<number>): void;
  17. /**
  18. * Fügt der Datenstruktur eine 1-CNF-Klausel hinzu.
  19. *
  20. * @param x Das 1. Literal (Variablennummer) der Klausel.
  21. */
  22. private addClause1;
  23. /**
  24. * Fügt der Datenstruktur eine 2-CNF-Klausel hinzu.
  25. *
  26. * @param x Das 1. Literal (Variablennummer) der Klausel.
  27. * @param y Das 2. Literal (Variablennummer) der Klausel.
  28. */
  29. private addClause2;
  30. /**
  31. * Fügt der Datenstruktur eine 3-CNF-Klausel hinzu.
  32. *
  33. * @param x Das 1. Literal (Variablennummer) der Klausel.
  34. * @param y Das 2. Literal (Variablennummer) der Klausel.
  35. * @param z Das 3. Literal (Variablennummer) der Klausel.
  36. */
  37. private addClause3;
  38. getVarCount(): number;
  39. getClauseCount(): number;
  40. solve(pMaxTimeMillis: number): number;
  41. private learnClause;
  42. private simplify;
  43. private static fill;
  44. /**
  45. * Setzt die Variable {@code varP} auf TRUE und aktualisiert die gesamte Datenstruktur entsprechend.
  46. *
  47. * @param varP Die Variable, die auf TRUE gesetzt wird.
  48. */
  49. private unitpropagation;
  50. /**
  51. * Setzt die Variable {@code varP} von TRUE auf FREI und aktualisiert die gesamte Datenstruktur entsprechend.
  52. *
  53. * @param varP Die Variable, die von TRUE auf FREI gesetzt wird.
  54. */
  55. private unitpropagation_undo;
  56. /**
  57. * Eine Hilsmethode, die alle Klauseln der Liste aktualisiert.
  58. *
  59. * @param clauses Alle zu informmierenden Klausel.
  60. * @param pDeltaSat Die Veränderung der erfüllten Klauseln, relativ zum 1. Index im 2D-Array
  61. * {@link Variable#statSatFree}.
  62. * @param pDeltaFree Die Veränderung der freien Variablen, relativ zum 2. Index im 2D-Array
  63. * {@link Variable#statSatFree}.
  64. */
  65. private unitpropagationHelper;
  66. /**
  67. * Liefert das zugehörige Variablenobjekt.
  68. *
  69. * @param pNr Der Variablennummer.
  70. *
  71. * @return Das zugehörige Variablenobjekt.
  72. */
  73. private getVarOf;
  74. isTranspiledInstanceOf(name: string): boolean;
  75. }
  76. export declare function cast_de_nrw_schule_svws_core_kursblockung_satsolver_SatSolver3(obj: unknown): SatSolver3;