IPON Rating's List Bash Script

Code, algorithms, languages, construction...
User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

IPON Rating's List Bash Script

Post by kingliveson » Mon Sep 05, 2011 11:01 pm

The heading is just meant to be provocative.

As you know, IPON is the only chess engine rating's list refusing to make available the games. Again, I want to stress the rating's list integrity is not in question, but rather the uncommon, hardline position even after being pressed by chess enthusiasts since its inception. You can't run for public office and claim not to be a public figure.

What prompted this thread was he (Ingo), posting stripped game files which is just result and not actual data, meaning you cant analyze the games.

For Example:
[White "Houdini 2.0 STD"]
[Black "Deep Junior 12.5"]
[Result "1-0"]
1-0

[White "Naum 4.2"]
[Black "Houdini 2.0 STD"]
[Result "0-1"]
0-1
Many find this to be more interesting as you can check games and see what went right or wrong:
[Event "Patched, Blitz:2'"]
[Site "VirtualBox"]
[Date "2011.09.05"]
[Round "1"]
[White "Houdini 1.5a x64"]
[Black "IvanHoe 9.47b x64"]
[Result "1-0"]
[ECO "C47"]
[Annotator "0.32;0.12"]
[PlyCount "107"]
[TimeControl "120"]

{Dual Core W=16.5 ply; 2,704kN/s B=16.9 ply;
2,571kN/s} 1. e4 {Both last book move [%eval 32,17] [%emt 0:00:03]} e5 {
[%eval 12,17] [%emt 0:00:04]} 2. Nc3 {(Nf3) [%eval 21,15] [%emt 0:00:02]} Nf6 {
(Nc6) [%eval 13,18] [%emt 0:00:04]} 3. Nf3 {[%eval 25,15] [%emt 0:00:02]} Nc6 {
[%eval 13,17] [%emt 0:00:01]} 4. Be2 {(Bc4) [%eval 19,15] [%emt 0:00:05]} Bd6 {
[%eval 7,17] [%emt 0:00:03]} 5. O-O {[%eval 21,17] [%emt 0:00:02]} O-O {
[%eval 12,16] [%emt 0:00:01]} 6. a4 {(d3) [%eval 15,17] [%emt 0:00:13]} Qe7 {
(a6) [%eval 2,17] [%emt 0:00:05]} 7. Bc4 {(d3) [%eval 27,16] [%emt 0:00:02]}
Bc5 {[%eval 17,17] [%emt 0:00:05]} 8. d3 {[%eval 24,17] [%emt 0:00:04]} Nb4 {
[%eval 17,16] [%emt 0:00:01]} 9. a5 {(Qe2) [%eval 25,17] [%emt 0:00:02]} a6 {
(c6) [%eval 22,17] [%emt 0:00:05]} 10. Bd2 {[%eval 22,15] [%emt 0:00:02]} Ba7 {
[%eval 21,17] [%emt 0:00:04]} 11. Ra3 {(Ra4) [%eval 27,16] [%emt 0:00:01]} d6 {
[%eval 11,17] [%emt 0:00:03]} 12. Rb3 {[%eval 16,16] [%emt 0:00:03]} Nc6 {
[%eval 13,17] [%emt 0:00:01]} 13. Nd5 {[%eval 15,16] [%emt 0:00:01]} Nxd5 {
[%eval 12,16] [%emt 0:00:01]} 14. exd5 {[%eval 21,16] [%emt 0:00:02]} Nd4 {
[%eval 14,17] [%emt 0:00:01]} 15. Nxd4 {[%eval 21,15] [%emt 0:00:00]} Bxd4 {
[%eval 14,16] [%emt 0:00:00]} 16. Be3 {(Qe2) [%eval 19,17] [%emt 0:00:02]} Bxe3
{[%eval 19,18] [%emt 0:00:06]} 17. fxe3 {[%eval 20,15] [%emt 0:00:00]} f5 {
[%eval 18,19] [%emt 0:00:03]} 18. Qd2 {(Rb4) [%eval 25,16] [%emt 0:00:04]} Qd8
{(Ra7) [%eval 14,16] [%emt 0:00:02]} 19. e4 {(c3) [%eval 23,15] [%emt 0:00:02]}
f4 {[%eval 20,17] [%emt 0:00:02]} 20. d4 {[%eval 26,18] [%emt 0:00:01]} Qf6 {
[%eval 20,17] [%emt 0:00:01]} 21. dxe5 {[%eval 28,17] [%emt 0:00:01]} Qxe5 {
[%eval 20,15] [%emt 0:00:00]} 22. Rb4 {[%eval 28,18] [%emt 0:00:02]} Rf7 {
(Ra7) [%eval 24,18] [%emt 0:00:05]} 23. Be2 {[%eval 31,17] [%emt 0:00:02]} h5 {
(g6) [%eval 25,17] [%emt 0:00:05]} 24. h3 {(Qe1) [%eval 32,16] [%emt 0:00:01]}
g6 {[%eval 40,16] [%emt 0:00:03]} 25. Rf2 {(Rf3) [%eval 36,15] [%emt 0:00:01]}
Kf8 {(Kg7) [%eval 37,16] [%emt 0:00:03]} 26. Rf3 {
(Rc4) [%eval 45,16] [%emt 0:00:01]} Ke8 {(g5) [%eval 39,16] [%emt 0:00:01]} 27.
Rc3 {(Qe1) [%eval 54,16] [%emt 0:00:01]} Kd8 {
(Kd7) [%eval 37,16] [%emt 0:00:00]} 28. Qe1 {[%eval 54,17] [%emt 0:00:01]} Qf6
{(Qg5) [%eval 37,16] [%emt 0:00:00]} 29. Rbc4 {
(Qf2) [%eval 54,18] [%emt 0:00:02]} Re7 {[%eval 37,16] [%emt 0:00:00]} 30. Qf2
{[%eval 79,17] [%emt 0:00:02]} h4 {(Rf7) [%eval 148,17] [%emt 0:00:11]} 31.
Rxc7 {[%eval 122,15] [%emt 0:00:01]} Rxc7 {[%eval 148,16] [%emt 0:00:00]} 32.
Qb6 {[%eval 119,14] [%emt 0:00:00]} Qe7 {[%eval 135,17] [%emt 0:00:05]} 33. e5
{[%eval 119,14] [%emt 0:00:00]} Qxe5 {[%eval 152,17] [%emt 0:00:04]} 34. Rxc7 {
(Qxc7+) [%eval 121,13] [%emt 0:00:02]} Ke8 {
(Qe3+) [%eval 127,17] [%emt 0:00:05]} 35. Bd3 {[%eval 101,15] [%emt 0:00:01]}
Bf5 {[%eval 135,16] [%emt 0:00:01]} 36. Qxb7 {[%eval 214,15] [%emt 0:00:02]}
Rd8 {[%eval 233,17] [%emt 0:00:06]} 37. Rg7 {
(Rh7) [%eval 215,16] [%emt 0:00:04]} Qe3+ {[%eval 152,14] [%emt 0:00:04]} 38.
Kh2 {(Kh1) [%eval 371,14] [%emt 0:00:01]} Qg3+ {[%eval 0,11] [%emt 0:00:00]}
39. Kh1 {[%eval 215,15] [%emt 0:00:00]} Qe1+ {[%eval 325,15] [%emt 0:00:02]}
40. Bf1 {[%eval 371,14] [%emt 0:00:00]} Bd7 {
(Qxf1+) [%eval 300,15] [%emt 0:00:01]} 41. Qxa6 {[%eval 295,12] [%emt 0:00:01]}
f3 {[%eval 307,15] [%emt 0:00:00]} 42. gxf3 {
(Qd3) [%eval 302,15] [%emt 0:00:01]} Kf8 {[%eval 298,14] [%emt 0:00:00]} 43.
Rxg6 {[%eval 355,16] [%emt 0:00:01]} Bxh3 {[%eval 298,12] [%emt 0:00:00]} 44.
Rg1 {[%eval 355,15] [%emt 0:00:00]} Bxf1 {[%eval 293,13] [%emt 0:00:00]} 45.
Qxf1 {[%eval 388,16] [%emt 0:00:01]} Qxf1 {[%eval 293,12] [%emt 0:00:00]} 46.
Rxf1 {[%eval 359,15] [%emt 0:00:00]} Rb8 {[%eval 342,15] [%emt 0:00:01]} 47. b3
{(Rb1) [%eval 409,18] [%emt 0:00:01]} Rc8 {(Ra8) [%eval 340,15] [%emt 0:00:00]}
48. Ra1 {(a6) [%eval 447,18] [%emt 0:00:01]} Ke7 {
(Ra8) [%eval 506,18] [%emt 0:00:02]} 49. a6 {[%eval 465,17] [%emt 0:00:01]} Ra8
{[%eval 559,19] [%emt 0:00:01]} 50. a7 {[%eval 492,17] [%emt 0:00:01]} Kd7 {
(Kf6) [%eval 605,19] [%emt 0:00:02]} 51. f4 {
(Kg2) [%eval 578,16] [%emt 0:00:01]} Kc7 {(Kc8) [%eval 652,16] [%emt 0:00:00]}
52. f5 {(Kg2) [%eval 663,16] [%emt 0:00:01]} Kd7 {
(Kd8) [%eval 730,16] [%emt 0:00:01]} 53. Kg2 {[%eval 684,15] [%emt 0:00:00]}
Kc7 {[%eval 797,16] [%emt 0:00:01]} 54. f6 {(Kh3) [%eval 709,14] [%emt 0:00:00]
} 1-0


The discussion anyhow led to me suggesting I could produce similar data without playing a single game. Now, the source below was done in a hurry without much effort. It generates randomly, "games," and outputs results to a chess pgn game file.

Chess Rating's List Simulator:

Code: Select all

#!/bin/bash

MAXENGINECOUNT=22
MAXGAMES=100

# Engine's one position is fixed in this sample
# could be any engine

engine_one_position=1
engine_two_position=2

# Value obtained from weight

engine_one_random_number=0
engine_one_random_number=0

# Chess Engine

chess_engine[1]="Houdini 2.0 STD"
chess_engine[2]="Zappa Mexico II"
chess_engine[3]="Naum 4.2"
chess_engine[4]="Loop 13.6/2007"
chess_engine[5]="Deep Onno 1-2-70"
chess_engine[6]="Deep Shredder 12"
chess_engine[7]="Crafty 23.3 JA"
chess_engine[8]="Jonny 4.00 32b"
chess_engine[9]="Deep Sjeng c't 2010 32b"
chess_engine[10]="spark-1.0 SSE42"
chess_engine[11]="HIARCS 13.2 MP 32b"
chess_engine[12]="Protector 1.4.0 x64"
chess_engine[13]="Strelka 2.0 B"
chess_engine[14]="Spike 1.4 32b"
chess_engine[15]="Gull 1.2"
chess_engine[16]="Deep Rybka 4.1 SSE42"
chess_engine[17]="Deep Junior 12.5"
chess_engine[18]="Stockfish 2.1.1 JA"
chess_engine[19]="Hannibal 1.1"
chess_engine[20]="Umko 1.2 SSE42"
chess_engine[21]="Critter 1.2"
chess_engine[22]="Komodo64 3 SSE42"

# Engine Weights

engine_weight[1]=54
engine_weight[2]=11
engine_weight[3]=24
engine_weight[4]=10
engine_weight[5]=11
engine_weight[6]=25
engine_weight[7]=5
engine_weight[8]=3
engine_weight[9]=20
engine_weight[10]=13
engine_weight[11]=15
engine_weight[12]=14
engine_weight[13]=7
engine_weight[14]=21
engine_weight[15]=16
engine_weight[16]=42
engine_weight[17]=18
engine_weight[18]=46
engine_weight[19]=14
engine_weight[20]=5
engine_weight[21]=45
engine_weight[22]=43

# Engine Color

engine_colour[1]="black"
engine_colour[2]="white"

# switch 

switch_side=1

# Result

match_result[1]="1-0"
match_result[2]="0-1"
match_result[3]="1/2-1/2"

game_outcome=3

# Winners and losers are picked here

Random_Game()
{
  count=0

  while [ "$count" -lt $MAXGAMES ]
  do
    Get_Random_Number_One;
    Get_Random_Number_Two;

    if [ $engine_one_random_number -gt $engine_two_random_number ]; then      
      if [ $switch_side -eq 1 ]; then
	game_outcome=1
      else
	game_outcome=2
      fi

    elif [ $engine_one_random_number -eq $engine_two_random_number ]; then
      game_outcome=3

    else     
      if [ $switch_side -eq 1 ]; then
	game_outcome=2
      else
	game_outcome=1
      fi

    fi

    Record_Game;     
    let "count += 1"    
  done
}

# Get weight based random number

Get_Random_Number_One()
{
  RANGE=${engine_weight[$engine_one_position]}
  engine_one_random_number=$RANDOM
  let "engine_one_random_number %= RANGE"
}

Get_Random_Number_Two()
{
  RANGE=${engine_weight[$engine_two_position]}
  engine_two_random_number=$RANDOM
  let "engine_two_random_number %= RANGE"
}

#write game result to pgn file

Record_Game()
{
  if [ $switch_side -eq 1 ]; then
    echo "[White \"${chess_engine[1]}\"]"
    echo "[Black \"${chess_engine[$engine_two_position]}\"]"
    echo "[Result \"${match_result[$game_outcome]}\"]"
    echo ${match_result[$game_outcome]}
    switch_side=0
  else 
    echo "[White \"${chess_engine[$engine_two_position]}\"]"
    echo "[Black \"${chess_engine[1]}\"]"
    echo "[Result \"${match_result[$game_outcome]}\"]"
    echo ${match_result[$game_outcome]}
    switch_side=1
  fi  
  echo
  
} >>"CRLS.pgn"


#  Start game

Play_Game()
{
  game_count=2
  while [ $game_count -le $MAXENGINECOUNT ]
  do
    engine_two_position=$game_count
    Random_Game;
    let "game_count += 1"
  done   
}

# main

Play_Game;

exit 0
Anyone can compare the files attached and/or generate one using the bash script; IPON data was extracted from IPON rating's list result which was posted earlier today.

IPON's Results:
9/5/2011 5:35:54 PM :

    Program                          Elo    +   -   Games   Score   Av.Op.  Draws

  1 Houdini 2.0 STD                : 2533   15  15  2100    80.7 %   2285   22.8 %
  2 Critter 1.2                    : 2520   51  51   100    45.5 %   2551   45.0 %
  3 Komodo64 3 SSE42               : 2502   52  53   100    43.0 %   2551   42.0 %
  4 Deep Rybka 4.1 SSE42           : 2499   52  52   100    42.5 %   2551   43.0 %
  5 Stockfish 2.1.1 JA             : 2455   54  55   100    36.5 %   2551   39.0 %
  6 Deep Shredder 12               : 2365   62  64   100    25.5 %   2551   27.0 %
  7 Naum 4.2                       : 2356   60  62   100    24.5 %   2551   31.0 %
  8 Spike 1.4 32b                  : 2321   66  69   100    21.0 %   2551   24.0 %
  9 Deep Sjeng c't 2010 32b        : 2316   66  68   100    20.5 %   2551   25.0 %
 10 Deep Junior 12.5               : 2293   70  73   100    18.5 %   2551   21.0 %
 11 Gull 1.2                       : 2269   74  77   100    16.5 %   2551   19.0 %
 12 HIARCS 13.2 MP 32b             : 2256   67  71   100    15.5 %   2551   25.0 %
 13 Hannibal 1.1                   : 2243   66  71   100    14.5 %   2551   25.0 %
 14 Protector 1.4.0 x64            : 2236   77  81   100    14.0 %   2551   18.0 %
 15 spark-1.0 SSE42                : 2228   76  80   100    13.5 %   2551   19.0 %
 16 Deep Onno 1-2-70               : 2197   84  89   100    11.5 %   2551   15.0 %
 17 Zappa Mexico II                : 2188   86  91   100    11.0 %   2551   14.0 %
 18 Loop 13.6/2007                 : 2169   95 102   100    10.0 %   2551   10.0 %
 19 Strelka 2.0 B                  : 2102   95 105   100     7.0 %   2551   12.0 %
 20 Umko 1.2 SSE42                 : 2057  119 106   100     5.5 %   2551    7.0 %
 21 Crafty 23.3 JA                 : 2057   97 106   100     5.5 %   2551   11.0 %
 22 Jonny 4.00 32b                 : 1975  121  24   100     3.5 %   2551    7.0 %
My Result:
9/5/2011 5:38:52 PM :

    Program                          Elo    +   -   Games   Score   Av.Op.  Draws

  1 Houdini 2.0 STD                : 2544   19  19  2100    82.5 %   2275    1.7 %
  2 Critter 1.2                    : 2508   69  70   100    42.0 %   2564    2.0 %
  3 Komodo64 3 SSE42               : 2504   68  69   100    41.5 %   2564    3.0 %
  4 Stockfish 2.1.1 JA             : 2475   69  71   100    37.5 %   2564    3.0 %
  5 Deep Rybka 4.1 SSE42           : 2460   69  71   100    35.5 %   2564    5.0 %
  6 Deep Junior 12.5               : 2364   78  82   100    24.0 %   2564    2.0 %
  7 Naum 4.2                       : 2344   81  87   100    22.0 %   2564    0.0 %
  8 Deep Shredder 12               : 2344   81  87   100    22.0 %   2564    0.0 %
  9 Protector 1.4.0 x64            : 2306   84  90   100    18.5 %   2564    3.0 %
 10 Gull 1.2                       : 2249   95 106   100    14.0 %   2564    0.0 %
 11 HIARCS 13.2 MP 32b             : 2241   96 106   100    13.5 %   2564    1.0 %
 12 Hannibal 1.1                   : 2241   94 103   100    13.5 %   2564    3.0 %
 13 Spike 1.4 32b                  : 2234   98 110   100    13.0 %   2564    0.0 %
 14 Zappa Mexico II                : 2226   99 110   100    12.5 %   2564    1.0 %
 15 Deep Sjeng c't 2010 32b        : 2226   99 110   100    12.5 %   2564    1.0 %
 16 Loop 13.6/2007                 : 2218   99 111   100    12.0 %   2564    2.0 %
 17 spark-1.0 SSE42                : 2201  103 115   100    11.0 %   2564    2.0 %
 18 Deep Onno 1-2-70               : 2151  116 134   100     8.5 %   2564    1.0 %
 19 Strelka 2.0 B                  : 2101  129 137   100     6.5 %   2564    1.0 %
 20 Umko 1.2 SSE42                 : 2052  142  88   100     5.0 %   2564    2.0 %
 21 Crafty 23.3 JA                 : 1964  171   0   100     3.0 %   2564    2.0 %
 22 Jonny 4.00 32b                 : 1964    0   0   100     0.5 %   2564    1.0 %
Sure, it's not perfect, but you get the idea. Yes, I see the draw issues -- again, this was done in hurry. If I really wanted to, it could be done with all the engines playing simulated round-robin tournament. Let me say once again, in no way is this to imply IPON's list is fake or simulated. I just don't understand why the games wont be released.

Mr. Bauer, Tear down this wall!
Attachments
CRLS.txt
Bash source in text since extension is not allowed
(3.3 KiB) Downloaded 349 times
IPON.pgn
IPON's Rating's List Result File
(161.46 KiB) Downloaded 311 times
CRLS.pgn
Chess Rating's List Simulator File
(147.73 KiB) Downloaded 340 times
PAWN : Knight >> Bishop >> Rook >>Queen

ThinkingALot
Posts: 144
Joined: Sun Jun 13, 2010 7:32 am
Contact:

Re: IPON Rating's List Bash Script

Post by ThinkingALot » Tue Sep 06, 2011 7:55 am

kingliveson wrote:I just don't understand why the games wont be released.
Well, I'm glad the games are not being released! Releasing the games would ruin credibility of the list.
Do you know what's gonna happen if the opening positions used in IPON are revealed? Some engine authors may try to optimize their engines to perform well on this particular opening suite. And the prospective ELO gain may be huge: up to 50 ELO. Even if one doesn't try to optimize for these opening positions intentionally, just using them for internal testing would result in engine better suited for these particular positions. So, IMHO, positions and games should remain a top secret ;)

orgfert
Posts: 183
Joined: Fri Jun 11, 2010 5:35 pm
Real Name: Mark Tapley

Re: IPON Rating's List Bash Script

Post by orgfert » Tue Sep 06, 2011 2:52 pm

ThinkingALot wrote:
kingliveson wrote:I just don't understand why the games wont be released.
Well, I'm glad the games are not being released! Releasing the games would ruin credibility of the list.
Do you know what's gonna happen if the opening positions used in IPON are revealed? Some engine authors may try to optimize their engines to perform well on this particular opening suite. And the prospective ELO gain may be huge: up to 50 ELO. Even if one doesn't try to optimize for these opening positions intentionally, just using them for internal testing would result in engine better suited for these particular positions. So, IMHO, positions and games should remain a top secret ;)
By that standard the list has no credibility to ruin. Some programs are already at a disadvantage by the chosen opening suite since some are already good at certain openings in the suite which is the same as if they had been optimized for them, while others are not. This might have been balanced by an ability to learn from past mistakes. But the IPON won't tolerate that and so perform a lobotomy on any program that tries to be smarter than another. It can't be a fair test of which programs are smarter than others. Users of the list will not see a true comparison of realtive strength because some chess brains are crippled and some are not. The whole idea of telling users the relative strength of a chess program is undermined.

This has been pointed out before but one supposes it's a requirement of the guild that one must be a mumpsimus before creating a CC rating list.

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: IPON Rating's List Bash Script

Post by Prima » Tue Sep 06, 2011 9:48 pm

kingliveson wrote:The heading is just meant to be provocative.

As you know, IPON is the only chess engine rating's list refusing to make available the games. Again, I want to stress the rating's list integrity is not in question, but rather the uncommon, hardline position even after being pressed by chess enthusiasts since its inception. You can't run for public office and claim not to be a public figure.

What prompted this thread was he (Ingo), posting stripped game files which is just result and not actual data, meaning you cant analyze the games.

The discussion anyhow led to me suggesting I could produce similar data without playing a single game. Now, the source below was done in a hurry without much effort. It generates randomly, "games," and outputs results to a chess pgn game file.

Chess Rating's List Simulator:

Code: Select all

#!/bin/bash

MAXENGINECOUNT=22
MAXGAMES=100

# Engine's one position is fixed in this sample
# could be any engine

engine_one_position=1
engine_two_position=2

# Value obtained from weight

engine_one_random_number=0
engine_one_random_number=0

# Chess Engine

chess_engine[1]="Houdini 2.0 STD"
chess_engine[2]="Zappa Mexico II"
chess_engine[3]="Naum 4.2"
chess_engine[4]="Loop 13.6/2007"
chess_engine[5]="Deep Onno 1-2-70"
chess_engine[6]="Deep Shredder 12"
chess_engine[7]="Crafty 23.3 JA"
chess_engine[8]="Jonny 4.00 32b"
chess_engine[9]="Deep Sjeng c't 2010 32b"
chess_engine[10]="spark-1.0 SSE42"
chess_engine[11]="HIARCS 13.2 MP 32b"
chess_engine[12]="Protector 1.4.0 x64"
chess_engine[13]="Strelka 2.0 B"
chess_engine[14]="Spike 1.4 32b"
chess_engine[15]="Gull 1.2"
chess_engine[16]="Deep Rybka 4.1 SSE42"
chess_engine[17]="Deep Junior 12.5"
chess_engine[18]="Stockfish 2.1.1 JA"
chess_engine[19]="Hannibal 1.1"
chess_engine[20]="Umko 1.2 SSE42"
chess_engine[21]="Critter 1.2"
chess_engine[22]="Komodo64 3 SSE42"

# Engine Weights

engine_weight[1]=54
engine_weight[2]=11
engine_weight[3]=24
engine_weight[4]=10
engine_weight[5]=11
engine_weight[6]=25
engine_weight[7]=5
engine_weight[8]=3
engine_weight[9]=20
engine_weight[10]=13
engine_weight[11]=15
engine_weight[12]=14
engine_weight[13]=7
engine_weight[14]=21
engine_weight[15]=16
engine_weight[16]=42
engine_weight[17]=18
engine_weight[18]=46
engine_weight[19]=14
engine_weight[20]=5
engine_weight[21]=45
engine_weight[22]=43

# Engine Color

engine_colour[1]="black"
engine_colour[2]="white"

# switch 

switch_side=1

# Result

match_result[1]="1-0"
match_result[2]="0-1"
match_result[3]="1/2-1/2"

game_outcome=3

# Winners and losers are picked here

Random_Game()
{
  count=0

  while [ "$count" -lt $MAXGAMES ]
  do
    Get_Random_Number_One;
    Get_Random_Number_Two;

    if [ $engine_one_random_number -gt $engine_two_random_number ]; then      
      if [ $switch_side -eq 1 ]; then
	game_outcome=1
      else
	game_outcome=2
      fi

    elif [ $engine_one_random_number -eq $engine_two_random_number ]; then
      game_outcome=3

    else     
      if [ $switch_side -eq 1 ]; then
	game_outcome=2
      else
	game_outcome=1
      fi

    fi

    Record_Game;     
    let "count += 1"    
  done
}

# Get weight based random number

Get_Random_Number_One()
{
  RANGE=${engine_weight[$engine_one_position]}
  engine_one_random_number=$RANDOM
  let "engine_one_random_number %= RANGE"
}

Get_Random_Number_Two()
{
  RANGE=${engine_weight[$engine_two_position]}
  engine_two_random_number=$RANDOM
  let "engine_two_random_number %= RANGE"
}

#write game result to pgn file

Record_Game()
{
  if [ $switch_side -eq 1 ]; then
    echo "[White \"${chess_engine[1]}\"]"
    echo "[Black \"${chess_engine[$engine_two_position]}\"]"
    echo "[Result \"${match_result[$game_outcome]}\"]"
    echo ${match_result[$game_outcome]}
    switch_side=0
  else 
    echo "[White \"${chess_engine[$engine_two_position]}\"]"
    echo "[Black \"${chess_engine[1]}\"]"
    echo "[Result \"${match_result[$game_outcome]}\"]"
    echo ${match_result[$game_outcome]}
    switch_side=1
  fi  
  echo
  
} >>"CRLS.pgn"


#  Start game

Play_Game()
{
  game_count=2
  while [ $game_count -le $MAXENGINECOUNT ]
  do
    engine_two_position=$game_count
    Random_Game;
    let "game_count += 1"
  done   
}

# main

Play_Game;

exit 0
Anyone can compare the files attached and/or generate one using the bash script; IPON data was extracted from IPON rating's list result which was posted earlier today.


Sure, it's not perfect, but you get the idea. Yes, I see the draw issues -- again, this was done in hurry. If I really wanted to, it could be done with all the engines playing simulated round-robin tournament. Let me say once again, in no way is this to imply IPON's list is fake or simulated. I just don't understand why the games wont be released.

Mr. Bauer, Tear down this wall!
Point made, Kingliveson. An effectively !

For the reason you stated [and previously] and proved it here, I would hope Ingo reconsiders in giving you these games. Yes I know, it directly contradicts my current position [pro Ingo's decision] in the Rybka forum on similar subject, due to the manner some individual states his reasons for collecting Ingo's games, along with the unnecessary insults hauled, towards Ingo for his solo resources & services.

Anyway, I hope things work out and Ingo sees your point to reach a common ground...

Looks like YOUR genius script would come in handy in Rybka forum :)


Best regards.

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IPON Rating's List Bash Script

Post by kingliveson » Wed Sep 07, 2011 10:35 am

ThinkingALot wrote:
kingliveson wrote:I just don't understand why the games wont be released.
Well, I'm glad the games are not being released! Releasing the games would ruin credibility of the list.
Do you know what's gonna happen if the opening positions used in IPON are revealed? Some engine authors may try to optimize their engines to perform well on this particular opening suite. And the prospective ELO gain may be huge: up to 50 ELO. Even if one doesn't try to optimize for these opening positions intentionally, just using them for internal testing would result in engine better suited for these particular positions. So, IMHO, positions and games should remain a top secret ;)
You do know that there are many other lists and they _all_ publish games which does not seem to have any negative effect.


Prima wrote:
Point made, Kingliveson. An effectively !

For the reason you stated [and previously] and proved it here, I would hope Ingo reconsiders in giving you these games. Yes I know, it directly contradicts my current position [pro Ingo's decision] in the Rybka forum on similar subject, due to the manner some individual states his reasons for collecting Ingo's games, along with the unnecessary insults hauled, towards Ingo for his solo resources & services.

Anyway, I hope things work out and Ingo sees your point to reach a common ground...

Looks like YOUR genius script would come in handy in Rybka forum :)


Best regards.
I saw the thread and have to agree with Uly...publishing the games wont ruin his list.
PAWN : Knight >> Bishop >> Rook >>Queen

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IPON Rating's List Bash Script

Post by kingliveson » Wed Sep 07, 2011 10:53 am

Ok, so I made a slight correction to the chess rating list simulator (CRLS) script to fix the draw issue, black/white win ratio, and also, added comments -- source attached.

IPON:

Code: Select all

Games        :   2100 (finished)

White Wins   :    926 (44.1 %)
Black Wins   :    695 (33.1 %)
Draws        :    479 (22.8 %)
Unfinished   :      0

White Perf.  : 55.5 %
Black Perf.  : 44.5 %
CRLS:

Code: Select all

Games        :   2100 (finished)

White Wins   :    794 (37.8 %)
Black Wins   :    712 (33.9 %)
Draws        :    594 (28.3 %)
Unfinished   :      0

White Perf.  : 52.0 %
Black Perf.  : 48.0 %
IPON:

Code: Select all

    Program                          Elo    +   -   Games   Score   Av.Op.  Draws

  1 Houdini 2.0 STD                : 2533   15  15  2100    80.7 %   2285   22.8 %
  2 Critter 1.2                    : 2520   51  51   100    45.5 %   2551   45.0 %
  3 Komodo64 3 SSE42               : 2502   52  53   100    43.0 %   2551   42.0 %
  4 Deep Rybka 4.1 SSE42           : 2499   52  52   100    42.5 %   2551   43.0 %
  5 Stockfish 2.1.1 JA             : 2455   54  55   100    36.5 %   2551   39.0 %
  6 Deep Shredder 12               : 2365   62  64   100    25.5 %   2551   27.0 %
  7 Naum 4.2                       : 2356   60  62   100    24.5 %   2551   31.0 %
  8 Spike 1.4 32b                  : 2321   66  69   100    21.0 %   2551   24.0 %
  9 Deep Sjeng c't 2010 32b        : 2316   66  68   100    20.5 %   2551   25.0 %
 10 Deep Junior 12.5               : 2293   70  73   100    18.5 %   2551   21.0 %
 11 Gull 1.2                       : 2269   74  77   100    16.5 %   2551   19.0 %
 12 HIARCS 13.2 MP 32b             : 2256   67  71   100    15.5 %   2551   25.0 %
 13 Hannibal 1.1                   : 2243   66  71   100    14.5 %   2551   25.0 %
 14 Protector 1.4.0 x64            : 2236   77  81   100    14.0 %   2551   18.0 %
 15 spark-1.0 SSE42                : 2228   76  80   100    13.5 %   2551   19.0 %
 16 Deep Onno 1-2-70               : 2197   84  89   100    11.5 %   2551   15.0 %
 17 Zappa Mexico II                : 2188   86  91   100    11.0 %   2551   14.0 %
 18 Loop 13.6/2007                 : 2169   95 102   100    10.0 %   2551   10.0 %
 19 Strelka 2.0 B                  : 2102   95 105   100     7.0 %   2551   12.0 %
 20 Umko 1.2 SSE42                 : 2057  119 106   100     5.5 %   2551    7.0 %
 21 Crafty 23.3 JA                 : 2057   97 106   100     5.5 %   2551   11.0 %
 22 Jonny 4.00 32b                 : 1975  121  24   100     3.5 %   2551    7.0 %
CRLS:

Code: Select all

    Program                          Elo    +   -   Games   Score   Av.Op.  Draws

  1 Houdini 2.0 STD                : 2525   14  14  2100    79.4 %   2291   28.3 %
  2 Stockfish 2.1.1 JA             : 2521   45  46   100    47.0 %   2542   56.0 %
  3 Deep Rybka 4.1 SSE42           : 2514   45  46   100    46.0 %   2542   56.0 %
  4 Komodo64 3 SSE42               : 2510   47  47   100    45.5 %   2542   53.0 %
  5 Critter 1.2                    : 2482   49  49   100    41.5 %   2542   49.0 %
  6 Naum 4.2                       : 2360   56  58   100    26.0 %   2542   36.0 %
  7 Deep Shredder 12               : 2351   59  61   100    25.0 %   2542   32.0 %
  8 HIARCS 13.2 MP 32b             : 2306   64  66   100    20.5 %   2542   27.0 %
  9 Deep Onno 1-2-70               : 2278   61  65   100    18.0 %   2542   30.0 %
 10 Spike 1.4 32b                  : 2278   73  76   100    18.0 %   2542   18.0 %
 11 Deep Junior 12.5               : 2278   70  73   100    18.0 %   2542   22.0 %
 12 Deep Sjeng c't 2010 32b        : 2266   66  69   100    17.0 %   2542   26.0 %
 13 Gull 1.2                       : 2247   64  69   100    15.5 %   2542   27.0 %
 14 spark-1.0 SSE42                : 2240   71  75   100    15.0 %   2542   22.0 %
 15 Zappa Mexico II                : 2234   66  71   100    14.5 %   2542   25.0 %
 16 Protector 1.4.0 x64            : 2234   66  71   100    14.5 %   2542   25.0 %
 17 Hannibal 1.1                   : 2234   66  71   100    14.5 %   2542   25.0 %
 18 Loop 13.6/2007                 : 2187   76  82   100    11.5 %   2542   19.0 %
 19 Strelka 2.0 B                  : 2105   83  96   100     7.5 %   2542   15.0 %
 20 Crafty 23.3 JA                 : 2079   89 104   100     6.5 %   2542   13.0 %
 21 Jonny 4.00 32b                 : 2048   97 106   100     5.5 %   2542   11.0 %
 22 Umko 1.2 SSE42                 : 2011  123  69   100     4.5 %   2542    7.0 %
IPON:

Code: Select all

Individual statistics:

1 Houdini 2.0 STD           : 2533  2100 (+1455,=479,-166), 80.7 %

Deep Rybka 4.1 SSE42          : 100 (+ 36,= 43,- 21), 57.5 %
Komodo64 3 SSE42              : 100 (+ 36,= 42,- 22), 57.0 %
Hannibal 1.1                  : 100 (+ 73,= 25,-  2), 85.5 %
Critter 1.2                   : 100 (+ 32,= 45,- 23), 54.5 %
Spike 1.4 32b                 : 100 (+ 67,= 24,-  9), 79.0 %
Gull 1.2                      : 100 (+ 74,= 19,-  7), 83.5 %
Zappa Mexico II               : 100 (+ 82,= 14,-  4), 89.0 %
HIARCS 13.2 MP 32b            : 100 (+ 72,= 25,-  3), 84.5 %
Naum 4.2                      : 100 (+ 60,= 31,-  9), 75.5 %
Protector 1.4.0 x64           : 100 (+ 77,= 18,-  5), 86.0 %
Deep Shredder 12              : 100 (+ 61,= 27,- 12), 74.5 %
spark-1.0 SSE42               : 100 (+ 77,= 19,-  4), 86.5 %
Deep Onno 1-2-70              : 100 (+ 81,= 15,-  4), 88.5 %
Stockfish 2.1.1 JA            : 100 (+ 44,= 39,- 17), 63.5 %
Strelka 2.0 B                 : 100 (+ 87,= 12,-  1), 93.0 %
Deep Junior 12.5              : 100 (+ 71,= 21,-  8), 81.5 %
Umko 1.2 SSE42                : 100 (+ 91,=  7,-  2), 94.5 %
Loop 13.6/2007                : 100 (+ 85,= 10,-  5), 90.0 %
Jonny 4.00 32b                : 100 (+ 93,=  7,-  0), 96.5 %
Crafty 23.3 JA                : 100 (+ 89,= 11,-  0), 94.5 %
Deep Sjeng c't 2010 32b       : 100 (+ 67,= 25,-  8), 79.5 %
CRLS:

Code: Select all

Individual statistics:

1 Houdini 2.0 STD           : 2525  2100 (+1371,=594,-135), 79.4 %

Zappa Mexico II               : 100 (+ 73,= 25,-  2), 85.5 %
Naum 4.2                      : 100 (+ 56,= 36,-  8), 74.0 %
Loop 13.6/2007                : 100 (+ 79,= 19,-  2), 88.5 %
Deep Onno 1-2-70              : 100 (+ 67,= 30,-  3), 82.0 %
Deep Shredder 12              : 100 (+ 59,= 32,-  9), 75.0 %
Crafty 23.3 JA                : 100 (+ 87,= 13,-  0), 93.5 %
Jonny 4.00 32b                : 100 (+ 89,= 11,-  0), 94.5 %
Deep Sjeng c't 2010 32b       : 100 (+ 70,= 26,-  4), 83.0 %
spark-1.0 SSE42               : 100 (+ 74,= 22,-  4), 85.0 %
HIARCS 13.2 MP 32b            : 100 (+ 66,= 27,-  7), 79.5 %
Protector 1.4.0 x64           : 100 (+ 73,= 25,-  2), 85.5 %
Strelka 2.0 B                 : 100 (+ 85,= 15,-  0), 92.5 %
Spike 1.4 32b                 : 100 (+ 73,= 18,-  9), 82.0 %
Gull 1.2                      : 100 (+ 71,= 27,-  2), 84.5 %
Deep Rybka 4.1 SSE42          : 100 (+ 26,= 56,- 18), 54.0 %
Deep Junior 12.5              : 100 (+ 71,= 22,-  7), 82.0 %
Stockfish 2.1.1 JA            : 100 (+ 25,= 56,- 19), 53.0 %
Hannibal 1.1                  : 100 (+ 73,= 25,-  2), 85.5 %
Umko 1.2 SSE42                : 100 (+ 92,=  7,-  1), 95.5 %
Critter 1.2                   : 100 (+ 34,= 49,- 17), 58.5 %
Komodo64 3 SSE42              : 100 (+ 28,= 53,- 19), 54.5 %
...Thinking I should start a chess rating's list, and results will be provided -- simulated, of course! :P
Attachments
CRLS.7z
Source
(9.19 KiB) Downloaded 445 times
PAWN : Knight >> Bishop >> Rook >>Queen

ThinkingALot
Posts: 144
Joined: Sun Jun 13, 2010 7:32 am
Contact:

Re: IPON Rating's List Bash Script

Post by ThinkingALot » Wed Sep 07, 2011 3:09 pm

kingliveson wrote:You do know that there are many other lists and they _all_ publish games which does not seem to have any negative effect.
No negative effect because these lists are either not so popular or use opening books instead of opening positions.

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: IPON Rating's List Bash Script

Post by Prima » Wed Sep 07, 2011 3:30 pm

kingliveson wrote:
ThinkingALot wrote:
kingliveson wrote:I just don't understand why the games wont be released.
Well, I'm glad the games are not being released! Releasing the games would ruin credibility of the list.
Do you know what's gonna happen if the opening positions used in IPON are revealed? Some engine authors may try to optimize their engines to perform well on this particular opening suite. And the prospective ELO gain may be huge: up to 50 ELO. Even if one doesn't try to optimize for these opening positions intentionally, just using them for internal testing would result in engine better suited for these particular positions. So, IMHO, positions and games should remain a top secret ;)
You do know that there are many other lists and they _all_ publish games which does not seem to have any negative effect.


Prima wrote:
Point made, Kingliveson. An effectively !

For the reason you stated [and previously] and proved it here, I would hope Ingo reconsiders in giving you these games. Yes I know, it directly contradicts my current position [pro Ingo's decision] in the Rybka forum on similar subject, due to the manner some individual states his reasons for collecting Ingo's games, along with the unnecessary insults hauled, towards Ingo for his solo resources & services.

Anyway, I hope things work out and Ingo sees your point to reach a common ground...

Looks like YOUR genius script would come in handy in Rybka forum :)


Best regards.
I saw the thread and have to agree with Uly...publishing the games wont ruin his list.
It certainly won't but it's the approach about the matter which was used over there, to the point of insults & disregard that was despised. Anyway, I hope Ingo can reach some sort of agreement, if not publicly, perhaps privately with you.

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: IPON Rating's List Bash Script

Post by kingliveson » Wed Sep 07, 2011 6:02 pm

ThinkingALot wrote:
kingliveson wrote:You do know that there are many other lists and they _all_ publish games which does not seem to have any negative effect.
No negative effect because these lists are either not so popular or use opening books instead of opening positions.
CEGT, CCRL, SWCR, SSDF all provide full games. There are members here along with other forums who do testing, and post only results, but anytime the games are requested, they provide it. These lists are quite popular even more than than IPON. I am not a proponent of using opening books for such test since it introduces a certain bias, but if you compare the relative strengths to IPON's, they are within reason.


Prima wrote:
It certainly won't but it's the approach about the matter which was used over there, to the point of insults & disregard that was despised. Anyway, I hope Ingo can reach some sort of agreement, if not publicly, perhaps privately with you.
Prima, this is not about me. :) Sedat is not new on the computer chess scene; he too had and expressed similar concerns along many others -- see talkchess.com/forum/viewtopic.php?t=37099.

The thing is, once you enter the arena of providing a public service, you have to be transparent. Well, because it is the right thing to do. Statistics without actual data is meaningless. Anyone can generate random numbers as has been demonstrated.
PAWN : Knight >> Bishop >> Rook >>Queen

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: IPON Rating's List Bash Script

Post by Prima » Wed Sep 07, 2011 7:03 pm

kingliveson wrote:Prima, this is not about me. :) Sedat is not new on the computer chess scene; he too had and expressed similar concerns along many others -- see talkchess.com/forum/viewtopic.php?t=37099.

The thing is, once you enter the arena of providing a public service, you have to be transparent. Well, because it is the right thing to do. Statistics without actual data is meaningless. Anyone can generate random numbers as has been demonstrated.
I'm NOT making this about you, Kingliveson :) As I stated earlier, you made a very "sensible point" and a "reasonable approach" towards Ingo. I was referring to the ruthless approach & disregard from "the individual" at Rybka forum towards Ingo. In other words, you and "the individual" at Rybka forum have the same idea but different expressions & approach towards Ingo.

Either because it's the "internet" or my verbal/written expression was not worded properly or my "tone" may have given the wrong impression that I was referring to you :lol: But I wasn't. I agree 100% with you :D

Best regards.

Post Reply