Mathematical Optimisation as a Service. Express your models in code, submit, get results. You do the math. We run the infrastructure.
Most teams spend more time learning a framework than solving their problem. The barrier isn't the math — it's the translation layer.
Forced Reformulation
Write the math, then rewrite it. Commercial solvers demand a separate modelling language whose syntax looks nothing like the equations on your whiteboard — and you maintain both copies forever.
Operational Drag
Heavy frameworks ride on heavier infrastructure — private servers to host, licence keys to renew. When a key lapses, your solver does too.
Split Toolchains
LP and nonlinear problems each have their own tooling. Different APIs, different workflows, doubled maintenance — and code that won't survive a problem-type change.
Write your model in code. Reads like the math on your whiteboard.
Express your model
Write your objective as a plain function, or use the DSL to express LP and MIP models in standard or canonical form.
Submit for processing
Send your model and parameters to the Armada Solver client. We validate, compile, and execute it in a sandboxed environment, in parallel across solver channels.
Get your results
Fetch results asynchronously — optimal values, scores, and diagnostics, ready to plug into your application.
Backed by Google OR-Tools and other production-grade solvers. Each family bundles multiple algorithms — pick the one that fits your problem.
LP / MIP
Linear and mixed-integer programming for resource allocation, scheduling, and combinatorial problems with discrete decisions.
Non-Linear Solvers
Optimise nonlinear cost functions, smooth or non-smooth. Black-box methods that need only your function — no gradients, no Jacobians, no derivatives.
Constraint Programming
Satisfy and optimise across complex discrete constraints — scheduling, rostering, routing, and assignment. Excels where pure LP/MIP struggles.
Graph Algorithms
Shortest path, network flow, and connectivity for routing, logistics, and infrastructure planning.
# Minimise (a·x + b·y - c)² with a, b, c from uploaded data @objective def fit(v): data = load_data("datasets/nelder-params.json") a = float(data["a"]) b = float(data["b"]) c = float(data["c"]) return (a * v[0] + b * v[1] - c) ** 2.0 response = await solve_neldermead( [0.0, 0.0], fit, ["datasets/nelder-params.json"], cruiser, ) result = await fetch_neldermead_result( response.CorrelationID, cruiser, )
If you can express "minimise this" or "maximise that," Armada Solver can solve it.
Facility Placement
Optimise locations for hospitals, warehouses, cell towers, or EV chargers to maximise coverage and minimise cost.
Engineering Design
Minimise material costs while satisfying structural constraints. Pressure vessels, beam design, thermal systems.
Logistics & Routing
Optimise delivery routes, fleet allocation, and supply chain flows to reduce operational costs.
Financial Modelling
Portfolio optimisation, risk-return balancing, and parameter fitting for quantitative models.
Scientific Research
Curve fitting, model calibration, and parameter estimation across physics, chemistry, and biology.
ML Hyperparameters
Tune learning rates, regularisation, and architecture parameters.