public override void Run() { if (!this.problemIsOn) { return; } // Map the set of clauses from parser to one set of intrinsic clauses. ConstructIntrinsicSet(); // Create the analyzer HardCodedShadedAreaMain analyzer = new HardCodedShadedAreaMain(intrinsic, given, known, goalRegions, this.parser.implied, GetSolutionArea()); // Perform and time the analysis figureStats = analyzer.AnalyzeFigure(); // // If we know it's complete, keep that overridden completeness. // Otherwise, determine completeness through analysis of the nodes in the hypergraph. // if (!this.isComplete) { this.isComplete = figureStats.isComplete; } //System.Diagnostics.Debug.WriteLine("Resultant Complete: " + this.isComplete +"\n"); if (this.isComplete) { } else { } // Add to the cumulative statistics ActualShadedAreaProblem.TotalTime = ActualShadedAreaProblem.TotalTime.Add(figureStats.stopwatch.Elapsed); ActualShadedAreaProblem.TotalPoints += figureStats.numPoints; ActualShadedAreaProblem.TotalSegments += figureStats.numPoints; ActualShadedAreaProblem.TotalInMiddle += figureStats.numInMiddle; ActualShadedAreaProblem.TotalAngles += figureStats.numAngles; ActualShadedAreaProblem.TotalTriangles += figureStats.numTriangles; ActualShadedAreaProblem.TotalIntersections += figureStats.numIntersections; ActualShadedAreaProblem.TotalTotalProperties += figureStats.totalProperties; ActualShadedAreaProblem.TotalExplicitFacts += figureStats.totalExplicitFacts; }
public override void Run() { if (!this.problemIsOn) return; // Map the set of clauses from parser to one set of intrinsic clauses. ConstructIntrinsicSet(); // Create the analyzer HardCodedShadedAreaMain analyzer = new HardCodedShadedAreaMain(intrinsic, given, known, goalRegions, this.parser.implied, GetSolutionArea()); // Perform and time the analysis figureStats = analyzer.AnalyzeFigure(); // // If we know it's complete, keep that overridden completeness. // Otherwise, determine completeness through analysis of the nodes in the hypergraph. // if (!this.isComplete) this.isComplete = figureStats.isComplete; //System.Diagnostics.Debug.WriteLine("Resultant Complete: " + this.isComplete +"\n"); if (this.isComplete) { } else { } // Add to the cumulative statistics ActualShadedAreaProblem.TotalTime = ActualShadedAreaProblem.TotalTime.Add(figureStats.stopwatch.Elapsed); ActualShadedAreaProblem.TotalPoints += figureStats.numPoints; ActualShadedAreaProblem.TotalSegments += figureStats.numPoints; ActualShadedAreaProblem.TotalInMiddle += figureStats.numInMiddle; ActualShadedAreaProblem.TotalAngles += figureStats.numAngles; ActualShadedAreaProblem.TotalTriangles += figureStats.numTriangles; ActualShadedAreaProblem.TotalIntersections += figureStats.numIntersections; ActualShadedAreaProblem.TotalTotalProperties += figureStats.totalProperties; ActualShadedAreaProblem.TotalExplicitFacts += figureStats.totalExplicitFacts; }
public override void Run() { if (!this.problemIsOn) { return; } // We have already parsed the figure; acquire the timing. ImplicitTiming = this.parser.implied.GetTiming(); // Map the set of clauses from parser to one set of intrinsic clauses. ConstructIntrinsicSet(); // Create the analyzer HardCodedShadedAreaMain analyzer = new HardCodedShadedAreaMain(intrinsic, given, known, goalRegions, this.parser.implied, GetSolutionArea()); // Perform and time the analysis figureStats = analyzer.AnalyzeFigure(); // Get the deduction and solving times. DeductionTiming = analyzer.GetDeductionTiming(); SolverTiming = analyzer.GetSolverTiming(); // Determine completeness this.isComplete = analyzer.IsComplete(); // // Determine the number of interesting problems from this figure. // int interestingComputable = 0; int uninterestingComputable = 0; int interestingIncomputable = 0; int uninterestingIncomputable = 0; analyzer.GetComputableInterestingCount(out interestingComputable, out uninterestingComputable, out interestingIncomputable, out uninterestingIncomputable); if (Utilities.SHADED_AREA_SOLVER_DEBUG) { System.Diagnostics.Debug.WriteLine("Interesting Computable: " + interestingComputable); System.Diagnostics.Debug.WriteLine("UNinteresting Computable: " + uninterestingComputable); System.Diagnostics.Debug.WriteLine("Interesting INcomputable: " + interestingIncomputable); } numInteresting = interestingComputable; // // Add to the cumulative statistics // ActualShadedAreaProblem.TotalTime = ActualShadedAreaProblem.TotalTime.Add(figureStats.stopwatch.Elapsed); ActualShadedAreaProblem.TotalImplicitTime = ActualShadedAreaProblem.TotalImplicitTime.Add(ImplicitTiming); ActualShadedAreaProblem.TotalDeductionTime = ActualShadedAreaProblem.TotalDeductionTime.Add(DeductionTiming); ActualShadedAreaProblem.TotalSolverTime = ActualShadedAreaProblem.TotalSolverTime.Add(SolverTiming); ActualShadedAreaProblem.TotalPoints += figureStats.numPoints; ActualShadedAreaProblem.TotalSegments += figureStats.numPoints; ActualShadedAreaProblem.TotalInMiddle += figureStats.numInMiddle; ActualShadedAreaProblem.TotalAngles += figureStats.numAngles; ActualShadedAreaProblem.TotalTriangles += figureStats.numTriangles; ActualShadedAreaProblem.TotalIntersections += figureStats.numIntersections; ActualShadedAreaProblem.TotalImplicitFacts += figureStats.totalImplicitFacts; ActualShadedAreaProblem.TotalExplicitFacts += figureStats.totalExplicitFacts; ActualShadedAreaProblem.TotalShapes += figureStats.numShapes; ActualShadedAreaProblem.TotalRootShapes += figureStats.numRootShapes; ActualShadedAreaProblem.TotalAtomicRegions += figureStats.numAtomicRegions; ActualShadedAreaProblem.TotalInteresting += numInteresting; if (isComplete) { ActualShadedAreaProblem.TotalComplete++; } if (figureStats.originalProblemInteresting) { ActualShadedAreaProblem.TotalOriginalInteresting++; } #if !HARD_CODED_UI AppendToFiles(figureStats); #endif }