Author: Graham Laight
Date: 01:21:41 07/28/03
Go up one level in this thread
On July 27, 2003 at 16:29:21, Ricardo Gibert wrote: >On July 27, 2003 at 15:19:00, Graham Laight wrote: > >>On July 27, 2003 at 12:12:05, Tim Foden wrote: >> >>>On July 27, 2003 at 08:34:10, Ricardo Gibert wrote: >>> >>>>On July 26, 2003 at 18:23:31, Graham Laight wrote: >>>> >>>>>Finally, I got around to doing what I've been promising to do for a long time. >>>>> >>>>>Since nearly everyone who plays my matching pennies game chooses to have 49 >>>>>goes, I've tuned the pattern recogniction algorithm to work best at this level. >>>>>You should now find it noticeably harder to beat than it was before. >>>>> >>>>>http://mysite.freeserve.com/grahamlaight/jscript/GuessWhichHand.htm >>>>> >>>>>Have fun - and don't forget to post your game records here, please! >>>>> >>>>>Take care, >>>>>-g >>>> >>>>Such programs try to take advantage of non-random play of the opponent. In order >>>>to do so, it must also play in a non-random way. This leaves it vulnerable to a >>>>sophisticated opponent. The more aggressive the program is in taking advantage >>>>of non-random play, the more non-random its own play must be and the more >>>>vulnerable it is. >> >>Ah - but even as you're getting better at learning how to beat the algorithm, >>the algorithm is also getting better at learning how to beat you! > > >Of course, this is the idea, but the "better at learning how to beat you" it >gets, the less random its play must neccesarily be and the more vulnerable it >should get. There is no way around this. Paradoxically, you have to limit how >good it gets. > > >> >>The more goes you have, the better the algorithm becomes at anticipating your >>moves. In all the games I've analysed (mostly from the CTF forum), people have >>scored fewer points in the second half of the game than in the first half. > > >If program is getting a minus score in the 1st half and a plus score in the 2nd >half, then maybe the best human strategy should be to rely on garnering a plus >score in the early going and prevent the computer's comeback in the 2nd half by >reverting to a random strategy by flipping a coin. > > >> >>>>For example, someone posted a link on a usenet group to precisely the same game >>>>you tackle. The programmer even dressed it up a bit with a high scores list. >>>>This had the desired effect of encouraging participation. >>>> >>>>Unfortunately, the program was very agressive to the point of being completely >>>>deterministic. A number of jokers realized this and worked out the precise >>>>sequence required to win with a nearly perfect score! I was one of them, but not >>>>as patient as some of the others at working out a really long sequence that won >>>>consistently. >> >>My game is not deterministic. If you play the same sequence of 49 moves twice, >>you'll get different results. > > >That's what I meant by it not being aggressive. It does not always make the >"greediest" decision. > >BTW, I wonder if you noticed a witty point about Ed's "debugging." By always >clicking left he was really always guessing right! Viewed in this way, he got >the highest score by the most trivial means! ;) Eh? If he was playing for money, with a $1 stake per go, he would have lost about $30 per game. If this is what he calls success, then give me an opponent who's a "winner" any day! >>>>Interestingly, despite this going on, there were enough unsophisticated players >>>>to give the program a very comfortable plus score overall. It seems the >>>>sophisticated players were too few in number to really hurt it. Kind of the same >>>>situation as in Las Vegas and the BlackJack card counters. >> >>I thought they'd implemented mechanisms to prevent counting? > > >There are still casinos where card counting is made difficult, but not >prevented. The ones that prevent it, effectively chase the players to the >casinos that don't. Most people that count make enough mistakes to offset their >advantage, which is tiny even with perfect play. Therefore, it's better to not >prevent it completely IMO. > > >> >>>>I did not do a lot of testing, but I think your program does not seem to be very >>>>aggressive. It can't be taken advantage of as ruthlessly as the aforementioned >>>>program, but I'm not sure if this is really the best way. Maybe the best way is >>>>to rely on the much greater abundance of unsophisticated players. >>>> >>>>It would be interesting to compare both approaches on a large pool of players. >>>>It may be best to be aggressive, but not so aggressive that it becomes easy to >>>>join the sophisticated group of players. Ruthlessness should require hard work! >>> >>>Maybe it would be interesting to have a program that is very aggressive, but >>>detects when this is failing (e.g. say, score worse than 3/10), and then >>>randomly changes to a less aggressive algorithm (of which it may have more than >>>1). >> >>How about the following strategy: you play with a high level of aggression, and >>when the opponent is having a winning streak, you automatically start reversing >>your guesses before playing? Of course - when the opponent starts winning again, >>you revert to normal play again. >> >>-g >> >>>Cheers, Tim. > >L1 L1 R0 L0 L1 L1 R0 R1 L1 R1 L1 L1 R1 L0 R0 L1 L0 L1 L1 R1 L1 R0 R1 R1 L0 L0 L1 >L1 R0 R1 R0 R0 L0 R1 R1 L0 R0 L0 L1 L1 L1 L0 L0 L0 R1 L0 L0 R1 R0 There you go - you won 17 points in the 1st half of the game, but only 10 points in the 2nd! -g
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.