示例#1
0
        /// <summary>
        /// Default Constructor
        /// </summary>
        public SolverSection()
        {
            InitializeComponent();

            OnComplete = SolverComplete;
            solverEvalStatus = EvalStatus.NotStarted;
            treeViewer.OnVisualisationClick += new EventHandler<VisEventArgs>(OnVisualisationClick_TreeViewer);
            visualisationContainerLocalNodes.OnVisualisationClick +=
                new EventHandler<VisEventArgs>(OnVisualisationClick_LocalNode);
            this.Disposed += new EventHandler(SolverSection_Disposed);
        }
示例#2
0
        /// <summary>
        /// Start the solver (this will always to run with a non UI worker thread)
        /// </summary>
        private void Solve()
        {
            try
            {
                complete = false;
                solverEvalStatus = EvalStatus.InProgress;
                solver = new SolverController(map);

                solver.ExitConditions.StopOnSolution = exitConditions.cbStopOnSolution.Checked;
                solver.ExitConditions.MaxDepth = (int)exitConditions.upMaxDepth.Value;
                solver.ExitConditions.MaxNodes = (int)exitConditions.upMaxNodes.Value;
                solver.ExitConditions.MaxItterations = (int)exitConditions.upMaxItter.Value;
                solver.ExitConditions.MaxTimeSecs = (int)(exitConditions.upMaxTime.Value * 60);

                solverEvalStatus = solver.Solve();
                complete = true;
            }
            catch (Exception ex)
            {
                lastException = ex;
            }

            Invoke(OnComplete); // Set to SolverComplete
        }