Rio de Janeiro Interzonal (1979) – or, more fun with crosstables

The trouble with software, is that programs are dumb – they just do what you tell them to do.

I have a little test program, which I think is a swell idea, even if the implementation needs some finishing work. The idea is simple, have a way to travel back in time and play over a tournament round by round. Of course that’s like recording a football on your DVR, and then watching it knowing the final score. C’est la vie!

It might still be of interest to see how close a contest it was, round by round. That would include the standings, and the pairings for any given round. So I wrote a program to spit out the pairing and leader board for any given round. I may have already shown it on this blog, but that version wasn’t working. Well, it was, but not for a tournament like Rio de Janeiro Itz ’79, which had double-byes on certain rounds.

That is a condition that I didn’t anticipate when I first wrote the program. And so it was that I had to debug and rewrite a few lines of code to deal with the more general case. It took me about 15 minutes to do it. How much time it would have taken me when I originally wrote it is unknown. Probably longer than 15 minutes – since I wasn’t experienced. A big part of software, for me at least, is done by successive approximations. I need working prototypes to get new ideas for refinement, and to try to provoke failure cases.

Now, let’s do a little chess, and go back to 1979. We’ll work backwards, and I’ll show the output from my “debugged” program (with its dorky name – leader.py):


H:\tmp> py -i leader.py "Rio Izt 1979.xtab"

    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19
  1.0  1.5  2.0  3.0  4.0  5.0  6.0  6.0  6.5  6.5  7.0  7.5  8.0  8.5  9.5 10.0 11.0 11.5 11.5    Huebner, Robert                ( +7 -1 =9  )
  0.5  1.5  2.0  2.5  3.5  4.0  5.0  5.5  5.5  5.5  6.0  6.5  7.0  8.0  9.0  9.5 10.0 10.5 11.5    Petrosian, Tigran V            ( +6 -0 =11 )
  0.0  0.5  1.5  2.0  3.0  4.0  4.5  5.5  5.5  6.5  7.5  8.0  8.0  9.0  9.0 10.0 11.0 11.0 11.5    Portisch, Lajos                ( +9 -3 =5  )
  0.5  1.0  1.0  1.5  1.5  2.0  2.5  3.5  4.0  5.0  5.5  6.5  7.0  7.5  8.5  9.5 10.5 10.5 11.0    Timman, Jan H                  ( +6 -1 =10 )
  0.5  1.0  1.0  2.0  3.0  3.5  3.5  4.0  5.0  6.0  6.5  7.0  7.5  7.5  7.5  7.5  8.5  8.5  9.5    Sunye Neto, Jaime              ( +6 -4 =7  )
  0.0  0.5  0.5  1.0  1.5  2.5  3.5  4.5  5.0  5.0  5.5  6.0  6.5  7.0  7.5  8.5  9.0  9.5  9.5    Ivkov, Borislav                ( +4 -2 =11 )
  0.0  0.0  0.0  1.0  1.0  2.0  3.0  4.0  4.5  5.5  6.0  6.5  7.0  7.0  8.0  8.0  8.0  9.0  9.0    Sax, Gyula                     ( +7 -6 =4  )
  1.0  1.5  2.5  3.0  3.0  4.0  4.0  4.5  4.5  5.0  5.0  5.5  6.0  7.0  7.5  8.0  8.0  8.5  9.0    Balashov, Yuri S               ( +4 -3 =10 )
  1.0  1.5  2.5  3.0  3.0  3.0  3.0  3.0  3.5  3.5  4.0  4.0  5.0  6.0  7.0  7.5  8.0  8.0  9.0    Torre, Eugenio                 ( +6 -5 =6  )
  1.0  1.0  1.5  1.5  2.5  2.5  2.5  3.5  4.0  4.5  5.0  6.0  6.5  6.5  7.0  7.5  7.5  8.0  8.5    Shamkovich, Leonid             ( +4 -4 =9  )
  0.5  0.5  1.5  2.0  2.0  3.0  3.5  3.5  4.0  5.0  5.5  5.5  6.0  6.5  6.5  7.5  7.5  8.0  8.5    Smejkal, Jan                   ( +4 -4 =9  )
  1.0  1.5  2.0  2.0  2.5  2.5  3.5  4.5  5.5  6.0  6.5  7.0  7.5  8.0  8.0  8.0  8.0  8.0  8.0    Vaganian, Rafael A             ( +4 -5 =8  )
  0.0  0.5  0.5  1.0  1.0  1.0  2.0  2.0  3.0  3.5  4.0  4.0  4.0  4.5  5.0  5.0  6.0  7.0  7.5    Garcia Gonzales, Guillermo     ( +4 -6 =7  )
  0.0  0.5  1.0  1.5  2.5  2.5  2.5  2.5  2.5  2.5  3.5  4.0  4.5  4.5  5.5  5.5  5.5  6.5  7.5    Velimirovic, Dragoljub         ( +5 -7 =5  )
  0.0  0.5  1.5  1.5  1.5  1.5  1.5  1.5  2.0  2.0  2.0  2.0  3.0  4.0  4.0  4.5  5.0  5.5  6.5    Harandi, Khosro                ( +4 -8 =5  )
  1.0  2.0  2.0  2.0  2.5  2.5  2.5  2.5  3.0  3.5  4.0  5.0  5.5  5.5  5.5  6.0  6.0  6.0  6.0    Bronstein, Luis Marcos         ( +3 -8 =6  )
  0.0  0.5  0.5  0.5  1.0  1.5  1.5  2.0  2.5  3.0  3.5  3.5  3.5  3.5  3.5  4.0  4.0  4.5  4.5    Hebert, Jean                   ( +0 -8 =9  )
  0.0  0.0  0.5  1.0  1.0  1.0  1.5  1.5  1.5  1.5  2.0  2.5  2.5  2.5  2.5  2.5  3.5  4.5  4.5    Kagan, Shimon                  ( +2 -10 =5 )

The cumulative score/round is output for each player – keeping the order of the input crosstable. Then the program allows any round to be examined in greater detail with the “round report” function – rr():

>>> rr(-1)

Doing round: rnd = 19

Pairings  (Round = 19):

  Shamkovich, Leonid           ( 8.0 )   --   Portisch, Lajos              (11.0 )    =
  Ivkov, Borislav              ( 9.5 )   --   Petrosian, Tigran V          (10.5 )   0-1
  Timman, Jan H                (10.5 )   --   Garcia Gonzales, Guillermo   ( 7.0 )    =
  Sax, Gyula                   ( 9.0 )   --   Harandi, Khosro              ( 5.5 )   0-1
  Vaganian, Rafael A           ( 8.0 )   --   Sunye Neto, Jaime            ( 8.5 )   0-1
  Smejkal, Jan                 ( 8.0 )   --   Balashov, Yuri S             ( 8.5 )    =
  Torre, Eugenio               ( 8.0 )   --   Hebert, Jean                 ( 4.5 )   1-0
  Kagan, Shimon                ( 4.5 )   --   Velimirovic, Dragoljub       ( 6.5 )   0-1

Byes:  Bronstein, Luis Marcos
       Huebner, Robert
       
Round 19:   62.5% decisive (+5 =3)

Scores (after Round 19):

   Huebner, Robert             11.5    ( +7 -1 =9  )
   Petrosian, Tigran V         11.5    ( +6 -0 =11 )
   Portisch, Lajos             11.5    ( +9 -3 =5  )
   Timman, Jan H               11.0    ( +6 -1 =10 )
   Sunye Neto, Jaime            9.5    ( +6 -4 =7  )

Cumulative to round 19:   55.6% decisive (+85 =68)


>>> rr(-2)

Doing round: rnd = 18

Pairings  (Round = 18):

  Petrosian, Tigran V          (10.0 )   --   Huebner, Robert              (11.0 )    =
  Portisch, Lajos              (11.0 )   --   Kagan, Shimon                ( 3.5 )   0-1
  Balashov, Yuri S             ( 8.0 )   --   Ivkov, Borislav              ( 9.0 )    =
  Sunye Neto, Jaime            ( 8.5 )   --   Sax, Gyula                   ( 8.0 )   0-1
  Garcia Gonzales, Guillermo   ( 6.0 )   --   Vaganian, Rafael A           ( 8.0 )   1-0
  Hebert, Jean                 ( 4.0 )   --   Shamkovich, Leonid           ( 7.5 )    =
  Harandi, Khosro              ( 5.0 )   --   Smejkal, Jan                 ( 7.5 )    =
  Velimirovic, Dragoljub       ( 5.5 )   --   Bronstein, Luis Marcos       ( 6.0 )   1-0

Byes:  Timman, Jan H
       Torre, Eugenio

Round 18:   50.0% decisive (+4 =4)

Scores (after Round 18):

   Huebner, Robert             11.5    ( +7 -1 =9  )
   Portisch, Lajos             11.0    ( +9 -3 =4  )
   Petrosian, Tigran V         10.5    ( +5 -0 =11 )
   Timman, Jan H               10.5    ( +6 -1 =9  )
   Ivkov, Borislav              9.5    ( +4 -1 =11 )

Cumulative to round 18:   55.2% decisive (+80 =65)


So, from the cumulative/round table at the top, one sees that Huebner was the clear leader throughout most of the tournament. Except, of course, for the four rounds where Portisch claimed a small lead. In the end, however, Portisch was upset by Kagan in the next to last round (R18), while Petrosian scored a nice win against Ivkov in the final round while drawing Huebner in R18. Huebner had a bye in the final round.

Of course, some of the drama is missing in an Interzonal, since the goal isn’t so much finishing first as it is to place and therefore advance to the knockout phase of the Candidates. A fact of life which means the last rounds tend to be less decisive in this format of play.

The input for the program which provided the above output is very easy to create. One just loads the tournament into SCID (even if mixed with other games) – then selecting one of the tournament games for viewing it is as easy as using the Crosstable tool – being sure to select the Swiss format to preserve the pairing information:

Interzonal tournament
Rio de Janeiro, Brazil, 1979
Average Rating: 2518
                               Rtng  Ti Age Nat    Score       1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19    Perf Chg
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1: Huebner, Robert            2595  gm  31 GER  11.5 / 17   17b+  3w= 14b= 16w+ 18b+ 10w+  9b+ ....  6w= 11b-  7w= 12b=  4w= 13b=  5w+ 15b=  8w+  2b= ....   2647 +10  (+7 -1 =9)
 2: Petrosian, Tigran V        2610  gm  49 URS  11.5 / 17   11w=  7b+ 12w=  4b= 13w+  5b= 15w+  8b= .... .... 17b=  3w= 14b= 16w+ 18b+ 10w=  9b=  1w=  6b+   2646  +7  (+6 -0 =11)
 3: Portisch, Lajos            2640  gm  42 HUN  11.5 / 17    9w-  1b=  6w+ 11b=  7w+ 12b+  4w= 13b+  5w- 15b+  8w+  2b= .... 17b+ .... 14w+ 16b+ 18w- 10b=   2644  +0  (+9 -3 =5)
 4: Timman, Jan H              2625  gm  28 NED  11.0 / 17    5b= 15w=  8b-  2w= .... 17w=  3b= 14w+ 16b= 18w+ 10b=  9w+  1b=  6w= 11b+  7w+ 12b+ .... 13w=   2622  -2  (+6 -1 =10)
 5: Sunye Neto, Jaime          2375  gm  22 BRA   9.5 / 17    4w= 13b= .... 15w+  8b+  2w= .... 17w=  3b+ 14w+ 16b= 18w= 10b=  9w-  1b-  6w- 11b+  7w- 12b+   2570 +46  (+6 -4 =7)
 6: Ivkov, Borislav            2525  gm  46 SRB   9.5 / 17   .... 17w=  3b- 14w= 16b= 18w+ 10b+  9w+  1b= .... 11w=  7b= 12w=  4b= 13w=  5b+ 15w=  8b=  2w-   2561  +9  (+4 -2 =11)
 7: Sax, Gyula                 2590  gm  28 HUN   9.0 / 17    8b-  2w- .... 17w+  3b- 14w+ 16b+ 18w+ 10b=  9w+  1b=  6w= 11b= .... 12w+  4b- 13w-  5b+ 15w-   2535 -14  (+7 -6 =4)
 8: Balashov, Yuri S           2600  gm  30 RUS   9.0 / 17    7w+ 12b=  4w+ 13b=  5w- 15b+ ....  2w= .... 17w=  3b- 14w= 16b= 18w+ 10b=  9w=  1b-  6w= 11b=   2535 -15  (+4 -3 =10)
 9: Torre, Eugenio             2520  gm  28 PHI   9.0 / 17    3b+ 14w= 16b+ 18w= 10b- ....  1w-  6b- 11w=  7b- 12w=  4b- 13w+  5b+ 15w+  8b=  2w= .... 17w+   2539  +3  (+6 -5 =6)
10: Shamkovich, Leonid         2495  gm  55 USA   8.5 / 17   14b+ 16w- 18b= ....  9w+  1b-  6w- 11b+  7w= 12b=  4w= 13b+  5w= 15b-  8w=  2b= .... 17b=  3w=   2520  +7  (+4 -4 =9)
11: Smejkal, Jan               2550  gm  33 CZE   8.5 / 17    2b= .... 17b+  3w= 14b- 16w+ 18b= 10w-  9b=  1w+  6b= ....  7w= 12b=  4w- 13b+  5w- 15b=  8w=   2517  -9  (+4 -4 =9)
12: Vaganian, Rafael A         2570  gm  28 ARM   8.0 / 17   15b+  8w=  2b= .... 17b=  3w- 14b+ 16w+ 18b+ 10w=  9b=  1w=  6b= 11w=  7b- ....  4w- 13b-  5w-   2494 -19  (+4 -5 =8)
13: Garcia Gonzales, Guillermo 2490  gm  25 CUB   7.5 / 17   ....  5w= 15b-  8w=  2b- .... 17b+  3w- 14b+ 16w= 18b= 10w-  9b-  1w=  6b= 11w-  7b+ 12w+  4b=   2477  -2  (+4 -6 =7)
14: Velimirovic, Dragoljub     2515  gm  37 SRB   7.5 / 17   10w-  9b=  1w=  6b= 11w+  7b- 12w-  4b- 13w-  5b- 15w+  8b=  2w= .... 17w+  3b- .... 16w+ 18b+   2476  -9  (+5 -7 =5)
15: Harandi, Khosro            2410  im  29 IRI   6.5 / 17   12w-  4b= 13w+  5b- ....  8w-  2b- .... 17b=  3w- 14b- 16w- 18b+ 10w+  9b-  1w=  6b= 11w=  7b+   2438  +7  (+4 -8 =5)
16: Bronstein, Luis Marcos     2420  im  33 ARG   6.0 / 17   18w+ 10b+  9w-  1b-  6w= 11b-  7w- 12b-  4w= 13b=  5w= 15b+  8w=  2b- .... 17b=  3w- 14b- ....   2414  +0  (+3 -8 =6)
17: Hebert, Jean               2365  im  22 CAN   4.5 / 17    1w-  6b= 11w-  7b- 12w=  4b= 13w-  5b= 15w=  8b=  2w= .... ....  3w- 14b- 16w= 18b- 10w=  9b-   2343  -3  (+0 -8 =9)
18: Kagan, Shimon              2445  im  37 ISR   4.5 / 17   16b- .... 10w=  9b=  1w-  6b- 11w=  7b- 12w-  4b- 13w=  5b= 15w-  8b-  2w- .... 17w+  3b+ 14w-   2339 -22  (+2 -10 =5)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
153 games: +43 =68 -42

The above is the “Rio Izt 1979.xtab” file input into the program for parsing. One caveat I should mention – the titles SCID uses are for the player in general, and not specific to the time the tournament was played. The ages are correct, but the titles could have been awards subsequent. Though I do believe the there is an attempt to get the ratings correct.

So, for instance, Sunye Neto was one of the youngest at the tournament at 22, but was untitled, not even having been awarded the IM title at the time. But his performance is clearly indicative of the IM title he was to gain in 1980 (and GM title in 1986, reaching a peak rating of 2558 in July 2000).

A quick word for why the tournament had double-byes. Originally, Mecking was scheduled to play, so that there were 19 players, necessitating a bye/round. When he dropped out (due to illness) after a first round draw with Ivkov, the tournament was forced into double-byes to maintain the previously announced pairings.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s