Magazyn Enter, marzec 1993, strony 28-29

Andrzej Majkowski

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 tez 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