public static void Main(string[] args) { _solver = new ClSimplexSolver(); // initialize the needed variables BuildVariables(); // create the constraints try { BuildConstraints(); } catch (ExClRequiredFailure rf) { Console.Error.WriteLine(rf.StackTrace); } catch (ExClInternalError ie) { Console.Error.WriteLine(ie.StackTrace); } // solve it try { _solver.Solve(); } catch (ExClInternalError ie) { Console.Error.WriteLine(ie.StackTrace); } // print out the values Console.WriteLine("Variables: "); PrintVariables(); }
public void Z3() { Stopwatch w = new Stopwatch(); w.Restart(); var solver = new ClSimplexSolver() { AutoSolve = false }; Console.WriteLine("cons {0}ms", w.ElapsedMilliseconds); w.Restart(); solver.AddConstraint(new ClVariable("x"), new ClVariable("y"), new ClVariable("z"), (x, y, z) => x > 1 && y == x + 1 && y < 3 && z == x + y * 3 ); Console.WriteLine("setup {0}ms", w.ElapsedMilliseconds); w.Restart(); solver = solver.Solve(); Console.WriteLine("solve {0}ms", w.ElapsedMilliseconds); w.Restart(); Console.WriteLine("x " + ((ClVariable)solver.GetVariable("x")).Value); Console.WriteLine("y " + ((ClVariable)solver.GetVariable("y")).Value); Console.WriteLine("z " + ((ClVariable)solver.GetVariable("z")).Value); Console.WriteLine("read {0}ms", w.ElapsedMilliseconds); }
public void TestLayout1() { var solver = new ClSimplexSolver(); // initialize the needed variables BuildVariables(); BuildConstraints(solver); solver.Solve(); }
public void AddConstraints(IEnumerable <IFluentLayout <T> > fluentLayouts) { foreach (var fluentLayout in fluentLayouts) { foreach (var constraint in GetConstraintsFromFluentLayout(fluentLayout)) { solver.AddConstraint(constraint); } } solver.Solve(); _constraints.AddRange(fluentLayouts); }