Open letter to chess programmers

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: 24+ hours ...

Post by Sven »

laoliveirajr wrote:Where is a pipe ("|") in the evidence, during the execution spins like a propeller fan!
You reported this:
Already on the second day with the same screen:

Code: Select all

...
Engine search: 1/10000 |
and I took that for granted so I assumed it did not print anything after the "|".
In task manager each version of Capivara appears using a 25% of the Core2Quad.
That would indeed indicate that the problem is not a problem of the tool but of your engine not terminating the search.

Sven
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: 24+ hours ...

Post by Sven »

lucasart wrote:Well I still don't find it. I can't find EPD anywhere on this website in fact. It would really help if they could write that page in english and put the EPD in the download package...
The page is in Dutch *and* English, and this is the current EPD download link :-)

Sven
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: 24+ hours ...

Post by lucasart »

It just hangs here, and doesn't produce anything. I see that 8 processes of my engine are running, but the output stream is empty

Code: Select all

$ ./run-simtest-uci ./Engines/discocheck_4.1 8 1 < ./simcsvn1.unix.epd
Did anyone manage to get it to work in Linux with an UCI engine ? How ?
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
mar
Posts: 2559
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: 24+ hours ...

Post by mar »

The uci script uses go infinite and stop after a timeout, so there are only two possibilities:
- there is a problem with the script itself
- engines don't handle go infinite and/or stop properly
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: Open letter to chess programmers

Post by rvida »

Laskos wrote:
asanjuan wrote: I guess what would be the percentage of coincidence if we execute the fingerprint N times with the same engine.

Can this test give us a (somehow) error margin? Has anyone tried this test?
with ~8,000 positions, an error of ~ 0.5% 1 standard deviation, if I remember well.
Adam Hair wrote:I think that the SD is even lower for most engines (excluding Rybka 3 and related engines).
Some engines maintain persistent context between searches (eg. history tables, positional gain tables, etc). This might increase the error margin because every search becomes dependent on the previous one. And with random jitter in search time the error/randomness accumulates. Sending 'ucinewgame' before position setup helps in such cases (if the engine indeed clears all the state information when receiving this command).

just my 2c

Richard
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: 24+ hours ...

Post by lucasart »

mar wrote:The uci script uses go infinite and stop after a timeout, so there are only two possibilities:
- there is a problem with the script itself
- engines don't handle go infinite and/or stop properly
Thanks. That explains everything. DiscoCheck doesn't handle the "stop" command (because I hate writing ugly ifdef's and pateform specific code). However, it handles the "go movetime", so I can modify the script to do that instead.

On the other hand, I don't really care, as I'm really not interested in these tournaments. I was just curious as to what this fingerprint was.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
laoliveirajr
Posts: 138
Joined: Tue Sep 25, 2012 11:39 pm
Location: Brasilia DF Brazil

Re: Open letter to chess programmers

Post by laoliveirajr »

.

It would be possible to find a solution similar to the SIM03 - Similary tester version 03 (available on the download page of the Komodo) to generate fingerprints.

I believe SIM03 run well with almost all engines.

Missing only generate the file with 10,000 positions to run with SIM03 !!!

.
kinderchocolate
Posts: 454
Joined: Mon Nov 01, 2010 6:55 am
Full name: Ted Wong

Re: 24+ hours ...

Post by kinderchocolate »

lucasart wrote:
mar wrote:The uci script uses go infinite and stop after a timeout, so there are only two possibilities:
- there is a problem with the script itself
- engines don't handle go infinite and/or stop properly
Thanks. That explains everything. DiscoCheck doesn't handle the "stop" command (because I hate writing ugly ifdef's and pateform specific code). However, it handles the "go movetime", so I can modify the script to do that instead.

On the other hand, I don't really care, as I'm really not interested in these tournaments. I was just curious as to what this fingerprint was.
Lucas, any possibility for DiscoCheck supporting infinite analysis and skills level?
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: 24+ hours ...

Post by lucasart »

kinderchocolate wrote:
lucasart wrote:
mar wrote:The uci script uses go infinite and stop after a timeout, so there are only two possibilities:
- there is a problem with the script itself
- engines don't handle go infinite and/or stop properly
Thanks. That explains everything. DiscoCheck doesn't handle the "stop" command (because I hate writing ugly ifdef's and pateform specific code). However, it handles the "go movetime", so I can modify the script to do that instead.

On the other hand, I don't really care, as I'm really not interested in these tournaments. I was just curious as to what this fingerprint was.
Lucas, any possibility for DiscoCheck supporting infinite analysis and skills level?
OK: the next release will handle the stop command (hence infinite analysis).

As for skill level, you can already limit the strength by using a depth and/or nodes limit. As far as I know there are two ways of limiting ELO:
(i) quick and dirty: each skill level corresponds to a limit in terms of depth and/or nodes (probably a min depth and max nodes is best).
(ii) more proper: start by implementing multi-PV, and choose randomly from the various PVs, with parameters that effectively control the skill level.

Typically what happens is that:
(i) plays very strong positionally, dominates the newbie player, and makes a stupid mistake every now and then (due to low depth) that looses some games. not a very realistic way of simulating a weak player.
(ii) is a more balanced blend, playing moves that are both positionally inferior and tactically (but some blunder margin can avoid really stupid tactics).

But whether you do (i) or (ii), you will never make an engine simulate a weak player in a credible way. That's not how weak players play, and the computer will play random moves that don't follow any plan. A weak player will play with a plan: a stupid one, and sometimes sticking to the plan to stubbornly disregarding important things, but still with some plan.

Best way is to play against real humans on a chess server :-)

Long story short, I may implement (i) or perhaps (ii) but I don't know when. Also there's the problem of calibrating those, so that the ELO value is somewhat realistic (this is a difficult, perhaps it could be tuned based on user feedback, but I don't see any reliable way of doing it).
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
kinderchocolate
Posts: 454
Joined: Mon Nov 01, 2010 6:55 am
Full name: Ted Wong

Re: 24+ hours ...

Post by kinderchocolate »

lucasart wrote:
kinderchocolate wrote:
lucasart wrote:
mar wrote:The uci script uses go infinite and stop after a timeout, so there are only two possibilities:
- there is a problem with the script itself
- engines don't handle go infinite and/or stop properly
Thanks. That explains everything. DiscoCheck doesn't handle the "stop" command (because I hate writing ugly ifdef's and pateform specific code). However, it handles the "go movetime", so I can modify the script to do that instead.

On the other hand, I don't really care, as I'm really not interested in these tournaments. I was just curious as to what this fingerprint was.
Lucas, any possibility for DiscoCheck supporting infinite analysis and skills level?
OK: the next release will handle the stop command (hence infinite analysis).

As for skill level, you can already limit the strength by using a depth and/or nodes limit. As far as I know there are two ways of limiting ELO:
(i) quick and dirty: each skill level corresponds to a limit in terms of depth and/or nodes (probably a min depth and max nodes is best).
(ii) more proper: start by implementing multi-PV, and choose randomly from the various PVs, with parameters that effectively control the skill level.

Typically what happens is that:
(i) plays very strong positionally, dominates the newbie player, and makes a stupid mistake every now and then (due to low depth) that looses some games. not a very realistic way of simulating a weak player.
(ii) is a more balanced blend, playing moves that are both positionally inferior and tactically (but some blunder margin can avoid really stupid tactics).

But whether you do (i) or (ii), you will never make an engine simulate a weak player in a credible way. That's not how weak players play, and the computer will play random moves that don't follow any plan. A weak player will play with a plan: a stupid one, and sometimes sticking to the plan to stubbornly disregarding important things, but still with some plan.

Best way is to play against real humans on a chess server :-)

Long story short, I may implement (i) or perhaps (ii) but I don't know when. Also there's the problem of calibrating those, so that the ELO value is somewhat realistic (this is a difficult, perhaps it could be tuned based on user feedback, but I don't see any reliable way of doing it).
Thanks. I think the priority is i, it'd make the engine more useful to me. Regards about calibration, the only thing you can do is paring the engine against humans. Anything else is just guessing but let's worry about it later : -)