interface SolveTrackerListeners {
    reified(summary): void;
    solved(outcome, outputs?): void;
    solving(progress): void;
}

Methods

  • Parameters

    • summary: {
          constraints: readonly {
              coefficientMultiplicity: string;
              columnCount: number;
              domainMultiplicity: string;
              label: string;
              reifiedInMillis: number;
              rowCount: number;
              weightProfile: {
                  buckets: readonly {
                      count: number;
                      left: number | "Infinity" | "-Infinity";
                      right: number | "Infinity" | "-Infinity";
                  }[];
                  count: number;
                  max?: number | "Infinity" | "-Infinity";
                  mean?: number;
                  min?: number | "Infinity" | "-Infinity";
                  stddev?: number;
              };
          }[];
          dimensions: readonly {
              itemCount: number;
              label: string;
          }[];
          objectives: readonly {
              coefficientMultiplicity: string;
              label: string;
              reifiedInMillis: number;
              weightProfile: {
                  buckets: readonly {
                      count: number;
                      left: number | "Infinity" | "-Infinity";
                      right: number | "Infinity" | "-Infinity";
                  }[];
                  count: number;
                  max?: number | "Infinity" | "-Infinity";
                  mean?: number;
                  min?: number | "Infinity" | "-Infinity";
                  stddev?: number;
              };
          }[];
          parameters: readonly {
              domainMultiplicity: string;
              entryProfile: {
                  buckets: readonly {
                      count: number;
                      left: number | "Infinity" | "-Infinity";
                      right: number | "Infinity" | "-Infinity";
                  }[];
                  count: number;
                  max?: number | "Infinity" | "-Infinity";
                  mean?: number;
                  min?: number | "Infinity" | "-Infinity";
                  stddev?: number;
              };
              label: string;
          }[];
          variables: readonly {
              columnCount: number;
              domainMultiplicity: string;
              label: string;
          }[];
      }
      • Readonly constraints: readonly {
            coefficientMultiplicity: string;
            columnCount: number;
            domainMultiplicity: string;
            label: string;
            reifiedInMillis: number;
            rowCount: number;
            weightProfile: {
                buckets: readonly {
                    count: number;
                    left: number | "Infinity" | "-Infinity";
                    right: number | "Infinity" | "-Infinity";
                }[];
                count: number;
                max?: number | "Infinity" | "-Infinity";
                mean?: number;
                min?: number | "Infinity" | "-Infinity";
                stddev?: number;
            };
        }[]
      • Readonly dimensions: readonly {
            itemCount: number;
            label: string;
        }[]
      • Readonly objectives: readonly {
            coefficientMultiplicity: string;
            label: string;
            reifiedInMillis: number;
            weightProfile: {
                buckets: readonly {
                    count: number;
                    left: number | "Infinity" | "-Infinity";
                    right: number | "Infinity" | "-Infinity";
                }[];
                count: number;
                max?: number | "Infinity" | "-Infinity";
                mean?: number;
                min?: number | "Infinity" | "-Infinity";
                stddev?: number;
            };
        }[]
      • Readonly parameters: readonly {
            domainMultiplicity: string;
            entryProfile: {
                buckets: readonly {
                    count: number;
                    left: number | "Infinity" | "-Infinity";
                    right: number | "Infinity" | "-Infinity";
                }[];
                count: number;
                max?: number | "Infinity" | "-Infinity";
                mean?: number;
                min?: number | "Infinity" | "-Infinity";
                stddev?: number;
            };
            label: string;
        }[]
      • Readonly variables: readonly {
            columnCount: number;
            domainMultiplicity: string;
            label: string;
        }[]

    Returns void

  • Parameters

    • outcome: {
          objectiveValue?: number;
          relativeGap?: number | "Infinity" | "-Infinity";
          status: "UNKNOWN" | "INFEASIBLE" | "UNBOUNDED" | "FEASIBLE" | "OPTIMAL" | "ABORTED";
          [key: string]: unknown;
      }
      • [key: string]: unknown
      • Optional Readonly objectiveValue?: number
      • Optional Readonly relativeGap?: number | "Infinity" | "-Infinity"
      • Readonly status: "UNKNOWN" | "INFEASIBLE" | "UNBOUNDED" | "FEASIBLE" | "OPTIMAL" | "ABORTED"
    • Optional outputs: {
          constraints: readonly {
              entries: readonly {
                  dualValue?: number;
                  key: readonly (string | number)[];
                  value: number;
              }[];
              label: string;
          }[];
          variables: readonly {
              entries: readonly {
                  dualValue?: number;
                  key: readonly (string | number)[];
                  value: number;
              }[];
              label: string;
          }[];
      }
      • Readonly constraints: readonly {
            entries: readonly {
                dualValue?: number;
                key: readonly (string | number)[];
                value: number;
            }[];
            label: string;
        }[]

        Description

        All entries where the constraint is active. Unlike for variables, zero-valued entries are included as they represent tight constraints.

      • Readonly variables: readonly {
            entries: readonly {
                dualValue?: number;
                key: readonly (string | number)[];
                value: number;
            }[];
            label: string;
        }[]

        Description

        Entries with zero primal value and null dual value are omitted.

    Returns void

  • Parameters

    • progress: {
          cutCount?: number;
          kind: "activity";
          lpIterationCount?: number;
          relativeGap?: number | "Infinity" | "-Infinity";
      } | {
          kind: "epsilonConstraint";
          objectiveValue: number;
      }

    Returns void