A client-side graphical solver for two-variable linear programming problems, built with Expo / React Native Web.
- Maximize or minimize
z = c₁x + c₂y - Add and remove linear constraints of the form
ax + by ≤ corax + by ≥ c - Draws every constraint line and the feasible region
- Enumerates feasible corner points
- Draws the objective line at the optimum
- Detects infeasible and unbounded problems
cd frontend/app
npm install
npm run webOr with Docker:
docker compose build
docker compose upcd frontend/app
npm install
npm test -- --runInBand
npm run typecheck- Converts all inequalities to half-planes.
- Intersects pairs of boundary lines, including the non-negativity boundaries.
- Keeps only feasible intersections as candidate vertices.
- Evaluates the objective at each vertex.
- Checks the recession cone to distinguish a bounded optimum from an unbounded objective.
- Clips a plotting rectangle by all half-planes to display the feasible region.
- Apache-2.0
