/** * Random LP/MIP problem generator for testing * * Generates problems of configurable size and type for: * - Performance benchmarking without large static files * - Stress testing solver with various problem structures * - Fuzz testing with edge cases */ export interface GeneratorOptions { /** Random seed for reproducibility */ seed?: number; /** Number of decision variables */ numVariables?: number; /** Number of constraints */ numConstraints?: number; /** Fraction of variables that are integers (0-1) */ integerFraction?: number; /** Fraction of variables that are binary (0-1) */ binaryFraction?: number; /** Density of constraint matrix (0-1, fraction of non-zero coefficients) */ density?: number; /** Coefficient range [min, max] */ coefficientRange?: [number, number]; /** RHS value range [min, max] */ rhsRange?: [number, number]; } export interface GeneratedProblem { name: string; optimize: string; opType: "max" | "min"; constraints: Record; variables: Record>; ints?: Record; binaries?: Record; } /** * Generate a random LP problem (continuous variables only) */ export declare function generateRandomLP(options?: GeneratorOptions): GeneratedProblem; /** * Generate a random MIP (mixed-integer problem) */ export declare function generateRandomMIP(options?: GeneratorOptions): GeneratedProblem; /** * Generate a knapsack problem (classic MIP benchmark) */ export declare function generateKnapsack(options?: GeneratorOptions): GeneratedProblem; /** * Generate a set covering problem (MIP) */ export declare function generateSetCover(options?: GeneratorOptions): GeneratedProblem; /** * Generate a transportation/assignment problem (LP with special structure) */ export declare function generateTransportation(options?: GeneratorOptions): GeneratedProblem; /** * Generate a resource allocation problem (common LP formulation) */ export declare function generateResourceAllocation(options?: GeneratorOptions): GeneratedProblem; /** * Generate a batch of problems of various types and sizes */ export declare function generateProblemBatch(count: number, baseSeed?: number): GeneratedProblem[];