Changes in Andscacs 0.71

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Changes in Andscacs 0.71

Post by cdani »

Hi!

I explain the changes I have done for the new version 0.71.

• Bonus for pieces supporting advance of passed pawn, and two bugs on passed pawns.
• Solved bug with mate avoidable with en passant.
• Use already calculated (with magics) attacks when possible instead of calculating again.
• Now reduces a little less on LMR.
• Solved bug with knight trapped by enemy pawns.
• Little move ordering bonus for moving attacked piece by a pawn move, only when depth <3. Is a sort of pre-quiescence optimization.
• Optimization of bonus for rook on semi-open column.
• Optimization of values of weak pawns. There is a bonus that depends on the column number.
• Now it’s less verbose.
• Optimization of values of mobility.
• Bug on check extension.
• Little increase of value of central pawns.
• Do not prune if it’s a move of passed pawn.
• Bug that was not using hash move at the start of new turn!
• For aspiration loop, passed delta from 32 to 16.
• Stop search earlier if a capture seems clearly better than all the other moves (i.e., the best move does not change from the start). I tried instead of reducing analysis time with no success.
• Changed extension for piece capture at pv lines. Now is:

Code: Select all

If &#40;capture && is pv && see_to_depth <= original_see_to_depth )
	Extend;
• If see detects that is taking a piece with a pinned pawn, do not demote the move.
• New king safety function. It evaluates attacks near the king weighted with the type of piece (in two ways, discarding protected squares and analyzing all the squares), contact checks, safe checks, number of pawns protecting the king, number of attacks in the 4*4 square of the king, if the king is advanced, number of pieces that attack, number of pieces that defend, number of rook/queen attacks in columns. Also now uses x-ray attacks on some of those evaluations.
• Disabled secondary hash of evaluations. Now it gets saved always in the standard hash.
• New move generation of only possible checks (for quiescence). Basically validates the generated moves when source or destination are in this bitboard:

Code: Select all

ItCanCheck=&#40;RookAttacks&#40;king position,his pieces&#41; | BishopAttacks&#40;king position,his pieces&#41; | Knight attacks&#91;king position&#93;) & ~his pieces;
Also I like to comment:
• For the moment I did not succeed on trying to bonus having more space.
• Is doing eval pruning even if is pv. I tried to do only when is not pv and is always a regression.
• There is a bug on search root:

Code: Select all

if ( score > beta ) &#123;  //must be score >=beta
		return score;
	&#125;
Seems to be no way to arrange it without losing strength.
I discovered it when I tried to add a mate distance pruning, that was exiting because alpha==beta. I tried this prune taking into account only mate scores, with no success.
So for the moment I keep this like this.
• I tried in different ways to use the IsRepetiton idea of gull, but always was bad. May be it’s because I already have a move ordering penalization for moves that go where the piece was previously (and the piece it’s not attacked by a pawn).
sedicla
Posts: 178
Joined: Sat Jan 08, 2011 12:51 am
Location: USA
Full name: Alcides Schulz

Re: Changes in Andscacs 0.71

Post by sedicla »

Thanks Daniel for sharing. I have the first item on my todo list already.

I will review the other items and may give it a try too.
cetormenter
Posts: 170
Joined: Sun Oct 28, 2012 9:46 pm

Re: Changes in Andscacs 0.71

Post by cetormenter »

cdani wrote: • Changed extension for piece capture at pv lines. Now is:

Code: Select all

If &#40;capture && is pv && see_to_depth <= original_see_to_depth )
	Extend;
What exactly are see_to_depth and original_see_to_depth?

I tried something similar to what is found in senpai where recaptures at low depths are extended but this failed pretty horribly.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Changes in Andscacs 0.71

Post by cdani »

cetormenter wrote:
cdani wrote: • Changed extension for piece capture at pv lines. Now is:

Code: Select all

If &#40;capture && is pv && see_to_depth <= original_see_to_depth )
	Extend;
What exactly are see_to_depth and original_see_to_depth?
original_see_to_depth is the depth of the iterative deepening loop (the loop that calls search_root).

see_to_depth is the current value, which sometimes is extended and sometimes is reduced. So the extension of piece capture it's fired only when there was already some reduction.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Changes in Andscacs 0.71

Post by cdani »

sedicla wrote:Thanks Daniel for sharing. I have the first item on my todo list already.

I will review the other items and may give it a try too.
Happy to be helpful!!