ok
This commit is contained in:
41
tmp/ex5.lua
Normal file
41
tmp/ex5.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
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
|
||||
Reference in New Issue
Block a user