Arimaa Forum (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi)
Arimaa >> Bot Development >> Personalized Play / Opponent Modeling
(Message started by: Rednaxela on Sep 6th, 2010, 6:33pm)

Title: Personalized Play / Opponent Modeling
Post by Rednaxela on Sep 6th, 2010, 6:33pm
For a while I've been wondering if there was a reasonable way for bots to 'personalize' their play to their current opponent. It's something I haven't come across a thread about before here.

Recently in the "Global Algebric Material Evaluator" thread, I had run a few queries and found that it seemed like the gameroom data supported the notion that FAME and DAPE had a bias to be in favor of the way their respective authors played. This seems like a fairly logical result I think, but the fact that I seemed to be able to see this in the gameroom data gave me an idea: What about having a bot that tweaks an evaluation function to be similar to it's guess of the opponent's perception?

The way it could be implemented is as follows:
- Look up the player's username and go through their gameroom data, picking out the material evaluators and and other parts that seem to best represent the player.
   - Don't assume the opponent is weak. In other words, don't allow the resulting evaluation function to be weak, merely biased towards the opponent's tendencies.
   - Probably run this in the ponder-time during the opponent's first couple moves.

- If the opponent is unknown or only has played a small number of games, assume they'll play with some similarity to people who use the same moves in the first two turns, perhaps factoring in other metrics of play-style as well if one wants to get fancy.
- During the alpha-beta search, when it's time to calculate a score, instead calculate two scores. One for your own evaluation, and another that uses the evaluation that's biased towards the current opponant's tendencies.
- During the search, use your own evaluation score during your own turns, and use the tweaked evaluation score during the opponent's turns.

Really, I think this process is very similar to what human players do when facing an opponant they've either faced before or have seen the history of. Bot bashing for instance, tends to take advantage of weaknesses of certain bots. Also when I was browsing "2009 One vs TheMob" it seemed notable to me that both sides were attempting to consider historical behavior of the opponant. It struck me that that's really something humans do all the time but bots currently, to my knowledge, don't do.

Any thoughts on either this specific method of adapting to the opponant, or the principal of having a bot do so in general? :)

Title: Re: Personalized Play
Post by 722caasi on Sep 7th, 2010, 12:03am
It seems this could be exploited, by initially playing in a way that would cause the bot to play in a way that they could beat. However, I'm sure this could be counteracted. Good idea!

Title: Re: Personalized Play
Post by Janzert on Sep 7th, 2010, 12:55am
Just a quick note, if I correctly understand what you're describing this is generally called "Opponent Modeling".

Janzert

Title: Re: Personalized Play / Opponent Modeling
Post by Rednaxela on Sep 7th, 2010, 1:21am
Thanks Janzert, that is indeed mostly what I mean. I imagined there would be such a term but didn't know what it was. I've changed the subject and I'll probably be looking at literature regarding it... haha.

One thing I did have in mind, was rather than trying to model the opponent entirely, 'restricting' the model to only consist of tweaks to a known-strong evaluation function. The idea is that such a tweaked model would remain strong and thus not be as exploitable as modeling the opponent in a more unrestricted way.

Title: Re: Personalized Play / Opponent Modeling
Post by rbarreira on Sep 7th, 2010, 3:46am
That's an interesting suggestion, it would be cool to see a bot adapting to different opponents throughout time.

Another (perhaps more controversial) form of opponent modeling that I've thought about is to exploit known bugs of other bots, for example bomb's lack of knowledge about the repetition rule. But I don't think I would actually waste time with this form of opponent modeling.



Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.