Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Simple AI Game Improved

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.