Skip to content

Examples & API Finder ​

Explore runnable optimization and logic formulations built with WaSHI. Every example can be executed directly inside its documentation page, or edited in the Playground.

Examples ​

ExampleProblem ClassSolverKey WaSHI APIsDescriptionCode Editor
Production PlanningLP / MIPHiGHSm.integer(), m.constraint(), cBasic variables, tagged template literal equations, and maximizing profit under resource limits.Playground
0-1 KnapsackBinary MIPHiGHSm.binary(keys), sum(), m.constraint()1D dictionary of Binary variables and linear aggregation over item arrays.Playground
Transportation NetworkLPHiGHSm.continuous(rows, cols), dot(), m.constraint()2D matrix indexing (ship[factory][store]) and row/column flow balance constraints.Playground
Diet & Sensitivity AnalysisLPHiGHSconstr.dual, constr.slack, var.reducedCostReading shadow prices (bottlenecks), constraint surpluses, and reduced costs after solving.Playground
Staff Shift SchedulingBinary MIP + Unsat CoreHiGHS + Z3m.binary(staff, days), check(), unsatCore8×7 weekly roster planner (coverage, senior duty, max shifts, day-off requests) and diagnosing conflicting vacation requests with Z3 unsatCore.Playground
E-Commerce Coupon OptimizerIndicator MIPHiGHSm.indicator(), sum(), m.constraint()Checkout optimizer using m.indicator() for minimum spend thresholds, exclusive vs. stackable rules, and smart filler add-on suggestions.Playground
Portfolio OptimizationConvex QPHiGHSm.continuous(), m.constraint(), dot(), QuadExprMarkowitz mean-variance risk minimization (wTΣww^T \Sigma w) using QuadExpr subject to return targets.Playground
SMT Security PoliciesSMT LogicZ3m.bool(), m.constraint(), m.check()Propositional variables (BoolVar) and logical connectives (implies, and, not, xor) mixed with integer bounds.Playground
Conflict Diagnosis (unsatCore)Unsat CoreZ3m.constraint(), m.check(), m.unsatCoreExtracting a conflicting constraint subset (unsatCore) when staffing and budget rules contradict each other.Playground

Find by WaSHI API (Reverse Index) ​

Looking for a specific modeling method or solver capability? Jump straight to the example that demonstrates it:

Feature / APIDescriptionExample PageNode.js Source
m.constraint(c`...`)Tagged template literal constraintsProduction Planning01-production-planning.ts
m.binary(keys) / m.continuous(keys)1D dictionary of indexed variables0-1 Knapsack02-knapsack-problem.ts
m.continuous(rows, cols) / m.binary(rows, cols)2D matrix of indexed variablesTransportation Network, Shift Scheduling09-transportation-problem.ts
dot(matrix, vars2d) / dot(vector, vars)Fast vector/matrix dot productTransportation Network, Portfolio Optimization09-transportation-problem.ts
constr.dual & constr.slackShadow prices & constraint surplusesDiet & Sensitivity Analysis10-diet-sensitivity.ts
var.reducedCostVariable reduced costs in LPDiet & Sensitivity Analysis10-diet-sensitivity.ts
m.indicator()Big-M conditional constraints (binVar => constr)E-Commerce Coupon Optimizer12-ecommerce-coupon-optimizer.ts
new QuadExpr()Convex quadratic objectives (xTQxx^T Q x)Portfolio Optimization03-portfolio-qp.ts
m.bool() & .implies()Propositional logic & SMT rulesSMT Security Policies04-smt-security-rules.ts
m.check() & m.unsatCoreFeasibility check & conflict diagnosisConflict Diagnosis, Shift Scheduling05-unsat-core-diagnosis.ts
solver: "glpk"Solving LP/MIP with GLPK pluginGLPK Solver Guide08-glpk-solver-plugin.ts

Running Examples Locally in Node.js ​

All standalone scripts are located in examples/node/:

bash
npx tsx examples/node/01-production-planning.ts
npx tsx examples/node/02-knapsack-problem.ts
npx tsx examples/node/03-portfolio-qp.ts
npx tsx examples/node/04-smt-security-rules.ts
npx tsx examples/node/05-unsat-core-diagnosis.ts
npx tsx examples/node/07-hybrid-smt-mip.ts
npx tsx examples/node/08-glpk-solver-plugin.ts
npx tsx examples/node/09-transportation-problem.ts
npx tsx examples/node/10-diet-sensitivity.ts
npx tsx examples/node/11-shift-scheduling.ts
npx tsx examples/node/12-ecommerce-coupon-optimizer.ts

Released under the MIT License.