Files
ljkiwi/tmp/ex5.lua
2024-02-22 20:58:47 -06:00

42 lines
776 B
Lua

local kiwi = require("kiwi")
local Var = kiwi.Var
x1 = Var("x1")
x2 = Var("x2")
xm = Var("xm")
local constraints = { x1:ge(0), x2:le(100), x2:ge(x1 + 10), xm:eq((x1 + x2) / 2) }
local solver = kiwi.Solver()
for _, c in ipairs(constraints) do
solver:add_constraint(c)
end
local c = kiwi.constraints.single(x1, 40, "EQ", kiwi.Strength.WEAK)
solver:add_constraint(c)
constraints[#constraints + 1] = c
solver:add_edit_var(xm, kiwi.Strength.STRONG)
solver:suggest_value(xm, 60)
solver:update_vars()
print(xm:value(), x1:value(), x2:value())
for _, c in ipairs(constraints) do
print(c, c:violated())
end
solver:suggest_value(xm, 90)
solver:update_vars()
print(xm:value(), x1:value(), x2:value())
for _, c in ipairs(constraints) do
print(c, c:violated())
end