Пример #1
0
        protected override void init()
        {
            previousBest       = int.MaxValue;
            withoutImprovement = 0;
            VisitAllNode.resetIDCounter();

            dom = new VisitAllDomain(this, sasProblem);
            vis = new VisitAllVisualizer(dom);
            //vis.draw(new VisitAllState((IState)sasProblem.GetInitialState(), dom));
        }
Пример #2
0
 public VisitAllVisualizer(VisitAllDomain domain)
 {
     form          = new VisitAllVisForm();
     this.screen   = form.screen;
     this.domain   = domain;
     screen.Image  = new Bitmap(screen.Width, screen.Height);
     g             = Graphics.FromImage(screen.Image);
     maxGridWidth  = domain.nodes.Max(n => n.gridCoordX) + 1;
     maxGridHeigth = domain.nodes.Max(n => n.gridCoordY) + 1;
     tileSize      = Math.Min(screen.Width / (maxGridWidth + 1), screen.Height / (maxGridHeigth + 1));
 }
Пример #3
0
        public VisitAllState(IState state, VisitAllDomain domain)
        {
            var values = state.GetAllValues();

            position = values[domain.positionVariable];
            visited  = new bool[domain.nodes.Count];
            for (int i = 0; i < values.Length; i++)
            {
                if (i == domain.positionVariable)
                {
                    continue;
                }
                if (values[i] == 0)
                {
                    visited[domain.nodeIDByVariableNo[i]] = true;
                }
            }
            visited[domain.startPosition] = true;
            this.domain = domain;
        }