|
||||||||||
Title: Sharp Post by Swynndla on Apr 18th, 2015, 7:12pm Hey lightvector ... in the chatroom you were describing some of the things that made Sharp so strong this year. What you said was fascinating. You said you'd answer more questions tomorrow. In the chat you said: Code:
I'm wondering if you can describe some of these things further, eg: What is "piece alignment eval", and what is "imbalance eval"? Also how did you change hostage eval ... to be worth more or less etc? BTW - 400+ rating points in self-play is amazing! Some other interesting things you said in the chatroom: Code:
Code:
Code:
Code:
|
||||||||||
Title: Re: Sharp Post by lightvector on Apr 19th, 2015, 6:20pm Thanks for the questions! * Piece alignment eval is the part of the eval that adds bonuses for your camels being near the opponent's horses, your horses being near their dogs, etc. Sharp2014 had a fairly poor version of this - it mostly only evaluated the "threat" to a piece independently of the strength of the piece doing the threatening. * Imbalance eval is the part of the eval that penalizes your pieces, particularly the strong ones, from all being together. It's completely new in 2015. Its absence became blatantly obvious after piece alignment eval was added first, because the alignment eval would make sharp try to switch its strong pieces side to side way more frequently, often leaving the army imbalanced. * Hostage eval was changed quite significantly - it's less fragile now (Eb3 ma2 is still considered a hostage, for example, whereas it's not in sharp2014), and it now takes into account what pieces are buried, double hostages, etc. This year's games also suggest some easy tweaks worth testing to improve it further (slightly lower M hostage value, increase the coefficient on the terms for penalty/effect of buried pieces and on swarm advancement status). * For goal in 2 patterns, this is not new to 2015. But it's improved. SharpP1 is now capable of finding some goals in 3 due to these patterns and extensions! And almost all goals in 3 in practice are found in seconds. I think it should be feasible to do the same for common goal in 3 patterns, which would be used for controlling extensions in the search. For comparison, loss in X patterns I have found to be relatively valueless. Loss in 1 can be done statically sometimes, but an unstoppable goal threat is always extremely rapid to verify as unstoppable by search with goal-relevance-pruning. Loss in 2 would be impossible to make accurate enough to trust. Whereas win in X patterns don't need to be perfect to be useful, you just have them trigger an extension. Even in the cases where they're wrong, they still might be a good move, and are worth extensions anyways because they might lead to other gains afterwards. * Anti-swindle eval is done by converting the eval through a sigmoid function into a probability-of-win P. Additionally, the part of the eval that evaluates scary advanced rabbits for each player are mapped from normal eval value -> odds of "short-term goal" for each side, G and S. I then compute the probability of win overall (in this case for Gold) as: (G*1+1*P+S*0) / (G+1+S). That is, you have odds G of winning right away, odds S of losing right away, and odds 1 of the game lasting a long time in which case your normal eval (e.g. material advantage) gives you a probability P of winning. I then apply an inverse-sigmoid to convert it back to the normal form of the eval in millirabbits. The result is that if P is close to 1 (such as you are massively up on material), you care a lot about minimizing S, because the dominant contribution is the odds of losing right away. You care less about maximizing P further, since P is already very close to 1. And on the flip side, if P is very small (such as you are down on material), you care about maximizing G. You care less about increasing P, because a few more material captures still leave P close to 0. What's cool is that this also behaves reasonably in goal races once search is applied. In the event that making goal threats of your own is the best way to stop the opponent from having time to make progress, a bot with this sort of eval and an accurate search will still pursue goal attacks when ahead. |
||||||||||
Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1! YaBB © 2000-2003. All Rights Reserved. |