public override string solve() { String flatzinc_path = instance_path.Substring(0, instance_path.Length - 4) + ".fzn"; String ozn_path = instance_path.Substring(0, instance_path.Length - 4) + ".ozn"; //long rand_seed = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; //rand_seed = rand_seed % 100000; String result; MiniZincInterface.ExecCommand(MiniZincInterface.mzn2fzn_path, instance_path); result = MiniZincInterface.ExecCommand(MiniZincInterface.or_tools_path, flatzinc_path); return(MiniZincInterface.ExecCommand(MiniZincInterface.solns2out_path, ozn_path, result)); }
internal void solve(MiniZincInterface mzinc, SolverName solverName) { string result = mzinc.solve(this, solverName); if (result.Contains("UNSATISFIABLE") || result.Trim() == "") { solved = false; } else { solved = true; String[] solutions = result.Split(new string[] { "==========" }, StringSplitOptions.None); if (solutions.Length >= 2) { result = solutions[solutions.Length - 2]; } using (StringReader reader = new StringReader(result)) { string line = string.Empty; do { line = reader.ReadLine(); if (line != null) { if (line.Contains("=") && !line.Contains("set_")) { string[] x = line.Split('='); Variable v = variables[x[0].Trim()]; if (v != null) { v.solvedValue = x[1].Trim().Split(';')[0]; } } } } while (line != null); } } }
public void initializeForm(CPInstance instance) { if (mzinc == null) { mzinc = new MiniZincInterface(); } this.initializeGrid(); Form1.instance = instance; comboBox1.SelectedIndex = comboBox1.Items.Count - 1; stack = new UndoStack(); refreshUndoButtons(); lastConstraint = null; }
public override string solve() { return(MiniZincInterface.ExecCommand(MiniZincInterface.mzinc_path, instance_path)); }