Skip to content

WaSHITypeScriptのための数理最適化モデラー

WebAssembly 代数モデリングシステム(LP, MIP, QP, SMT)。Node.js、ブラウザ、Bun、Deno、Next.js でネイティブな高速最適化を実現。

WaSHI Emblem

クイックコード例 ​

typescript
import { Model, expr, c, maximize } from "@ohtaman/washi";

// 1. モデルの作成
const m = new Model("木工製品の利益最大化");

// 2. 決定変数の定義(整数変数)
const desks = m.integer("机", { lb: 0 });
const chairs = m.integer("椅子", { lb: 0 });

// 3. 目的関数の設定(机 $30、椅子 $50 の利益最大化)
m.objective(maximize(expr`30 * ${desks} + 50 * ${chairs}`));

// 4. 制約条件の追加(木材と労働力の上限)
m.constraint(c`${desks} + 2 * ${chairs} <= 40`, "木材上限");
m.constraint(c`2 * ${desks} + ${chairs} <= 50`, "労働力上限");

// 5. WebAssembly (HiGHS) による求解
await m.solve();

console.log(`生産量: 机=${desks.value}台, 椅子=${chairs.value}台`);
console.log(`最大利益: $${m.objectiveValue}`);

Released under the MIT License.