Cheese title

Caractéristiques techniques

La plupart des algorithmes utilisé dans ce projet sont expliqué sur le Chess programming wiki

  • Moteur compatible UCI et CECP
  • Bitboards + magic bitboards
  • Recherche alpha-beta (negamax)
  • Iterative deepening
  • Aspiration window
  • Quiescence search
  • Livre d'ouvertures (format Polyglot)
  • Principal Variation Search
  • Internal iterative deepening
  • Adaptive null moves pruning
  • Late move reduction
  • Late move pruning
  • Futility pruning
  • Razoring
  • Mate distance pruning
  • Transposition table + Zobrist hash key
    • Utilise Mersenne Twister pour les nombres aléatoires
    • 4 buckets
    • Remplacement : utilise l'age et la profondeur
  • Table de hachage pour les pions (2 Mo)
  • Extensions de recherche
    • Extension en échec
    • Pion sur la 7eme rangée
  • Multi processeur
    • "Young Brother Wait Concept"
      • Supporte 64 threads maximum
    • "Lazy SMP" (Shared hash table)
      • Supporte 256 threads maximum sous Linux, et 64 sous Windows
  • Fonction d'évaluation
    • Lazy evaluation
    • Phase de jeu (incrémenté)
    • Matériel (incrémenté)
    • Tables de mobilité
    • Piece square tables
    • Pions doublés
    • Pions passés
    • Pions isolés
    • Pions arriérés
    • Pions bloqué
    • Tours sur des colonnes ouvertes ou semi-ouvertes
    • Tours sur la 7eme rangée
    • Protection du roi
    • Avant poste pour les cavaliers
    • Materiel insuffisant
    • Fin de parties
    • Permet de modifier certains paramètres avec les personalités
    • Méthode Texel's tuning pour paramétrer
      • Algorithme de descente de gradient
  • Tables de fin de parties
    • Syzygy tablebases
  • Ordre des coups
    • Table de hachage
    • SEE bonnes captures et promotions
    • Killer moves
    • Counter moves
    • History heuristic
    • SEE mauvaises captures
  • Règles
    • Standard
    • FRC