RulesThe ChallengeYou work for NASA, on the project team that's designing the successor to the Mars Pathfinder mission. This is the first of a series of missions designed to complete a detailed survey of the planet's surface. Your team will be landing a set of five robotic surface rovers to survey the a region of the planet's surface. Your job is write an algorithm to direct those rovers. Your team has already selected a region of the surface to survey. For each mission, you will have a map of the surface that you'd like to study in detail. Each map marks areas that you've identified as impassable by the rovers and marks spots that have been identified as safe for landing. For each region, you will be given this surface map and the starting positions of your rovers. Since communications with the rovers is costly, you will be directing the rovers by issuing all of their instructions at once, in a form that's detailed in the rules section. The rovers have relatively short range sensors, so you want them to physically traverse as much of the region as possible. The rovers have a limited supply of power, so there is an upper limit to the number of instructions that they can execute. Your job is to design an algorithm which will direct the rovers, once you have the mapping information and the initial landing positions of the rovers. ProblemYour job is to write a MATLAB M-file function to direct the rovers. Given a matrix which represents a graph of the region to be surveyed, your solution should specify a path for each of your rovers which traverses as many nodes of the graph as possible. Region mapYou will be given an [50 x 50] square matrix, Initially, all spaces are either clear (1) or impassable (-1). Rover stateYou will also be given a [5 row x 3 column] matrix,
Instruction setEach of the five rovers has enough power to respond to 500 instructions. During each time step, each rover can either move forward one space, or turn 90 degrees to the left or the right. So for each turn, these instructions can be one of:
Sample SequenceThe diagram below depicts the motion of a rover on the 4 x 4 map: The motion of the rover corresponds to the instruction set:1 1 1 -1 1 1 1 -1 1 1 1 1 1 1 1 1
The initial state of the rover is [4;1;1] (row 4, column 1, direction 1 (North)) The final state of the rover is [1;2;3], (row 1, column 2, direction 3 (West)). Function headerIn MATLAB syntax, the function header for your solution should look like this: Your function should return a [500 x 5] matrix, inst, of
instructions, where each column of the matrix represents all of the
instructions for one rover.
Developing and TestingWe have created some helper functions to help you develop and test your solutions. You can download all six of these files in this single .ZIP archive: ROVER.ZIP
For this example, we get this result,
with 170 spaces left unsurveyed: Each color represents the path of a single rover: orange, blue, red, yellow, or purple. The triangle points in the direction of travel. When you run survey.m on your own machine, you will be able to see the path of travel animated as the paths are drawn. The black squares represent impassable areas of the region. Judging CriteriaNote: you are not required to find the optimal solution! There are two criteria for the judging of this contest:
where The winning entry is the one with the lowest average score over the test suite. The MATLAB Contest server will also place a cap on the maximum time allowed for each entry over the test suite. Entries which exceed 90 seconds for the test suite will time out and fail. Optimizing your code
You can use the MATLAB DeadlineThe contest will close on Friday, June 18, at 5 PM EDT (21:00 GMT). At that time, the contest queue will be closed to new entries. All remaining entries in the queue will continue to be processed. Collaboration and editing existing entriesOnce an entry has been submitted, it cannot be changed. However, any entry can be viewed, edited, and resubmitted as a new entry. You are free to view and modify any entries in the queue. The contest server maintains a history for each modified entry. If your modification of an existing entry improves its score, then you are the "author" for the purpose of determining the winners of this contest. We encourage you to examine and optimize existing entries. We encourage you to discuss your solutions and strategies with others. We invite you to use the Usenet newsgroup comp.soft-sys.matlab to share ideas. The PrizesPrizes will be awarded at roughly daily intervals throughout the period of the contest to the final author of the current highest ranking entry. Daily prizes will include MATLAB or NASA/JPL shirts and mugs. Watch the Message of the Day for details and daily deadlines. The author of the final winning entry in the contest will receive their choice of:
Winning entries must be original or must be improvements on other
entries. The contest administrators reserve the right the disqualify
trivial changes which happen to result in better scores. Fine PrintThe allowable functions are those contained in the basic MATLAB package available in $MATLAB/toolbox/matlab, where $MATLAB is the root MATLAB directory. Functions from other toolboxes will not be available. Entries will be tested against MATLAB version 5.3 (R11). The following are prohibited:
FAQCheck our FAQ for answers to frequently asked questions about the contest. DisclaimerThis contest is not supported or endorsed by NASA or JPL in any way. We do not claim that this contest represents a real problem faced by the engineers at NASA. For more information on the Mars Surveyor mission see the Mars Surveyor Mission Page at NASA. |
|
||||||||