private static PointProjectionSolver Solve2(ProblemSpec problemSpec, double originality) { var solver = SolverMaker.CreateSolver(problemSpec); var ribbonWidth = RibbonIndicator.GetRibbonWidth(problemSpec); return(SolverMaker.Solve(solver, ribbonWidth.HasValue ? ribbonWidth.Value : 1, originality)); }
private static SolutionSpec Solve(ProblemSpec problemSpec, double originality) { var solver = SolverMaker.CreateSolver(problemSpec); var ribbonWidth = RibbonIndicator.GetRibbonWidth(problemSpec); var simpleSolver = SolverMaker.Solve(solver, ribbonWidth.HasValue ? ribbonWidth.Value : 1, originality); if (simpleSolver != null) { return(SolutionSpecBuilder.BuildSolutionByRibbonGraph(simpleSolver.Projection)); } return(null); }
private void PaintRibbonGistToOutput() { var solver = SolverMaker.CreateSolver(problem); double percent; var parallelGist = RibbonIndicator.ParallelGist(solver, out percent); var pointGist = RibbonIndicator.PointGist(solver); var r = RibbonIndicator.Indicate(pointGist, parallelGist, percent); output.Items.Clear(); output.Items.Add(string.Format("{2}Strength: {0}, Percent: {1}", RibbonIndicator.GetStrength(pointGist, parallelGist, percent), percent, r.HasValue ? "RIBBON! " : "")); foreach (var g in parallelGist) { output.Items.Add(string.Format("{0}\t{1}", g.Key, g.Value)); } output.Items.Add(""); foreach (var g in pointGist) { output.Items.Add(string.Format("{0}\t{1}", g.Key, g.Value)); } }
public static Rational?GetRibbonWidth(ProblemSpec spec) { var solver = SolverMaker.CreateSolver(spec); return(GetRibbonWidth(solver)); }