Search found 145 matches

by Fulvio
Thu Apr 04, 2019 7:47 am
Forum: Computer Chess Club: General Topics
Topic: Lc0 51010
Replies: 135
Views: 20929

Re: Lc0 51010

I do not agree and I consider memorizing patterns of search as doing a search. Communication requires a shared terminology: https://www.chessprogramming.org/Evaluation https://www.chessprogramming.org/Search#Search_Algorithms How can you know that Nf7+ is bad without having in mind Nf7+ Qxf7 Qxf7 R...
by Fulvio
Wed Apr 03, 2019 6:00 pm
Forum: Computer Chess Club: General Topics
Topic: Lc0 51010
Replies: 135
Views: 20929

Re: Lc0 51010

knowing patterns help but you need search to verify. 4r2k/q5pp/8/3Q2N1/8/8/5PPP/6K1 w - - 3 1 Otherwise you play here Nf7+ and lose after Qxf7 You picked a bad example. I just checked lc0-network41752 and it sees both patterns: the smothered mate and the back-rank mate. The patterns are weighted: N...
by Fulvio
Fri Mar 29, 2019 3:35 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: On the establishment of domains wherein magic numbers can and cannot exist
Replies: 1
Views: 622

Re: On the establishment of domains wherein magic numbers can and cannot exist

A bishop on G8 is the easiest case, because all the relevant squares are aligned and well spaced. We can than decompose magic * bitboard into (magic * 2^square1) + (magic * 2^square2) + ... without worrying about collision and interference. With very few lines of code we can quickly find 48 valid** ...
by Fulvio
Wed Mar 27, 2019 5:21 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: No bishop magics with fixed shift 8
Replies: 17
Views: 3779

Re: No bishop magics with fixed shift 8

Some futher considerations, I hope the math is correct. For a bishop in C1, let's define: bitboard_D2 = 1 << 11; bitboard_E3 = 1 << 20; bitboard_D2_E3 = bitboard_D2 + bitboard_E3; If we search for a 4 bits hash, we know that: idx_bitboard_D2 > 0 && idx_bitboard_D2 < 16 idx_bitboard_E3 > 0 && idx_bit...
by Fulvio
Tue Mar 26, 2019 8:54 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: No bishop magics with fixed shift 8
Replies: 17
Views: 3779

Re: No bishop magics with fixed shift 8

we have selected the smallest possible numbers for hash values which avoid collisions with previously chosen hash values. That's the problem. We know that collisions can be valid. Picking powers of 2 generates big gaps, so it is necessary to demonstrate that all those gaps are filled with invalid c...
by Fulvio
Mon Mar 25, 2019 7:43 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: No bishop magics with fixed shift 8
Replies: 17
Views: 3779

Re: No bishop magics with fixed shift 8

and now the minimum magic number is 0x40100c0a00000 If you try this as a magic number for the C1 square you will see that it does not work. Yes, it is not the minimum valid magic number, but it is a guaranteed lower bound; i.e. any smaller number cannot be a valid magic number. It also provides an ...
by Fulvio
Mon Mar 25, 2019 4:42 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: No bishop magics with fixed shift 8
Replies: 17
Views: 3779

Re: No bishop magics with fixed shift 8

I see, given a 64-bit magic number and a bitboard with only one square, we can divide it in 3 parts considering how it affects the index: the first (64 - n_hashbits - square - 1) bits are ignored, due to the right shift; the last (square) bits are ignored, due to the left shift; the bits in the midd...
by Fulvio
Sat Mar 23, 2019 9:41 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: No bishop magics with fixed shift 8
Replies: 17
Views: 3779

Re: No bishop magics with fixed shift 8

For instance, the square F6 (45) has a occupancy mask that includes the squares B2 (9), C3 (18), D4 (27), E5 (36), G5 (38), E7 (52), and G7 (54). Assuming we are looking for magics that have a right shift of 7, we can determine the minimum possible magic number as: 2^(64-7-9) + 2^(64-7-18+1) = 0x10...
by Fulvio
Fri Mar 15, 2019 10:06 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Further progress on new move generator
Replies: 28
Views: 3382

Re: Further progress on new move generator

Perft is a poor measure for engine move-generation speed anyway, for several reasons: * It emulates full-width search, while an engine is spending most of its time in QS. * It requires explicit checking of the moves for legality, while most engines just test for King capture in the daughter node * ...
by Fulvio
Fri Mar 15, 2019 9:58 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Further progress on new move generator
Replies: 28
Views: 3382

Re: Further progress on new move generator

In the example of 75 mln. nodes/sec you gave above you forgot to mention what kind of CPU you tested this on, this is not very useful either. That's why I posted the code, and I should have also posted how to compile it. After downloading the lc0 code from github and saving that code into lc0/src/c...