Skip to content

prescriptive

relationalai.semantics.reasoners

Prescriptive reasoning: define and solve decision problems.

Provides a declarative Python API for formulating decision problems — optimization, constraint satisfaction, or feasibility — and solving them with external solvers (HiGHS, Gurobi, Ipopt, MiniZinc, etc.).

from relationalai.semantics import Model, Float, Integer
from relationalai.semantics.reasoners.prescriptive import Problem
model = Model("my_problem")
p = Problem(model, Float) # Float for HiGHS/Gurobi/Ipopt, Integer for MiniZinc
x = model.Relationship(f"{Float:x}")
y = model.Relationship(f"{Float:y}")
p.solve_for(x, name="x", lower=0, upper=10)
p.solve_for(y, name="y", lower=0, upper=10)
p.minimize(x**2 + y**2)
p.satisfy(model.require(x + y >= 5))
p.solve("highs")

Functions exposed by this module.

Classes exposed by this module.

Submodules and subpackages available under this namespace.