CS 372 (Artificial Intelligence) Fall 2004
Week13 (Due 11/29) Reactions & Thoughts
Ioana Butoi
Andrew Cantino
The tournament was interesting. I was kind of frustrated that my computer program lost to a mere mortal and that I didn't have a better static evaluation function, since I think otherwise my implementation of konane was pretty good. Scalable boards, move suggestions, error checking, etc. In retrospect, it's clear the having my static evaluation as just the number of moves available to the computer wasn't a great idea, since then many otherwise good moves like double and triple jumps reduced the available computer moves and, thus, were not used. I think that using (moves available to me) – (moves available to them) would probably work much better.Audrey Flattes
I think the competition on Tuesday was a lot of fun. I was really surprised that I a human was able to get as far as I did in the competition. I kept having to remind myself that I in some games I was able to jump over muliple players. So I think I made some simple mistakes that if I had kept that in mind I would have maybe been able to get further. I can't wait to see how things turn out tomorrow.Christina Florio
I really enjoyed the tournament on Tuesday. One main concern I had during it was that I did not implement multiple jumps in my program so if I were playing someone who did I was forced to play myself, which was a bit annoying because I couldn't actually play my program. Also, by doing this, the playing fields were uneven, in other words, the people who implemented multiple jumps had different possible moves open to them than those who didn't. Is this something that would hinder a program? I must say that I was impressed with how far Audrey got in the competition, I think she did an excellent job. I'm looking forward to the final game tomorrow.Kathleen Maffei
I found it more difficult to implement the MINIMAX and alpha-beta algorithms than I’d anticipated. I spent some time figuring out how to return the move information. It wasn’t that I’m not familiar with passing data back through recursion. I’ve done this kind of thing many times and had no issues with adding the search statistics to the return data. What I found challenging was figuring out that I did want to pass back the move that was made to create the node, but I didn’t want to use it within the function – only when the recursion completed and the value was returned to the calling function. If I used it within the recursive function, I finally ended up returning the move for the terminal node. It passed the terminal node’s move back up the tree and returned it as the move to make.
During the tournament on Tuesday, I found that my program wasn’t terribly fast. I decided to convert my data type to a 2-dimensional array. I’m writing a board class for the Connect Four game at this time. I’m hoping the use of a 2-dimensional array will make this faster than the Konane game.
Sara McCullough
Ben Root
I thought the tournament was fun. It was good so see everyone’s static evaluation functions, and just to hear people talking the adversarial search talk. I liked to hear how many ply’s people were searching to, and it was just fun to have a competition. We all got to put in our effort before hand and then just hang out and see how well our programs could perform. I am trying to figure out why my minimaxAB function seems to be going so much slower than everyone else’s. If I fix it by Tuesday, Look out Ioana!
Sandeep Singh
Tuesday’s tournament was interesting for numerous reasons. It was definitely great to see everyone’s program in action. What surprised me the most was that, for the most part, everyone seemed to use pretty general static evaluations. I forget who chose it (I believe it was Darby), but I found the static evaluation in which the number of moves of the player and opponent were divided, as opposed to being subtracted, to be an interesting approach.
What blows my mind is how Ioana’s program was able to search 4 plies in the amount of time that it did. I don’t know if it’s something in her code or if it was the computer she was working on [that is, the amount of memory]. Since all of the computers in the lab seem to be the same, this leads me to believe there is something in her code…but what?!
Talking to a few other people gave me insight into some of the things I did wrong with my program. Hopefully I can reconfigure everything and get it to finally work. Also, I was really hoping that the final showdown would be between a human and a program. While that’s not the case, it was great to see how far the human players were able to make it.
Darby Thompson
Ahhhhhh how frustrating! I have definitely learnt my lesson... you can never do enough error checking. It was fun to watch (and participate in) the tournament last week - there were some very interesting outcomes! Audrey crushed some of the computers, and Ioana's program was SO FAST! I am really curious to see how she did that! As for the static evaluation functions, I was really sad that some of our programs had bugs so we couldn't equally compare them. For my final project I'd like my Neural Net to learn the BEST evaluation function, not necessarily mine, so I'm going to run tests using everyone's static evaluation function (that Deepak put on the board last week) using the automated play version of my program and average the results from 100 games to see which one works best. I will play each static evaluation function against all the others and compare the results, then I'll use the best one to collect data to train my Neural Net. I'm very curious what the outcome of the game tomorrow will be!
