W tym szaleństwie jest metoda?
Gdy Wojny Rdzeniowe po raz pierwszy pojawiły się w polskie prasie komputerowej (parę lat temu w miesięczniku „Komputer”) zafascynowały mnie swoją ideą walki umysłów przez konstruowanie programów, która mogą ze sobą rywalizować. Toteż, gdy w numerze 2/92 ENTER-a przeczytałem o polskiej wersji tej pożytecznej, intelektualnej zabawy, uznałem to za doskonały pomysł, godny jak najszerszego rozpropagowania.
I otóż ta wspaniała idea dojrzała do zorganizowania I Ogólnopolskich Mistrzostw Wojen Rdzeniowych, o których dowiedzieliśmy się z numeru 9/92 ENTER-a. Tam ze zdumieniem przeczytałem zaproponowany przez p. Stasiewicza regulamin zawodów, choć z powodu jego enigmatycznej postaci należałoby go określić raczej zarysem zasad rozegrania turnieju. Zasady te zresztą zostały dobrane źle, o czym nie omieszkałem poinformować listownie p. Stasiewicza. Zaproponowałęm też udział swojego zawodnika i pomoc w organizacji rozgrywek. W odpowiedzi dowiedziałem się, że zasady turnieju są właściwe i nie nalezy ich zmieniać, moja pomoc w organizacji Mistrzostw jest zbędna, a mój zawodnik może wystartować poza konkursem (ponieważ jestem pracownikiem redakcji). Z udziału w konkursie zrezygnowałem więc, nie chcąc zakłócać wyników tym, którzy mają walczyć o trofea.
Wielkie było moje zdziwienie i zaskoczenie, gdy ujrzałem raport p. Stasiewicza po odbytych zawodach. Po pierwsze, zmieniony został regulamin, m.in. zwiększono sugerowaną przeze mnie krotność powtórzeń pojedynków z 5 do 20. Zupełnie inaczej zorganizowano awans do kolejnych rund (zmiana na lepsze, ale dlaczego tuż przed rozgrywkami?). Największym zaskoczeniem był jednak udział w Mistrzostwach programu autorstwa p. Stasiewicza. Jak może startować w turnieju program poza konkursem nie zakłócając swymi wynikami rezultatów innych wojowników? Przecież zabiera on punkty niektórym, a dodaje innym (gdy przegrywa). Na jego miejsce w finałowej „10” mógłby awansować, kto wie, jakiś bojowy program i zająć zaszczytne miejsce wśród finalistów. Przypominam, że według pierwotnych zamierzeń mistrz miał otrzymać komputer PC/AT, a pozostali finaliści licencjonowane oprogramowanie użytkowe i gry. A zatem de facto jeden z uczestników został takiej nagrody pozbawiony przez program PLUS. Regulamin zawodów był niedopracowany i w tym sensie, że nie określono przypadków osiagnięcia prez dwa lub więcej programów takiej samej ilości punktów. W Mistrzostwach nie było takiego przypadku, ale ja odtwarzając turniej zanotowałem takie „niecodzienne” zjawisko w jednej z grup i to na miejscach. Nie wątpię, że komisja zawodów (nawiasem mówiąc nawet przez kurtuazję nikt z redakcji nie został do niej zaproszony) na poczekaniu coś by wymyśliła, ale czy taka organizacja odpowiada randze Mistrzostw Polski?
Zagadnieniem wymagającym oddzielnego komentarza jest metoda stosowana do uzyskiwania końcowych rezultatów i porównywania przez to siły poszczególnych wojowników. Do jednego „worka” trafia 10 programów, które walczą po kolei „jeden na jednego”, a suma uzyskanych punktów z tych pojedynków wyznacza ich kolejność. Nie ma tu miejsca na punktu za wygrane lub zremisowane mecze. Jest to metoda kuriozalna, nigdzie w świecie sportowym nie stosowana. To tak, jakby w lidze piłkarskiej liczyły sie tylko zdobyte bramki czy w koszykówce punkty za kosze. Zgadzam się, że w większości przypadków metoda p. Stasiewicza daje zbliżone wyniki do właściwego sposobu punktowania (np. 2 pkt. za zwycięstwo, 1 pkt. za remi, 0 pkt. za porażkę). Ale łatwo wykazać jej zawodność np. w takiej sytuacji: program A wygrywa z B i C po 120-80, a program B bije C wynikiem 190-10. A zdobywa 240 pkt., B ma 270, a C — 90 pkt. Wygrywa B, choć oczywiste jest, że to A (dwa zwycięstwa) jest najlepszym programem z tej trójki. Przy 10 programach liczba różnych kombinacji tego typu lawinowo rośnie.
Nie jest właściwe zasłanianie się twierdzeniem, że reguły były znane i jednakowe dla wszystkich. Stosowanie nieodpowiedniej metody nie usprawiedliwia organizatora poważnej imprezy, zwłaszcza, że ten problem również sygnalizowano we wcześniejszym liście (p. Stasiewicz odpowiedział, że organizowanie każdej walki oddzielnie byłoby zbyt absorbujące w przypadku dużej liczby uczestników — takie podejście jest, łagodnie mówiąc, lekceważeniem biorących udział twórców programów). Jedynym sensowym rozwiązaniem byłoby takie przerobienie programu WOJOWNIK, aby po każdym pojedynku porównywał zdobyte małe punkty i odpowiednio przyznawał punkty meczowe. Mistrzostwa zostały zakończone. Nie jest moją intencją podważanie uzyskanych wyników. Program GISELA1 jest rzeczywiście najsilniejszym programem w zadanych warunkach (na arenie o rozmiarze 2000 komórek). Jedynie program IZI17_3 potrafi zawsze wygrać z mistrzem. Przekonałem się o tym dokonując pełnej klasyfikacji wszystkich 50 programów przeprowadzonej metodą „każdy z każdym” (mecz i rewanż). W sumie dało to 2450 pojedynków. Nie były to konkurencyjne mistrzostwa, lecz jedynie ocena siły każdego programu w porównaniu z innymi. Zastosowałem te same parametry, jakie obowiązywały w mistrzostwach (arena o 2000 koórek, 10000 ruchów w każdym starciu), jedynie krotność powtórzeń ustawiłem nie na 20, lecz na 100. Za zwycięstwo program otrzymywał 2 pkt., za remis 1 pkt., porażka to 0 pkt. W przypadku równej liczby punktów meczowych (w tabeli I kolumna po nazwie programu) decydowała lepsza różnica małych punktów (II kolumna).
Doceniam naprawdę duży wkład p. Stasiewicza w propagowanie Wojen Rdzeniowych, życzę mu jak najwięcej udanych analiz dotyczących programowania w Redcode, bo na tym się on zna, ale ewentualne następne Mistrzostwa w tej dziedzinie chyba przeprowadzimy w naszym redakcyjnym laboratorium.
Nieoficjalna klasyfikacja programów Wojen Rdzeniowych:
# | Wojownik | Duże punkty | Małe punkty |
---|---|---|---|
1 | GISELA1 | 192 | +65500 |
2 | BEAST | 185 | +46480 |
3 | PLUS | 181 | +41090 |
4 | CARRIER | 177 | +45570 |
5 | SHARK | 171 | +42260 |
6 | PANDORA | 168 | +38700 |
7 | PLUTON | 163 | +36550 |
8 | ZOMBI | 153 | +24130 |
9 | FILUT | 152 | +18280 |
10 | OJCZYM | 149 | +20720 |
11 | MICHA | 149 | +10520 |
12 | ORK_URK | 141 | +28120 |
13 | NXC8 | 130 | +24780 |
14 | NO1 | 127 | +9430 |
15 | FIN14DSS | 125 | +11270 |
16 | BARNAK2 | 125 | +8030 |
17 | IZI17_4 | 120 | +16210 |
18 | IZI17_2 | 116 | +17530 |
19 | IZI17 | 116 | + 11910 |
20 | MUNCHO2 | 107 | +5150 |
21 | NO3 | 106 | +1190 |
22 | MUNCHO | 104 | +6580 |
23 | SZPERACZ | 102 | +880 |
24 | AGENT2 | 101 | +5540 |
25 | CYBORG3D | 94 | -2650 |
26 | IZI8_3 | 89 | - 6700 |
27 | BARNAK | 85 | -6500 |
28 | IZI17_1 | 83 | +2420 |
29 | IZI10 | 79 | -18410 |
30 | QG4 | 78 | -2410 |
31 | IZI11 | 76 | -25690 |
32 | IZI8-BIS | 73 | -13780 |
33 | SZPERAC2 | 72 | -15200 |
34 | NO2 | 70 | -7250 |
35 | IZI3 | 67 | -29940 |
36 | IZI17_3 | 61 | -12570 |
37 | IZI9 | 58 | -26930 |
38 | IZI14 | 57 | -22100 |
39 | MIESZKO | 55 | -22310 |
40 | W4005S | 54 | -19630 |
41 | IZI14_1 | 54 | -27360 |
42 | MORS10 | 52 | -14210 |
43 | DRAGON | 51 | -26890 |
44 | IZI18_2 | 50 | -32560 |
45 | MORS12 | 49 | -19160 |
46 | MORS11 | 44 | -27210 |
47 | IZI18_1 | 40 | -37310 |
48 | IZI18 | 26 | -49480 |
49 | SZPERAC1 | 21 | -31810 |
50 | MORS9 | 2 | -73440 |