Introduction to AI
• Depth of knowledge 40%
• Clarity and effectiveness of presentation 40%
• Use of media 20%
Requirement 1 is a presentation of your research into the problem area and a clear explanation of the scope of your application.
Requirement 2 is a small demo showing that you can apply this knowledge and document your work
Choose one of the following:
1. Probability: Dynamic Bookie (spreadsheet application)
Using fixed odds for a series of matches (eg. football), set up a selection of possible bets (including multiple), such that a profit is always made by the bookie. Allow punters to bet, selectively randomise match outcomes and calculate pay-outs.
Determine odds for a horse race, based on speed and winnings of the horses in previous races (can be real or imaginary data). Set up a selection of possible bets (including multiple) such that a profit is always made. Allow punters to make bets and dynamically change the odds in the time leading up to the match.
Documentation: Explanation of calculations used.
2. State machine: Game Agent
Develop an agent for a simple 2D game – exhibits different states, depending on variable factors (eg. Proximity to danger zone, time of day etc). Allow player to control some of these factors (but not all) and demonstrate how agent reacts (sprite animation / sound effects / movement / text response etc). You should either implement a state transition table or embed the rules within the states. Conditions for changing state should involve more than one external factor. You may use any graphics programming – Java and C# spring to mind – or create a console application using text input and output.
Include: Technical documentation with UML diagrams for agent state machine.
3. Emergence: Cellular Automata
Create an interactive implementation of the Game of Life grid, where a player can select starting points for a variety of blinkers. The system then sends gliders to destroy them, resulting in chaos. Alternatively, system randomly sets some blinkers and player sets starting point for gliders.
Documentation should clearly explain algorithms used to generate the life-forms.
4. Pathfinding: Hillwalker’s Route-finder
Take height-map data (eg. from game level bitmap or OS map) and present it visually in grid form. User can select start and end positions, and choose specific parameters, such as “avoid steep bits” or “as crow flies”. Implement A* or similar pathfinding algorithm that shows best route from start to finish.
Documentation should explain how algorithms work.
5. Robotics: Engineering Demo
Using a graphical storyboard or animated model (2D or 3D), show how a robot arm can adjust to pick up objects at different distances from its base.
This demo should include detailed instructions about controls for the bot, explaining relationship between distances, lengths of components and rotation applied to servos in the arm joints and claw.
6. Flocking: Screensaver demo
Design an underwater screensaver application that includes 2 distinct shoals of fish. The fish should stay together in their respective shoals, pointing in the direction of the shoal but not collide with each other or with large water features such as rocks. Users should be able to control how many fish are added to the screensaver.
Documentation should clearly explain the use of algorithms and design choices made.