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)); }
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)); }
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; }