For this work, you will need: (Click on each step for the direct link)
1. Java JDK
2. Install Eclipse IDE
3. Install JASON (2.4)
4. Install JASON Eclipse plugin
5. Understanding of AgentSpeak
The included directory “Getting started notes” contains extra information which you may wish to look at
The situation is a simulated planetary exploration, for which you must develop “rover” agents to explore, locatate resources, and return them to base. Agents can run out of energy and stop. A run ends when all agents stop, or all resources have been collected. There are different scenarios of increasing difficulty that place demands on your team of rovers, where:
-Rover agents start at a base at a randomly selected location
-Each agent is given a limited amount of energy
-Resources and obstacles are put randomly in that environment
In the later scenarios, there is more than one resource type to collect, but a given rover can only collect one type. Rover communication and collaboration are essential for rover team effectiveness. Each run generates a fresh map, so initial potion, resource location and obstacle location are different each time.
You are provided with a basic system from which to start the work. (The attached document “rover-coursework”)
The system consists of:
-An initial Jason platform configuration, that sets up the environment and simulation.
-A skeleton Jason agent, that can interact with the environment
-An information display of the state of the environment
-Test scenarios
1.Extend the basic rover agent to create an agent or agents that can successfully gather resources in the different scenarios
2.Agent to agent communication must use the Jason communication primitives
1.The program must be written in AgentSpeak, primarily, and Java, for any additional agent actions. The use of Java should be limited to the implementation of agent navigation only.
2.The program should work correctly on the Jason platform provided.
3.Only the provided platform configuration may be used, in conjunction with rover agents built on the skeleton agent.
(0%) One agent, one resource type.
Aim: Interact with the environment, and track visited locations. This is not marked.
(15%) Two agents, one resource type.
Aim: Interact with the environment, track visited locations, agent communication and collaboration.
(20%) Four agents, two resource types.
Aim: Agent communication, collaboration and planning. At least one agent must be a dedicated scanner with no carrying capacity.
(20%) Four agents, two resource types, moderate obstacles.
Aim: Cope with obstacles, agent communication, collaboration and planning. At least one agent must be a dedicated scanner with no carrying capacity.
(25%) Five agents, two resource types, obstacles are designed to mimic a maze, each agent can only enter the maze once and the base will be at the exit of the maze. Agents must all have a carrying capacity of at least 5 to be able to collect all the resources on the map.
Aim: Agent communication, collaboration, planning, managing limited resources (energy), navigating a maze.
(20%) Competitive. Two agents, to compete against other agents. Large map, several obstacles, one agent to collect each resource type.
Aim: Coping in an environment when there is competition for resources and a fixed number of timesteps.
-Agent performance is assessed by the number of resources collected. E.g., if your agent collects all the resources in scenario 2, that’s 15%
-The mark for each scenario is: Sum of resources collected divided by sum of resources available (multiplied by the scenario weighting)
-The marks for each scenario will be the average score of running the scenario 5 times.
-The set of maps will be the same for each agent in a given scenario so each submission’s agent(s) face the same situations.
The rover code must be submitted as a zip file containing:
-A directory containing the source code for your agents.
-A directory containing the source code for internal actions developed (where necessary)
-A mas2j file for each scenario.
Q: In the documentation README, it mentions staying idle costs energy but no energy is lost when idle
A: It is a bug in the environment. For this submission, you will not be charged energy for being idle.
Q: Is there a time limit to complete each scenario?
A: Each scenario will last until all agents have run out of energy (or code has crashed). (Note: Agents may run one at a time if you wish)
Q: Will the graded maps be the same as the scenarios provided?
A: No. The graded maps will be randomly generated based on the same generation rules, but will not be the same as the static maps that have been shared for testing. (note: we will check the graded maps and remove any which are deemed to be impossible, e.g. obstacles are randomly generated which surround a resource making it in assessable).
Q: sc_deposit_x.txt files being created
A: Just ignore/delete them.
Q: When a rover scans, what squares are counted as scanned?
A: The square should be about 90% covered to be detected. Measure the absolute distance between the tile in question and the agent along a straight line. If the distance is less than or equal to the scan range it will be scanned.
Distance between two points = sqrt ( (x2-x1)** 2 + (y2-y1) ** 2)
sqrt => square root
**2 => square
Q: Clarification on the use of internal actions (.java files)
A: Internal actions (.java files) can only be used for navigation purposes. You may not replace the belief base with internal actions, but if you intend to use this information for some decision making then you may use internal actions.