public:t-622-arti-16-1:programming_assignment_2_-_breakthrough
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
public:t-622-arti-16-1:programming_assignment_2_-_breakthrough [2016/02/12 16:22] – stephan | public:t-622-arti-16-1:programming_assignment_2_-_breakthrough [2024/04/29 13:33] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Programming Assignment 2 - Adversarial Search ====== | ====== Programming Assignment 2 - Adversarial Search ====== | ||
- | **Use Piazza | + | **Use Piazza if you have any questions or problems with the assignment. Start early, so you still have time to ask in case of problems!** |
===== Problem Description ===== | ===== Problem Description ===== | ||
Line 8: | Line 8: | ||
The game is played on an grid if width W (< | The game is played on an grid if width W (< | ||
- | The legal moves for the agent are called "(MOVE x1 y1 x2 y2)" meaning that the pawn at x1,y1 is moved to x2,y2. x1,x2 are integers between 1 and W. y1,y2 are integers between 1 and H. | + | The legal moves for the agent are called "(move x1 y1 x2 y2)" meaning that the pawn at x1,y1 is moved to x2,y2. x1,x2 are integers between 1 and W. y1,y2 are integers between 1 and H. |
- | /* | ||
===== Tournament ===== | ===== Tournament ===== | ||
- | The agents that were created in class participated in a tournament against each other. The results of the tournament | + | The agents that were created in class participated in a tournament against each other. |
+ | There were 16 agents competing in the first round. In that round, every agent played on the 3x5 and the 5x5 boards against everyone else, once as white and once as black. | ||
+ | The top 7 of the first round (because there was a distinctive gap between 7th and 8th place) got to compete in a final round on the 8x8 board. | ||
+ | |||
+ | The results of the first round can be seen [[http:// | ||
+ | The results of the final round can be seen [[http:// | ||
^Group^Player Name^Average Score^ | ^Group^Player Name^Average Score^ | ||
- | |Ari Freyr Ásgeirsson | + | |Fanney Sigurðardóttir |
- | |Ævar Ísak Ástþórsson | + | |Guðni Fannar Kristjánsson |
- | |Ásgeir Viðar Árnason | + | |Hrafn Orri Hrafnkelsson |
- | |Fabio Alessandrelli | + | |Kristinn Þorri Þrastarson |
- | |Atli Sævar Guðmundsson | + | |Guðmundur Harðarson |ai16_bt_2 |
- | |Ægir Már Jónsson | + | |Andri Ívarsson |
- | |Stefanía Bergljót Stefánsdóttir | + | |Björn Ingi Baldvinsson |
- | |Arnar Freyr Bjarnason | + | |Andri Már Þórhallsson |
- | |Bjarni Egill |ai15_c4_4 | + | |Ásgeir Þór Másson |
- | |Davíð Hafþór | + | |Karl Ingi Karlsson |
- | |Einar Karl |:::|:::| | + | |Sindri Már Kaldal Sigurjónsson |
- | |Ólafur Ingi Eiríksson | + | |Eysteinn Gunnlaugsson |
- | |Freyr Bergsteinsson | + | |Magnús Sigurðarson |
- | |Kristinn Þröstur Sigurðarson | + | |Brynjar Ólafsson |
- | |Gabríel Arthúr Pétursson | + | |Tryggvi Þór Guðmundsson |
- | |Kristján Árni Gerhardsson | + | |Hörður Már Hafsteinsson |
- | |Ingibergur Sindri Stefnisson | + | |Ari Þórðarson |
- | |Geir Ingi Sigurðsson | + | |Eva Segarra Raro |ai16_bt_9 |
- | |Daníel Þór Gunnlaugsson | + | |Jakub Mackovic |
- | |Guðlaugur Garðar Eyþórsson | + | |Roser Sanchez Todo |:::|:::| |
- | |Guðmundur Stefánsson | + | |Kári Eiríksson |
- | |Hinrik Már Hreinsson | + | |Magnús Vilhelm Björnsson |
- | |Svanhvít Jónsdóttir | + | |Andri Már Ómarsson |
- | |Andri Már Sigurðsson | + | |Sverrir Magnússon |
- | |Hafdís Erla Helgadóttir | + | |Eiður Sveinn Gunnarsson |
- | |Ingólfur Halldórsson | + | |Orri Ólafsson |
- | |Ragnar Adolf Árnason | + | |Jóhannes Páll Magnússon |
- | |Kjartan Valur Kjartansson | + | |Ingimar Örn Oddsson |ai16_bt_1 |
- | |Murray Tannock | + | |Alexander Björnsson |:::|:::| |
- | |Páll Arinbjarnar | + | |Johan Ejstrud |:::|:::| |
- | |Davíð | + | |Kristján Hreinn Bergsson |
- | |Stefán Ólafsson | + | |Egill Anton Hlöðversson |
- | |Sveinn Henrik Kristinsson | + | |Jón Gísli Björgvinsson |
- | |Andri Fannar Freysson | + | |Atli Freyr Einarsson |
- | |Sigurjón Rúnar Vikarsson | + | |Guðjón Geir Jónsson |
- | |Ólafur Helgi Jónsson | + | |Gunnar Karl Pálmason |
+ | |Steinar Ágúst Steinarsson | ||
+ | |Grímur Kristinsson | ||
+ | |Natan Örn Ólafsson | ||
+ | |Sölvi Hjaltason | ||
+ | |Kristján Harðarson | ||
+ | |Guðrún Inga Baldursdóttir | ||
+ | |Björn Ingemar Elfström | ||
+ | |Davíð | ||
+ | |Quang Van Nguyen | ||
+ | |Einar Hallberg Ragnarsson | ||
+ | |Ásgeir Frímannsson | ||
+ | |Janus Þór Kristjánsson | ||
+ | |Tinna Frímann Jökulsdóttir | ||
+ | |Dagur Arinbjörn Daníelsson | ||
^^^^ | ^^^^ | ||
- | */ | + | |
===== Tasks ===== | ===== Tasks ===== | ||
Line 62: | Line 81: | ||
- Improve the state evaluation function or implement a better one. | - Improve the state evaluation function or implement a better one. | ||
- Test if it is really better by pitching two agents (one with each evaluation function) against each other or by pitching each evaluation function against a random agent. If you run the experiments with the random agent, you need to repeat the experiment a decent number of times to get significant results. Don't forget to switch sides because white has an advantage in the game. | - Test if it is really better by pitching two agents (one with each evaluation function) against each other or by pitching each evaluation function against a random agent. If you run the experiments with the random agent, you need to repeat the experiment a decent number of times to get significant results. Don't forget to switch sides because white has an advantage in the game. | ||
- | - Do all experiments with time constraints (play clock) of 1s, 5s and 10s. | + | - Run the experiments with different board sizes and time constraints (play clock) of 1s and 10s. |
- | - Make your code fast! The more state expansions you get per second, the better the player. Ideally, you should be able to solve the | + | - Make your code fast! The more state expansions you get per second, the better the player. Ideally, you should be able to solve the small boards (3x5, 5x5) in 10s. |
===== Material ===== | ===== Material ===== | ||
- | * java project for the agent development | + | * {{: |
- | The files in the archive are similar to those in the first programming assignment. The archive contains code for implementing an agent in the src directory. The agent is actually a server process which listens on some port and waits for the real robot or a simulator to send a message. It will then reply with the next action the agent wants to execute. | + | The files in the archive are similar to those in the first programming assignment. The archive contains code for implementing an agent in the src directory. The agent is actually a server process which listens on some port and waits for a game simulator |
- | /* | + | |
- | The zip file also contains the description of the environment (connect4.gdl) and a simulator | + | The zip file also contains the description of the environment |
- | * Start the simulator (execute gamecontroller-gui.jar with either double-click or using the command "java -jar gamecontroller-gui.jar" | + | * Start the simulator (execute gamecontroller-gui.jar with either double-click or using the command "java -jar gamecontroller-gui.jar" |
* Setup the simulator as shown in this picture: | * Setup the simulator as shown in this picture: | ||
- | | + | * {{: |
* You can use your player as both the first and the second role of the game, just not at the same time. To let two instances of your agent play against each other, start your agent twice with different ports to listen on and use the respective ports in the simulator. | * You can use your player as both the first and the second role of the game, just not at the same time. To let two instances of your agent play against each other, start your agent twice with different ports to listen on and use the respective ports in the simulator. | ||
* Run the " | * Run the " | ||
- | * Now push the " | + | * Now push the " |
* If the output of the simulator contains any line starting with " | * If the output of the simulator contains any line starting with " | ||
- | */ | + | |
===== Hints ===== | ===== Hints ===== | ||
For implementing your agent: | For implementing your agent: | ||
* Add a new class that implements the " | * Add a new class that implements the " | ||
- | * You have to implement the methods " | + | * You have to implement the methods " |
* **Make sure your agent is able to play both roles (white and black)!** | * **Make sure your agent is able to play both roles (white and black)!** | ||
* You can make sure to be on time by regularly checking whether there is time left during the search process and stopping the search just before you run out of time, e.g., by throwing an exception that you catch where you call the search function the first time. | * You can make sure to be on time by regularly checking whether there is time left during the search process and stopping the search just before you run out of time, e.g., by throwing an exception that you catch where you call the search function the first time. | ||
- | * To specify the port your agent is running on change the build.xml file as follows and use the command line '' | + | |
+ | | ||
<file xml build.xml> | <file xml build.xml> | ||
... | ... | ||
<target name=" | <target name=" | ||
<java jar=" | <java jar=" | ||
- | <arg value=" | + | <arg value=" |
<jvmarg value=" | <jvmarg value=" | ||
</ | </ | ||
Line 101: | Line 121: | ||
===== Handing In ===== | ===== Handing In ===== | ||
Please hand in a zip file containing: | Please hand in a zip file containing: | ||
- | * the source code and an executable jar file for your agent | + | * the complete src folder containing |
- | * a short description of your heuristic | + | * a pdf with a short description of your heuristic |
- | * the results of the experiments and which conclusions you draw from them | + | |
- | To create the zip file you just edit the " | + | |
- | The deadline is TBA. We will have a tournament between your agents afterwards. Extra points for the top players! | + | The deadline is 29.02.2016. We will have a tournament between your agents afterwards. Extra points for the top players! |
/* You can watch the tournament [[http:// | /* You can watch the tournament [[http:// | ||
*/ | */ | ||
- |
/var/www/cadia.ru.is/wiki/data/attic/public/t-622-arti-16-1/programming_assignment_2_-_breakthrough.1455294144.txt.gz · Last modified: 2024/04/29 13:32 (external edit)