How to tune the bonus for having the move.

Discussion of chess software programming and technical issues.

Moderator: Ras

chrisw

Re: How to tune the bonus for having the move.

Post by chrisw »

Don wrote:
chrisw wrote: Hey, this is way more fun than CTF :wink:
I never was on CTF so I'm not sure what you mean. But I didn't mean anything I said to be condescending - after looking at it again it could be interpreted that way and I'm glad you didn't take offense.

I actually admire your program for doing what it does the way it does, it's quite interesting. I realize that your goal wasn't to make it super strong but to be lots of fun and "Tal" like and you have certainly done that very well.

However, there is nothing wrong with wanting to build a strong program either, even if you feel some contempt for how it has to be done which you seem to. Having a really strong program seems to excite people as much or more than having a really fun program, although almost nobody can beat either these days.

- Don
Just kidding ;-)

Don, I don't feel any contempt at all. When there are different ways in science or engineering or whatever we call it, it is fun to poke at the other camp's ideas - makes both sides think - which is good. We're not poking each other in the eye, just our ideas. Also I like it that the endusers can see that its all smoke and mirrors in the "simple and robust" design :wink: :wink:
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: How to tune the bonus for having the move.

Post by Tord Romstad »

Don wrote:
chrisw wrote: Well, yes. Adaptive indeed. But this looks at the problem the wrong way round. To adapt the value requires chess knowledge. If you have a knowledge based polynomial evaluation function then you can account for sidetomove within the particular elemenst of the polynomial - rhather than add in some global value kludge at the end.

For example. Pair of bishops is worth something and sideonmove is probably unimportant.

Runningpawn evaluation - well, side on move should be taken into account there and then - could be a game winner. Pair of pawns on 5th or 6th vs Rook, again side on move very important - account for it during the sub-evaluation.

King attack - makes a big difference if on move or not. Account for it then.

Attack on piece, makes if big difference if exectuble immediately or need to wait for other side to move. Account for it there.

It's only the beancounter which has compromised away much evaluation that will be needing a global kludge value, isn't it? And will it work, be appropriate or even marginally accurate? I don't think so.
I would be more swayed by Chris's arguments if I saw a really strong program that uses those ideas. Does such a program exist?
I am not sure my program qualifies as "really strong", but to a limited extent I do what Chris suggests. Some parts of my king safety and passed pawn evaluation takes the side to move into account. For instance, the bonuses for discovered checks and safe contact checks are doubled when it is the attacker's turn to move.

However, in addition to this, I also have a constant side to move bonus.

Tord
chrisw

Re: How to tune the bonus for having the move.

Post by chrisw »

Tord Romstad wrote:
Don wrote:
chrisw wrote: Well, yes. Adaptive indeed. But this looks at the problem the wrong way round. To adapt the value requires chess knowledge. If you have a knowledge based polynomial evaluation function then you can account for sidetomove within the particular elemenst of the polynomial - rhather than add in some global value kludge at the end.

For example. Pair of bishops is worth something and sideonmove is probably unimportant.

Runningpawn evaluation - well, side on move should be taken into account there and then - could be a game winner. Pair of pawns on 5th or 6th vs Rook, again side on move very important - account for it during the sub-evaluation.

King attack - makes a big difference if on move or not. Account for it then.

Attack on piece, makes if big difference if exectuble immediately or need to wait for other side to move. Account for it there.

It's only the beancounter which has compromised away much evaluation that will be needing a global kludge value, isn't it? And will it work, be appropriate or even marginally accurate? I don't think so.
I would be more swayed by Chris's arguments if I saw a really strong program that uses those ideas. Does such a program exist?
I am not sure my program qualifies as "really strong", but to a limited extent I do what Chris suggests. Some parts of my king safety and passed pawn evaluation takes the side to move into account. For instance, the bonuses for discovered checks and safe contact checks are doubled when it is the attacker's turn to move.

However, in addition to this, I also have a constant side to move bonus.

Tord
I seem to recollect CSTal2 had massive side to move affected bonus terms in king attack stuff, sometimes running into several pawns in size.

If both sides have king attacks, the sidetomove has a big advantage. The initiative. This also true of all attacks, threats and so on.

Chris
User avatar
mclane
Posts: 18899
Joined: Thu Mar 09, 2006 6:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub

Re: How to tune the bonus for having the move.

Post by mclane »

Tord Romstad wrote:I am not sure my program qualifies as "really strong", but to a limited extent I do what Chris suggests. Some parts of my king safety and passed pawn evaluation takes the side to move into account. For instance, the bonuses for discovered checks and safe contact checks are doubled when it is the attacker's turn to move.

However, in addition to this, I also have a constant side to move bonus.

Tord
glaurung is not a weak program...


_______________________________________________________________________________________________________________________________________________________________________________________

Code: Select all

    Motor                          Punkte    Za   Ry   Hi   To   Na   Ry   Fr   Gl   Lo   Th   Sp   Br   Sc   Pr   Ch   Al   Ph   Co   Th   No   No   He    S-B
01: Zappa Mexico II x64 [t1]       60,0/82 ···· 010= ==01 0==1 1=0= ==1= 0001 =111 11=1 1110 1=01 1111 1=11 =10= 11=1 1111 1101 1110 =1   1111 1111 1111  2152,5
02: Rybka v2.3.lk.x64              59,0/81 101= ···· 1=01 01=0 ===0 01== 1011 1=== =100 11== 11=1 1111 =111 1111 =101 1111 =0=1 1=11 1    11=1 11=1 1111  2150,2
03: Hiarcs12MPUCI [1core]          58,5/82 ==10 0=10 ···· 1==1 1010 1==1 ===0 1100 010= 11=0 1=1= 1111 1=1= 1111 1=11 1=== ==1= 11=1 =1   1111 1111 1111  2097,2
04: TogaII142JD-1cpu               58,0/81 1==0 10=1 0==0 ···· =1== 0=10 ==== 011= 11=1 1==1 011= 01=1 =101 =111 11== =111 1111 111= 1    1111 1111 1=11  2083,7
05: Naum3_64                       57,5/82 0=1= ===1 0101 =0== ···· 000= 1=01 101= 010= ==11 1=1= =1=1 1==1 1111 111= 1111 =111 =1=1 1=   1=11 11=1 1111  2035,2
06: Rybka v2.2.x64                 55,5/81 ==0= 10== 0==0 1=01 111= ···· =1=1 =1=1 ===0 ==11 1110 101= 1=11 001= 1==1 111= 1111 1=11 0    1111 1=1= 1011  2071,0
07: Fruit235m-64                   53,5/81 1110 0100 ===1 ==== 0=10 =0=0 ···· 0==1 0=1= 101= 11== 1111 1=11 110= 0==1 1110 111= 110= =    1111 =111 1111  1926,2
08: Glaurung_2_1_x64_EM64T [t1]    51,0/82 =000 0=== 0011 100= 010= =0=0 1==0 ···· 0111 1=== =01= =0=1 =1=1 111= =1== 1111 =011 1111 10   1111 ==11 1111  1762,5
09: LoopMP 12.32                   50,0/82 00=0 =011 101= 00=0 101= ===1 1=0= 1000 ···· =110 010= =111 0101 1=11 1110 0==1 1111 1=01 0=   11=1 1111 111=  1786,2
10: TheKing350_64 saurontc02 [t1]  42,0/81 0001 00== 00=1 0==0 ==00 ==00 010= 0=== =001 ···· 1=10 110= 1011 =00= =111 11== 1101 =111 0    1111 =010 11=1  1456,0
11: Spike1.2                       40,0/81 0=10 00=0 0=0= 100= 0=0= 0001 00== =10= 101= 0=01 ···· 0==0 ==01 1110 0=1= =0=1 1=10 =011 =?   1=11 11=1 1111  1363,5
12: Bright-0.3a [SP]               37,5/82 0000 0000 0000 10=0 =0=0 010= 0000 =1=0 =000 001= 1==1 ···· 1111 011= 1=00 =101 011= 111= =0   1=0= 11=1 1111  1196,5
13: Scorpio2.0                     37,0/82 0=00 =000 0=0= =010 0==0 0=00 0=00 =0=0 1010 0100 ==10 0000 ···· 1010 0111 0=== 1=11 11=1 01   111= =111 1111  1165,7
14: ProDeo1.6                      34,5/81 =01= 0000 0000 =000 0000 110= 001= 000= 0=00 =11= 0001 100= 0101 ···· =10= 0=01 =101 1=01 1    1111 =111 101=  1126,5
15: ChessTiger2007.1 UCI           34,0/82 00=0 =010 0=00 00== 000= 0==0 1==0 =0== 0001 =000 1=0= 0=11 1000 =01= ···· 1100 11=1 0=== 10   ==11 11=0 1101  1156,0
16: Alaric707                      29,0/81 0000 0000 0=== =000 0000 000= 0001 0000 1==0 00== =1=0 =010 1=== 1=10 0011 ···· 1001 010= 0    1010 =111 0111  939,25
17: Pharaon                        26,0/81 0010 =1=0 ==0= 0000 =000 0000 000= =100 0000 0010 0=01 100= 0=00 =010 00=0 0110 ···· ==00 0    1==1 1110 =111  867,75
18: Colossus2007d                  25,5/82 0001 0=00 00=0 000= =0=0 0=00 001= 0000 0=10 =000 =100 000= 00=0 0=10 1=== 101= ==11 ···· 00   1010 11=0 00=1  885,75
19: TheKing350_64 Attakiewicz [t1] 17,5/31 =0   0    =0   0    0=   1    =    01   1=   1    =?   =1   10   0    01   1    1    11   ···· 0    11   1     635,50
20: Now5-31-08                     17,0/81 0000 00=0 0000 0000 0=00 0000 0000 0000 00=0 0000 0=00 0=1= 000= 0000 ==00 0101 0==0 0101 1    ···· 11== 011=  461,25
21: Now170108                      16,0/82 0000 00=0 0000 0000 00=0 0=0= =000 ==00 0000 =101 00=0 00=0 =000 =000 00=1 =000 0001 00=1 00   00== ···· 101=  547,75
22: Hermann2017                    12,0/81 0000 0000 0000 0=00 0000 0100 0000 0000 000= 00=0 0000 0000 0000 010= 0010 1000 =000 11=0 0    100= 010= ····  371,50

871 Partien von 924 gespielt
Name des Turniers: test
Ort/ Land: SCW, Germany
Spielstufe: Turnier 40/10
don't be so modest, tord.
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: How to tune the bonus for having the move.

Post by Tord Romstad »

chrisw wrote:I seem to recollect CSTal2 had massive side to move affected bonus terms in king attack stuff, sometimes running into several pawns in size.
At least in theory, it can be worth several pawns in size in my program, too. I am not sure how common this is in practice, though.

Tord
chrisw

Re: How to tune the bonus for having the move.

Post by chrisw »

Tord Romstad wrote:
chrisw wrote:I seem to recollect CSTal2 had massive side to move affected bonus terms in king attack stuff, sometimes running into several pawns in size.
At least in theory, it can be worth several pawns in size in my program, too. I am not sure how common this is in practice, though.

Tord
With CSTal, leaving the other side the opportunity to come at one's king with a bunch of attack pieces was deemed not desirable. Conversely beign able to do that to the other side was deemed highly desirable.

It's an expensive calculation, so probably standard beancounters don't do it.

Chris
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: How to tune the bonus for having the move.

Post by Tord Romstad »

mclane wrote:glaurung is not a weak program...
I didn't say it was.
don't be so modest, tord.
I'm not being modest. "Weak" and "strong" are not very precisely defined terms, and mean different things for different people (to me, almost every chess program released during the last 15 years is terrifyingly strong). As an engine author, it would be inappropriate for me to describe my own engine as being strong or weak. My task is to write the program, and to explain how it works. Measuring the strength is the task of testers like you. Categorising the program as "weak" or "strong" based on the results you produce is the task of the individual user.
:)

Tord