Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
FIT3094 - Artificial Life, Artificial Intelligence, and Virtual Environments
ASSIGNMENT 3 [25%] - Individual Assessment
Evolutionary Algorithms - Mario Controller
SUBMISSION A DUE: Friday Week 12, 11:55 PM
SUBMISSION B DUE: Friday Week 14, 12:55PM
Covers Topics from Weeks 8 - 11
Learning Outcomes
Completion of this assessment item should demonstrate competency in the following learning outcomes:
● Apply - through practice-based learning - design, development, execution and validation of real-time interactive software using AI techniques.
● Apply evolutionary algorithms to devise novel agents and understand their application, and that of other search algorithms, to problems requiring the search of a solution space.
● Evaluate and apply AI and/or ALife software techniques to model simple intelligent behaviour in discrete and continuous simulations and games.
● Explain the concepts and theories underlying AI and Artificial Life.
Brief
For this assignment, you will be required to implement an evolutionary algorithm that can play the game of Super Mario Bros. You will be provided with a base code project, and your job will be to design a suitable controller based on evolutionary algorithms or neural networks (or some combination thereof).
Submission Requirements
You must submit your Evolutionary Controller and written justification via Moodle.
Please include in a single zip file:
● Your Evolutionary Controller Folder with the following
○ Agent Class
○ Any other classes (or input files) that your Agent requires
● A written report describing your implementation ** PDF ONLY **
Task Overview
For this assignment we will be working with a simulated version of Super Mario Bros that is written entirely in Java and developed by Ahmed Khalifa and modified for use with this assignment by Nic Pallant. For installation, setup and detailed instructions, please refer to our Getting Started Guide.
Your task is to implement a game-playing controller for a Mario agent. To complete this task you will analyse the state of the game at different times and you will compute simulated button presses in response: LEFT, RIGHT, DOWN, RUN, and JUMP. Your objective is to help Mario overcome a series of increasingly tricky obstacle courses before time runs out. Stomp on the enemies, jump over pits and grab the powerups on your way to the flagpole that awaits at the end of each level!
Your controller must use evolutionary principles: parent selection, breeding and mutation, a fitness function, population selection, and genotypes. How you implement these ideas is up to you:
● You are free to consider any features you like from the game environment (e.g., as part of your genotypes).
● You are free to use any kind of evolutionary process (e.g., fixed-length, variable-length and evolutionary programming)
● You can combine evolution with other strategies (e.g., neural networks).
Your mark in this assignment will be based on the performance of your controller (60%) and the quality of your written report (40%). Your controller will be evaluated on 4 distinct tasks:
1. Clear Level 1-1
2. Speedrun Level 1-1
3. Complete The Game
4. Speedrun The Game
Read the task specification and report guidelines (below) carefully, so that you understand
what is expected in each case. In particular, pay careful attention to the evaluation metrics for each task and to the detailed rubric that describes how your submission will be marked.
A note about training:
If your controller makes use of offline training, you will need to show evidence of your approach. Refer to the report guidelines for more details. Remember to initialise your model with any pre-trained values in your final submission!
Task Descriptions
There are four tasks in this assignment and two submission points. Pay careful attention to the due dates of each submission point. There will be no general extensions.
Task 1: Beat Level 1-1 (Submission A)
Suggested Completion Date: End of Week 12
You will be required to test your evolutionary algorithm’s performance by ensuring that it can complete Mario Level 1-1. Your performance will be assessed based on the Percentage Completion of the level.
See specific performance metrics in Detailed Rubric on Moodle.
Task 2: Speedrun Level 1-1 (Submission B)
Suggested Completion Date: End of Week 13
You will be required to optimise your evolutionary algorithm as much as possible to be able to beat Level 1-1 as quickly as you can. Your performance will be assessed based on the Remaining Time at the end of the level.
See specific performance metrics in Detailed Rubric on Moodle.
Task 3: Beat The Game (Submission B)
Suggested Completion Date: End of Week 13
You will be required to ensure that your evolutionary algorithm can solve as many scenarios as possible, in this case, all of the levels in the SuperMarioBros folder. Your performance will be assessed based on the Percentage Completion of each level.
See specific performance metrics in Detailed Rubric on Moodle.
Task 4: Speedrun The Game (Submission B)
Suggested Completion Date: End of Week 14
As a last metric, you will be required to find a balance of efficiency and effectiveness to beat the entire game as quickly as you can (all of the levels in the SuperMarioBros folder). Your performance will be assessed based on the sum of Remaining Time across all levels.
See specific performance metrics in Detailed Rubric on Moodle.
Written Report (Submission B)
Suggested Completion Date: End of Week 14
You must include a written report to explain and justify your evolutionary controller. Below are some aspects you may like to discuss. Refer to the marking rubric for guidelines about the amount of detail expected for different levels of achievement. Remember the report is worth 40% of your total marks!
Report Guidelines
This section discusses some of the considerations you may want to include in your report.
Model: Give a design description of your biological organisms. Your report should cover the main components and decisions in the evolutionary algorithm framework. For example:
● Genotypes: Which features did you consider relevant and why? How do you encode (represent/store) features for the purpose of comparison and computation?
● Phenotypes: How is the genotype instantiated/interpreted to create an individual? If the interpretation decisions depend on parameters, justify those parameters and their values.
● Reproduction: How do your biological organisms reproduce? What is the process and how do you instantiate it?
● Parent selection: Who gets to reproduce? How often do they get to reproduce?
● Replacement rule: Which individuals are selected for the next generation? How do these choices affect the exploration of the fitness landscape? It might be helpful to think about the diversity of the population, from one generation to the next.
● Fitness function: how do you evaluate the effectiveness of an organism for solving the task?
Training approach: Your report should cover the main decision points in the training process and the considerations that led to your specific implementation of that process. For example:
● Initial population: How do you generate the initial population? How many organisms do you generate?
● Parameter selection: Discuss and justify the parameter values used to train your algorithm. How do you decide e.g., population size, crossover points and mutation rates?
● Termination criteria: How do you decide when to stop? Think about the performance of your agent over time and how this might affect your criteria.
Evaluation: You should present evidence for the effectiveness of your submission. In other words, describe the experimental process that led to the final version of your algorithm. For example:
● Datasets: What data did you train with (and why)?
● Performance: How effectively does your algorithm explore the fitness landscape? How do you (or do you need to) control for over-fitting or under-fitting of your model?
● Evaluation and reflection: you should present results from your experiments, in the form of tables and graphs (as appropriate). Reflect on what the results are showing and what these results suggest as far as future work (further improvements that might give further benefits).
Communication: Your submission should be structured in the style of a scientific report. It is important you structure it appropriately.
In your written descriptions, include motivations, intuitive (high-level) descriptions of what you set out to achieve, then technical (low-level, implementation-focused) explanations.
Give examples and/or pseudo-code to help the reader understand your approach. Include suitable captions to help the reader follow along. If there are parameters involved in your procedures/processes, describe what they are and why you used specific values (and not others).
Assessment Criteria
● Beat Level 1-1 (Part A) - 10 marks
。 Percentage Completion
● Speedrun Level 1-1 (Part B) - 10 marks
。 Remaining Time
● Beat The Game (Part B) - 30 marks
。 Percentage Completion per level
● Speedrun The Game (Part B) - 10 marks
。 Sum of Remaining Time
● Written Report (Part B) - 40 marks
。 Description of your approach taken to the problem at hand
。 Communication skills displayed in report
A detailed marking rubric for Submission A is provided on Moodle.
A detailed marking rubric for Submission B is provided on Moodle.
Feedback Information
Formal feedback will be provided within 10 business days of submission.
Where to get help
If you are struggling with anything or need additional support please do not hesitate to reach out using any of the following support services:
English language skills
If you don’t feel confident with your English.
● Talk to English Connect: https://www.monash.edu/english-connect
Study skills
If you feel like you just don’t have enough time to do everything you need to, maybe you just need a new approach
● Talk to an academic skills advisor: https://www.monash.edu/learnhq/consultations
Things are just really scary right now
Everyone needs to talk to someone at some point in their life, no judgement here.
● Talk to a counsellor: https://www.monash.edu/health/counselling/appointments (friendly, approachable, confidential, free)
Things in the unit don’t make sense
Even if you’ re not quite sure what to ask about, if you’ re not sure you won’t be alone, it’s always better to ask.
Askin the forums, book / attend a consultation or email your demonstrator
● Forums Link: https://lms.monash.edu/course/view.php?id=140783§ion=3
● Consultation Schedule: https://lms.monash.edu/course/view.php?id=140783§ion=2
● Tutor Contact Information: https://lms.monash.edu/course/view.php?id=140783§ion=0
I don’t know what I need
Everyone at Monash University is here to help you. If things are tough now they won’t magically get better by themselves. Even if you don’t exactly know, come and talk with us and we’ ll figure it out. We can either help you ourselves or at least point you in the right direction.