8 research outputs found

    Σκακιστικές Μηχανές: Επισκόπηση Μεθοδολογιών και Υλοποίηση Προσέγγισης PVS/NNUE

    Get PDF
    Σε αυτή την πτυχιακή εργασία μελετώνται οι κύριες δομές μια σκακιστικής μηχανής καθώς και οι νεότερες τεχνικές εύρεσης βέλτιστης κίνησης με χρήση νευρωνικών δικτύων. Θα μελετηθούν οι κύριοι τρόποι αναπαράστασης της δομής του ταμπλό με ιδιαίτερη έμφαση σε αυτή των bitboards. Στην συνέχεια θα γίνει μια αναφορά στην μεθοδολογία παραγωγής κινήσεων με χρήση προ-υπολογισμένων πινάκων και τεχνικών τέλειου κατακερματισμού. Θα συζητηθούν οι διάφορες παραλλαγές των αλγορίθμων MCTS και PVS και οι τρόποι με τους οποίους μπορούν να παραλληλοποιηθούν για γρηγορότερη εκτέλεση. Τέλος θα παρουσιαστεί η νεότερη αρχιτεκτονική δικτύων NNUE για την στατική αξιολόγηση θέσεων και οι διαφορές της με πιο σύνθετα μοντέλα όπως αυτό του Alpha zero. Στα πλαίσια αυτής της εργασίας υλοποιήθηκε και μια σκακιστική μηχανή με χρήση του μοντέλου NNUE, του αλγορίθμου PVS με τις αντίστοιχες βελτιστοποιήσεις κλαδέματος και της αναπαράστασης bitboards. Οι λεπτομέρειες υλοποίησης παρέχονται στην τελευταία ενότητα.In this dissertation we study the primary components of chess engines, as well as the latest techniques for finding optimal moves using neural networks. The various board representation will be analysed, with special emphasis on that of bitboards. We will refer to the main methods for producing moves using pre-calculated lookup tables with perfect hashing. The various variants of MCTS and PVS algorithms and the ways in which they can be parallelised for faster execution will be discussed. Finally, the latest NNUE network architecture for static position evaluation and its differences with more complex models such as Alpha zero will be presented. As part of this work, a chess engine was developed using the NNUE model, the PVS algorithm with the corresponding pruning optimizations and the representation of bitboards. Implementation details are provided in the last section

    Штучний інтелект у шахах з використанням методів теорії ігор

    Get PDF
    Дипломна робота: 70 с., 15 табл., 31 рис., 1 додаток, 18 джерел. Об'єкт дослідження - комп'ютерні шахові програми (Chess Enignes), якi розробляються з метою гри в шахи та надання гравцям різних рівнів навичок можливiсть аналізувати варiанти шахових позицій. Предмет дослідження - методи та алгоритми, якi використовуються в шахових програмах для знаходження оптимальних ходів та оцінки позицій. Мета роботи – детальний аналіз шахових програм, їх алгоритмів та евристичних методів, які використовуються для досягнення високого рівня гри в шахи. Створення власної шахової програми, здатної конкурувати з сильними шахистами та програмами аналогами. Актуальність - дослідження шахових двигунів є актуальним завданням в сучасній комп'ютерній науці. Розробка шахових двигунів має практичну цінність для шахістів всіх рівнів. Програми здатні надати допомогу в аналізі власних партій, виявляючи помилки, що дозволяє шахістам покращувати свої навички та рівень гри.Thesis: 70 p., 15 tabl., 31 fig., 1 appendice, 18 sources. The research object is computer chess programs (Chess Engines) developed for playing chess and providing players of different skill levels with the ability to analyze chess positions. The research subject is the methods and algorithms used in chess programs to find optimal moves and evaluate positions. The aim of this study is to conduct a detailed analysis of chess programs, their algorithms, and heuristic methods used to achieve a high level of play in chess. Additionally, the goal is to create a proprietary chess program capable of competing with strong chess players and analogous programs. The relevance of studying chess engines is a current task in modern computer science. The development of chess engines has practical value for chess players at all levels. These programs can assist in analyzing their own games and identifying mistakes, allowing chess players to improve their skills and level of play

    Programming a chess engine in C++

    Get PDF
    Chess is one of the world’s oldest board games and also probably one of the most popular ones. Ever since computers were invented in the 1940’s, the science community has tried to create independently playing chess programs. This bachelor thesis’ research question could be summarized by the following question: “How can a computer be programmed to play chess?”. Basically this paper investigates how a chess engine can be written using the C++ programming language. The aim is to go through the process step by step in such a fashion that a person who knows the rules of chess and has experience in programming could read through the text and get a general overview of how a traditional chess engine operates. The research problem can be divided into smaller parts, out of which each has an important role when writing a chess engine. First we have to define how to mathematically model the chessboard and the pieces in such a way that the computer understands them. Then the ruleset and movement of the pieces have to be added in as well. An integral part of this is also making sure that the legality of moves stays intact or otherwise the program may produce bad or even totally illegal results. The last section describes how the minimax algorithm is used to select the best move from the game tree and how the evaluation function is used to score the chess board. In the end the chess engine is evaluated and possible improvements are presented. As a result it becomes clear that even though the final result is quite far from the current cutting-edge engines, it still provides a rather challenging opponent. Possible improvements include a better search algorithm, introducing parallelism to the program and improving the evaluation function. In addition to this the popularity of neural networks has recently sky-rocketed, which has also had an effect on chess programming

    On forward pruning in game-tree search

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH

    Aprimorando o processo de aprendizagem e alocação de agentes inteligentes em plataformas multiagentes: aplicação no domínio do jogo de damas

    Get PDF
    One of the fundamental requirements for a unsupervised multiagent system to reach its objectives is that the agents that make up the system possess specific and complementary abilities, which allow them to act as specialists in the environments where they were trained. The adequate representation of these environments is fundamental to both the learning and to the good performance on the part of the agents, mainly when these act in competitive environments that possess an elevated state space. Likewise, the decisions from multiagent systems, through their allocation of adequate agents into particular situations that occur in these environments, are crucial in order that these successfully reach their objectives. In this sense, the present work presents three new approaches to optimize the performance of multiagent systems, which improves: the architecture and the learning process of the agents that make up the multiagent system; the representation of relevant information of the environments where these agents perform, as well as the process of allocating the adequate agent for performing in distinct situations that occur in these environments. Due to the spatial and technical complexity, the game of Checkers was used as the developmental and evaluative environment for these approaches, which were implemented onto the automatic player MP-Draughts. This player corresponds to a unsupervised multiagent system composed of specialist player agents in distinct phases of a game. In order to implement the proposed approaches onto the MP-Draughts architecture, the following work sequence was adopted: initially, an adaptive neural network was developed, ASONDE, which was used in the MP-Draughts architecture to define the knowledge profiles (clusters) necessary for representing the endgame phase, on which the specialist agents should be trained. Following on, an automatic features selection approach based on the frequent pattern mining was implemented, which extracts the most adequate features to represent the different environments (boards) that can occur during the performance of the multi-agent. Finally, a method for the allocation of agents was developed, which combined clustering artificial neural networks and exception rules, which together are responsible for indicating the most suitable agents to act in the different situations of a game. The partial results obtained from the implementation of each approach, as well as the final result, which applies all these into the MP-Draughts architecture, confirm that these were efficient in dealing with the problems for which they were proposed, in addition to contributing to the general performance of the multi-agent system.FAPEMIG - Fundação de Amparo a Pesquisa do Estado de Minas GeraisTese (Doutorado)Um dos requisitos fundamentais para que um sistema multiagente não supervisionado atinja seus objetivos é que os agentes que o compõem possuam habilidades específicas e complementares que lhe permitam atuar como especialistas nos ambientes em que foram treinados. A representação adequada desses ambientes é fundamental para o aprendizado e para a boa performance dos agentes, principalmente quando esses atuam em ambientes competitivos que possuem elevado espaço de estados. Do mesmo modo, as decisões do sistema multiagente em alocar os agentes adequados para atuarem em determinadas situações que ocorrem nesses ambientes são cruciais para que este atinja, com êxito, seus objetivos. Nesse sentido, o presente trabalho apresenta três novas abordagens para otimizar o desempenho de sistemas multiagentes, as quais aprimoram: a arquitetura e o processo de aprendizagem dos agentes que compõem o sistema multiagente, a representação das informações relevantes dos ambientes de atuação desses agentes, assim como o processo de alocação dos agentes adequados para atuarem nas distintas situações que ocorrem nesses ambientes. Devido à sua complexidade espacial e técnica, o jogo Damas foi utilizado como ambiente de desenvolvimento e avaliação dessas abordagens, as quais foram implementadas na arquitetura do jogador automático MP-Draughts. Tal jogador corresponde a um sistema multiagente não supervisionado composto por agentes jogadores especialistas em fases distintas de um jogo. Para a implementação das abordagens propostas na arquitetura do MP-Draughts, foi adotada a seguinte sequência de trabalho: inicialmente, foi desenvolvida uma rede neural adaptativa, a ASONDE, que foi utilizada na arquitetura do MP-Draughts para definir os perfis (clusters) de conhecimentos necessários para representar a fase de final de jogo, nos quais os agentes especialistas devem ser treinados. Na sequência, foi implementada uma abordagem de seleção automática de características baseada na mineração de padrões frequentes, a qual extrai as mais adequadas para representar os diferentes ambientes (tabuleiros) que podem ocorrer durante a atuação do multiagente. Finalmente, foi desenvolvido um método de alocação de agentes que combina redes neurais artificiais e regras de exceção, as quais em conjunto, são responsáveis por indicar os agentes mais adequados para atuarem nas distintas situações de um jogo. Os resultados parciais obtidos da implementação de cada abordagem, assim como o resultado final que aplica todas elas na arquitetura no MP-Draughts, confirmam que as mesmas foram eficientes para tratar os problemas para os quais foram propostas, além de contribuírem para o desempenho geral do sistema multiagente

    SpoookyJS. Ein multiagentenbasiertes JavaScript-Framework zur flexiblen Implementation digitaler browserbasierter Brettspiele und spielübergreifender künstlicher Intelligenz

    Get PDF
    Künstliche Intelligenz in digitalen Spielen ist zumeist Anwendungsdomäne komplexer spielspezifischer Softwarelösungen mangelnder Erweiterbarkeit. Die vorliegende Arbeit beschäftigt sich mit der Konzeption und Realisierung des JavaScript-Frameworks SpoookyJS, das die vereinfachte Erstellung browserbasierter digitaler Brettspiele ermöglicht. Entwickelt als Multiagentensystem, bietet SpoookyJS künstliche Gegner in den umgesetzten Spielen und fungiert als Test- und Entwicklungsumgebung für die Forschung um spielübergreifende artifizielle Entscheidungsfindung

    USING BITBOARDS FOR MOVE GENERATION IN SHOGI

    No full text
    corecore