Interesting ideas

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Interesting ideas

Post by Dann Corbit »

Henk wrote:3) Do null moves for both players. If they show there are no threats then position is quiet. So only evaluate that position and do no search.
Tactical positions are the easy ones. By far, the more important positions are the quiet ones. They happen more often, and are harder to choose correctly. If you don't believe me, take everything out of your evaluation except counting wood, and see what happens.

Consider the opening position. No threats for either player. Do you want to kill the search?

If this turns out to be a gain, I will be more than astonished.
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Interesting ideas

Post by Henk »

Dann Corbit wrote:
Henk wrote:3) Do null moves for both players. If they show there are no threats then position is quiet. So only evaluate that position and do no search.
Tactical positions are the easy ones. By far, the more important positions are the quiet ones. They happen more often, and are harder to choose correctly. If you don't believe me, take everything out of your evaluation except counting wood, and see what happens.

Consider the opening position. No threats for either player. Do you want to kill the search?

If this turns out to be a gain, I will be more than astonished.
It did not work at all. Also extra null moves searches are quite expensive. [This thread is about ideas that did not work.]
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Interesting ideas

Post by jdart »

I have experimented with some ordering heuristics for quiet moves besides history, for example prioritizing passed pawn moves. Nothing in that area worked.

I also have recently made some tweaks to time management. Generally you want to extend the search time when failing low, and possibly also when failing high at the end of the search. But additional heuristics and be valuable, e.g. calibrating the extension on how much and how often the search has failed low. I do this now but it is probably not optimal.

Intuitively it is good to push pawns towards the enemy king, especially if you have castled on the opposite side, but I have never had much luck with a "pawn storm" bonus. I do give a bonus for advancing pawns and for bringing them near the king but it is small, especially if pieces do not participate in the attack. One problem is that if pawns advance but are blocked by enemy pawns, and the position is locked, then there is seldom an advantage.

One motif you see in human games pretty often is placing a Rook on the same file as the enemy Queen. Sometimes this enables tactics later on. Maybe a scoring term for this? I haven't tried this.

I have a lot of ideas, and a lot of them haven't worked.

--Jon
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Interesting ideas

Post by Rebel »

Henk wrote:If there are many you can always post the most interesting ones. Maybe there were ideas that were so promising that it would at least make 100 or 200 ELO. But unfortunately it didn't.
Well, I don't keep track of my briliant :lol: failed ideas, but here are a few.

SEARCH

#1. I remembered from the old days when a ply was a real ply and in quiet positions an iteration gave an exact mainline iteration length the score on odd iterarions tended to be somewhat higher than on even iterations.

Nowadays things are all mixed up due to nullmove, reductions, pruning, etc. And so out of curiosity I made 2 versions, version X forcing the search to odd horizon (leaf) (RD=0) depths and version Y forcing the search to even horizon depths. Both were a considerable regression. Not really a surprise.

#2. All kind of juicy extensions at the leafs (RD=0) instead of moving into QS. Eventually I kicked them all out a long time ago but there definitely is some value in it. I am just too lazy to try it again now the hardware allows me to do it. An example (by head) would be: in case you have a double attack (say a fork) QS will not resolve if it pays off, so I extend(ed).

EVALUATION

I hate it with passion when I don't get common chess knowledge to work in the sense it is a progression in comp-comp. By head, some of my frustrations:

#1. As Daniel Jose already pointed out, pins. It's normal to increase the pressure on a pinned piece, especially with a pawn. And it doesn't work. In the end a lousy small bonus is best.

#2. Another rule is to measure clear advantages and when you have more than the opponent reward it. As an example, if you have the bishop pair plus a passed pawn, your mobililty is clearly better, your king safety is ok (or even better) the chess rules dictate you have a won game. So depending on the number of advantages you may expect you can apply a big fat bonus. Doesn't work for me :lol: Even small bonuses hardly work.
Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: Interesting ideas

Post by Karlo Bala »

Henk wrote:I would like to read about chess ideas, alternative approaches that does not work. Maybe it will help to generate other ideas.

Any interesting (bad) ideas ? Show me the trash.
If you have time, try this:

1. B*
2. Tree Searching by Min / Max Approximation
3. Monte Carlo
4. BPIP-DFISA

I'm not saying that these are bad approaches.
Best Regards,
Karlo Balla Jr.
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Interesting ideas

Post by Dann Corbit »

Along those lines:
C*
binary search for best move.
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Interesting ideas

Post by Dann Corbit »

Ref:
https://chessprogramming.wikispaces.com/NegaC*

I always found the idea appealing. Unfortunately, I could never get good results.
Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: Interesting ideas

Post by Karlo Bala »

Dann Corbit wrote:Ref:
https://chessprogramming.wikispaces.com/NegaC*

I always found the idea appealing. Unfortunately, I could never get good results.
There are few things that perhaps can improve NegaC

1. Instead of binary search use golden or fibonacci ratio
2. Instead of global MIN and MAX use some kind of aspiration windows
3. Instead of stop criteria based on score [while (min != max)...] stop when one move is better then others (this may lead to imprecise PV but possibly improve time to depth)
Best Regards,
Karlo Balla Jr.
PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: Interesting ideas

Post by PK »

Today I failed with using null move verification search as a replacement for internal iterative deepening. The idea was to retrieve hash move after a verification search (in absence of a real hash move) and order it first. Of course it is stupid, because we know for sure that this move is rather suspect, as it didn't score above beta. If it did, we would have a cutoff and would not need any move ordering in first place :oops:

However, there just might be some point in updating killers, history and refutation moves if verification search produces a cutoff.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Interesting ideas

Post by cdani »

Inspired for the post about improving SEE, but not related to SEE, I tried a hash of captures, whose key is the combined keys of the source and destination of the pieces that can capture in a position, and the idea is to store the best capture.

After some tries I arrived to one version that is just level for fastest time controls, and possibly a little loss for 30 seconds or more. For the moment I dismissed it. May be I can use it or something similar for instead try to order better the captures.

My best attempt was by using it only alpha_beta, not in quiescence, and not store it if the best move was the first one.