Implementation of Heuristic Algorithms for Board Games

Practical Software Course, Summer Semester 2012

The aim of the course is the implementation of a strong computer player for an extended version of Reversi. At the end of the course, a competition will be held between the developed computer players and a ranking is set up. The top of the ranking is the winner of the competition, and additional points to the final grade will be awarded to the winner.

 

During the course, techniques and concepts for creating stronger computer players are introduced incrementally which are expected to be studied and understood by the student. The course covers the following topics:

 

* Client network socket programming

* Basic multi-threaded programming

* Mini-max and paranoid search

* Alpha-beta pruning

* Iterative deepening

* Move sorting

* Aspiration windows

* Game state rating heuristics

* Empirical algorithmic efficiency analysis

* Performance and memory profiling

* Technical writing and reporting

 

Lab organisers are  Viet Yen Nguyen (Dutch, English),  Christian Dehnert (German, English) and Gereon Kremer (German, English).



News

04.05.12 - Removed dead links for alpha beta pruning animations.
20.04.12 - Added uebung 2.
13.04.12 - Added group meeting schedule.
05.04.12 - Added meeting schedule.
03.04.12 - Added emailaddresses.
02.04.12 - Removed SVN manual and added the GIT manual.


References

Technical Writing Style by Wikiversity:
en.wikiversity.org/wiki/Technical_writing_style
Mayfield Handbook of Technical & Scientific Writing:
www.mhhe.com/mayfieldpub/tsw/toc.htm
Checkstyle for Java:
checkstyle.sourceforge.net
Alpha-Beta Pruning Animations:
www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html
homepage.ufp.pt/~jtorres/ensino/ia/alfabeta.html
Git Manual:
schacon.github.com/git/user-manual.html


Meeting Schedules

Lab meetings:

Date

Time

Location

Exercise

05.04.2012

12:30 - 13:30

4321

20.04.2012

15:15 - 16:15

4201b

04.05.2012

15:15 - 16:15

4201b

25.05.2012

15:15 - 16:15

4201b

08.06.2012

15:15 - 16:15

4201b

TBU

22.06.2012

15:15 - 16:15

4201b

TBU

13.07.2012

15:15 - 16:15

4201b

 

TBU

 

Group meetings:

Group

Location

Time

1

4201b

16:30 - 16:45

2

4201b

14:45 - 15:00

3

4201b

15:00 - 15:15

4

4201b

14:30 - 14:45

5

4201b

16:15 - 16:30

6

4201b

16:45 - 17:00



Discussion Group

Use the mailinglist swp-i2-2012-pm@lab9.sselab.de for general and technical questions and discussions among students. Students are urged to answer other student's questions. The used languages can be German and English.



Remarks

Meetings will be held in English. Written student reports must be in English.
Exercises will be provided in German.
Student support will be in both German and English.
By default, the implementation is expected to be in Java. Use of other languages requires special approval.
Reports have to handled in a clearly defined location in your Git repository as a PDF.
Attendance of every meeting is mandatory.
Students are expected to form and work in groups of 3 students.
Grades are based on the quality of the written reports, the quality of the source code, the strength of the AI, team play and work attitude.
The course follows the same structure and uses the same exercises set from the previous softwarepracticum: www-i2.informatik.rwth-aachen.de/i2/swp10/