Exemple #1
0
	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);
	}
Exemple #4
0
	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());
	}
Exemple #8
0
        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());
        }
Exemple #10
0
        /**
         * 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);
        }