El Pimp Masiin (pimp=pairing in mcmahon pits) on Tapio Vuorisen kyhäämä paritusohjelma go-turnauksiin. Ohjelmassa on suurinpiirtein kaikki peruskäytössä tarvittavat ominaisuudet.
Ohjelma sai alkunsa ToiGon juhannusleirillä 2003, kun muut pelasivat bonusturnausta. Minä sain ajatuksen round robin -paritusohjelmasta, joka hanskaisi myös bonusturnaukset. Kun RR-puolelle ei keksitty enää uusia ominaisuuksia, päätin toteuttaa McMahon-parituksen.
Ohjelmaa testattiin "tositoimissa" ensimmäistä kertaa KenraaliKutosessa 17.-18.1.2004. Tällöin paljastui puute paritusalgoritmin back-trackissä. Algoritmi selviytyi suht nätisti Kani6:n parituksesta viikkoa myöhemmin. Seuraavana maanantaina algoritmi muutettiin täysin back-trackääväksi rekursiota hyväksikäyttäen. Rekursiiviseksi muunnetun paritusalgoritmin testaus on vielä kesken, Takapotkussa jyrähtää.
Ohjelma on tekstipohjainen. Konsolilta ohjelma vaatii aika reilusti, vaakasuunnassa kokoa saisi olla 100 merkkiä ja pystysuunnassa niin paljon kuin näytölle vaan mahtuu. Käytännössä tämä tarkoittaa sitä, että ajoympäristö on *NIX tai Windows-käyttäjille Cygwin. Softa on kehitetty x86-Linuxissa ja se on testattu toimivaksi Cygwinissä.
Ohjelman C++-lähdekoodit eivät (ainakin kehittäjälle ymmärrettävistä syistä) ole julkiset, mutta kääntelen binäärejä niitä tarvitseville. Ainakin Solaris/Sparc, Linux/Alpha, Linux/i386 ja Cygwin luonnistuvat. Kunhan ohjelma saavuttaa jonkinlaisen koodillisen vakauden asteen, on ohjelmassa mahdollisesti täydellinen re-write.
Avainominaisuudet#
- McMahon- ja RR-paritus
- Tasa-avaus-, tasoitus- ja vajaatasoitusturnaukset
- Tekijä muokkaa ohjelmaansa esitettyjen ehdotusten pohjalta
Kuriositeettina nopeustestejä#
Data saattaa muuttua, koska paritusalgoritmiin tehdään muutoksia. Pelaajadatan luokitusjakauman pitäisi olla suht tasainen, jos Perlin satunnaislukugeneraattoriin on uskominen. Suoritus, josta aika on otettu = ohjelman käynnistys, McMahon-ryhmien luonti, parituksen ajo, parituksen tulostaminen tiedostoon ja ohjelman lopetus.Pelaajamäärä | Muistinkulutus | Turnaustallenteen koko | P2/350MHz Linux | Athlon/1GHz Linux | Athlon/1GHz W2k+Cygwin | P4/2.4GHz Linux |
---|---|---|---|---|---|---|
200 | n. 0,5Mt | 135kt | 10s | 3,4s | 3,2s | 1,7s |
600 | n. 4,5Mt | 1,1Mt | 2min50s | 52,5s | 47,2s | 28s |
2000 | n.48Mt | ? | 72min | 22min16s | 19min10s | 11min47s |
Joku voisi mittailla Gerlachin vemputtimella vastaavia aikoja ja muistinkulutuksia.
Kysymyksiä softasta voi esittää vaikkapa täällä ja niihin pyritään jopa vastaamaan.
Q: Saaks sitä kokeilla?
A: Kyllä saa, erikseen kauniisti pyytämällä.