Texel 1.03

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Texel 1.03

Post by tpetzke »

Thanks. 10 parameters to form a psq table is already a lot.

For the queen I have only one that scales the piece centralization bonus relatively to material value and mobility.
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine
User avatar
RJN
Posts: 303
Joined: Fri Jun 21, 2013 5:18 am
Location: Orion Spiral Arm

Re: Texel 1.03

Post by RJN »

Fantastic, I'll be importing this into your excellent DroidFish app!
User avatar
Sylwy
Posts: 4943
Joined: Fri Apr 21, 2006 4:19 pm
Location: IAȘI - the historical capital of MOLDOVA
Full name: Silvian Rucsandescu

Re: An impressive chess engine - Texel 1.03 !

Post by Sylwy »

Here is my test:

http://www.talkchess.com/forum/viewtopi ... 981#553981

Congratulations to the author !

SilvianR :wink:
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.03

Post by petero2 »

RJN wrote:Fantastic, I'll be importing this into your excellent DroidFish app!
Good idea! DroidFish is actually the reason I implemented MultiPV support in texel. It may be a little known feature of DroidFish, but if you long press on the analysis area while the engine is analyzing, a menu pops up. There you can select "More Variations" to enable MultiPV mode.

I should warn you though that SMP support is currently disabled in texel for android. For some reason the engine crashes quickly inside locking primitives when I let it use more than one thread. I don't know if this is because of a bug in texel or because of a bug in the C++11 / std::thread implementation on android. I believe texel is "helgrind clean" on linux, even though some false positives are reported because helgrind does not understand std::atomic and the locking used by std::shared_ptr.
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.03

Post by petero2 »

tpetzke wrote:Thanks. 10 parameters to form a psq table is already a lot.

For the queen I have only one that scales the piece centralization bonus relatively to material value and mobility.
Ten parameters is no problem for my optimization program. I decided to implement separate MG/EG PSTs for the queen. I added 34 new parameters and optimized them together with the old evaluation parameters. After 5-6 hours a local optimum was found. I then played a 32000 game match against texel 1.03 using time control 1+0.08. The result according to bayeselo was:

Code: Select all

Rank Name          Elo      +      - games   score   oppo.   draws 
   1 TexelHead     5.1    3.1    2.2 32000   51.6%    -5.1   39.8% 
   2 Texel103     -5.1    2.2    3.1 32000   48.4%     5.1   39.8% 
   1 TexelHead   5.1 32000.0 (16514.5 : 15485.5)
                     32000.0 (16514.5 : 15485.5) Texel103   -5.1
   2 Texel103   -5.1 32000.0 (15485.5 : 16514.5)
                     32000.0 (15485.5 : 16514.5) TexelHead   5.1
           Tex Tex
TexelHead      999
Texel103     0    
So +10.2 elo. Here is the patch in case someone is interested: http://dl.dropboxusercontent.com/u/8968 ... _pst.patch
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Texel 1.03

Post by tpetzke »

Wow, 5-6 hrs is really really fast. I'm using a kind of genetic algorithm for parameter tuning but it is 50 times slower, as I'm using real matches as fitness function, and this takes time. Everything else than playing games failed so far for me.

Congratulations

Thomas...
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Texel 1.03

Post by michiguel »

tpetzke wrote:
I have developed a special optimization program that computes all parameters in the texel evaluation function. Not a single value was decided by me. Even though I sometimes felt the urge to "correct" some of the values that looked weird to me, I managed to resist.
Welcome to the club :-)

Thomas...
I filled up my application to the club around 2006 but I truly submitted around 2008, I think. As with any prestigious club, they give you a fancy jacket. This is the one:

Image

After a while, it feels really comfortable, seriously!!

Miguel
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Texel 1.03

Post by michiguel »

petero2 wrote:Version 1.03 of my chess engine Texel is now available for download from http://dl.dropboxusercontent.com/u/89684995/texel103.7z

The largest user visible changes are SMP support, MultiPV support and a re-tuned evaluation function which makes the engine play more aggressively.

There are 7 compiled versions included:

texel-arm : For the armv7-a architecture. Should work on most modern android devices.
texel32.exe : For 32-bit windows systems with SSE42 and POPCOUNT.
texel32old.exe : For 32-bit windows systems without SSE42 and POPCOUNT.
texel64 : For 64-bit linux intel systems with SSE42 and POPCOUNT.
texel64.exe : For 64-bit windows intel systems with SSE42 and POPCOUNT.
texel64amd.exe : For 64-bit windows systems with SSE42 and POPCOUNT.
texel64old.exe : For 64-bit windows systems without SSE42 and POPCOUNT.

Texel 1.03 scores about 66% (+112 elo) against Texel 1.02 on my linux computer at very fast time controls, using one core.

Changes meant to improve playing strength:
- Multi-threaded (SMP) search.
- Remove moves before the last zeroing move from the repetition history list before starting search.
- Removed bogus transposition table store in Search::iterativeDeepening().
- Disable aspiration window logic when searching for a faster mate.
- Added null move verification search.
- Prefetch entries from the main transposition table.
- Bonus for candidate passed pawns.
- Skip move ordering after enough moves to trigger LMP have been searched.
- Implemented pawn storm bonus for opposite castling positions.
- Removed the Botvinnik-Markoff extension.
- More aggressive LMR.
- Added knowledge for KBpKB, KNpKB, KBpKN and KNpK endgames.
- Store endgame flag in material hash table.
- Optimized lots of evaluation function parameters.
- More consistent evaluation of different classes of pawnless endgames. KQK, KRK, KQKM, KBBK, KBNK, KQKR, KQKMM, KMMKM (M = B or N).

Other changes:
- MultiPV-support.
- Mate distance pruning.
- Evaluation correction for 7 knights vs 3 queens.
- Display engine evaluation using "info string" when starting search in analysis mode.
- Changed internal parameter handling to make it easier to switch between UCI parameters and compile-time constants.

Enjoy!
Congratulations!

I can't wait to re-build the gauntlet I use to test Gaviota and include 1.03, which seems it will be stronger than the (soon to be released) Gaviota version I have now. No so simple to find many good stable opponents in Linux and Texel has been always excellent.

Miguel
User avatar
RJN
Posts: 303
Joined: Fri Jun 21, 2013 5:18 am
Location: Orion Spiral Arm

Re: Texel 1.03

Post by RJN »

petero2 wrote:
RJN wrote:Fantastic, I'll be importing this into your excellent DroidFish app!
Good idea! DroidFish is actually the reason I implemented MultiPV support in texel. It may be a little known feature of DroidFish, but if you long press on the analysis area while the engine is analyzing, a menu pops up. There you can select "More Variations" to enable MultiPV mode.

I should warn you though that SMP support is currently disabled in texel for android. For some reason the engine crashes quickly inside locking primitives when I let it use more than one thread. I don't know if this is because of a bug in texel or because of a bug in the C++11 / std::thread implementation on android. I believe texel is "helgrind clean" on linux, even though some false positives are reported because helgrind does not understand std::atomic and the locking used by std::shared_ptr.
Hi Peter, are there any plans to add the ability to run more than one engine at a time in DroidFish, so that engines can compete against each other?

Thanks for the tip about MultiPV, I didn't know that.

While I have your attention, how does one disable opening books in DroidFish? Minimum setting is 5 moves, and I don't see where it's possible to select no book. Also, are tablebase hits displayed anywhere in the engine output, or am I missing where that is shown? I have Critter and Gaviota engines installed, which should use the TBs, but never show any hits displayed. However, I do see the TB stats on a square when I press on a piece in an endgame position, so assume tablebases are configured correctly. (I have put all the 5-piece Gaviota on my smartphone in the default folder)
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.03

Post by petero2 »

RJN wrote:Hi Peter, are there any plans to add the ability to run more than one engine at a time in DroidFish, so that engines can compete against each other?

Thanks for the tip about MultiPV, I didn't know that.

While I have your attention, how does one disable opening books in DroidFish? Minimum setting is 5 moves, and I don't see where it's possible to select no book. Also, are tablebase hits displayed anywhere in the engine output, or am I missing where that is shown? I have Critter and Gaviota engines installed, which should use the TBs, but never show any hits displayed. However, I do see the TB stats on a square when I press on a piece in an endgame position, so assume tablebases are configured correctly. (I have put all the 5-piece Gaviota on my smartphone in the default folder)
There are currently no plans to add support for engine matches. You can use chess for android for that feature though.

You can not disable the opening book in droidfish, but you can create an empty polyglot book and use it. Creating an empty polyglot book is very easy as all you have to do is create an empty file and rename it so the filename ends with .bin