COM407: Homework


The following homework assignments are due on the day specified. Although drawings by hand are fine, any text should be typed.

Reading #1: - due 31 Aug.
Read Artificial Intelligence Chapter 2, Section 2.1 through Section 2.7. Be ready to discuss it in class.

Homework #0: - due 31 Aug.
Run the provided agent called Spinner. Here are the Xpilot-AI setup instuctions covered in class. Try runner Spinner in all four programming languages. Pick one and make any change to it and run again. Be ready to demo in class.

Homework #1a: - due 5 Sep.
Do forward chaining on zookeeper using the following facts:
(has Spot dark_spots)
(color Spot tawny)
(eats Spot meat)
(gives_milk Spot)

Reading #2: - due 5 Sep.
Read Artificial Intelligence Chapter 2, Section 2.8 through Section 2.10. Be ready to discuss it in class.

Program #0: - due 5 Sep.
Copy the Dumbo bot of your choice: Racket, Python, Java, C. Study the code to understand what each line accomplishes. Make changes to the parmeters used so that its name is no longer appropriate. For example, the program has selfSpeed() <= 50. Should that be 50 or would some other value make it a smarter bot? Be ready to demo in class.

Homework #1b: - due 7 Sep.
Create a production system with at least 8 rules to control an Xpilot agent.

Reading #3: - due 7 Sep.
Read Artificial Intelligence Chapter 4, Sections 4.1 through 4.3. Be ready to discuss it in class.

Homework #2a: - due 12 Sep.
Pick two linguistic variables pertinent to Xpilot. Define fuzzy sets for each.

Program #1: - due 6pm on 11 Sep for competition on 12 Sep.
Create and program a production system with at least 8 rules to control an Xpilot agent. Its available actions are only thrust, shoot, and turn. The max turn rate is 20 degrees, which you need to set in your program. It will be judged by its rational behavior (does not crash into walls, avoids getting shot, and shoots at opponents) and its ability to defeat the Xpilot supplied agent. In addition, all agents will compete in one-on-one combat and concurrently compete in an Xpilot-AI free-for-all in class.

Reading #4: - due 14 Sep.
Read Artificial Intelligence Chapter 4, Sections 4.4 through 4.8. Be ready to discuss it in class.

Homework #2b: - due 14 Sep.
Create a fuzzy system to control some facet of the Xpilot agent. Include linguistic variables (at least two), fuzzy sets (at least three for one of the linguistic variables), the rules (at least 5), and your methods of aggregation and defuzzification.

Program #2: - due midnight on 18 Sep for competition on 19 Sep.
Create a fuzzy controller for an Xpilot agent. There should be two or three linguistic variables, at least three fuzzy sets in one or two of the linguistic variables, the rules (at least 8), and it should properly aggregate and defuzzify. It will be judged by its rational behavior (does not crash into walls, avoids getting shot, and shoots at opponents) and its ability to defeat the Xpilot supplied agent. In addition, all agents will compete in one-on-one combat and concurrently compete in an Xpilot-AI free-for-all (maybe).

Technical Paper Assigned Reading / Presentation / Discussion: - due 21 Sep.
A Real-Time Autonomous Rover Navigation System.

Reading #5: - due 21 Sep.
Read Artificial Intelligence Chapter 6, Sections 6.1 to 6.3. Be ready to discuss it in class.

Reading #6: - due 26 Sep.
Read Artificial Intelligence Chapter 6, Sections 6.4 to 6.9. Be ready to discuss Sections 6.4 to 6.5 in class.

Program #3a: - due 26 Sep.
Create a perceptron with 5 inputs and one output. Set the weights yourself to make it output 1 if the input is 01111, 10111, 11011, 11101, 11110, or 11111, and the output is 0 otherwise. Now add a method for doing weight training and have it learn the proper weights. Including a weight for the threshold with a constant activation of -1, there will be 6 weights to learn. Your input for training should be all 32 possible inputs with the corresponding desired output. Run the entire set of 32 inputs/output pairs through several times (try 100, 1000, etc) to do the training.

Program #3b: - due 28 Sep.
Use your perceptron with weight learning to learn an output 1 if the input is 01111, 10111, 11011, 11101, 11110, 11111, 00000, 10000, 01000, 00100, 00010, or 00001 and the output is 0 otherwise. Does it work? Why or why not?
Now add a second layer (initially try 3 nodes) to make a NN with a sigmoid squashing function and program a back propagation method to do the learning. As in Problem 3a, your input for training should be all 32 possible inputs with the corresponding desired output. Run the entire set of 32 inputs/output pairs through several times (try 100, 1000, etc) to do the training.

Technical Paper Assigned Reading / Presentation / Discussion: - due 28 Sep.
Controller for TORCS Created by Imitation.

Program #3: - due at midnight on 2 Oct for competition in class on 3 Oct.
Use your NN to learn something appropriate for an Xpilot controller (you may need to add more inputs and/or hidden nodes). Use your learned NN to control your Xpilot agent. It will be judged by its rational behavior (does not crash into walls, avoids getting shot, and shoots at opponents) and its ability to defeat the Xpilot supplied agent. In addition, all agents will compete in one-on-one combat and concurrently compete in an Xpilot-AI free-for-all.

Reading #6x: - due 5 Oct.
Read ImageNet Classification with Deep Convolutional Neural Networks. Be ready to discuss it in class.

Reading #7: - due 10 Oct.
Read Artificial Intelligence Chapter 7, Sections 7.1 to 7.3. Be ready to discuss it in class.

Technical Paper Assigned Reading / Presentation / Discussion: - due 10 Oct.
Evolution and Prioritization of Survival Strategies for a Simulated Robot in Xpilot.

Reading #8: - due 12 Oct.
Read Artificial Intelligence Chapter 7, Sections 7.4 and 7.6 to 7.8. Be ready to discuss it in class.

Technical Paper Assign Reading / Presentation / Discussion: - due 12 Oct.
Evolving expert agent parameters for capture the flag agent in Xpilot

Program #4a: - due 19 Oct.
Write a genetic algorithm (GA) that learns all ones for a 64 bit chromosome. Make your program able to work for any size input string. It should be able to randomly generate the initial population or read it in from a file. Do the standard selection, crossover, and mutation as discussed in class. At each x generations save the best individual along with its fitness and the average fitness of the population. At the completion of learning, the program should save the population to a file.

Technical Paper Assign Reading / Presentation / Discussion: - due 19 Oct.
Backpropagation without Human Supervision for Visual Control in Quake II and The Incremental Evolution of Attack Agents in Xpilot

Program #4: - due due midnight on 25 Oct for competition on 26 Oct.
Write a genetic algorithm (GA) that learns the parameters for the production system you created for Program 1, although you may alter it if desired. It will be judged by its rational behavior (does not crash into walls, avoids getting shot, and shoots at opponents) and its ability to defeat the Xpilot supplied agent. In addition, all agents will compete in one-on-one combat and concurrently compete in an Xpilot-AI free-for-all.

Technical Paper Assign Reading / Presentation / Discussion: - due 31 Oct.
The Core: Evolving Autonomous Agent Control, Fitness Biasing for Evolving an Xpilot Combat Agent, and Evolving Neural Network Agents in the NERO Video Game.

Technical Paper Assign Reading / Presentation / Discussion: - due 7 Nov.
Using a Fuzzy Logic Control System for an Xpilot Combat Agent, Using Evolutionary Strategies for the Real-Time Learning of Controllers for Autonomous Agents in Xpilot-AI, and Using a Genetic Algorithm to Replicate Allopatric Speciation.

Final Project Proposals: - due 9 Nov.
Some possibilities for projects involving Xpilot-AI: NN controller that learns using backpropagation, a deep learning controller, replicate The Core, learning controllers for teams, evolve a fuzzy controller, evolve emergent behavior (such as flocking), use CI for a racing agent, predator/prey, evolve sensor morphology and control, evolve controller using genetic programming.
More possibilities for Xpilot-AI controller, but can be used for other projects as well: Embodied Evolution, Punctuated Anytime Learning (Fitness Biasing, Coevolution), using a Cyclic Genetic Algorithm for code generation.

Project Description: - due 14 Nov.
Create a web site where you describe your project. Eventually it will hopefully include videos, etc. I will link to your site from: http://cs.conncoll.edu/com407/projects.html. If you'd rather, you can send me the html page and I'll upload it on the COM407 site.
Be ready to present it to the class.

Project Technical Paper Presentations: - 16 Nov.
Search the literature for the paper most pertinent to your final project and be ready to do a short presentation. Explain what they did and how what you're doing is different. These are individual presentations, so each member of a team needs to present their own paper. These cannot be repeats of papers already presented. Be ready to do your presentation starting on 16 Nov.

Project Description: - due 21 Nov.
Update the web site where you describe your project. Include images, such as the map you are using, and additional information on your methods. If you don't have your link on http://cs.conncoll.edu/com407/projects.html, you should send me the html page and I'll upload it on the COM407 site.

Competition: - due 5 Dec.
The agents of your choice will compete in one-on-one combat and concurrently compete in an Xpilot-AI free-for-all using the Nolife2 map available here.

Final Project Presentation and Demo: - due 5 and 7 Dec.
This presentation/demo is important to show us what you have and still intend to accomplish. It will be graded, but the bulk of the grade for the project will come from your final product. The more of the project you have done at this point, the better, but you don't have to have it complete until the last day of finals.

Final Project Program and Web Site: - due on last day of finals.
You should submit at least two parts for the final project program. One that is setup to do the training and the other with the best trained individual or individuals ready to compete. Make sure there are sufficient comments that users can easily run your programs.
You are also to submit an updated webpage that has the pertinent information, plus photos/videos.

 

 

Return to the COM407 Home Page