ergebnisunterschiede zwischen c und c++ engines



  • hallo leute, ichb in ein leidenschaftlicher schachspieler, und bin im moment dabei, ein eigenes schachprogramm zu schreiben. Nebenbei hab ich über Arena(opensource schachgui) verschiedene UCI/winboard programme gegeneinander antreten zu lassen. Dabei passierte folgendes: die 4 programme, spike, aristarch, list und crafty spielten jeweils 10 partien gegeneinander. Die einstellung war, dass jedes programm 5 min Rechenzeit hatte, und ich habe jedem programm gleiche startvorraussetzungen gegeben(hashtabellen gleich groß, gleiche eröffnungsbücher), das interessante daran war, dass crafty von robert hyatt, welches ja in c geschrieben ist, jedes Spiel verlor, gegen seine konkurrenz, welche alle auf c++ basiert. Später hab ich erneut ein turnier gestartet, hab die Zeit erhöht, und je höher die rechenzeit war, desto stärker war crafty, und gewann problemlos jedes Spiel. woran liegt das? ist das ein performanceproblem von c? ist c++ schneller oder ist das eine programmiertechnische sache?



  • für leute, die sich noch nicht mit schachprogrammierung beschäftigt haben: je weniger zeit einem programm zur verfügung steht, desto schneller muß ein programm den "optimalen" zug finden, und den suchbaum abschneiden. Wenn beispielweise ein teil eines suchbaums im endspiel könig + dame gegen turm+turm+könig zum verlust der Dame führt, ohne dass der gegner auch material verliert (dann würds remis ausgehen)braucht man diesen teil gar nicht weiter verfolgen,denn jedem sollte klar sein, dass diese partie definitiv verloren ist.Was mir noch auffiel ist, dass crafty praktisch alle partien im mittelspiel verlor, alle Eröffnungen waren gleich/ähnlich stark.



  • Wird wohl daran liegen, dass unterschiedliche Algorithmen benutzt wurden.



  • Die verwendete Programmiersprache ist ja auch das unwichtigste bei so einem Vergleich. Wichtiger sind die verwendeten Algorithmen und Datenstrukturen.

    => Man kann in jeder Programmiersprache langsame ineffiziente scheiß Programme schreiben 🙄



  • Jetzt haben wir den entgueltigen Beweis das C++ schneller ist als C. Bitte diesen Thread auf Ewigkeiten bewahren. 🤡 🤡 🤡 🤡


Anmelden zum Antworten