public override bool init(AGameGraph iG, FrontsGridRoutingGameParams prm, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams) { myRand = new ThreadSafeRandom(); this.param = prm; List <Point> randomizedPointList = new List <Point>(); GridGameGraph G = (GridGameGraph)iG; for (int i = 0; i < G.WidthCellCount; ++i) { for (int j = 0; j < G.HeightCellCount; ++j) { randomizedPointList.Add(new Point(i, j)); } } // after enough value swaps, the list is randomized: for (int i = 0; i < G.WidthCellCount * G.HeightCellCount; ++i) { int tmp1i = myRand.Next() % randomizedPointList.Count, tmp2i = myRand.Next() % randomizedPointList.Count; Point tmp; tmp = randomizedPointList[tmp1i]; randomizedPointList[tmp1i] = randomizedPointList[tmp2i]; randomizedPointList[tmp2i] = tmp; } nextPointList = new LinkedList <Point>(); foreach (var p in randomizedPointList) { nextPointList.AddLast(p); } return(true); }
public override bool init(AGameGraph G, IntrusionGameParams prm, IPolicyGUIInputProvider gui, Dictionary <string, string> policyInput) { this.g = (GridGameGraph)G; this.gm = prm; this.pgui = gui; //foreach (Pursuer p in gm.A_P) // currentPursuersLocations[p] = null; intrusionCenterPoint = g.getNodesByType(NodeType.Target).First(); return(true); }
public override bool init(AGameGraph G, IGameParams prm, IPolicyGUIInputProvider gui, Dictionary <string, string> policyInput) { this.g = (GridGameGraph)G; this.gm = (GoEGameParams )prm; this.pgui = gui; foreach (Pursuer p in gm.A_P) { currentPursuersLocations[p] = new Location(Location.Type.Unset); } return(true); }
public override bool init(AGameGraph G, FrontsGridRoutingGameParams prm, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams) { this.graph = (GridGameGraph)G; this.param = prm; myRand = new ThreadSafeRandom(); leftPoints = new List <Point>(); rightPoints = new List <Point>(); waitingRightPoints = new List <Point>(); waitingLeftPoints = new List <Point>(); stopScanProb = double.Parse(AppConstants.Policies.Routing.RowDestroyingPursuerPolicy.STOP_SCAN_ONFAILURE_PROBABILITY.tryRead(policyParams)); dualSearchProb = double.Parse(AppConstants.Policies.Routing.RowDestroyingPursuerPolicy.DUAL_DIRECTION_SEACH_PROB.tryRead(policyParams)); return(true); }
public void addGUIMarks(List <GameLogic.Utils.PursuerPathObservation> O_p, IPolicyGUIInputProvider ui, IntrusionGameState s, GridGameGraph gr, IntrusionGameParams prm, Dictionary <Evader, Point> currentEvaderLocations) { if (ui.hasBoardGUI()) { Dictionary <string, List <Point> > markedLocations = new Dictionary <string, List <Point> >(); List <Point> tmpPointList = new List <Point>(); foreach (var p in O_p) { tmpPointList.AddRange(p.observedPursuerPath); } markedLocations.Add("Pursuer trail(O_p)", tmpPointList); tmpPointList = new List <Point>(); foreach (var p in O_p) { tmpPointList.Add(p.observedPursuerPath.Last()); } markedLocations.Add("Pursuer last pos", tmpPointList); List <Point> detectionArea = new List <Point>(); foreach (Evader e in s.ActiveEvaders) { if (currentEvaderLocations.ContainsKey(e)) { detectionArea.AddRange( gr.getNodesWithinDistance(currentEvaderLocations[e], prm.r_es)); } } markedLocations.Add("Area within r_s(evaders detecting pursuers)", detectionArea); ui.markLocations(markedLocations.toPointFMarkings()); } }
public override bool init(AGameGraph G, IntrusionGameParams prmi, APursuersPolicy initializedPursuers, IPolicyGUIInputProvider pGui, Dictionary <string, string> policyParams = null) { IntrusionGameParams prm = prmi; this.accumObservationsPerEve = new Dictionary <Evader, List <GameLogic.Utils.PursuerPathObservation> >(); foreach (var e in prm.A_E) { this.accumObservationsPerEve[e] = new List <GameLogic.Utils.PursuerPathObservation>(); } this.nextEvadersToCommunicate = new List <Evader>(); this.g = (GridGameGraph)G; this.gm = prm; this.pgui = pGui; foreach (Evader e in gm.A_E) { currentEvadersLocations[e] = new Location(Location.Type.Unset); } intrusionAreaCenter = g.getNodesByType(NodeType.Target).First(); return(true); }
public override bool init(AGameGraph G, FrontsGridRoutingGameParams prm, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams) { graph = (GridGameGraph)G; gameParams = prm; myRand = new ThreadSafeRandom(); repeatSuccessProb = double.Parse( ColumnProbabalisticRoutingPursuers.REPEAT_SUCCUSSFULL_COLUMN_HIT.tryRead(policyParams)); var probStrings = ParsingUtils.separateCSV(ColumnProbabalisticRoutingPursuers.PROBABILITY_PER_COLUMN.tryRead(policyParams)); probPerColGroup = probStrings.ConvertAll((s) => { return(double.Parse(s)); }); colGroups = new List <List <Point> >(); int colIdxStart = 0; columnIdxToColGroup = new List <int>(); for (int colGroup = 0; colGroup < probStrings.Count; ++colGroup) { int colIdxEnd = (int)Math.Min(graph.WidthCellCount, (int)Math.Round((1 + colGroup) * ((float)(graph.WidthCellCount) / probStrings.Count))); colGroups.Add(new List <Point>()); for (; colIdxStart < colIdxEnd; ++colIdxStart) { columnIdxToColGroup.Add(colGroup); for (int y = 0; y < graph.HeightCellCount; ++y) { colGroups.Last().Add(new Point(colIdxStart, y)); } } colIdxStart = colIdxEnd; } return(true); }
public override bool init(AGameGraph iG, FrontsGridRoutingGameParams prm, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams) { this.param = prm; nextPointList = new LinkedList <Point>(); GridGameGraph G = (GridGameGraph)iG; if (ScanningRoutingPursuers.DIAGONAL_SCAN.tryRead(policyParams) == "1") { for (int i = 0; i < G.WidthCellCount; ++i) { for (int j = 0; j <= Math.Min(i, G.HeightCellCount - 1); ++j) { nextPointList.AddLast(new Point(i - j, j)); } } for (int i = 1; i < G.HeightCellCount; ++i) { for (int j = (int)G.WidthCellCount - 1; j >= Math.Max((int)G.WidthCellCount - G.HeightCellCount + i, i); --j) { nextPointList.AddLast(new Point(j, i - (j - (int)G.WidthCellCount) - 1)); } } } else { for (int i = 0; i < G.WidthCellCount; ++i) { for (int j = 0; j < G.HeightCellCount; ++j) { nextPointList.AddLast(new Point(i, j)); } } } return(true); }
public override bool init(AGameGraph G, IGameParams prm, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams) { IntrusionGameParams concreateParam = (IntrusionGameParams)prm; return(init(G, concreateParam, pgui, policyParams)); }
public abstract bool init(AGameGraph G, IntrusionGameParams prm, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams);
public abstract bool init(AGameGraph G, IntrusionGameParams prm, APursuersPolicy initializedPursuers, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams = null);
public bool init(AGameGraph G, IGameParams prm, APursuersPolicy initializedPursuers, IPolicyGUIInputProvider pgui, Dictionary <string, string> policyParams = null) { return(init(G, (IntrusionGameParams)prm, initializedPursuers, pgui, policyParams)); }