Ordo v0.9.8.0

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

Moderators: hgm, Rebel, chrisw

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

Re: Ordo v0.9.8.0

Post by michiguel »

Norm Pollock wrote:
michiguel wrote:
michiguel wrote:
Norm Pollock wrote:Hi Miguel,

I cannot get the average switch (-a) to work. It keeps outputting an average Elo of 2400 regardless of what I set the switch (eg 2300, 2500, 2800). Please check.

-Norm
Yes, Adam just pointed this out to me. Looks like I broke it. I will fix it ASAP.

Miguel
Fixed, v0.9.8.1 released
https://sites.google.com/site/gaviotach ... e/releases

Thanks for reporting, and sorry about that!

Miguel
Hi,

I realize now that when I found the "average" bug, I was actually using "v0.8", not "v0.9.8". That may have mislead you in locating the bug since I had thought I was using "v0.9.8".

Btw anytime you change the standard output page of Ordo, even the slightest, it causes my Ordo related tool "emOrdo" (which inserts Elo tags into a pgn file based on Ordo output) to crash.

Such was the case with the new lines on the bottom of the standard output page:

White advantage = 0.00
Draw rate (equal opponents) = 50.00 %

It is now fixed.

-Norm
Sorry about that. I had no idea I was breaking it. Anyway, as Ordo was growing and new features were added, I somehow had to incorporate those thing in the output.

I do not think things will change much in terms of the output from now on, but I think I should write in the readme file the format guaranteed to be kept. For instance, I think that it is a good idea to standardized certain things: a) First line is blank, b) second contains the header, and c) rating list ends with the first blank line. Anything else after that is information. etc.

Probably, it would be easier for people that want to incorporate Ordo in certain scripts to use the -c switch (comma separated values output). The format is standard, the only thing I need to specified is what the columns are. In fact, there are libraries to read csv in many languages, which will make things very easy.

Looking at this, I see that in the normal output I have

Code: Select all

   # PLAYER                       : RATING    POINTS  PLAYED    (%)
But in the comma separated value format I have

Code: Select all

"Player","Rating","Error","Score","Games","(%)"
I should probably name the columns the same since Score = Points, and Games = Played. I need to polish all this before Ordo becomes 1.0.

Miguel



Miguel
Zhu.Jianzhao
Posts: 59
Joined: Tue Sep 18, 2012 11:30 am
Location: Nanjing, China

bug report

Post by Zhu.Jianzhao »

bug report

I compiled ordo v0.9.8.1 on debian i686, no warnings, no errors.

pgn file "my.pgn" was generated by cutechess-cli, a round-robin tournament with four engines (parameters: -repeat -game 2 -round 50), thus total 600 games.

Code: Select all

./ordo -p my.pgn

the command above works fine!

Code: Select all

./ordo -a 2400 -p my.pgn
the command above works fine!

Code: Select all

./ordo -a 2400 -A engineD -p my.pgn -o ratings.txt

the command above is still OK!

So I know the rating is engineA > engineB > engineC > engineD now.

Here,

Code: Select all

./ordo -a 2400 -A engineA -p my.pgn -o ratings.txt -W -s1000
./ordo -a 2400 -A engineB -p my.pgn -o ratings.txt -W -s1000
./ordo -a 2400 -A engineC -p my.pgn -o ratings.txt -W -s1000
the three commands above are all OK!

BUT if

Code: Select all

./ordo -a 2400 -A engineD -p my.pgn -o ratings.txt -W -s1000
the program halt, output is

Code: Select all

... ...
... ...

==> Simulation:76/1000

Convergence rating calculation (cycle #1)

phase iteration    deviation    resolution
  0       2     22.333325563      63.17978

I have to ctrl+c.

adding -D

Code: Select all

./ordo -a 2400 -A engineD -p my.pgn -o ratings.txt -W -s1000 -D
the program halt, and output is

Code: Select all

... ...
... ...

==> Simulation:35/1000

Convergence rating calculation (cycle #1)

phase iteration    deviation    resolution
  0       2     16.171309492      51.58426

I changed the names of engineA, engineB, engineC, engineD, the -A parameter with name of the engine of the lowest rating always caused problem. (on 32bit Debian Wheezy)

I compiled the same source on windows 8.1 x64, mingw, the ordo.exe works well, it seems the problem only occurs on Debian i686
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: bug report

Post by michiguel »

Zhu.Jianzhao wrote:bug report

I compiled ordo v0.9.8.1 on debian i686, no warnings, no errors.

pgn file "my.pgn" was generated by cutechess-cli, a round-robin tournament with four engines (parameters: -repeat -game 2 -round 50), thus total 600 games.

Code: Select all

./ordo -p my.pgn

the command above works fine!

Code: Select all

./ordo -a 2400 -p my.pgn
the command above works fine!

Code: Select all

./ordo -a 2400 -A engineD -p my.pgn -o ratings.txt

the command above is still OK!

So I know the rating is engineA > engineB > engineC > engineD now.

Here,

Code: Select all

./ordo -a 2400 -A engineA -p my.pgn -o ratings.txt -W -s1000
./ordo -a 2400 -A engineB -p my.pgn -o ratings.txt -W -s1000
./ordo -a 2400 -A engineC -p my.pgn -o ratings.txt -W -s1000
the three commands above are all OK!

BUT if

Code: Select all

./ordo -a 2400 -A engineD -p my.pgn -o ratings.txt -W -s1000
the program halt, output is

Code: Select all

... ...
... ...

==> Simulation:76/1000

Convergence rating calculation (cycle #1)

phase iteration    deviation    resolution
  0       2     22.333325563      63.17978

I have to ctrl+c.

adding -D

Code: Select all

./ordo -a 2400 -A engineD -p my.pgn -o ratings.txt -W -s1000 -D
the program halt, and output is

Code: Select all

... ...
... ...

==> Simulation:35/1000

Convergence rating calculation (cycle #1)

phase iteration    deviation    resolution
  0       2     16.171309492      51.58426

I changed the names of engineA, engineB, engineC, engineD, the -A parameter with name of the engine of the lowest rating always caused problem. (on 32bit Debian Wheezy)

I compiled the same source on windows 8.1 x64, mingw, the ordo.exe works well, it seems the problem only occurs on Debian i686
Thanks a lot for reporting it. I will certainly take a look.
Can you send me those games to the email listed here?
https://sites.google.com/site/gaviotach ... me/contact

If you send me those, I may be able to reproduce the problem.
If your games are somehow private, you can extract only the results, which will also compact the file.
https://sites.google.com/site/gaviotach ... ects=0&d=1

Miguel
Norm Pollock
Posts: 1056
Joined: Thu Mar 09, 2006 4:15 pm
Location: Long Island, NY, USA

Re: Ordo v0.9.8.0

Post by Norm Pollock »

Miguel,

I noticed that the AVERAGE of the actual Elo's computed by Ordo 9.8.1 are about 76 Elo pts higher than expected, in both the default case and in cases using "-a".

Also (this one is trivial, but it affects my personal software), when using "-E" for elostat style output, ordo's output of "rating.dat" starts with only 1 blank line at the top, while elostat's output of "rating.dat" starts with 2 blank lines at the top.

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

Re: Ordo v0.9.8.0

Post by michiguel »

Norm Pollock wrote:Miguel,

I noticed that the AVERAGE of the actual Elo's computed by Ordo 9.8.1 are about 76 Elo pts higher than expected, in both the default case and in cases using "-a".
I may have fixed this already in a development unreleased version. I will send you that version later for you to check (when I get home tonight).

Sorry about all these issues. I have been refactoring the whole code for 2-3 months, cleaning up, consolidating, and making all memory dynamic. At the end, it will be a much better code, but in the meantime, few things have been popping up.

Also (this one is trivial, but it affects my personal software), when using "-E" for elostat style output, ordo's output of "rating.dat" starts with only 1 blank line at the top, while elostat's output of "rating.dat" starts with 2 blank lines at the top.

I can modify that.

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

Re: Ordo v0.9.8.0

Post by michiguel »

michiguel wrote:
Norm Pollock wrote:Miguel,

I noticed that the AVERAGE of the actual Elo's computed by Ordo 9.8.1 are about 76 Elo pts higher than expected, in both the default case and in cases using "-a".
I may have fixed this already in a development unreleased version. I will send you that version later for you to check (when I get home tonight).

Sorry about all these issues. I have been refactoring the whole code for 2-3 months, cleaning up, consolidating, and making all memory dynamic. At the end, it will be a much better code, but in the meantime, few things have been popping up.

Also (this one is trivial, but it affects my personal software), when using "-E" for elostat style output, ordo's output of "rating.dat" starts with only 1 blank line at the top, while elostat's output of "rating.dat" starts with 2 blank lines at the top.

I can modify that.

Miguel
-Norm
Please try the beta versions here (0.9.8.2-beta33):
https://sites.google.com/site/gaviotach ... eding_edge

Miguel
User avatar
Ajedrecista
Posts: 1971
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Ordo v0.9.8.0: a little off-topic (about Pairings 0.3).

Post by Ajedrecista »

Hello Miguel:
michiguel wrote:Please try the beta versions here (0.9.8.2-beta33):
https://sites.google.com/site/gaviotach ... eding_edge

Miguel
I find very interesting your programme Pairings 0.3 for Round Robin tournaments but I think it should have an option to save the pairings in a Notepad, not only print them in the cmd (the Notepad option is better for a large number of players). I like the possibilities you offer with the different output formats.

By the way, I wrote a similar programme two years ago. It seems that we use the same algorithm:

Code: Select all

~\pairings-v0.3-win>pairings-win32 -p6 -c1 -f0
Round 1
    1:  1 - 6
    2:  2 - 5
    3:  3 - 4

Round 2
    4:  6 - 4
    5:  5 - 3
    6:  1 - 2

Round 3
    7:  2 - 6
    8:  3 - 1
    9:  4 - 5

Round 4
   10:  6 - 5
   11:  1 - 4
   12:  2 - 3

Round 5
   13:  3 - 6
   14:  4 - 2
   15:  5 - 1

Code: Select all

Pairings (using the Schurig algorithm) in a single Round Robin tournament with  6 different players.
 
Number of games in this tournament:   15 games.
 
---------
 
ROUND  1:
 
 1- 6
 2- 5
 3- 4
 
---------
 
ROUND  2:
 
 6- 4
 5- 3
 1- 2
 
---------
 
ROUND  3:
 
 2- 6
 3- 1
 4- 5
 
---------
 
ROUND  4:
 
 6- 5
 1- 4
 2- 3
 
---------
 
ROUND  5:
 
 3- 6
 4- 2
 5- 1
 
---------
 
End of Berger's tables for a single Round Robin tournament.
 
Thanks for using Round_Robin_pairings_generator.
For an odd number of players:

Code: Select all

~\pairings-v0.3-win>pairings-win32 -p5 -c1 -f0
Round 1
  bye:  1
    1:  2 - 5
    2:  3 - 4

Round 2
  bye:  4
    3:  5 - 3
    4:  1 - 2

Round 3
  bye:  2
    5:  3 - 1
    6:  4 - 5

Round 4
  bye:  5
    7:  1 - 4
    8:  2 - 3

Round 5
  bye:  3
    9:  4 - 2
   10:  5 - 1

Code: Select all

Pairings (using the Schurig algorithm) in a single Round Robin tournament with  5 different players.
 
Number of games in this tournament:   10 games.
 
--------------------
 
ROUND  1:
 
Player  1 has a bye.
 2- 5
 3- 4
 
--------------------
 
ROUND  2:
 
Player  4 has a bye.
 5- 3
 1- 2
 
--------------------
 
ROUND  3:
 
Player  2 has a bye.
 3- 1
 4- 5
 
--------------------
 
ROUND  4:
 
Player  5 has a bye.
 1- 4
 2- 3
 
--------------------
 
ROUND  5:
 
Player  3 has a bye.
 4- 2
 5- 1
 
--------------------
 
End of Berger's tables for a single Round Robin tournament.
 
Thanks for using Round_Robin_pairings_generator.
Regards from Spain.

Ajedrecista.
Norm Pollock
Posts: 1056
Joined: Thu Mar 09, 2006 4:15 pm
Location: Long Island, NY, USA

Re: Ordo v0.9.8.0

Post by Norm Pollock »

Miguel,

Re: beta 33:

1. the issue with EloStat output has been corrected.

2. the issue with the offset added to the average has changed.
the offset is no longer +76, it is now +86 elo points. Meaning that using
"-a 2500" will give an AVERAGE elo of about 2586.

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

Re: Ordo v0.9.8.0

Post by michiguel »

Norm Pollock wrote:Miguel,

Re: beta 33:

1. the issue with EloStat output has been corrected.

2. the issue with the offset added to the average has changed.
the offset is no longer +76, it is now +86 elo points. Meaning that using
"-a 2500" will give an AVERAGE elo of about 2586.

-Norm
Could you send me the pgn file you observe this? (or a link). I cannot reproduce the problem here. If it is too big, you strip the moves with ordoprep.

My email is here
https://sites.google.com/site/gaviotach ... me/contact

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

Re: Ordo v0.9.8.0: a little off-topic (about Pairings 0.3).

Post by michiguel »

Ajedrecista wrote:Hello Miguel:
michiguel wrote:Please try the beta versions here (0.9.8.2-beta33):
https://sites.google.com/site/gaviotach ... eding_edge

Miguel
I find very interesting your programme Pairings 0.3 for Round Robin tournaments but I think it should have an option to save the pairings in a Notepad, not only print them in the cmd (the Notepad option is better for a large number of players). I like the possibilities you offer with the different output formats.

By the way, I wrote a similar programme two years ago. It seems that we use the same algorithm:

Code: Select all

~\pairings-v0.3-win>pairings-win32 -p6 -c1 -f0
Round 1
    1:  1 - 6
    2:  2 - 5
    3:  3 - 4

Round 2
    4:  6 - 4
    5:  5 - 3
    6:  1 - 2

Round 3
    7:  2 - 6
    8:  3 - 1
    9:  4 - 5

Round 4
   10:  6 - 5
   11:  1 - 4
   12:  2 - 3

Round 5
   13:  3 - 6
   14:  4 - 2
   15:  5 - 1

Code: Select all

Pairings (using the Schurig algorithm) in a single Round Robin tournament with  6 different players.
 
Number of games in this tournament:   15 games.
 
---------
 
ROUND  1:
 
 1- 6
 2- 5
 3- 4
 
---------
 
ROUND  2:
 
 6- 4
 5- 3
 1- 2
 
---------
 
ROUND  3:
 
 2- 6
 3- 1
 4- 5
 
---------
 
ROUND  4:
 
 6- 5
 1- 4
 2- 3
 
---------
 
ROUND  5:
 
 3- 6
 4- 2
 5- 1
 
---------
 
End of Berger's tables for a single Round Robin tournament.
 
Thanks for using Round_Robin_pairings_generator.
For an odd number of players:

Code: Select all

~\pairings-v0.3-win>pairings-win32 -p5 -c1 -f0
Round 1
  bye:  1
    1:  2 - 5
    2:  3 - 4

Round 2
  bye:  4
    3:  5 - 3
    4:  1 - 2

Round 3
  bye:  2
    5:  3 - 1
    6:  4 - 5

Round 4
  bye:  5
    7:  1 - 4
    8:  2 - 3

Round 5
  bye:  3
    9:  4 - 2
   10:  5 - 1

Code: Select all

Pairings (using the Schurig algorithm) in a single Round Robin tournament with  5 different players.
 
Number of games in this tournament:   10 games.
 
--------------------
 
ROUND  1:
 
Player  1 has a bye.
 2- 5
 3- 4
 
--------------------
 
ROUND  2:
 
Player  4 has a bye.
 5- 3
 1- 2
 
--------------------
 
ROUND  3:
 
Player  2 has a bye.
 3- 1
 4- 5
 
--------------------
 
ROUND  4:
 
Player  5 has a bye.
 1- 4
 2- 3
 
--------------------
 
ROUND  5:
 
Player  3 has a bye.
 4- 2
 5- 1
 
--------------------
 
End of Berger's tables for a single Round Robin tournament.
 
Thanks for using Round_Robin_pairings_generator.
Regards from Spain.

Ajedrecista.
The idea of this was to have a function that could tell what players play each other if #game, round, and number of players are provided. In other words, it is a stateless function that could be incorporated to software like cutechess etc. But, Jeremy Bernstein fixed whatever bug he had in his modification to run TCEC and this was not used.

Miguel