public void setUp() { aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("A", "C", 6.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 7.0); aMap.addUnidirectionalLink("B", "E", 14.0); }
public void setUp() { aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 4.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 4.0); aMap.addBidirectionalLink("D", "E", 4.0); aMap.addBidirectionalLink("E", "F", 4.0); hf = new HeuristicFunction() {
public void setUp() { ExtendableMap aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("A", "C", 6.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 7.0); aMap.addUnidirectionalLink("B", "E", 14.0); mscf = new MapStepCostFunction(aMap); }
public void setUp() { aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("A", "C", 6.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 7.0); aMap.addUnidirectionalLink("B", "E", 14.0); envChanges = new StringBuffer(); }
public void setUp() { ExtendableMap aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("A", "C", 6.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 7.0); aMap.addUnidirectionalLink("B", "E", 14.0); af = MapFunctionFactory.getActionsFunction(aMap); rf = MapFunctionFactory.getResultFunction(); }
public void setUp() { ExtendableMap aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("A", "C", 6.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 7.0); aMap.addUnidirectionalLink("B", "E", 14.0); me = new MapEnvironment(aMap); ma = new MapAgent(me.getMap(), me, new UniformCostSearch(), new String[] { "A" }); }
public void testNoPath() { aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 1.0); MapEnvironment me = new MapEnvironment(aMap); OnlineDFSAgent agent = new OnlineDFSAgent(new OnlineSearchProblem( MapFunctionFactory.getActionsFunction(aMap), new DefaultGoalTest("X"), new MapStepCostFunction(aMap)), MapFunctionFactory.getPerceptToStateFunction()); me.addAgent(agent, "A"); me.addEnvironmentView(new TestEnvironmentView()); me.stepUntilDone(); Assert .assertEquals( "Action[name==moveTo, location==B]->Action[name==moveTo, location==A]->Action[name==moveTo, location==B]->Action[name==moveTo, location==A]->Action[name==NoOp]->", envChanges.ToString()); }
public void test_ABC_OriginalOnlyPath() { ExtendableMap aMap = new ExtendableMap(); aMap.addUnidirectionalLink("A", "B", 5.0); aMap.addUnidirectionalLink("B", "C", 5.0); MapEnvironment me = new MapEnvironment(aMap); SimpleMapAgent ma = new SimpleMapAgent(me.getMap(), me, search, new string[] { "C" }); me.addAgent(ma, "A"); me.AddEnvironmentView(new BDSEnvironmentView(envChanges)); me.StepUntilDone(); Assert.AreEqual( "CurrentLocation=In(A), Goal=In(C):Action[name==moveTo, location==B]:Action[name==moveTo, location==C]:METRIC[nodesExpanded]=3:METRIC[queueSize]=0:METRIC[maxQueueSize]=2:METRIC[pathCost]=10:Action[name==NoOp]:", envChanges.ToString()); }
public void test_ABCDEF_ReverseFirstButNotFromOriginal() { ExtendableMap aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("B", "C", 5.0); aMap.addBidirectionalLink("C", "D", 5.0); aMap.addBidirectionalLink("D", "E", 5.0); aMap.addBidirectionalLink("E", "F", 5.0); aMap.addUnidirectionalLink("E", "A", 5.0); MapEnvironment me = new MapEnvironment(aMap); SimpleMapAgent ma = new SimpleMapAgent(me.getMap(), me, search, new string[] { "F" }); me.addAgent(ma, "A"); me.AddEnvironmentView(new BDSEnvironmentView(envChanges)); me.StepUntilDone(); Assert.AreEqual( "CurrentLocation=In(A), Goal=In(F):Action[name==moveTo, location==B]:Action[name==moveTo, location==C]:Action[name==moveTo, location==D]:Action[name==moveTo, location==E]:Action[name==moveTo, location==F]:METRIC[nodesExpanded]=6:METRIC[queueSize]=1:METRIC[maxQueueSize]=2:METRIC[pathCost]=25:Action[name==NoOp]:", envChanges.ToString()); }
/** * Initializes a map with a simplified road map of Australia. */ public static void initMap(ExtendableMap map) { map.clear(); // Add links // Distances from http://maps.google.com map.addBidirectionalLink(PERTH, ALBANY, 417.0); map.addBidirectionalLink(PERTH, KALGOORLIE, 593.0); map.addBidirectionalLink(PERTH, GERALDTON, 424.0); map.addBidirectionalLink(PERTH, PORT_HEDLAND, 1637.0); map.addBidirectionalLink(ALBANY, ESPERANCE, 478.0); map.addBidirectionalLink(KALGOORLIE, NORSEMAN, 187.0); map.addBidirectionalLink(ESPERANCE, NORSEMAN, 204.0); map.addBidirectionalLink(NORSEMAN, PORT_AUGUSTA, 1668.0); map.addBidirectionalLink(GERALDTON, CAMARVON, 479.0); map.addBidirectionalLink(CAMARVON, PORT_HEDLAND, 872.0); map.addBidirectionalLink(PORT_HEDLAND, BROOME, 589.0); map.addBidirectionalLink(BROOME, HALLS_CREEK, 685.0); map.addBidirectionalLink(HALLS_CREEK, WYNDHAM, 370.0); map.addBidirectionalLink(HALLS_CREEK, KATHERINE, 874.0); map.addBidirectionalLink(WYNDHAM, KATHERINE, 613.0); map.addBidirectionalLink(KATHERINE, DARWIN, 317.0); map.addBidirectionalLink(KATHERINE, TENNANT_CREEK, 673.0); map.addBidirectionalLink(TENNANT_CREEK, MT_ISA, 663.0); map.addBidirectionalLink(TENNANT_CREEK, ALICE_SPRINGS, 508.0); map.addBidirectionalLink(ALICE_SPRINGS, COOBER_PEDY, 688.0); map.addBidirectionalLink(COOBER_PEDY, PORT_AUGUSTA, 539.0); map.addBidirectionalLink(MT_ISA, TOWNSVILLE, 918.0); map.addBidirectionalLink(TOWNSVILLE, CAIRNS, 346.0); map.addBidirectionalLink(MT_ISA, LONGREACH, 647.0); map.addBidirectionalLink(TOWNSVILLE, MACKAY, 388.0); map.addBidirectionalLink(MACKAY, ROCKHAMPTON, 336.0); map.addBidirectionalLink(LONGREACH, ROCKHAMPTON, 687.0); map.addBidirectionalLink(ROCKHAMPTON, BRISBANE, 616.0); map.addBidirectionalLink(LONGREACH, CHARLEVILLE, 515.0); map.addBidirectionalLink(CHARLEVILLE, BRISBANE, 744.0); map.addBidirectionalLink(CHARLEVILLE, NYNGAN, 657.0); map.addBidirectionalLink(NYNGAN, BROKEN_HILL, 588.0); map.addBidirectionalLink(BROKEN_HILL, PORT_AUGUSTA, 415.0); map.addBidirectionalLink(NYNGAN, DUBBO, 166.0); map.addBidirectionalLink(DUBBO, BRISBANE, 860.0); map.addBidirectionalLink(DUBBO, SYDNEY, 466.0); map.addBidirectionalLink(BRISBANE, TAMWORTH, 576.0); map.addBidirectionalLink(BRISBANE, PORT_MACQUARIE, 555.0); map.addBidirectionalLink(PORT_MACQUARIE, NEWCASTLE, 245.0); map.addBidirectionalLink(TAMWORTH, NEWCASTLE, 284.0); map.addBidirectionalLink(NEWCASTLE, SYDNEY, 159.0); map.addBidirectionalLink(SYDNEY, CANBERRA, 287.0); map.addBidirectionalLink(CANBERRA, WAGGA_WAGGA, 243.0); map.addBidirectionalLink(DUBBO, WAGGA_WAGGA, 400.0); map.addBidirectionalLink(SYDNEY, LAKES_ENTRANCE, 706.0); map.addBidirectionalLink(LAKES_ENTRANCE, MELBOURNE, 317.0); map.addBidirectionalLink(WAGGA_WAGGA, MELBOURNE, 476.0); map.addBidirectionalLink(WAGGA_WAGGA, HAY, 269.0); map.addBidirectionalLink(MELBOURNE, WARNAMBOOL, 269.0); map.addBidirectionalLink(WARNAMBOOL, MOUNT_GAMBIER, 185.0); map.addBidirectionalLink(MOUNT_GAMBIER, ADELAIDE, 449.0); map.addBidirectionalLink(HAY, ADELAIDE, 655.0); map.addBidirectionalLink(PORT_AUGUSTA, ADELAIDE, 306.0); map.addBidirectionalLink(MELBOURNE, ADELAIDE, 728.0); map.addBidirectionalLink(PORT_AUGUSTA, PORT_LINCOLN, 341.0); // Locations coordinates // Alice Springs is taken as central point with coordinates (0|0) // Therefore x and y coordinates refer to Alice Springs. Note that // the coordinates are not very precise and partly modified to // get a more real shape of Australia. map.setPosition(ADELAIDE, 417, 1289); map.setPosition(ALBANY, -1559, 1231); map.setPosition(ALICE_SPRINGS, 0, 0); map.setPosition(BRISBANE, 1882, 415); map.setPosition(BROKEN_HILL, 709, 873); map.setPosition(BROOME, -1189, -645); map.setPosition(CAIRNS, 1211, -791); map.setPosition(CAMARVON, -2004, -34); map.setPosition(CANBERRA, 1524, 1189); map.setPosition(CHARLEVILLE, 1256, 268); map.setPosition(COOBER_PEDY, 86, 593); map.setPosition(DARWIN, -328, -1237); map.setPosition(DUBBO, 1474, 881); map.setPosition(ESPERANCE, -1182, 1132); map.setPosition(GERALDTON, -1958, 405); map.setPosition(HALLS_CREEK, -630, -624); map.setPosition(HAY, 985, 1143); map.setPosition(KALGOORLIE, -1187, 729); map.setPosition(KATHERINE, -183, -1025); map.setPosition(LAKES_ENTRANCE, 1412, 1609); map.setPosition(LONGREACH, 1057, -49); map.setPosition(MACKAY, 1553, -316); map.setPosition(MELBOURNE, 1118, 1570); map.setPosition(MOUNT_GAMBIER, 602, 1531); map.setPosition(MT_ISA, 563, -344); map.setPosition(NEWCASTLE, 1841, 979); map.setPosition(NORSEMAN, -1162, 881); map.setPosition(NYNGAN, 1312, 781); map.setPosition(PERTH, -1827, 814); map.setPosition(PORT_AUGUSTA, 358, 996); map.setPosition(PORT_HEDLAND, -1558, -438); map.setPosition(PORT_LINCOLN, 169, 1205); map.setPosition(PORT_MACQUARIE, 1884, 849); map.setPosition(ROCKHAMPTON, 1693, -59); map.setPosition(SYDNEY, 1778, 1079); map.setPosition(TAMWORTH, 1752, 722); map.setPosition(TENNANT_CREEK, 30, -445); map.setPosition(TOWNSVILLE, 1318, -520); map.setPosition(WAGGA_WAGGA, 1322, 1125); map.setPosition(WARNAMBOOL, 761, 1665); map.setPosition(WYNDHAM, -572, -932); }
/// <summary> /// Initializes a map with a simplified road map of Australia. /// </summary> /// <param name="map"> /// </param> public static void InitMap(ExtendableMap map) { map.Clear(); // Add links // Distances from http://maps.google.com map.AddBidirectionalLink(Perth, Albany, 417.0); map.AddBidirectionalLink(Perth, Kalgoorlie, 593.0); map.AddBidirectionalLink(Perth, Geraldton, 424.0); map.AddBidirectionalLink(Perth, PortHedland, 1637.0); map.AddBidirectionalLink(Albany, Esperance, 478.0); map.AddBidirectionalLink(Kalgoorlie, Norseman, 187.0); map.AddBidirectionalLink(Esperance, Norseman, 204.0); map.AddBidirectionalLink(Norseman, PortAugusta, 1668.0); map.AddBidirectionalLink(Geraldton, Camarvon, 479.0); map.AddBidirectionalLink(Camarvon, PortHedland, 872.0); map.AddBidirectionalLink(PortHedland, Broome, 589.0); map.AddBidirectionalLink(Broome, HallsCreek, 685.0); map.AddBidirectionalLink(HallsCreek, Wyndham, 370.0); map.AddBidirectionalLink(HallsCreek, Katherine, 874.0); map.AddBidirectionalLink(Wyndham, Katherine, 613.0); map.AddBidirectionalLink(Katherine, Darwin, 317.0); map.AddBidirectionalLink(Katherine, TennantCreek, 673.0); map.AddBidirectionalLink(TennantCreek, MtIsa, 663.0); map.AddBidirectionalLink(TennantCreek, AliceSprings, 508.0); map.AddBidirectionalLink(AliceSprings, CooberPedy, 688.0); map.AddBidirectionalLink(CooberPedy, PortAugusta, 539.0); map.AddBidirectionalLink(MtIsa, Townsville, 918.0); map.AddBidirectionalLink(Townsville, Cairns, 346.0); map.AddBidirectionalLink(MtIsa, Longreach, 647.0); map.AddBidirectionalLink(Townsville, Mackay, 388.0); map.AddBidirectionalLink(Mackay, Rockhampton, 336.0); map.AddBidirectionalLink(Longreach, Rockhampton, 687.0); map.AddBidirectionalLink(Rockhampton, Brisbane, 616.0); map.AddBidirectionalLink(Longreach, Charleville, 515.0); map.AddBidirectionalLink(Charleville, Brisbane, 744.0); map.AddBidirectionalLink(Charleville, Nyngan, 657.0); map.AddBidirectionalLink(Nyngan, BrokenHill, 588.0); map.AddBidirectionalLink(BrokenHill, PortAugusta, 415.0); map.AddBidirectionalLink(Nyngan, Dubbo, 166.0); map.AddBidirectionalLink(Dubbo, Brisbane, 860.0); map.AddBidirectionalLink(Dubbo, Sydney, 466.0); map.AddBidirectionalLink(Brisbane, Tamworth, 576.0); map.AddBidirectionalLink(Brisbane, PortMacquarie, 555.0); map.AddBidirectionalLink(PortMacquarie, Newcastle, 245.0); map.AddBidirectionalLink(Tamworth, Newcastle, 284.0); map.AddBidirectionalLink(Newcastle, Sydney, 159.0); map.AddBidirectionalLink(Sydney, Canberra, 287.0); map.AddBidirectionalLink(Canberra, WaggaWagga, 243.0); map.AddBidirectionalLink(Dubbo, WaggaWagga, 400.0); map.AddBidirectionalLink(Sydney, LakesEntrance, 706.0); map.AddBidirectionalLink(LakesEntrance, Melbourne, 317.0); map.AddBidirectionalLink(WaggaWagga, Melbourne, 476.0); map.AddBidirectionalLink(WaggaWagga, Hay, 269.0); map.AddBidirectionalLink(Melbourne, Warnambool, 269.0); map.AddBidirectionalLink(Warnambool, MountGambier, 185.0); map.AddBidirectionalLink(MountGambier, Adelaide, 449.0); map.AddBidirectionalLink(Hay, Adelaide, 655.0); map.AddBidirectionalLink(PortAugusta, Adelaide, 306.0); map.AddBidirectionalLink(Melbourne, Adelaide, 728.0); map.AddBidirectionalLink(PortAugusta, PortLincoln, 341.0); // Locations coordinates // Alice Springs is taken as central point with coordinates (0|0) // Therefore x and y coordinates refer to Alice Springs. Note that // the coordinates are not very precise and partly modified to // get a more real shape of Australia. map.SetPosition(Adelaide, 417, -1289); map.SetPosition(Albany, -1559, -1231); map.SetPosition(AliceSprings, 0, 0); map.SetPosition(Brisbane, 1882, -415); map.SetPosition(BrokenHill, 709, -873); map.SetPosition(Broome, -1189, 645); map.SetPosition(Cairns, 1211, 791); map.SetPosition(Camarvon, -2004, 34); map.SetPosition(Canberra, 1524, -1189); map.SetPosition(Charleville, 1256, -268); map.SetPosition(CooberPedy, 86, -593); map.SetPosition(Darwin, -328, 1237); map.SetPosition(Dubbo, 1474, -881); map.SetPosition(Esperance, -1182, -1132); map.SetPosition(Geraldton, -1958, -405); map.SetPosition(HallsCreek, -630, 624); map.SetPosition(Hay, 985, -1143); map.SetPosition(Kalgoorlie, -1187, -729); map.SetPosition(Katherine, -183, 1025); map.SetPosition(LakesEntrance, 1412, -1609); map.SetPosition(Longreach, 1057, 49); map.SetPosition(Mackay, 1553, 316); map.SetPosition(Melbourne, 1118, -1570); map.SetPosition(MountGambier, 602, -1531); map.SetPosition(MtIsa, 563, 344); map.SetPosition(Newcastle, 1841, -979); map.SetPosition(Norseman, -1162, -881); map.SetPosition(Nyngan, 1312, -781); map.SetPosition(Perth, -1827, -814); map.SetPosition(PortAugusta, 358, -996); map.SetPosition(PortHedland, -1558, 438); map.SetPosition(PortLincoln, 169, -1205); map.SetPosition(PortMacquarie, 1884, -849); map.SetPosition(Rockhampton, 1693, 59); map.SetPosition(Sydney, 1778, -1079); map.SetPosition(Tamworth, 1752, -722); map.SetPosition(TennantCreek, 30, 445); map.SetPosition(Townsville, 1318, 520); map.SetPosition(WaggaWagga, 1322, -1125); map.SetPosition(Warnambool, 761, -1665); map.SetPosition(Wyndham, -572, 932); }