Diplomová práce se zabývá technikami používanými pro realizaci šachových programů. Účelem první části, která je věnována analýze šachové hry, je identifikovat obecně platné principy, které je možné převést na programově realizovatelné prvky ohodnocovací funkce šachových pozic. Práce se dále zaměřuje na algoritmy používané k vyhledávání šachových tahů včetně technik používaných k dosažení vyšší hloubky vyhledávacího stromu. Implementační část popisuje tvorbu vlastního šachového programu a využívá postupy z analytické části práce.
Annotation in English
This thesis deals with the implementation of a chess program. The first part of the thesis is dedicated to chess game analysis. The main purpose of the first part is to identify general principles of the chess game which can be programatically transformed into components of a positional evaluation function. The analytical part also contains information about chess game search algorithms, including techniques which can be used to achieve greater search depth. The practical part of this thesis describes the implementation of a chess engine by using techniques from the analytical part.
Diplomová práce se zabývá technikami používanými pro realizaci šachových programů. Účelem první části, která je věnována analýze šachové hry, je identifikovat obecně platné principy, které je možné převést na programově realizovatelné prvky ohodnocovací funkce šachových pozic. Práce se dále zaměřuje na algoritmy používané k vyhledávání šachových tahů včetně technik používaných k dosažení vyšší hloubky vyhledávacího stromu. Implementační část popisuje tvorbu vlastního šachového programu a využívá postupy z analytické části práce.
Annotation in English
This thesis deals with the implementation of a chess program. The first part of the thesis is dedicated to chess game analysis. The main purpose of the first part is to identify general principles of the chess game which can be programatically transformed into components of a positional evaluation function. The analytical part also contains information about chess game search algorithms, including techniques which can be used to achieve greater search depth. The practical part of this thesis describes the implementation of a chess engine by using techniques from the analytical part.
Při zpracování tématu vyjděte z výsledků Vaší bakalářské práce zpracované v roce 2013 a poznatků získaných studiem vybraných šachových problémů, např. se seznamte se s možnostmi řešení tzv. "efektu horizontu".
Zjistěte možnosti implementace zahájení šachových partií a koncových fází šachových partií, zvolte vhodná řešení a implementujte je.
Ověřte, zda je možné dosáhnout vyšší hloubky prohledávání pro šachový algoritmus, vyberte vhodný způsob zvýšení hloubky vyhledávání a podle něj upravte implementaci šachového algoritmu zpracovanou v rámci bakalářské práce.
Analyzujte aktuální způsob statické evaluace pozic, statickou evaluaci rozšiřte o další aspekty, popřípadě upravte aspekty stávající.
Vybranou část algoritmů implementujte ve zvoleném programovacím jazyku a realizované algoritmy ověřte na vhodně zvolených šachových úlohách.
Dosažené výsledky objektivně zhodnoťte, popř. rozeberte možnosti dalšího zdokonalení či rozšíření zpracované úlohy.
Research Plan
Při zpracování tématu vyjděte z výsledků Vaší bakalářské práce zpracované v roce 2013 a poznatků získaných studiem vybraných šachových problémů, např. se seznamte se s možnostmi řešení tzv. "efektu horizontu".
Zjistěte možnosti implementace zahájení šachových partií a koncových fází šachových partií, zvolte vhodná řešení a implementujte je.
Ověřte, zda je možné dosáhnout vyšší hloubky prohledávání pro šachový algoritmus, vyberte vhodný způsob zvýšení hloubky vyhledávání a podle něj upravte implementaci šachového algoritmu zpracovanou v rámci bakalářské práce.
Analyzujte aktuální způsob statické evaluace pozic, statickou evaluaci rozšiřte o další aspekty, popřípadě upravte aspekty stávající.
Vybranou část algoritmů implementujte ve zvoleném programovacím jazyku a realizované algoritmy ověřte na vhodně zvolených šachových úlohách.
Dosažené výsledky objektivně zhodnoťte, popř. rozeberte možnosti dalšího zdokonalení či rozšíření zpracované úlohy.