HAL9000

HAL9000
"It just isn't conceivable that you can design a program strong enough to beat players like me."
Showing posts with label Articles. Show all posts
Showing posts with label Articles. Show all posts

February 19, 2018

A few (!) updates remain to be shared

Indeed, Chesstroid is full of comments reporting tons of updates which makes it a source of fresh information. This contribution of the visitors brings a dynamic ambiance which hides my slowness in sharing things in time. So, thanks to everyone for covering me!

Anyways, i'll be back again soon to complete the saga, in line with chronological order of the releases.

February 11, 2018

Life is a Game of Chess

December and January were full of bad surprises in my life. It just reminded once again that life is a chess game too, more or less complex, where you have to protect your valuable pieces from the other color and to achieve this, you may have to sacrifice some of the other pieces to survive.

No matter what number of squares are present on the board, it's a game that begins and ends for a purpose.

Despite all difficulties, i hope i can continue to allocate enough time to keep this "still unique" blog alive and kicking, in near future because it proved to be worth the effort.

This January of 2018, Chesstroid has reached 500.000 hits after 3 years without any artificial support or sponsoring. Today i'm proud of what it has become. To be honest, it's gone way beyond what i'd imagined in the beginning.

Thanks for all those who supported. You're all amazing...

January 21, 2018

3 more articles about Kasparov-Deep Blue and AI

If you are not old enough, you didn't see the days when a world champion could beat dozens of best computer chess programs even in a simul.

In 1997, the equilibrum has shifted in favor of the computers, after Deep Blue has been the first computer to beat a human world champ in a match.

The 6 game match is a historical moment of the human vs machine, so there have been many books & publications & media articles about it.

Let me share two of them, although not very recent, but still interesting to read:

1) @ THE CONVERSATION:
Twenty Years on from Deep Blue vs Kasparov: How A Chess Match Started the Big Data Revolution

2) @ TIME MAGAZINE:
Did Deep Blue Beat Kasparov Because of a System Glitch?


3) @MEDIUM.COM: CONVERSATIONS WITH TYLER COWEN (BONUS PACK):
...and the third, as a bonus, speaks about the future of AI from Kasparov's point of view. Don't forget to read what GK suggests about a match opportunity between Magnus Carlsen and the strongest computer program available (Stockfish?).

Garry Kasparov on AI, Chess and the Future of Creativity

May 2, 2017

Certainly not a clone if not exactly the same

No, i'm not referring to a chess engine clone. Just figured out that countless posts taken from Chesstroid are floating around the web since a while, probably in parallel to the popularity increase of this modest source about mobile chess engine releases.

Now that Chesstroid reached more than 320K hits after more than 3 years without using embarrassing ads or speculations on chess forums to attract undeserved attention, it's still not understandable why web spamming finds it interesting.
Graph of Blogger page views
So, i'm laughing when i read this not-a-clone which says:

CorCfish is an try to support Cfish, similarly to what used to be achieved with Stockfish to procure CorChess. Despite the fact that the purpose is also no longer extactly the similar intimately, the process seems to be identical. I do not know what the end result is however you’ll be able to take a look at it to expose your opinion.
GET link to my repository given here CorCfish Extended 20170423.ACH for arm7

In case of hassle downloading out of your PC, use your cell instrument or discuss with THIS POST (http://--------.com/2016/11/download-problems-with-box-boxed-bugs.html).

And below is the original text:

CorCfish is an attempt to improve Cfish, in a similar way to what was done with Stockfish to obtain CorChess. Even though the aim may be not extactly the same in detail, the method looks similar. I don't know what the outcome is but you can test it to reveal your opinion.

GET CorCfish Extended 20170423.ACH for arm7

In case of trouble downloading from your PC, use your mobile device or refer to THIS POST.

As you can easily notice, the text is not exactly the same. So we can force ourselves to think they are not cloning. No, certainly not...

April 16, 2017

Restarting soon

It's been a while since I had posted something here. I stop sometimes but computer chess doesn't.

There's a lot to share in the to-do-list already and I guess there will be fun.

Rapidroid has finally seen 19800 Android games with 110 engines, proving itself as a stable test environment of 360 games for each participant. That makes an error margin of +-30 ELO and an optimum duration to cope with updates in the future.

So, stay tuned for the following.

December 5, 2016

Too genius to be funny with only a script

This video reminded me once again why it's difficult for chess to suit the needs of mass media. Maybe that's because chess requires a creative mind and dedication while mass media needs watchers to consume what's being offered, without too many questions.

One would notice that the used script is very classical and way too limited for the first and unique world champ of the US. The show is expected to be funny but it only looks weird.

Indeed, R.J.Fischer succeeded all by himself with insane dedication to chess. I think the rise of the media pressure before and after the 1972 match was the beginning of the unbearable load for Fischer.

He could handle any difficulty in a chess game but not this.

November 18, 2016

Download problems with Box: Boxed Bugs for Bucks?

Yes indeed, i've just seen the same download problem on my on PC. Cliclking on the Download button does nothing at all!

Some web topics say it's because of bandwidth limit exceeded, some others are not even seriously answered by the help desk.

Finally i've tried below alternative method with success in Chrome Browser:
1) Copy the link
2) Open an new incognito tab (A regular tab may not work!)
3) Paste the link
4) Manually change "app.box.com...." address to "m.app.box.com...."

The trick is to simulate a mobile browser. As some blog visitors had reported they've got the same problem on PC but not on their smartphones, there should be something related to the O/S. Why it works on Android and not on Windows remains a mystery. I'm boxed...

November 5, 2016

Video: How do modern chess engines work?

Note that this video is not new at all but anything explained here is valid today as well. Presented by Daylen Lang, one of the maintainers of Stockfish website, this briefing explains what are the basics of developing a modern chess engine.

If you never ever watched THIS, you must do so now. 56 minutes, be a god boy, be patient...

October 23, 2016

Hash Baby Hash!

A popular frequently asked question by most chess engine users is: "How many memory should i set for hash tables?".

It's totally natural that the dilemma persists because there is not crystal clear answer to it. There are many parameters in the unknown equation:
* Computing speed
* Available RAM
* RAM access speed
* Time control used
* Time management style of the engine
If there are others that i'm not aware of, i'd say it's possible. You tell me.

And before i share what i've got in hand, a few notices:
* I just tell what i know and how i proceed for myself. I can't suggest i'm always correct.
* Most engines use hash size as power of 2. Even if you calculate let's say 395MB for the optimum size, you'll have to choose between 256 and 512MB.
* The optimum size is different from one engine to another.

After reading a lot here and there since years, i think various methods may come handy. Use them and decide for your case:

1) GIVE ALL YOU'VE GOT:

Check the available free RAM in your system, be it Windows or Android and allocate the nearest half of it for engine-to-engine games or the nearest lower size for a single engine. This is the simplest method which doesn't care about the engine. It may cause slowdowns in extreme cases like bullet games on a device with plenty of RAM.

Example: My Galaxy Note 2 has 2GB RAM with approx 900MB free on average. In this case, 900/2=450MB rounded down to the nearest 256MB is an acceptable choice for an engine tourney or i can set 512MB when i play vs Komodo (I wouldn't do that btw...)

2) USE THE UTILTY:

The old utility i've shared HERE in my repository at box.com is designed to help calculate the hash size. It uses two different selectable formulas: Direct correlation with CPU frequency or Houdini 1.5 formula. I think both methods are insufficient with today's software/hardware combinations and they don't match well with Android but they can give an overall idea anyway.

Example with Std.Formula: Galaxy Note 2 has 4 cores running at 1600Mhz. For the default 900+1 TC of Rapidroid and 60 moves/game on average, the utility calculates 204.8MB and suggests 128MB.

Example using Houdini formula: There's no Fritz Benchmark for Android, so an interpolation is necessary. My PC is getting 5000 with Fritz Benchmark and runs SF7 at 2800 knps. As Galaxy Note 2 runs SF7 at 750 knps, it should get (5000/2800)*750 = 1340 knps with Fritz. I enter this to the utility. With all other parameters unchanged, it calculates 214.4MB and suggests 128MB once again.

3) USE KOMODO METHOD:

For this, you absolutely need to monitor the hash usage during a test run. On a PC, Arena does the job. On an Android device, there was nothing until the latest build of Droidfish by Aprijal Pasaribu but now you can do the same on your cell phone too.

Komodo method is based on the assumption that the engine may need to use up to 3 times the average time per move of a typical game of 60 moves played with Fisher clocks. They suggest that the hash size must be high enough to ensure such 3x time usage does not fill more than 40% of the hash.

Above description is not easy to understand at once but it sounds reasonable, though i still find 40% is way too safe.

Komodo team says: Take the minutes as second and add the increment. Since Rapidroid uses 900+1 TC, for me that makes a test of (15+1) x 3 = 48 seconds. Therefore i run Komodo 10 on Galaxy Note 2 with hash display version of Droidfish. With 256MB hash, the usage trend goes like the following:
12" 16%
18" 24%
24" 32%
31" 41% => LIMIT EXCEEDED HERE
33" 44%
35" 46%
39" 54%
42" 55%
52" 65%
61" 73%
70" 80%
84" 86%
104" 93%

According to Komodo practice, my 256MB setting is low and i need something like 48 / ( 31 / 41 * 40 ) * 256 = 406 MB for 900+1 TC. However, i will continue to use 256MB no matter what. The 3x should correspond to 60% which still seems safe for me.

4) COMPARE KNPS:

This method is simple too but can mislead when used for shortest time control targets. You may simply conduct a series of fixed time analysis from the starting position, using a different hash setting for each run, from the smallest to the biggest, one by one. You will notice a quick increase in smallest settings but it will diminish somewhere. You must then stop and take the setting where the knps don't increase anymore. The test duration of each run must match the TC you want to use. Don't forget to use 3x for Fischer TC. For fixed time per move, 1x should be enough for the beginning and middlegame but i didn't verify 1x for endgame phase.

Conclusion: There is no high precision value to calculate. You'd better practice all above methods and choose the most common suggestion. Remember that your games or engine tests will not be non sense just because you have choosen 128MB instead of a better 256MB or vice versa. You only have to beware the extremely bad settings.

July 19, 2016

Komodo 10 for Android: Will it overtake Stockfish?

I wanna keep cautious with Komodo 10 after the disappointment with 9.3 and 9.42 which both showed very poor progress over 9.2.

As of today, Stockfish leads all major rating lists based on Windows platform. Android is no exception for Komodo. The reptile is currently performing much weaker on Android 32-bit, about 30 ELO behind Stockfish 7.

Bearing in mind that current Stockfish development versions promise serious improvements over SF7 already, i think Komodo 10 needs a remarkable boost to cope with them.

Further Rapidroid gauntlets will show exactly how much the gap changed in last months.

Nevertheless, i would be more than happy to see more threats around against Stockfish, other new engines ported to Android. According to TCEC Season-9, some competitive engines clearly overtake the old Critter 1.6a, which is still #3 behind Stockfish and Komodo.

Imagine that we could have Jonny, Andsacs, Fire, Nirvana, Raptor too... running in Rapidroid. Wow!

Then i woke up! It seems i had a dream...

May 11, 2016

Rapidroid to include 17 more engines, not very soon though

As my cellphone subscription doesn't allow roaming, the vacation days have partly been a good opportunity to use my Galaxy Note I as an alternative test device in order to find out how many previously disqualified engines can come back to life after the xboard time management fix of CfA.

So, here's a quick summary of what i did on my vacation:
* Qualified 20 Xboard engines: Beowulf, Bruja, Buzz, Carnivor, Darky, FairyMax, GES, Gfc, Gk, Gullydeckel, Laser, MicroMax, Mizar, Morphy, PurpleHaze, Romichess, Sjaak, Soldat, Sunsetter, Toledo
* Qualified 1 Xboard engine update: GreKo 2015 (long awaited step forward since 12.5)
* Qualified 3 UCI engine updates: Danasah 6, Rhetoric 1.4.3, Sayuri 2015.05.07
* Qualified 4 new UCI engines: Chiron 3, Cinnamon 2.0, Rodin 8.0, Danasah Random
* Abandoned 7 Xboard engines due to incompatibility with Fischer clocks: Danchess, Faile, Jester, Kitteneitor, Mango Paola, Witz, Woodpecker. Although they play well with fixed time per move setting, this secondary time control always acted as a handbrake in Rapidroid.
* Tested again 14 xboard engines without success: ChessOne, Chess Rikus, Dabbaba, Evolchess, Jfresh, Joanna, Kiwi, Minace, msKcp, Napoleon, Sachy, Wing, Xpdnt

This makes 125 Android engines in total and including 14 other standalone programs, next release will potentially include 139 programs.

Of course, this is possible if can manage to finish and process all necessary additional games. The task is scary but switching to a common time control may help go quicker.

Four days worth forgetting about chess

A view to the lake of Ohrid, Macedonia

After months of professional time pressure, i've finally found a few days to breathe and forget about everything that pulls my strings, facing above view. Indeed, it was fun to remember the meaning of the word "holidays".

May 5, 2016

Does Rapidroid require a refurbishing?

Due to the UCI time control management error of Chess for Android which has recently been identified thanks to Pedro, the author of DanaSah, i've got a little bit worried about the accuracy of Rapidroid for which i take heavy care from the beginning.

I finally concluded that there may be a slight error distributed on all UCI engines related to how many times they played against XB engines which support incremental clock, like ExChess, Crafty, Resp and some others.

This is simply related to the default setting of 900+2 of the experiment. The above mentioned bug of CfA implies that xb engines correctly use 2 seconds incremens while their UCI rivals use only 2 milliseconds. Although the unused difference is sent back with the following move to the engine via time command, overall time usage behaviour of UCI engines becomes less agressive than expected, leading to a slight accumulation.

In some extreme cases, i guess there may be up to 3 ELO loss for some UCI engines and up to 10 ELO gain for xb engines which play with incremental clock.

The unfair ELO gain doesn't apply to xb engines which play with time per move setting only.

In the big picture, there's nothing to worry about given that the overall statistical error margins are much wider, around +/- 30 ELO.

But i remain sceptical. As a corrective action, i already switched to 900+0 without increment in ongoing gauntlets of Cinnamon, Rhetoric and Sayuri. Until Aart Bik fixes CfA, i will keep 0 increment.

Regarding the XB engines, there are quite a lot to start playing incremental (Fischer) clock. I'm about to finish compatibility tests and approximately 90% of them can switch to the default time control of Rapidroid, which means most of the rounds can be played at once without splitting into two separate tournaments. Speed matters!

Another good news is that the last fix by Aart will probably add 15 more engines to the ranking.

And the bad news is the same, once again: Thousands of games must be replayed to reflect all the changes...

April 17, 2016

Carlsen finally makes it clear

DW: "Would you participate in a public game against a computer in the near future - or is that not an option for you? The last one I remember was Vladimir Kramnik against Deep Fritz in 2006."

MC: "I personally never wanted that. I find it much more interesting to play humans. And also, of course, now that they have become so strong in a game like that, I wouldn't stand a chance."

The reigning world champ Magnus Carlsen finally gives a clear answer to tons of past speculations about his chances against Stockfish or Komodo in a human vs machine match.

We knew such match would never happen.

So, would you still think that his statement "never wanted that" is just past tense and therefore doesn't apply to the future? Or would you still predict that a huge prize for losing such a match would push him to change his mind?

Read the interview made by Deutche Welle: HERE

February 29, 2016

Worked hard enough...Back to 64 squares

It took longer than expected for me to get back to what i enjoy from what i must accomplish to ensure the conditions necessary for spending more time doing what i enjoy.

I read again what i just wrote above and it's hard to understand even for the author of the sentence...

Let me try to express in a shorter way: I was too busy at work!

Now that i can (or i believe i can) breathe a little bit and keep on sharing new stuff, i must first confess that it's extremely hard to find a good balance between the possibilities offered by a loaded professional life and the precious amount of time it steals from the remaining part that you always wanna keep enjoyable, fruitful, as pleasant as possible.

I read once again what i just wrote above. If once again, it's hard to understand, nevermind!

I'd better keep posting things one could understand better.

January 25, 2016

Pewatronic Master Chess Computer

Yes, there are still people doing this. 1180 CHF makes only 1075 EUR in exchange of 2199 ELO. It's only for the eyes and the fingers but not for the wallet at all anymore.

By the way, i must admit that years ago, it was much more fun to play with these beauties than running a 3000+ ELO engine in an Android smartphone. It was a pleasure to never forget...

See more at PEWATRONIC

January 17, 2016

Running Deep Fritz 14 under Chess for Android

"Bonjour" means Hello in French usually. But the reason i'm saying this to myself today refers exactly to an alternative usage when you meet someone who has just waken up in the morning.

Yes, i just woke up to the fact that Fritz 14 engine bundled with Chessbase Online for Android can be used under CfA and Droidfish. It can even play tournament games under CfA. And besides, it plays Fischer clock games too. Quite impressing!

I'd purchased Chessbase a few weeks ago. After a little practice it was clear to me that the app is handy for loading and analyzing games but it disappointed with missing clocks. Chessbase does not use any timing and runs the UCI engines until a user interruption. Only infinite analysis mode.

Somehow, i didn't notice any OEX engine added to the engine list of CfA. What triggered my attention lately was a user comment published here in this blog. It suggested that Deep Fritz is working with CfA. What? Really? How?

I checked my engine list in CfA again. Nothing...

But the addicted mind can't give up easily. I've navigated into to the root of my tablet to find a folder dedicated to Chessbase app. Here it is! And a lib folder disclosed what i was looking for, as seen in below screenshot:
The two underlined files are the engine binaries. Usually it's possible to copy them to the home folder, rename them and install as new engine from CfA. I did so and the practice met the theory.
The engine can use up to 8 threads and 2GB hash. I choose 4 threads and 256MB hash. Done! A quick test of 1 minute thinking shows 500+ knps and all 4 cores are running. Perfecto!

Next step is a timed game using 180+1 vs a single thread engine strong enough to cope with Fritz. Robbolitto is a good option.

And finally, the happy end shown below is quite attractive for Rapidroid. I just can't wait to push Fritz forward into the burning arena of the mobile engines.
Repeating the whole thing with Droidfish requires similar steps. You just have to place the binary in UCI folder of Droidfish and select it through the "manage engines" menu.

Finally, i can't not upload any binary to the repository since the engine is not freely distributable. I don't even know whether it would work that way, without the app installed. The simplest way to run Fritz under Android is to buy the Chessbase app HERE.

December 28, 2015

Stockfish 121215 to overtake Komodo 9.3 in Rapidroid

The fish is back on duty...


This time, the roof above 3300 ELO is fully in flames, hotter than hell.

In contrast to my expectations, the development version of Stockfish looks unstoppable in Rapidroid after 9 rounds played out of 17. I guess we will soon celebrate a new owner of the crown.

The ELO gain over Stockfish 6 is visible and looks reflected, as seen in the snapshot. The biggest surprise here is Komodo 9.3. It plays more drawish than 9.2 with default settings and loses more often to other engines like Critter, Mamba and Firenzina, not only Stockfish. It's incredible that Stockfish 121215 lost only one game so far, not to Komodo but to Critter. Highly interesting.

I'm surprised with the results and i can't wait to see how this race will end. To follow up!

December 27, 2015

Arm5 to Arm7 migration tests and findings with various engines

Soon after Jim has released a nice bouquet of arm7 compiles, i've conducted some quick tests in order to verify whether these upgraded binaries really bring additional strength. As always, i need to decide whether they are eligible for replacing their elder ARM5 brothers in Rapidroid.

We all know that arm7 should, in theory, perform better than arm5 but does the practice meet the theory every time? Neuh!

I didn't write anything since years but i'm not far from programming principles. Let's just state many unexpected parameters can effect the outcome. The most remarkable one is the source code itself. An arm7 compile can significantly overcome an arm5 compile only if the source code includes algorithms which would benefit from the differences between arm5 and 7. Otherwise, there's no reason for the performance to be different.

You want me to be clearer? Let's take the example of the most basic arithmetic formula: You would have a source code to multiply any user input number by 10. You would prepare the c++ code and compile it for arm5, then for arm7. Both binaries would probably do the job in exactly the same time, no matter what target architecture is choosen.

Coming back to recent arm7 releases by Jim Ablett, i wanted to compare the performance of both targets the quickest possible way. For this, i usually run the 3 minutes benchmark from initial position and compare the kNps together with the search depth reached by the engine.

I assume here that any binary with more depth and with higher kNpsthan the other should be superior.

In case the same depth applies to both builds but the kNps favors one of them, i decide according to the ratio between the kNps. If the ratio is significant enough like more than 10%, the higher kNps shows the better build.

If above criterias don't allow a selection, we must have two builds with very close depth and kNps scores. In this case a minimum of 100 head-to-head games at 180+2 may help decide. Or not...

If still no visible gap, the last thing to do is to conduct two gauntlets in parallel using same hardware and software conditions against another engine of similar strength.

Following this method, i've tested some JA compiles on Rockchip 1.4 Ghz quadcore processor and  i've come to below verdicts (All scores given as arm5 followed by arm7):

One thing that may have mattered is that i didn't use the newest arm5 compiles that JA releases with arm7, instead i kept using the older arm5 releases rated in Rapidroid. Unexpected results below may also be related to the efficiency of the compiles from different date.

* Bison 9.11: Old ARM5 is better than new ARM7.
The benchmark gave 89 kNps vs 85 at depth 17 vs 17. Head to head 100 games result is 55.5 vs 44.5 favors arm5 by 38 ELO.  Then i've done twin gauntlets vs Mini Rodent 1.0. Arm5 scored 52-48 (+14 ELO) while Arm7 scored 44.5-55.5 (-38 ELO). All 3 matches favored arm5 by ~45 ELO.

* Crafty 24.1: Old ARM5 is better than new ARM7.
362 kNps at depth 21 drops to 347 kNps at depth 21. No need to analyze more because v25.0 is already released.

* Crafty 25.0: ARM7 is clearly better.
332 kNps at depth 20 is way lower than 427 kNps at depth 20. Depths are the same but arm7 showed shorter time to depth performance thanks to higher nps.

* Discocheck 5.2.1: Old ARM5 is better than new ARM7.
Arm7 is disappointing. 144kNps @ D18 drops to 134 kNps @ D18. Arm-7 is slower considering the depths step up slightly faster with ARM5.

* ExChess 7.71b: ARM7 is clearly better.
387 kNps @ D24 rises to 555 kNps @ D25

* Fridolin 2.0.0: No verdict yet. I must do twin gauntlets vs other engines or keep ARM5.
1192 kNps @ D18 are close to 1142 kNps @ D18

* Hakkapeliitta 3.0: Old ARM5 is clearly better.
There's something terribly wrong with Arm7 compile because 439 kNps @ D23 vs 62 kNps @ D18 is more than a usual gap. Arm7 is very very slow.

* Phalanx XXIV: ARM7 is slightly better
154 kNps @ D15 rises to 170 kNps @ D15

* RedQueen 1.1.97: ARM7 is clearly better
174 kNps @ D21 rises to 198 kNps @ D22

* Scorpio 2.7.7: ARM7 is clearly better
The result is to blame on SMP function which still doesn't work for arm5. Hash setting of scorpio.ini works but arm5 build can't use 4 threads. Arm7 wins easily. 215 kNps @ D21 vs 786 kNps @ D24 !!! Parallel search rocks!

* Senpai 1.0: Old ARM5 is clearly better.
294 kNps @ D22 drops to 263 kNps @ D21. Arm7 compile may have suffered from something.

And finally, given the number of surpises noticed, i've finally wanted to check Stockfish 121215 which will probably take back its crown from Komodo 9.3 in Rapidroid. This time ARM7 overcomes ARM5 easily: 441 kNps @ D23 rises to 645 kNps @ D23. This result clearly confirms ARM7 is much better.

Now, i guess Jim will take a deeper look to discover what happened to Bison, Hakkapeliitta, DiscoCheck and Senpai. Meanwhile i will keep the relevant ARM5 builds running in Rapidroid.

Others? Migrating from ARM5 to ARM7 seems healthy. This means: Many gauntlets and reprises await for me.

December 25, 2015

Merry Christmas and Happy New Year to all chess friends


Chess has progressed in 2015. So did the computers and processors. So did the computer chess. But, unfortunately, it's hard to think that the same applied to worldwide peace and freedom and happiness.
Nevertheless, i will still dream for a peacefull world where the only battles would happen on 64 squares of the chessboards...
...and i wish a Merry Christmas and a happy new year to all.