Project 1 : Lunar Lander Agent
DUE IN CLASS DEMONSTRATIONS IN CLASS April 12th
PROJECT DELIVERABLES ARE DUE IN CLASS on April 19th
Background
Although the first spacecraft landed on the Moon and Mars in the 1960's, the challenge of landing an autonomously piloted craft onto rough terrains is very pertinent. The XPrize Lunar Lander challenge is an open call for the development of a Lunar Lander (although the first challenges are manually piloted - the control systems are automatic) with a million dollar purse. Last year, only one team competed and since the scope of building a Lunar Lander is beyond the time, budget, and knowledge domain of this class, we will have our own Lunar Lander Challenge with a mock-vintage Lunar Lander Game.
Getting Started
The Lunar Lander Game is available as a Java Applet. Here is the source code.
Update!
Version 02 LunarLanderV02.zip - Lunar Lander Persists btw. landings.
IDE: Get Eclipse for your computer (Mac, PC, or Linux). It will be the Java IDE in which to develope your solution for the Lunar Lander. We will discuss in class installation and getting started.
Devilerables
1. Project Demonstration (in class)
For every Goal, Option, and Milestone, make a copy of your code-base. In otherwords, do not let a hang-up from a more advanced Option attempt mess-up demonstration of a basic Goal attempt.
2. Project Write-up (1 to 5 pages) (necessary to evaluate the points that you are expected to earn)
Detail your approach to each Goal, Option, and Extention (in that order). Detail the Results for each Goal, Option, and Extention to tried to acheive. Describe any experiementation that lead you throught the development of the resulting Pilot Agent. Finally, suggest improvement and changes to the algorithm.
3. Code-Archives
Turn in code-archives of the resulant programs. Expect to turn in one for every copy of your Agent that you demonstrate in class (see above Deliverable Number 1.)
T-R Agent Implementation (15 points total)
Goal 1 Safe Landing
Implement T-R agent with a percept function, a feature vector, and an action function. The agent only has the given percepts and actions that are shown as an example in the RandomAgent class. The landing site is given at the coordinates, (X,Y) to (X,Y). With this landing as your goal, have your T-R agent land the lunar lander safely.
(5 points to demonstrate a Safe Landing)
(1 point to resilient to changing the Reaction Time of the Agent Pilot)
(1 point to be resilient to changing the Gravity Constant)
Goal 2: Take-Off and Land Again
Once safely landed, your Agent will be given the ready-for-take-off signal. Manuver your lander to an goal state above all of the mountains to ready for a new a landing pad selection.
(2 points to demonstrate a take-off)
(1 Point to return to the same landing pad)
(2 Points to land at a second static landing pad)
Goal 3: Site Selection
Given a perfect model (static) of the world use the Agent class access methods to the static Landscape and Landing Pad array. Use the A* informed search algorithm to develope a plan for the order of landing pads to land on. What is your State-Space? What is your heuristic and is it admissible?
(5 points for Develope a heuristic for site selection and implement an A* search algorithm in class.)
(3 points to tie the informed search algorithm into the Landing Pilot to search and plan the next Landing Pad)
(1 Point Given to Lander who demonstrates the Maximum Point Collection (with refueling))
(1 Point Given to Lander who demonstrates the Maximum Point Collection (without refueling))
Extensions to Lunar Lander Pilot Implementation (5 points total each)
Option 1: Subsumption Architecture
Implement a Lander that uses Subsumption architecture. Allow for safe landing, launch pad exploring, avoiding mountain tops. You may use the remoteSensing data, but you may NOT implement a representation or model of the world (no symbolic plan).
(1 to 5 points) Depends on the Effort, Completeness, and Gracefulness of your implementation.
Option 2: Learning-Based Lander
Implement a Lander that trains and utilizes a Neural Network to land safely (not necessary to plan).
Game Play will take two forms:
1) Human Training mode - keyboard imports are coupled with sensing.
2) Play Mode - Lander operates using the Neural Network
Training Data must be stored between Games (i.e. keys will switch between Training and Play Mode)
(1 to 5 points) Depends on the Effort, Completeness, and Gracefulness of your implementation..
(1 extra point) On-line updating and training. (i.e. pressing keys in Play Mode updates Neural Network)
(1 extra point) Combine Learning Lander with an above T-R or Subsumption Implementation.
(1 extra point) Implement a file format to store and load training data. (You might want to do this to replace the tedious process of having to re-train your Neural Network)
Option 3: Evolutionary Lander
Implement a Lander that is parameterized to be created and run via genetic algorthims. You will need to implement a fitness function that rates the Lander's performance at the end of Landing. Storing and Loading the evolved Landers is recommended as Genetic Algorithms may take a long time to test and train.
(1 to 5 points) Depends on the Effort, Completeness, and Gracefulness of your implementation..
(1 extra point) File format to store and load training data.
(1 extra point) Implement Off-Line training (in other words, can you skip generations of Landers that are immediately doomed to fail) What is your off-line fitness criterea?
EXTRA POINTS: Code Base Improvements
Not necessarily AI improvements, but some of the implementations will gain you extra points by improving the Lunar Lander Environment for subsequent classes.
(1 point) 2-Agent Landers - improve the code base so that 2 Lunar Landers can be active in the world at the same time.
(1 point) N-Agent Landers - more than 2 Landers
(1 point) Demonstrate a Competitive 2-Agent Landing Game (utilize Competative Search).
(1 point) Demonstrate a Competitive N-Agent Landing Game (utilize Competative Search).
Resources
Take a look at this paper by Liu (2006), it describes formalizing the Lunar Lander Problem for being solved by general Genetic Algorithms, Reinforment Learning (Q-Learning), and a hybrid approach of the two. Reinforcement learning and the hybrid approach is beyond the scope of this class, but the state-space formalization and setting up the problem for Genetic Algorithm solving may be helpful.