Εμφάνιση αναρτήσεων με ετικέτα computer chess. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα computer chess. Εμφάνιση όλων των αναρτήσεων

Κυριακή 28 Ιουνίου 2015

Correspondence Chess V - Εργαλεία ΙΙ (Βίντεο, Βάσεις Δεδομένων)


ΙΙ - Σκακιστικές Μηχανές Ι - Ιστορία και κλαδέματα
III - Σκακιστικές Μηχανές ΙΙ - Παραδείγματα με κλαδέματα
IV - Εργαλεία Ι (Εισαγωγή, Βιβλία)

Όπως έγραψα και στην κατακλείδα του προηγούμενου μέρους, τα σκακιστικά βίντεο θεωρώ πως χρήζουν ειδικής αντιμετώπισης. Αρχίζω από το γεγονός πως κανείς δεν τα αγοράζει - προφανώς και δεν αξίζουν τα λεφτά τους - και δεν το λέω για να αρχίσω κάποιου είδους συζήτηση περί πειρατείας ή περί τιμολογιακής πολιτικής αλλά απλώς το αναφέρω για τεχνικούς λόγους. Το ότι κανείς δεν τα αγοράζει σημαίνει ότι αρκετές φορές οι πειρατικές τους εκδοχές που κυκλοφορούν έχουν μόνο τα αρχεία βίντεο και όχι τις θέσεις και τις κινήσεις σε κάποιο PGN ή σε κάποιο αρχείο Chessbase. Έτσι υπερπολλαπλασιάζεται ο χρόνος που απαιτείται για να ελέγξει κανείς κάτι στα γρήγορα σε κάποια συγκεκριμένη βαριάντα. Ακόμα και στην περίπτωση όμως που έχει κανείς διαθέσιμο το PGN, το γεγονός πως είναι ασχολίαστο τον υποχρεώνει να βρει το αντίστοιχο απόσπασμα για να ακούσει τα σχόλια. Όλα αυτά τα χρονοβόρα σε συνδυασμό με το πολύ χαμηλό επίπεδο των περισσοτέρων βίντεο-DVDs για το άνοιγμα κάνουν τη σχέση χρόνος-απόδοση για έναν Corr παίχτη απαγορευτική. 

Μία πρόσφατη και πολύ ευχάριστη εξαίρεση αποτελούν οι βιντεο-σειρές του chess24.com οι οποίες 1ον) στηρίζονται σε συνδρομητικό μοντέλο πληρωμής, 2ον) είναι σχετικά υψηλού επιπέδου και 3ον) προσφέρουν πρόσβαση σε σχολιασμένο ebook πάνω στην πλατφόρμα της υπηρεσίας. Αλλά ακόμα κι έτσι, και σε αντίθεση με τα βιβλία, δεν αποτελούν απαραίτητη πηγή για το αγωνιστικό Corr. Πολύ εύκολα καταλαβαίνει κανείς το ποια βίντεο έχουν φτιαχτεί στο πόδι - η συντριπτική πλειοψηφία - και ποια αποτελούν τη μεταφορά σημειώσεων που έχουν δουλευτεί σοβαρά. Η σειρά του Peter Svidler για την Grunfeld για παράδειγμα είναι διαμάντι ενώ ας πούμε το ρεπερτόριο του Gustafsson στην Νιμζο-Ινδική με Qc2 έχει τρύπα ακόμα και σε παρτίδα του ίδιου του παρουσιαστή, ενώ στο τέλος της κύριας βαριάντας δε γίνεται αναφορά σε κίνηση που ισοφαρίζει αμέσως και μπορεί να τη βρει και ένας παίκτης του 1500. Εδώ δε μιλάμε για "τρύπα", αλλά για ηθελημένη παράλειψη.

Θέση μετά από 21.Qd6

21...Re8=

Καμία αναφορά δε γίνεται στην απλή αυτή η κίνηση, αντιθέτως αναλύεται το λαίμαργο 21...Qxc3? και το... ανερμάτιστο 21...h6?!






Άλλο παράδειγμα, από το DVD του Negi για την Σκωτική

Θέση μετά από 13.exf6

13...gxf6=

Αναλύεται μόνο το 13...Qf7?!








Ας περάσουμε όμως στο πιο κρίσιμο κομμάτι της εργαλειοθήκης μας, τις βάσεις δεδομένων. Οι προσεγγίσεις πάνω στο ζήτημα ποικίλουν και τοποθετούνται σε έναν άξονα που στο ένα άκρο του έχει μία τεράστια ενιαία βάση στην οποία προσθέτουμε όποια παρτίδα βρούμε - και γρήγορα φτάνουμε τις 15 εκατομμύρια παρτίδες - και στο άλλο άκρο μια προσέγγιση που θέλει πολλές θεματικές βάσεις δεδομένων, ακόμα και κατά άνοιγμα - και φυσικά διαχωρισμένες ως προς το είδος (αγωνιστικό, Corr, Engines, Internet Games) την παλαιότητα (ιστορικές, μοδάτες γραμμές) κ.ο.κ. Θα πρέπει κανείς να βρει μια ισορροπία ως προς την ποιότητα και την ποσότητα των παρτίδων αλλά και να σιγουρευτεί πως η λύση που θα επιλέξει να είναι βιώσιμη ως προς τον χρόνο. Δεν έχει κανένα νόημα να φτιάξει κανείς το τέλειο σύστημα αν απαιτούνται 5 ώρες την ημέρα για να το συντηρεί. Μετά από αλλεπάλληλα πειράματα, έχω καταλήξει για την ώρα στα εξής:

1. Μία MEGA Database που ανανεώνεται κάθε εβδομάδα.

2. Μία βάση με όλα τα TWIC που ανανεώνεται κάθε Τρίτη. Το ιδανικό είναι να την βρει κανείς έτοιμη μέχρι ένα σημείο και μετά να προσθέσει τα updates που δεν περιέχει. Συνεχώς εμφανίζεται κάπου μία τέτοια βάση, η πιο πρόσφατη που βρίσκω με ένα πρόχειρο ψάξιμο είναι εδώ.

3. Μία βάση μόνο με Correspondence παρτίδες της σύγχρονης εποχής. Όσο εκπληκτικές και να είναι οι παρτίδες της εποχής του ταχυδρομείου - όπως ας πούμε η Sanakoev-Shaposhnikov, πρωτάθλημα ΕΣΣΔ 1963-1965 - δεν μας χρησιμεύουν στο σύγχρονο Corr.

Sanakoev,G - Shaposhnikov,Y [B47]
USSR ch-06, 1963-1965

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.0-0 Be7 9.Be3 0-0 10.Kh1 Rd8 11.f4 d6 12.Bf3 Rb8 13.Qe2?!

13.g4

13...Na5? 14.g4 b5 15.g5 Ne8 16.f5 b4 17.fxe6!

Θυσία κομματιού νο.1.

 fxe6 18.Bh5 g6 19.Qf2!

Θυσία κομματιού νο.2

19...Ng7 20.Qf7+ Kh8 21.Bxg6! Nc4!

Τρία λευκά ελαφριά κομμάτια κρέμονται.




22.Nc6!!

Και τώρα 4. Μία από τις πιο θεαματικές θέσεις της σκακιστικής ιστορίας!

22...Ne5 23.Nxe5 Bb7 




24.Qxg7+!

Τοποθετώντας της κορώνα σε αυτή τη βασιλική παρτίδα, μία από τις καλύτερες παρτίδες όλων των εποχών!

24...Kxg7 25.Rf7+ Kh8 26.Rxh7+ Kg8 27.Ng4!

Και φινάλε με μία ήσυχη κίνηση που αφήνει τον μαύρο χωρίς άμυνα

1-0

Από το εξαιρετικό World Champion at the Third Attempt του παγκόσμιου πρωταθλητή Grigory Sanakoev

4. Βάση μόνο με computer games. Καλή πηγή ανανέωσής της αποτελεί το Rybkaforum. Δεν μας ενδιαφέρει τόσο να βρίσκουμε το τί παίζουν τα engines όταν ακολουθούν τα Opening Books τους αλλά κυρίως το τί παίζουν στις πρώτες 3-4 κινήσεις αφότου βγουν από το Opening Book.

Sarakenidis-Kovalenko SM-2014-0-00310

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be3 e5 7. Nb3 Be6 8. f3 h5 9. Nd5 Bxd5 10. exd5 Nbd7 11. Qd2 g6 12. Be2 Bg7 13. O-O O-O 14. Na5


Ο αντίπαλός μου - ισχυρός GM - βασιζόμενος στις σκακιστικές του ικανότητες και πιθανώς συνεπικουρούμενος από τις βάσεις δεδομένων με παρτίδες μεταξύ ανθρώπων, απορρίπτει τη συνηθισμένη συνέχεια 14...Qc7 που αφήνει στα λευκά μια μικρή υπεροχή και διαλέγει μία κίνηση που στατιστικά μεταξύ ανθρώπων δίνει 50% για τα μαύρα, αλλά πολύ πιθανόν σε Corr επίπεδο να χάνει φορσέ

14...Rb8?! 15. Rae1!

Καινοτομία στο ανθρώπινο σκάκι. Η έμπνευση μου ήταν η παρτίδα "κενταύρων" Jernjoffen, Houdini 3 Pro x64 - Deep Butterfly Stockfish 2.3.1 JA, 2012.

15.Rad1, Kuhne-Ntirlis, ICCF 2014
15.Rac1, Ferreira-Weber, email, 2011 και Lisarzaburu-Olofsson, ICCF ματς Βραζιλία-Σουηδία, 2012

Το 15.Rae1 έχει δύο πλεονεκτήματα σε σχέση με τις άλλες πιθανές τοποθετήσεις του πύργου.
Το ένα είναι ότι μετά από 15…e4 16.f4 Ng4 17. Bxg4 hg4 18.c4 να μην έχει ο μαύρος 18…Nc5. Με τον πύργο στο e1 τρώμε στο c5 και πέφτει το e4, ενώ με τον πύργο αλλού όχι.
Ενώ ο πύργος είναι καλύτερος στο e1 και μετά από 18…Qf6 19. b4 g3, 20.hg3 Qf5 21.g4

15...Re8 16. b4! e4 17. f4 Ng4 18. Bxg4 hxg4 19. c4 Qh4 



20. c5! dxc5 21. bxc5 Rec8 22. Rc1 Qh5 23. Rc2 Bf8 24. c6 bxc6 25. Nxc6 Ra8 26. d6 g3 27. hxg3 f6 28. d7 Ng4 29. Re1 Qh2+ 30. Kf1 Qh1+ 31. Bg1 1-0

Η τεχνολογία υπερίσχυσε της σκακιστικής ικανότητας

Η συντήρηση και ανανέωση των βάσεων αυτών είναι πολύ χρονοβόρα. Απαιτούνται 1-2 ώρες την ημέρα και επειδή προφανώς δεν έχω όρεξη σε καθημερινή βάση, πολύ συχνά ξοδεύω ένα 6ωρο μέσα στο Σαββατοκύριακο. Σε επόμενα μέρη θα δούμε αρκετές περιπτώσεις στις οποίες η πρόσβαση σε μία παρτίδα που δεν έχει αρχειοθετημένη ο αντίπαλος μπορεί να κάνει τη διαφορά.








Σάββατο 13 Ιουνίου 2015

Correspondence Chess III - Σκακιστικές Μηχανές ΙΙ


Ας δούμε μερικά ακόμα παραδείγματα κλαδέματος (pruning) αρχίζοντας από τη θέση της προηγούμενης ανάρτησης.

Θέση Corr #2
Sarakenidis - Willmann
LSS SM-2015-0-00316

Εδώ έχει παιχτεί το φινάλε του Βερολίνου λίγο "περίεργα" από την πλευρά των μαύρων αλλά σε καμία περίπτωση η θέση δεν είναι απολύτως κερδισμένη - σε αντίθεση με το παράδειγμα της παρτίδας με τον Litvinov. Το έξτρα πιόνι στο h5 δεν παίζει κάποιο ρόλο αυτή τη στιγμή και ό,τι μπορεί να έχει ο λευκός βρίσκεται στην άλλη πτέρυγα, όπου είναι πιόνι κάτω - αν και διπλωμένο. Θεωρώντας πως για Βερολίνο έχω βγάλει σοβαρό πλεονέκτημα, άφησα τα μηχανάκια αρκετές ώρες. Το Stockfish 5 νομίζω πως έδινε τα πιο ακίνδυνα από όλα. Συνεχώς προσπαθούσε να βάλει τον πύργο στο d7 και μετά από Kc6, δίπλωνε στη d και τα καμάρωνε. Χαρακτηριστικό είναι πως η θέση στην οποία κατέληγε στις πρώτες γραμμές του ακόμα και μετά από πολλές κινήσεις δεν απείχαν και πολύ από αυτή. Π.χ:

Η θέση αυτή προκύπτει στο τέλος της Principal Variation του Stockfish 5 σε Depth 43 από την προηγούμενη και απέχει 12 ολόκληρες κινήσεις από την πρώτη. Ο αξιωματικός έχει πάει σωστά στο g1, οι πύργοι δίπλωσαν στην ανοιχτή στήλη d και όλα μοιάζουν τέλεια, εκτός από το γεγονός πως ο μαύρος παίζει Kc6-b7-c6-b7 μέχρι.... να γίνει ο Kramnik παγκόσμιος πρωταθλητής!

Θέτοντας αυτή τη νέα θέση ως αρχική στο Stockfish 5 μπορεί κανείς να περιμένει κανά 10λεπτο ακόμα για να δει πού θα καταλήξει η νέα Principal Variation του 16 κινήσεις μετά:



Είχα αποθηκεύσει τις αναλύσεις του Stockfish 5 που χρησιμοποιούσα όταν παίχτηκε η παρτίδα ως κύριο engine στο setup, αλλά και τα υπόλοιπα έδιναν αντίστοιχα πράγματα. Τώρα ξαναβάζοντας τη θέση παρατηρώ πως το Stockfish 6 δεν κάνει καμία πρόοδο, ενώ το Komodo 9 προσπαθεί να παίξει ένα Rd6 αφού έχει παιχτεί c6 αναγκάζοντας τον μαύρο να πάρει τη διαφορά για το e6 πιόνι, αλλά με μια πρόχειρη ματιά όλα αυτά τα επιτρέπει το ίδιο το Komodo βάζοντας με τα μαύρα c6 χωρίς κανέναν λόγο. Σχεδόν όλα βάζουν τον αξιωματικό στο g1 κάποια στιγμή αλλά όχι για να υποστηρίξει το break στα μαύρα τετράγωνα αλλά απλώς επειδή εκεί μαξιμάρει η συνάρτηση εκτίμησης.


Αυτό είναι ένα πολύ συχνό φαινόμενο. Ο υπολογιστής πολλές φορές βάζει τα κομμάτια σε κάποιες θέσεις χωρίς να σκοπεύει σε κάτι, απλώς επειδή με τα κομμάτια στις θέσεις αυτές, η συνάρτηση εκτίμησής του δίνει μεγαλύτερα σκορ, είτε γιατί αυξάνεται η κινητικότητα - έχουν περισσότερα τετράγωνα να πάνε ξεκινώντας από αυτό το τετράγωνο, είτε γιατί υπάρχουν μπόνους στην τοποθέτηση και στο δίπλωμα πύργων σε ανοιχτές στήλες - ασχέτως του αν υπάρχουν τετράγωνα εισόδου στη στήλη αυτή ανυπεράσπιστα, είτε γιατί ένας ίππος δεν μπορεί να εκδιωχθεί από πιονάκια κ.ο.κ. Όλα αυτά δεν είναι λάθος - άλλωστε προτείνονται και σε εγχειρίδια σκακιού αιώνες τώρα. Το πρόβλημα είναι όταν άλλες βαριάντες κλαδεύονται λόγω χαμηλού σκορ επειδή δεν έχουν αυτά τα μπόνους, ενώ κατά τα άλλα κάνουν πρόοδο στη θέση. Οι μηχανές δεν καταλαβαίνουν το ότι τα μαύρα κομμάτια είναι δεσμευμένα - o Nf5 να κρατάει τον Bh4, ένας πύργος να κρατάει το e6 και άρα να κόβει και τη γρήγορη μετακίνηση του άλλου πύργου από την μία πτέρυγα στην άλλη - σε τέτοιο βαθμό ώστε αν ανοίξει η θέση να μη μπορούν να αντεπεξέλθουν στις απειλές των λευκών κομματιών. Και ίσως το κυριότερο, ξεφεύγει από τον "ορίζοντά" του το γεγονός πως ο μαύρος θα αναγκαστεί να παίξει Bxg5 κάποια στιγμή - για να μην παίζει με δύο κομμάτια κάτω - με αποτέλεσμα να δημιουργηθεί ένα δίδυμο λευκών πιονιών - g5 και h5 - πολύ επικίνδυνο. Ο συνδυασμός όλων αυτών με το γεγονός πως δίνει συνεχώς στην συνάρτηση εκτίμησής του χάντικαπ για τα διπλωμένα πιόνια του μαύρου, προκαλεί το "κλάδεμα" της συνέχειας που παίχτηκε τελικά στην παρτίδα:

29. Be3 Kc6 30.Bg1 a5 31.Rfd3 Kb7 32.a4 Kb8

Ο μαύρος δεν μπορεί να κάνει τίποτα και έτσι απλώς περιμένει.

33.b3 Kb7 34.c3 Kc6 35.Rb1 Kb7 

Ακόμα και τώρα που όλα είναι έτοιμα, ο υπολογιστής προτείνει Rbd1 ή Ra1 και μετά Rad1


36.b4!

To break στα μαύρα τετράγωνα. Η εκτίμηση του Stockfish 5 πέφτει από 0.89 σε 0.44

36...cb4 37.cb4 ab4 38.Rxb4 Bxg5

Αλλά τώρα το Bxg5 το δίνει φορσέ με όλα τα άλλα να βγάζουν πάνω από +1.00 για τον άσπρο

39.fg5 Ra8 40.Bf2 Rf7 41.h4

Και από αυτό το σημείο πια, αρχίζουν να ανεβαίνουν οι εκτιμήσεις των μηχανών υπέρ του λευκού παρά το ότι ο μαύρος έπαιξε ακριβώς αυτά που πρότειναν τα μηχανήματα να παίξει.

41...Ne7 42.Be3 Nd5


Και αφού φτάνουμε σε αυτή τη θέση, ξαφνικά το Stockfish 6 σε depth 31(!) αντιλαμβάνεται πως ο μαύρος δεν κρατάει πια. Μπορεί να έχει τοποθετήσει τα κομμάτια του με σκοπό το φρούριο, αλλά...

43.Rxd5! +-

To Komodo 9 τη θέση του διαγράμματος τη δίνει +0.14 σε depth 20, +0.42 σε depth 25 (πάντα με 43.Re4? πρώτη επιλογή) και τελικά στο depth 28 βλέπει τη θυσία διαφοράς που κερδίζει. Εδώ έχουμε μια υπο-περίπτωση λάθους κλαδέματος αφού βρισκόμαστε στη ρίζα του δένδρου και παρόλα αυτά για αρκετή ώρα τα engines δεν βλέπουν τη νικηφόρα κίνηση. Κέρδισα τελικά στην 60η κίνηση με τα g και h πιόνια.




Πιο διάσημη περίπτωση λάθους κλαδέματος στην ιστορία αποτελεί η 8η παρτίδα του match Kramnik-Leko για τον παγκόσμιο τίτλο στο Brissago το 2004. Η καλύτερη περιγραφή του γεγονότος μπορεί να βρεθεί στο εξαιρετικό From London to Elista των Evgeny Bareev και Ilya Levitov. Με τρόμο το επιτελείο του Kramnik κατά τη διάρκεια της παρτίδας ανακαλύπτει πως η βαριάντα που ετοίμασαν χάνει φορσέ όταν ξαφνικά το engine που χρησιμοποιούσαν τότε παύει να κλαδεύει την καλύτερη συνέχεια του μαύρου και ξαφνικά σε κάποιο depth γυρνάει σε -+. Τραβώντας τα μαλλιά τους βλέπουν στη συνέχεια τον Kramnik να μπαίνει στη συνέχεια αυτή, τον Leko να βρίσκει την κατάρριψη πάνω στην σκακιέρα και ένας ολόκληρος παγκόσμιος τίτλος να κινδυνεύει να χαθεί λόγω της απροσεξίας τους. Για να καταλάβει κανείς την πρόοδο στις σκακιστικές μηχανές, σήμερα 11 χρόνια αργότερα, οι μηχανές βρίσκουν την κατάρριψη σε λίγα δευτερόλεπτα.


Μερικές φορές μοιάζει πραγματικά ανεξήγητο το γιατί η μηχανή μπερδεύεται. Το τέλος της τελευταίας μου παρτίδας στο ICCF που έληξε προχθές είχε ως εξής:

Θέση Corr #3
Sarakenidis-Garcia Rodriguez
European Server Championship 2014, Preliminary 29

Θέση μετά το 65...Rd1 του μαύρου.

Εδώ μέχρι και σε depth 40 οι μηχανές αδυνατούν να βρουν την πιο σύντομη και σίγουρη νίκη:

66.g4! 

Μόλις βάλει κανείς την κίνηση τότε ξυπνάν τα engine και "βλέπουν" τη φορσέ νίκη.

66...hxg4 67.Kg3 Ke6, 68.Kxg4 Rg1+ 69.Kf3 Rd1 70.Ra6+ Ke7 71.Kg4
Ο μαύρος εγκατέλειψε.

Στο επόμενο αφήνουμε για λίγο τα κλαδέματα και θα συζητήσουμε το θέμα της προετοιμασίας στο άνοιγμα και γενικά το στήσιμο ενός αποτελεσματικού συνόλου εργαλείων για Corr.


Δευτέρα 8 Ιουνίου 2015

Correspondence Chess II - Σκακιστικές Μηχανές Ι


Ο Claude Shannon ήταν ένας Αμερικανός μαθηματικός, ηλεκτρονικός και κρυπτογράφος που γεννήθηκε το 1916 στο Μίσιγκαν και πέθανε το 2001 στη Μασαχουσέτη. Το διδακτορικό του πάνω στη δυαδική άλγεβρα το 1937 αποτέλεσε τη βάση πάνω στην οποία λειτουργεί κάθε ψηφιακό κύκλωμα. Απέδειξε ουσιαστικά πως οποιαδήποτε ηλεκτρονική υλοποίηση της δυαδικής άλγεβρας μπορεί να κατασκευάσει και να επιλύσει κάθε λογική και αριθμητική πράξη. Το γνωστό κλισέ "όλα στον υπολογιστή είναι 0 και 1" στηρίζεται πάνω στη δουλειά του. Στα καθ' ημάς η μελέτη του "Προγραμματίζοντας έναν υπολογιστή να παίζει σκάκι" που δημοσιεύτηκε το 1950,  καθόρισε τη βασική δομή μιας σκακιστικής μηχανής, ενώ όρισε δύο διακριτές οικογένειες σκακιστικών μηχανών, τη μηχανή τύπου Α και τη μηχανή τύπου Β. Το 99% των σκακιστικών μηχανών που έχουν υλοποιηθεί από τότε μέχρι σήμερα συμφωνεί με αυτή τη δομή και ταιριάζει σε αυτήν την ταξινόμηση, είτε μιλάμε για hardware μηχανές όπως τα θρυλικά Memphisto αλλά και ο Deep Blue, είτε μιλάμε για το λογισμικό που χρησιμοποιούμε  κατά κόρον σήμερα, τα Stockfish, Houdini, Fritz, Komodo, Rybka κλπ.

Οι μηχανές τύπου Α παίρνουν με τη σειρά όλες τις κινήσεις σε μία θέση και τις αναλύουν μία-μία διαδοχικά σε κάποιο βάθος δημιουργώντας ένα εικονικό δέντρο με όλες τις βαριάντες που είναι πιθανόν να προκύψουν μέχρι αυτό το ορισμένο βάθος κινήσεων - το περιβόητο Depth που βλέπουμε στις οθόνες μας. Κάθε σημείο διακλάδωσης αυτού του δένδρου που προκύπτει είναι στην πραγματικότητα μία σκακιστική θέση P. Για κάθε τέτοιο P η μηχανή καλεί μια συνάρτηση εκτίμησης Ε(P) που επιστρέφει ένα σκορ. Η μηχανή συνεχώς συγκρίνει αυτά τα σκορ που λαμβάνει για κάθε θέση μεταξύ τους και τελικά σχεδιάζει μία διαδρομή μέσα σε αυτό το δέντρο που μας δείχνει την αλληλουχία των κινήσεων που συνιστούν το καλύτερο παιχνίδι και των δύο πλευρών της παρτίδας. Βήμα προς βήμα, κίνηση προς κίνηση, όταν είναι να παίξει ο λευκός στη διάρκεια αυτής της διαδρομής η μηχανή επιλέγει την κίνηση εκείνη που οδηγεί σε μεγαλύτερο σκορ και όταν παίζει ο μαύρος αυτή που οδηγεί σε μικρότερο. Για οποιοδήποτε Depth του ορίσουμε - ή οποιοδήποτε Depth έχουμε την υπομονή να περιμένουμε να φτάσει - μας επιστρέφει την αλληλουχία των καλύτερων κινήσεων - την Principal Variation - και το τελικό σκορ του "φύλλου" του δένδρου στο οποίο αυτή η αλληλουχία οδηγεί. Αυτός ο αριθμός - το σκορ - είναι που βλέπουμε τελικά στις οθόνες μας ως εκτίμηση της αρχικής θέσης στο συγκεκριμένο Depth. Το σκορ δηλαδή δεν αφορά τη θέση που βλέπουμε μπροστά μας αλλά τη θέση στην οποία καταλήγει η βαριάντα που μας δίνει ως τη σωστότερη.



Οι μηχανές τύπου Β κάνουν ακριβώς το ίδιο πράγμα με μια σημαντική διαφορά. Αντί να αναλύουν μία προς μία διαδοχικά όλες τις κινήσεις από την αρχική θέση και όλες τις κινήσεις σε κάθε διακλάδωση του δέντρου, επιλέγουν μόνο ένα υποσύνολο αυτών - και μάλιστα μικρό υποσύνολο - και έτσι το δένδρο τελικά που εξετάζουν είναι πολύ μικρότερο σε πλάτος και περιέχει πολύ λιγότερους κόμβους, πολύ λιγότερες δηλαδή σε αριθμό θέσεις P για τις οποίες καλείται η συνάρτηση εκτίμησης Ε(P). Οι τεχνικές με τις οποίες επιλέγεται κάθε φορά αυτό το υποσύνολο  κινήσεων προς διερεύνηση ποικίλουν αλλά η αρχική ιδέα ήταν να προσομοιάζουν τον τρόπο με τον οποίον προσεγγίζει το πρόβλημα ο ανθρώπινος εγκέφαλος, και πιο συγκεκριμένα ο ανθρώπινος εγκέφαλος ενός σκακιστή, όπως για παράδειγμα τεχνικές που στηρίζονται σε αναγνώριση προτύπων (pattern recognition). Ο διασημότερος υποστηρικτής των μηχανών τύπου Β ήταν o Mikhail Botvinnik - γιατί απλώς πίστευε πως θα αποτελούσε μεγάλη παραχώρηση το να μη χρησιμοποιηθεί η σκακιστική ευφυΐα ενός ισχυρού μαιτρ στην επιλογή των πιθανών κινήσεων και να χάνει άδικα χρόνο ο υπολογιστής "μετρώντας" κάθε χαζή κίνηση. Και ο ίδιος ο Shannon θεωρούσε ουτοπικό το να φτιαχτεί μια μηχανή τύπου Α, αυτός για τεχνολογικούς λόγους διότι πίστευε πως η ισχύς των επεξεργαστών υπολογιστών δε θα είναι ποτέ αρκετή για να επιτρέψει τη δημιουργία ενός ισχυρού σκακιστικού προγράμματος που θα αναλύει όλες τις πιθανές κινήσεις κάθε θέσης. Περιττό να πούμε το ότι και οι δύο έκαναν λάθος και πως σήμερα όλες οι μηχανές και τα προγράμματα που χρησιμοποιούμε ανήκουν στην οικογένεια των μηχανών τύπου Α.

Το μεγάλο - και ανυπέρβλητο - πρόβλημα στην εξέλιξη των μηχανών τύπου Β ήταν πως αποδείχτηκε αδύνατον να μεταγραφεί σε κώδικα ο τρόπος με τον οποίον επιλέγουν οι ισχυροί παίκτες το ποιες κινήσεις πρέπει να αναλύσουν. Το 90% των κινήσεων που "κρεμάνε" υλικό ο άνθρωπος δεν τις αναλύει καθόλου. Το άλλο 10% όμως αποτελείται από θυσίες που κερδίζουν φορσέ ή - το δυσκολότερο - από στρατηγικές θυσίες με αντάλλαγμα κάποιο δομικό χαρακτηριστικό της θέσης (π.χ. Benko Gambit) και θυσίες για την πρωτοβουλία. Το όραμα πολλών να μετατρέψουν σε λογισμικό την προσέγγιση στη θέση που προτείνει ο Kotov στο Think Like a Grandmaster αποδείχτηκε ουτοπικό. Για να βρει ο υπολογιστής μία Κασπαροβική θυσία πιονιού στο κέντρο με αντάλλαγμα την πρωτοβουλία, πρέπει να αναλύσει σε βάθος όλες τις θυσίες πιονιού που βλέπει. Το να εντοπίσει μόνος του την ενδιαφέρουσα και να αναλύσει μόνον αυτή αποδείχτηκε αδύνατο. Ενώ ο άνθρωπος δυσκολεύεται στο να θυμάται τί έχει μετρήσει και να οργανώσει τα συμπεράσματα αυτών των αναλύσεών του νοερά πριν αποφασίσει, ο υπολογιστής αποδείχτηκε πως παρόλο που μπορεί να θυμάται τα πάντα που έχει αναλύσει, δεν μπορούσε να επιλέξει το τί θα έπρεπε να αναλύσει εξ αρχής και πόσο. Έτσι καταλήξαμε στο να αναλύει τα πάντα μέχρι να τον σταματήσει κάποιος ή να του αλλάξει τη θέση. Ή για να είμαστε ακριβείς, σχεδόν τα πάντα.



Πάρα πολύ νωρίς στην ιστορία της πληροφορικής, από το 1928 ακόμα στο τομέα της θεωρίας των παιγνίων - της τόσο κατασυκοφαντημένης στη χώρα μας το τελευταίο διάστημα - εισήχθη από τον John Von Neumann το θεώρημα της εκτίμησης MiniMax. Ξεφεύγει από τους σκοπούς του άρθρου αυτού - και του μπλογκ γενικότερα - το να εξηγήσει αυτό το θεώρημα. Η πιο απλή εξήγησή του με παραδείγματα που γνωρίζω αφορά το παιχνίδι της τρίλιζας και βρίσκεται εδώ. Σε ότι μας αφορά, η ουσία του MiniMax αλγορίθμου βρίσκεται στην εξής ιδέα: Αν σε μία θέση P μία κίνηση οδηγεί σε σκορ 5 και μία σε -10, τότε το κλαδί του δέντρου που αρχίζει με την κίνηση που οδηγεί σε -10 δε χρειάζεται να το αναλύσουμε ολόκληρο. Θα προχωρήσουμε ελέγχοντας όλα τα φαγώματα, τα σαχ, τις προαγωγές κ.ο.κ. αλλά κάποια στιγμή όταν θα φτάσουμε σε ήσυχη θέση θα σταματήσουμε να ασχολούμαστε αν το σκορ παραμένει σχετικά χαμηλό. Ως τελευταία δοκιμή, μπορούμε να δώσουμε δύο φορές την κίνηση στον αδύναμο παίχτη και αν και πάλι δε δούμε σοβαρή μεταβολή προς τα πάνω, θα κόψουμε εντελώς το κλαδί. Αυτή η κάπως εκλαϊκευμένη περιγραφή εξηγεί τη βασική λειτουργία του περιβόητου Pruning (κλαδέματος). Το δε κολπάκι με τη διπλή κίνηση του αδύναμου παίχτη είναι γνωστό στο σκακιστικό προγραμματισμό - και γενικότερα στον προγραμματισμό παιγνίων, ως Null Move Euristic και χρησιμοποιείται στον αλγόριθμο αναζήτησης Alpha-Beta, έναν αλγόριθμο υλοποίησης του MiniMax θεωρήματος. Ο αλγόριθμος Alpha-Beta αποτελεί σήμερα το σκελετό πάνω στο οποίον γράφονται όλα τα σκακιστικά προγράμματα. Όποιος θέλει μπορεί να δει το παρακάτω εισαγωγικό βίντεο:



Μπορεί λοιπόν οι απόπειρες να οριστούν από τα πριν υποσύνολα κινήσεων που έχουν νόημα να αναλυθούν να απέτυχαν παταγωδώς - και οι μηχανές τύπου Β να έχουν ουσιαστικά εκλείψει -, όμως τα δέντρα που παράγουν οι μηχανές τύπου Α κλαδεύονται με διάφορους τρόπους και έτσι ο αριθμός των θέσεων για τις οποίες καλείται η συνάρτηση εκτίμησης είναι πολύ μικρότερος από το συνολικό αριθμό των πιθανών θέσεων (Nodes) που μπορούν να προκύψουν από την αρχική θέση. Έτσι ουσιαστικά έχουμε ένα υβριδικό σύστημα. Συμπερασματικά, μετά από όλα τα προαναφερθέντα, μπορούμε ήδη να ορίσουμε δύο τρόπους με τους οποίους ο άνθρωπος - στο θέμα μας, ένας Corr παίκτης - μπορεί να βοηθήσει μία σκακιστική μηχανή.

1ον) Στη αρχική θέση ανάλυσης να σπρώξει τη μηχανή προς συγκεκριμένες κινήσεις. Ας πούμε η κίνηση 8.e4 στη βασική θέση της βαριάντας Panno της Ινδικής του Βασιλιά είναι γνωστό πως δεν είναι καλή. Αντίθετα η ιδέα 8.Bf4,9.Rc1 που εμποδίζει το θεματικό b5 του μαύρου είναι πολύ ενδιαφέρουσα.  Ενδεικτικά το Stockfish 5 σε Depth 20 τις δίνει περίπου ισοδύναμες. Με το να σπρώξουμε τη μηχανή προς το 8.Bf4, μετατρέπουμε τη μηχανή μας σε μια απίστευτα έξυπνη εκδοχή της μηχανής τύπου Β που περιγράψαμε πιο πάνω. Αυτό προσπαθούσε να κάνει ο Botvinnik για 3 δεκαετίες χωρίς επιτυχία - χωρίς ανθρώπινο χέρι. Αντιστοίχως στην πιονοδομή της Γαλλικής όλοι οι καλοί Corr παίκτες αλλά και όλοι οι αναλυτές και συγγραφείς βιβλίων δοκιμάζουν σχεδόν σε κάθε θέση το f6 του μαύρου.  Σχεδόν πάντα οι μηχανές δεν ενθουσιάζονται με αυτή την ιδέα. Κάποιες φορές είναι η καλύτερη κίνηση και σχεδόν πάντα μία από τις καλές υποψήφιες.

2ον) Να εντοπιστούν οι περιπτώσεις λανθασμένου κλαδέματος της Alpha-Beta. Εδώ έχουμε τη γενική περίπτωση στην οποία λέμε ότι ο υπολογιστής δε βρίσκει το σωστό σχέδιο - αυτά που προτείνει δεν οδηγούν σε πρόοδο. Η συχνότερη περίπτωση είναι όταν δεν μπορούν να βελτιωθούν οι θέσεις των κομματιών, ενώ όλα τα breaks πιονιών βραχυπρόθεσμα οδηγούν σε μείωση του σκορ για τον παίκτη που τα παίζει, με αποτέλεσμα να κλαδεύονται από τον αλγόριθμο. Ας δούμε τη θέση-παράδειγμα από το πρώτο μέρος της σειράς.

Θέση Corr #1
Litvinov-Sarakenidis,EU/WS/O/090

Παίζει ο μαύρος. SF5/d38/35...Kh7/-1.14

Ο υπολογιστής παίζει Kh7 και δύο κινήσεις μετά Kg7. Στην Principal Variation του μεταφέρει τη ντάμα από το b4 στο e7 και πάλι πίσω στο b4. Κάποια στιγμή παίζει f5 με τον ίππο στο d4. Ο λευκός βάζει τη ντάμα στο g5 και σχεδόν ισοφαρίζει. Όταν έβαλα την τελική θέση της Principal Variation ως αρχική νέας ανάλυσης, η εκτίμηση σύντομα έπεσε στο -0.31. Έπαιξα 35...Nf4 - η μοναδική κίνηση που κάποιος μπορεί να ισχυριστεί πως αποτελεί βελτίωση κομματιού και μετά από 36.Ne1 είδα και πάλι πως οι προτάσεις του υπολογιστή δεν οδηγούν πουθενά. Πρώτη επιλογή σε μεγάλα Depth έδινε την υποχώρηση 36...Ne6.  Μετά από 37.Nf3 ο αντίπαλος μου πρότεινε ισοπαλία.




Ο υπολογιστής δεν καταλαβαίνει ποιό είναι το πρόβλημα με αυτά που προτείνει. Δε δίνει δεκάρα για το αν θα κερδηθεί η παρτίδα. Όσο βλέπει τις καλύτερες θέσεις των μαύρων κομματιών, το καθυστερημένο d3 πιόνι και την εδαφική υπεροχή του μαύρου, συνεχίζει ικανοποιημένος να τα κουνάει πέρα-δώθε. Δε θα προτείνει ποτέ την αλλαγή της πιονοδομής. Ο άνθρωπος αν ασχοληθεί 10-15 λεπτά με τη θέση θα καταλάβει πως μόνο με αλλαγή της πιονοδομής μπορεί να επιτευχθεί πρόοδος. Δοκίμασα να κάνω να "δουλέψει" το g5, ακολούθως το f5 (φαίνεται άσχημο, αλλά στο Corr οι δοκιμές είναι τζάμπα αν έχεις διαθέσιμο χρόνο) και τελικά κατέληξα στο c6-b5.

37...Qe7 38.Qd1 Nf4 39.Ne3 c6 40.Nc4 Qb4 41.Qc2 b5 42.Nb2 Qd6 43.g3 Ne6 44.Rd1?! (Επιταχύνει το τέλος, 44.Qc1 ήταν πιο ανθεκτικό) g5! 45.hg5 fg5 -+

Αυτή τη θέση το Stockfish τη δίνει σε Depth 33/-.1.14 όπως και αυτή του προηγούμενου διαγράμματος δηλαδή. Όμως, το κρίσιμο στοιχείο που με οδήγησε στο να στοχεύω σε αυτή τη θέση, ήταν το γεγονός πως δίνει ως φορσέ το 46.d4 και όλες τις άλλες κινήσεις του λευκού πάνω από -2.00. Κάθε πιθανότητα φρουρίου, κάθε πιθανότητα να προκύψει θέση που δεν έχει πρόοδο ο μαύρος έχει εκλείψει αν ο λευκός είναι υποχρεωμένος να βάλει d4. Η θέση θα ανοίξει και όλα τα στρατηγικά πλεονεκτήματα του μαύρου θα μετρήσουν στην ανοικτή θέση. Η συγκεκριμένη παρτίδα ήταν η 2η μου παρτίδα στο ICCF - ή τουλάχιστον η 2η στην οποία έβαλα engine. 46...ed4 47.Rcd3 (φορσέ) Qe7 48.Ne5 (επίσης φορσέ) Rc7 49.Rf3 Qc5 50.Qxc5 Nxc5 51.Rc1 Nxe4 52.ab5 Rd5! 53.b6 Re7 54.Nec4



Όλες οι κινήσεις του λευκού από το 44...g5! μέχρι αυτή τη θέση ήταν φορσέ. Οτιδήποτε άλλο και να έπαιζε το σκορ του χειροτέρευε απότομα. Αυτό το είχα εντοπίσει και όταν έπαιξα 44...g5 είχα ήδη αφήσει μία νύχτα τη θέση μετά από 54.Nec4. Το πρωί είδα πως έχω ξεφύγει πια από το "εφιαλτικό" -1.14. Ήδη σε Depth 32 το σκορ ήταν -1.78. Αυτό είναι ένα παράδειγμα αυτού που ονομάζουμε Tunnel Variation. Στην αρχή του Tunnel ο υπολογιστής δίνει ένα σκορ αλλά συνεχίζει και αναλύει διάφορες κινήσεις οι οποίες δε θα παιχτούν ποτέ. Υποχρεώνοντάς τον να αναλύσει τη θέση στο τέλος του τούνελ - αφού όλα τα ενδιάμεσα βήματα για τον ένα παίχτη είναι φορσέ - κάνουμε με το χέρι αυτό που ήθελαν να κάνουν οι μηχανές τύπου Β, να μετρούν δηλαδή μόνο ό,τι έχει νόημα να μετρηθεί.





Ο εντοπισμός τέτοιων φορσέ βαριαντών είναι μια πολύ βασική ικανότητα στο Corr. Αν ο αντίπαλος δεν έχει βρει το Tunnel ή το βρει αφού μπει σε αυτό, πολλές φορές η παρτίδα έχει τελειώσει. Εδώ βέβαια ξεκινήσαμε από μία ήδη πολύ πλεονεκτική θέση, αυτό όμως μπορεί να συμβεί και σε ισόπαλες θέσεις. Η παρτίδα κράτησε άλλες 20 κινήσεις ξεκινώντας με το 54...g4 αλλά είχε ήδη κριθεί. Το μόνο που χρειαζόταν στη συνέχεια ήταν λίγη υπομονή. Litvinov-Sarakenidis.

Αφήνω προσωρινά τους ηρωικούς αναγνώστες που έφτασαν μέχρι εδώ με μία ακόμη θέση που θα συζητήσουμε σε επόμενα μέρη. Ελπίζω στη συνέχεια να μην έχουμε τόσες τεχνικές λεπτομέρειες αλλά θεώρησα πως αυτή η σύντομη ανασκόπηση στην ιστορία των σκακιστικών μηχανών ως προς το Search κομμάτι τους, ήταν απαραίτητη.

Θέση Corr #2

Παίζει ο λευκός. Έχει παιχτεί το φινάλε του Βερολίνου στην Ισπανική. Ψάχνουμε και πάλι πρόοδο για τα λευκά.















Πέμπτη 4 Ιουνίου 2015

Παλιές και νέες στήλες


Θα αναβιώσω κάποιες από τις παλιές στήλες του μπλογκ. Καταρχήν θα συνεχίσω την "Ορολογία Προβληματιστών" γιατί είναι κρίμα να μείνει στη μέση. Θα επανέλθουν τα Computer Chess Notes αναβαθμισμένα ενώ και η στήλη "Σήμερα από το διαδίκτυο" θα εμφανιστεί και πάλι, αυτή τη φορά ίσως πιο επικεντρωμένη σε βίντεο καθώς τα τελευταία χρόνια μπορεί κανείς να απολαύσει σκακιστικά βιντεάκια σε καθημερινή βάση.

Παρακαλώ αν έχετε οποιαδήποτε πρόταση θεματολογίας γράψτε στα σχόλια αυτής της ανάρτησης. Μη διστάζετε, στη χειρότερη περίπτωση αν δεν μου αρέσει ένα θέμα δε θα το πιάσω.

Τετάρτη 3 Ιουνίου 2015

Correspondence Chess I - Εισαγωγικά


Δίσταζα να αρχίσω μια σειρά αναρτήσεων σε σχέση με το σκάκι δι αλληλογραφίας όπως παίζεται στη σύγχρονη εκδοχή του, θεωρώντας πως ενδιαφέρει ελάχιστα. Οι Έλληνες ενεργοί παίκτες - τουλάχιστον στα επίσημα τουρνουά της ICCF - είναι μετρημένοι στα δάχτυλα, ενώ και στο παρελθόν αν δεν κάνω λάθος, το παραδοσιακό σκάκι δι αλληλογραφίας μέσω ταχυδρομείου δεν ήταν ποτέ δημοφιλές στα μέρη μας. Παρόλα αυτά, με έκπληξή μου μερικοί συμπαίκτες μου στα τουρνουά της Αθηνάς μου είπαν πως θα τους ενδιέφερε να διαβάσουν κάτι ανάλογο - μου το είπαν πάνω από δύο άνθρωποι που τους θεωρώ κρίσιμη μάζα για ένα μπλογκ σαν και αυτό. Επίσης, πολλές φορές τα σχόλια που ακούω για το πώς χρησιμοποιεί ο κόσμος τις σκακιστικές μηχανές μου διαλύουν το νευρικό σύστημα και μου δίνεται η δυνατότητα να βγάλω το άχτι μου σε αυτά τα άρθρα εξηγώντας με τις μέτριες γνώσεις μου πάνω στο αντικείμενο έστω κάποια βασικά πράγματα. Αυτό δε σημαίνει ότι τα σημειώματα αυτά θα καταλήξουν - ή καταντήσουν - να είναι ένας τεχνοκρατικός μονόλογος πάνω στα engines. Ελπίζω να έχουν και λίγο σκάκι μέσα, αλλά - όπως συνηθίζεται στο μπλογκ αυτό - και λίγη ιστορία. Αραιά και που, θα βάζω και μερικές θέσεις προς ανάλυση στις οποίες θα επιτρέπεται - έως και επιβάλλεται - η χρήση engine, μήπως θελήσει κάποιος να προσπαθήσει να ασχοληθεί και πρακτικά με το ζήτημα.



Υποχρεωτικά πρέπει να ξεκινήσουμε κάνοντας έναν σαφή και σημαντικό διαχωρισμό. Το σκάκι δι αλληλογραφίας χωρίς τη χρήση σκακιστικών μηχανών δεν έχει καμία σχέση με αυτό που παίζεται στις επίσημες διοργανώσεις της παγκόσμιας ομοσπονδίας, στις οποίες δεν απαγορεύεται απολύτως τίποτα ως βοήθημα. Το μόνο πράγμα που απαγορεύεται είναι η δημοσιοποίηση παρτίδας που δεν έχει τελειώσει ακόμα. Η βοήθεια ανθρώπων είναι αυτή που απαγορεύεται - όσο μπορεί να ελεγχθεί κάτι τέτοιο - και όχι η χρήση οποιουδήποτε λογισμικού, οποιασδήποτε βάσης δεδομένων και οποιουδήποτε βιβλίου. Ο όρος Corr που θα χρησιμοποιώ από δω και μπρος θα σημαίνει αυτό το σκάκι και όχι το παραδοσιακό. Υπάρχουν αρκετοί servers στους οποίους απαγορεύεται η χρήση engines, αλλά όπως και σε όλα τα πράγματα, αν ένας κανόνας είναι αδύνατο να επιβληθεί, είναι λίγο γελοίες οι απόπειρες διατήρησής του. Στους δύο σημαντικότερους servers που παίζεται Corr, σε αυτόν της παγκόσμιας ομοσπονδίας ICCF αλλά και στον LSS server, οι παρτίδες παίζονται με χρήση μηχανών. Στον δεύτερο υπάρχουν και τουρνουά στα οποία απαγορεύεται και επειδή ακριβώς εκεί όντως κανείς δε χρησιμοποιεί, αφού έχει τα κανονικά τουρνουά για να παίξει κανονικό Corr, κανείς δεν κλέβει. Αν κάποιος θέλει να παίξει Correspondence σκάκι χωρίς μηχανές, θα του πρότεινα να το κάνει εκεί για να μην έχει πάντα την υποψία ότι κάποιος τον κοροϊδεύει. Όπως μπορεί να αντιληφθεί ο καθένας, το να παίζεις αναλύοντας με το χέρι ενάντια σε κάποιον που αναλύει με το μηχανάκι, είναι πολύ κρίμα και στερείται νοήματος.

Το φυσικό ερώτημα που προκύπτει μετά από όλα αυτά - ένα ερώτημα το οποίο καλούμαι συνεχώς να απαντώ σε σκακιστές που με ρωτούν - είναι το γιατί λέμε ότι παίζουμε εμείς αφού παίζουν οι μηχανές. Οι περισσότεροι πιστεύουν πως στο Corr, ένας παίκτης παίζει απλώς αυτό που του δίνει ως πρώτη επιλογή το μηχανάκι του. Οι πιο "προχωρημένοι" - και επίσης ταξικά τοποθετημένοι - δηλώνουν ότι προφανώς θα κερδίσει αυτός που έχει πιο ισχυρό υπολογιστή. Δυσκολεύονται να πιστέψουν μάλιστα ότι εγώ παίζω απλώς με έναν i7 τετραπύρηνο της σειράς, πόσο μάλλον το ότι κάποιες παρτίδες τις "μεταφέρω" μερικές φορές και σε έναν netbook της συμφοράς, όταν καταλαβαίνω πως για αυτές τις θέσεις, το καλό hardware δεν έχει να μου προσφέρει τίποτα. Ελπίζω πως στη συνέχεια των άρθρων αυτών - και μέσα από παραδείγματα - θα γίνει φανερό το ότι η πραγματικότητα απέχει παρά πολύ από αυτό το σχήμα σκέψης.

Όταν άρχισα να παίζω Corr, τον Σεπτέμβριο του 2013, ως πρώτο βήμα κατανόησης του κόσμου αυτού, κατέβασα παρτίδες κορυφαίων παικτών - σύγχρονων αφού είχα ήδη στην κατοχή μου συλλογές παλαιών παρτίδων από την εποχή όμως που δεν υπήρχαν engines ή ήταν ακόμη πολύ αδύναμα. Προχώρησα σε κάτι που μου φάνηκε πολύ λογικό τότε. Έβαλα τις παρτίδες σε engines για να δω το περιβόητο - έγινε και feature στην καινούρια Chessbase μαθαίνω - Engine Correlation σε τί επίπεδα κυμαίνεται.. Engine Correlation είναι ένας όρος που απλώς μας δίνει το ποσοστό των κινήσεων ενός παίκτη που ταυτίζεται με την πρώτη ή και τη δεύτερη επιλογή μιας μηχανής. Η μόνη χρήση του από το γενικό σκακιστικό πληθυσμό σήμερα είναι το να προσπαθεί να εντοπίσει "κλέφτες" στα κανονικά τουρνουά. Θλιβερό αλλά αυτή είναι η πραγματικότητα. Κάνοντάς το συστηματικά αυτό για μία εβδομάδα περίπου κατέληξα στα απρόσμενα για μένα - τότε - εξής αποτελέσματα: 1ον) Τα ποσοστά ταύτισης των κινήσεων των κορυφαίων παικτών με τα engines είναι εντυπωσιακά χαμηλά όταν παίζουν ισάξιοι παίκτες μεταξύ τους και όσο η παρτίδα παραμένει ισόρροπη. Όταν κάποιος αποκτούσε πλεονέκτημα στη θέση, το ποσοστό εκτοξευόταν μέχρι να φτάσουμε στα φινάλε όπου έπεφτε και πάλι χαμηλά. 2ον) Ένα engine έδινε διαφορετικές πρώτες επιλογές σε ένα Depth A από ότι σε ένα Depth B σε πολύ μεγάλο βαθμό, ακόμα και αν τα Α και Β ήταν σχετικά κοντά μεταξύ τους. 3ον) Τα engines μεταξύ τους σε ισορροπημένες θέσεις είχαν τεράστιες διαφορές ως προς την Principal Variation τους, διαφορές που ελαχιστοποιούνταν όσο η μία πλευρά ή η άλλη αποκτούσαν πλεονέκτημα στη θέση.



Πολύ γρήγορα από το πρώτο συμπέρασμα αυτής της διαδικασίας έφτασα σύντομα στο σημείο να καταλάβω πως ένας ισχυρός παίχτης Corr παίζει πολύ ισχυρότερα από μια σκακιστική μηχανή. Τα άλλα δύο συμπεράσματα με οδήγησαν σε μια άβολη κατάσταση, κατά την οποία έπρεπε κάθε φορά που κάποιος σκακιστής στα τουρνουά μου έλεγε πως ο υπολογιστής δίνει την Α κίνηση στην τάδε θέση, να κάνω προσπάθειες για να μην ρωτώ συνεχώς ι) ποιό engine, ιι) με ποιές ρυθμίσεις και ιιι) σε ποιό depth. Όλα μπερδεύτηκαν ακόμα περισσότερο όταν συνειδητοποίησα πώς εκτός του να βάζει κανείς μια θέση και να αφήνει τον υπολογιστή για ώρα μέχρι να καταλήξει σε μία κίνηση (και σε μία Principal Variation) ή σε x προτάσεις (1η επιλογή, 2η επιλογή κ.ο.κ.) και αντίστοιχο αριθμό βαριαντών, εκτός δηλαδή από αυτό που ονομάζουμε Infinite Analysis Mode, υπάρχουν και άλλοι τρόποι ανάλυσης θέσεων - αυτό που πολλοί ισχυροί OTB (over the board, κανονικό σκάκι δηλαδή) παίκτες ονομάζουν "βοηθάω τον υπολογιστή".

Οι τεχνικές με τις οποίες μπορεί κανείς να "βοηθήσει" τον υπολογιστή, τα εργαλεία που έχουν φτιαχτεί για να αυτοματοποιούν κομμάτια αυτής της διαδικασίας - όπως το περιβόητο IDEA Module που υπάρχει στο λογισμικό Aquarium, άλλες τεχνικές με τις οποίες μπορεί να χρησιμοποιηθούν οι προτάσεις μιας μηχανής για να "βοηθήσουν" μία άλλη (π.χ. Carouseling), τεχνικές εντοπισμού φρουρίων (fortresses), ο ορισμός της έννοιας βαριάντα-τούνελ (Tunnel Variation), η ανάλυση Monte-Carlo και πολλά ακόμα, άνοιξαν έναν καινούριο θαυμαστό κόσμο για μένα και εν πολλοίς εξήγησαν το πώς γίνεται η διασπορά των παιχτών στις περιοχές rating. Είναι προφανές πως για να προχωρήσει  κανείς στο σύγχρονο Corr πρέπει να καταλάβει το τί σημαίνουν και πώς λειτουργούν όλα αυτά και να μάθει να χρησιμοποιεί τα εργαλεία με τον σωστό τρόπο. Επίσης, πρέπει να ξέρει να συντηρεί βάσεις δεδομένων παρτίδων - και εδώ υπάρχουν πολλές σχολές ως προς το πόσες σε αριθμό διακριτές βάσεις πρέπει να είναι αυτές αλλά και τη σχέση ποιότητας/ποσότητας των παρτίδων που περιέχουν -, να φτιάξει ένα ρεπερτόριο ανοιγμάτων τέτοιου επιπέδου που μπροστά του τα ρεπερτόρια των σκακιστών της super-elite ωχριούν (με την επισήμανση βέβαια πως αυτοί τα μαθαίνουν απ έξω, κάτι αφάνταστα δύσκολο) και να τηρεί απαρέγκλιτα μια σειρά επαναλαμβανόμενων ελέγχων για να μην κάνει κάτι που ακούγεται αστείο, αλλά συμβαίνει αρκετά συχνά. Να μην αναλύει δηλαδή λάθος θέση!

Όλα αυτά σταδιακά έχω σκοπό να τα αναπτύξω στη συνέχεια, αλλά πρώτον, αυτή η εισαγωγή ήδη έχει ξεχειλώσει αρκετά και δεύτερον, μπορεί οι λίγοι αναγνώστες αυτού του μπλογκ να ζητήσουν να μην ολοκληρωθεί αυτό το βασανιστήριο. Ως κατακλείδα του παρόντος, ας βάλουμε μια θεσούλα για ορεκτικό.

Θέση Corr #1

Τα μαύρα είναι καλύτερα και έχουν την κίνηση. Ψάχνουμε σχέδιο νίκης.

















Τετάρτη 5 Οκτωβρίου 2011

Computer Chess Notes #3



Το γεγονός που έχει ταρακουνήσει όλους όσους ασχολούνται είτε ως επαγγελματίες είτε ως χομπίστες με τις software σκακιστικές μηχανές ήταν η απόφαση της Διεθνούς Ομοσπονδίας Σκακιού Υπολογιστών να αφαιρέσει από τη Rybka όλους τους τίτλους που έχει κατακτήσει και πιο συγκεκριμένα 4 παγκόσμια πρωταθλήματα και 2 παγκόσμιους τίτλους στο Blitz και να αποκλείσει δια βίου τον προγραμματιστή της Vasik Rajlich από όλες τις επίσημες διοργανώσεις της. Η κατηγορία είναι πως η Rybka αποτελεί κλώνο του Crafty και του Fruit - έχει δηλαδή κλεμμένο κώδικα από τα δύο αυτά προγράμματα. Η πλάκα είναι πως όταν βγήκαν οι νέες δυνατές μηχανές - Stockfish, Houdini κλπ - πολλοί έσπευσαν να κατηγορήσουν τους προγραμματιστές τους για κλοπή - από τη Rybka. Ήταν προφανές πως υπήρχε εμπορικό πρόβλημα για τη Rybka όταν δωρεάν μηχανές την κόντραραν στα ίσια. Από τότε το Stockfish έχει ανοίξει τον κώδικά του αποδεικνύοντας έτσι πως δεν είναι κλώνος, ενώ το Houdini παραμένει ύποπτο. Έτσι οι δύο ισχυρότερες μηχανές αυτή τη στιγμή - Rybka και Houdini - δεν έχουν δικαίωμα συμμετοχής στις επίσημες διοργανώσεις. Μένει να δούμε πόσο θα επηρεαστούν οι πωλήσεις της Rybka από τις εξελίξεις αυτές. Πρόβλεψη: όχι και πολύ.

Εντωμεταξύ στο Chesswar 16 τουρνουά - ελβετικό 15 γύρων - ισοβάθμησαν το Stockfish 2.1.1 με το Houdini 1.5A με 11/15 στην πρώτη θέση, με τα Naum4.2, Komodo 1.3, Sjeng2010 και Critter 1.01 να ισοβαθμούν στους 9.5 και τη Rybka4.1 πιο πίσω με 9/11. Από την άλλη στο match Rybka-Houdini που διοργάνωσε το Westport Chess Club στο Kansas City, η Rybka κέρδισε 51-49 με το Houdini όμως να παίζει με Gaviota tablebases εναντίον των Nalimov που είχε η Rybka, πράγμα που αποτελεί πιθανό χάντικαπ. Χρησιμοποιήθηκαν οι εκδόσεις Houdini 1.5a και Rybka 4.1 σε AMD Phenom Quad Core και χρόνο σκέψης 2 ώρες για τις 40. Οι ειδικές ομάδες ανθρώπων που υπολογίζουν τα ratings των engines έχουν τις 64μπιτες εκδόσεις των Rybka 4.1 και Houdini 1.5a στα 3150 και 3208 αντίστοιχα με το Critter 1.2 να σπάει τη διαρχία με 3172 - όλα αυτά στην τελευταία λίστα τους.

Σε παλαιότερη ανάρτηση αναφερθήκαμε στον Shahar Tzafrir που ειδικεύετε στο να αντιμετωπίζει engines και διατηρεί θετικό σκορ με το Rybka Cluster. Αυτή τη φορά έχουμε τον Dave Wiekrykas σε μια παρτίδα του με το Stockfish 2.1 εξοπλισμένο με το Hiarcs opening book παιγμένη σε ένα Dual2core 64-bit 2.25 Ghz με χρόνο σκέψης 60 λεπτών για όλη την παρτίδα:

Dave Wiekrykas - Stockfish 2.1

1. e4 c5 2. Nc3 e6 3. f4 Ne7 4. Nh3?!

Και ο λευκός προσπαθεί να "αχρηστεύσει" το opening book του Hiarcs, επιλέγοντας μια κίνηση που έχει ιδέα μεν - τη μεταφορά του ίππου στο f2 - δεν υπάρχει δε στο book της μηχανής.

4...Nec6??!

...και τα καταφέρνει. 4...Nbc6 ή 4...d5 θα έπαιζαν οι περισσότεροι στη θέση αυτή. Θα καταφέρει ο λευκός να εκμεταλλευτεί αυτό το "γλίστρημα" και να βγάλει κάτι από το άνοιγμα?

5. Nf2 d5 6. d3 Be7 7. g3 d4

Το μπλοκάρισμα του κέντρου ευνοεί τα λευκά. Ο ίππος ούτως ή άλλως θα πήγαινε στο e2. 7...Na6 8.Bg2 d4 9.Nb1=

8. Ne2 O-O 9. Ng1

Κρίσιμη στιγμή.


9...e5?!

Το Critter προτείνει 9...f6!?. 9...Nd7 10.Nf3 Qa5+ 11.Bd2 Qb6

10. f5!

Ο λευκός έχει επιτύχει ό,τι θα ήθελε κάποιος εναντίον ενός ισχυρού engine. Να το βγάλει από το book του νωρίς και να κλείσει τη θέση, αφού οι μηχανές παίζουν καλύτερα στις ανοιχτές θέσεις.

10...Bd7 11. Nf3 Be8

Η μεταφορά του αξιωματικού από το c8 στο e8 δεν άξιζε τα δύο τέμπο που δαπανήθηκαν.

12. Be2 Qb6?!

Καλύτερο το 12...Nd7. Η σκακιέρα είναι φραγμένη στη μέση με τα μαύρα κομμάτια να κοιτάνε στην πτέρυγα της βασίλισσας. Οπότε...

13. g4! h6 14. h4

Για πρώτη φορά το Stockfish αρχίζει να δίνει πλεονέκτημα στα λευκά στην εκτίμησή του.


14...c4

14...Qb4+ 15.Kf1 Nd7 16.g5 +=

15. dxc4 Bd8

Περίεργη κίνηση. Μετά την εκκένωση του c5 τετραγώνου θα περίμενε κανείς 15...Bb4+

16. b3 Nd7 17. Bb2 a5 18. a3 Be7 19. Bd3

Ο λευκός χτίζει τη θέση του αργά-αργά. 19.g5! ήταν ισχυρότερο.

19...Nc5 20. Kf1 Rc8 21. Ne1 Bd7

Στο 21...f6 έρχεται 22.g5! και αν κόψει ο μαύρος, μετά από 23.hxg5 τα προβλήματά του αυξάνονται.

22. Qf3 Kh8

Τώρα πια το Stockfish δίνει +2.00 για το λευκό, ενώ τα περισσότερα engines μόνο +1.00. Παρόλα αυτά από την επόμενη κίνησή του φαίνεται πως δεν καταλαβαίνει τη θέση.


23. g5! g6?

Πιθανόν μοναδικό ήταν το 23...Rg8 αν και πάλι μετά από 24.gxh6 g6 25.f6 Bd8 26.h7 τα λευκά θα κερδίσουν.

24. f6 Bd6

Η θυσία του αξιωματικού με 24...h5 με σκοπό να σταματήσουν τα λευκά πιόνια δε σώζει τα μαύρα: 25.fxe7 Nxe7 26.b4 και η θέση του μαύρου είναι θλιβερή.

25. h5! Rg8 26. hxg6 Rxg6 27. Ke2

27.Ng2! ακολουθούμενο από Nh4 ήταν πολύ ισχυρό

27...Nxd3

Με τί πρέπει να φάει ο λευκός?



28. Nexd3!

Το σωστό φάγωμα. Τώρα που ενώνονται και οι πύργοι, ο μαύρος δεν έχει καμιά ελπίδα.

28...Rcg8 29. Rh5 Bf8 30. Rah1 Qc7

Πολύ αργά για να επιστρέψει η βασίλισσα στην άμυνα.

31. R1h4 Qc8 32. Qh1 Bh3

Τέλος. Το Stockfish στουκάρει κομμάτια πάνω στη h για να φάει ματ μερικές κινήσεις αργότερα.

33. Rxh3 Qxh3 34. Qxh3 R8g7 35. Rxh6+ Rxh6 36. Qxh6+ Kg8 37. fxg7 Bxg7 38. Qh3 Ne7 39. Ng4 1-0. Και ματ σε μερικές κινήσεις.



Είχαμε και την έκδοση ενός πολύ σημαντικού βιβλίου, του Beyond the Deep Blue του Monty Newborn που αναφέρεται στα δύο ματς του Kasparov με τη μηχανή, κάνει μια ιστορική αναδρομή στα ratings των engines από το 1986 και μετά και προχωράει σε παρουσιάσεις παγκοσμίων πρωταθλημάτων μεταξύ μηχανών, των ματς Deep First-Kramnik, Hydra-Shredder (2004), του δεύτερου ματς Fritz-Kramnik, Deep Junior-Deep Fritz (2007), συζητάει το θέμα των κλώνων, έχει πολλά και ενδιαφέροντα στατιστικά για τα ανοίγματα που παίζουν οι μηχανές και παραθέτει ενδιαφέρουσες ιστοσελίδες πάνω στο θέμα. Συνολικά περιέχει 118 αναλυμένες παρτίδες. Περισσότερα όταν θα πέσει στα χέρια μου.

Τέλος κάποιες θέσεις που δυσκολεύουν τις μηχανές για να τεστάρετε τη δική σας - εκτός των άλλων.


Παίζουν τα μαύρα










Παίζουν τα λευκά


Πέμπτη 31 Μαρτίου 2011

Computer Chess Notes #2



Λύσεις και απαντήσεις του προηγούμενου


Hector-Junior
Computer Chess Champs 2010, Kanazawa, Japan

1...Qf1!!

2. Rxf1 Nxf1+ 0-1 (3. Kh3 Nxd2 -+)






Junior-Fridolin
Computer Chess Champs 2010, Kanazawa, Japan

1.Ne7+!!

1...Rxe7 2.Rxb2 b6 3.f3 Re6 4.Bc4 1-0 (4...g5 5.Bxe6 fxe6 6.Nxg5 Nb3 7.axb3 c5 8.Rd2 b5 29.Rd8#)







+-

Δοκιμάστε αυτήν τη θέση με τη Rybka, το Hiarcs, το Fritz ή το Schredder. Σε σχετικά αδύναμο hardware θα δυσκολευτούν πολύ.







1.Nc7!! Kxc8 2.Kd3 Kd7 3.Ke4 Kc6 4.Na8 Kd7 5.Kxf4 Kd6 6.Kf5 Ke7 7.Nc7 Kf7 8.Nd5 Ke8 9.Nxf6+ Ke7 10.Ke5 Kd8 11.Kd6 Kc8 12.Ke7 Kb8 13.Nd7+ Kc8 14.Ne5 Kb8 16.Kd8 Ka8 17.Nc6! 1-0















Παίζουν τα λευκά. Υπάρχει τρόπος να κάνουν πρόοδο?










1.Κc5 b4!

1...Bc6?? 2.a6! bxa6 3.Kxc6 b4 4.b7 bxc3 5.b8=Q#
2...Bd7 3.a7 Bc8 4.a8=Q b4 5.Qxc8#

2.Kxb4 Bd5 3.Kc5 Bg2 4.Kxc4 Be4 5.Kc5 Bd3 6.Kd6 Bb5 7.Kc7 Ba6 8.Kc8 Bd3 9.Kxb7 Bb5 10.Kc7 Ba6 11.c4 Bc8 =


Εντυπωσιακό το πόσο μπερδεύονται τα engines, ακόμα και στην τελική θέση!










Τελική Βαθμολογία Gebruikers 21 dedicated hardware (under 2300)
1. Mephisto London Pro 5/6
2. Novag Sapphire 4
3. Mephisto Berlin Pro 3.5
- Mephisto RISC 2500 3.5
- Mephisto Master 3.5
- Mephisto Magellan 3.5
7. Resurrection1 Sjeng 1.8 2.5
- Mephisto RISC2 2.5
9. Novag Super Expert C 1
- Mephisto Atlanta 1


Παίζουν τα μαύρα. Μπορούν να κερδίσουν?
Άλλη μια θέση που δυσκολεύει τα engines









Tα Computer Chess Notes θα γράφονται κάθε δύο μήνες περίπου