Difference between revisions of "YaneuraOu"

From Chessprogramming wiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
'''[[Main Page|Home]] * [[Engines]] * YaneuraOu'''
 
'''[[Main Page|Home]] * [[Engines]] * YaneuraOu'''
  
'''YaneuraOu''', (やねうら王, King Yaneura)<br/>
+
'''YaneuraOu''', (やねうら王, Yaneura King)<br/>
an [[USI]] compliant [[:Category:Open Source|open source]] [[Shogi]] engine as well as Shogi [[Search|search]] library by [[Motohiro Isozaki]] aka Yaneurao, written in [[Cpp|C++]], licensed under the [[Free Software Foundation#GPL|GPL 3.0]]. YaneuraOu with '''Otafuku Lab 2019''' won the [[WCSC29]] in 2019 <ref>[http://www2.computer-shogi.org/wcsc29/ 第29回世界コンピュータ将棋選手権 29th World Computer Shogi Championship]</ref> <ref>[https://otafuku-lab.co/ 大阪のAI・人工知能開発に特化したシステム会社 | お多福ラボ | A system company specializing in AI / artificial intelligence development in Osaka | Otafuku Lab]</ref>, YaneuraOu was further mentioned in the library column of many programs participating in the WCSC29, such as runner-up [[Kristallweizen]], third placed [[Tanu-King]], and 14 others.
+
an [[USI]] compliant [[:Category:Open Source|open source]] [[Shogi]] engine as well a in 2016 [[CSA]] registered Shogi [[Search|search]] library by [[Motohiro Isozaki]] aka Yaneurao, written in [[Cpp|C++]], licensed under the [[Free Software Foundation#GPL|GPL 3.0]]. YaneuraOu with '''Otafuku Lab 2019''' won the [[WCSC29]] in 2019 <ref>[http://www2.computer-shogi.org/wcsc29/ 第29回世界コンピュータ将棋選手権 29th World Computer Shogi Championship]</ref> <ref>[https://otafuku-lab.co/ 大阪のAI・人工知能開発に特化したシステム会社 | お多福ラボ | A system company specializing in AI / artificial intelligence development in Osaka | Otafuku Lab]</ref>, YaneuraOu was mentioned in the library column of many programs participating in the WCSC29, notably runner-up [[Kristallweizen]], third placed [[Tanu-King]], and 14 others.
  
 
=Features=
 
=Features=
YaneuraOu applies a Shogi adaptation of [[Stockfish|Stockfish's]] search, and uses a [[NNUE]] type of [[Evaluation|evaluation]] developed by [[Tanu-King]] team member [[Yu Nasu]] <ref>[https://www.apply.computer-shogi.org/wcsc29/appeal/YaneuraOu/appeal.txt wcsc29/YaneuraOu/appeal.txt]</ref>.
+
YaneuraOu applies a Shogi adaptation of [[Stockfish|Stockfish's]] search, and can be combined with third party [[Evaluation|evaluations]], such as [[Elmo]] and [[Apery]] <ref>[https://www.uuunuuun.com/single-post/2017/12/09/how-to-install-yaneuraou-engine-with-third-party-evaluation-fileopening-book How to install Yaneuraou with third party evaluation files/opening books and Gikou2]</ref>.
One of the characteristics of the NNUE type is that the number of parameters of the evaluation function is smaller than [[Bonanza|Bonanz's]] [[Bonanza#Description|KPPT]] type.  
+
At the [[WCSC29]], it used a [[NNUE]] type of evaluation developed by [[Tanu-King]] team member [[Yu Nasu]] <ref>[https://www.apply.computer-shogi.org/wcsc29/appeal/YaneuraOu/appeal.txt wcsc29/YaneuraOu/appeal.txt]</ref>. One of the characteristics of the NNUE type is that the number of parameters of the evaluation function is smaller than [[Bonanza|Bonanza's]] [[Bonanza#Description|KPPT]] type. Since the number of training phases required for [[Reinforcement Learning|reinforcement learning]] is considered to be approximately proportional to the number of parameters  
Since the number of training phases required for [[Reinforcement Learning|reinforcement learning]] is considered to be approximately proportional to the number of parameters  
 
 
of the evaluation function, the NNUE type should require fewer training phases than the KPPT type.
 
of the evaluation function, the NNUE type should require fewer training phases than the KPPT type.
  
 
=Bitboards=
 
=Bitboards=
9x9 Shogi [[Bitboards]] are defined as [[Array|array]] of two [[Quad Word|quad words]] and similar to [[Apery#Bitboards|Apery]], conditional compiled [https://en.wikipedia.org/wiki/Union_type union type] with 128-bit type __m128i, explicitly taking advantage of [[SSE2]] instructions <ref>[https://github.com/yaneurao/YaneuraOu/blob/master/source/bitboard.h YaneuraOu/bitboard.h at master · yaneurao/YaneuraOu · GitHub]</ref>:
+
9x9 Shogi [[Bitboards]] are defined as [[Array|array]] of two [[Quad Word|quad words]] and similar to [[Apery#Bitboards|Apery]], as conditional compiled [https://en.wikipedia.org/wiki/Union_type union type] with 128-bit type __m128i, explicitly taking advantage of [[SSE2]] instructions <ref>[https://github.com/yaneurao/YaneuraOu/blob/master/source/bitboard.h YaneuraOu/bitboard.h at master · yaneurao/YaneuraOu · GitHub]</ref>:
 
<pre>
 
<pre>
 
// Bitboard 本体クラス
 
// Bitboard 本体クラス
Line 41: Line 40:
 
* [https://github.com/yaneurao/YaneuraOu GitHub - yaneurao/YaneuraOu: YaneuraOu is the World's Strongest Shogi engine(AI player), WCSC29 1st winner , educational and USI compliant engine]
 
* [https://github.com/yaneurao/YaneuraOu GitHub - yaneurao/YaneuraOu: YaneuraOu is the World's Strongest Shogi engine(AI player), WCSC29 1st winner , educational and USI compliant engine]
 
* [http://yaneuraou.yaneu.com/ やねうら王 公式サイト | コンピューター将棋 やねうら王 公式サイト Yaneura Ou Official Website] (Japanese)
 
* [http://yaneuraou.yaneu.com/ やねうら王 公式サイト | コンピューター将棋 やねうら王 公式サイト Yaneura Ou Official Website] (Japanese)
 +
* [https://ja.wikipedia.org/wiki/%E3%82%84%E3%81%AD%E3%81%86%E3%82%89%E7%8E%8B やねうら王 - Wikipedia] (Japanese)
 +
* [https://twitter.com/yaneuraou やねうら王 (@yaneuraou) / Twitter] (Japanese)
 +
* [https://www.uuunuuun.com/single-post/2017/12/09/how-to-install-yaneuraou-engine-with-third-party-evaluation-fileopening-book How to install Yaneuraou with third party evaluation files/opening books and Gikou2]
  
 
=References=  
 
=References=  

Latest revision as of 21:36, 4 October 2020

Home * Engines * YaneuraOu

YaneuraOu, (やねうら王, Yaneura King)
an USI compliant open source Shogi engine as well a in 2016 CSA registered Shogi search library by Motohiro Isozaki aka Yaneurao, written in C++, licensed under the GPL 3.0. YaneuraOu with Otafuku Lab 2019 won the WCSC29 in 2019 [1] [2], YaneuraOu was mentioned in the library column of many programs participating in the WCSC29, notably runner-up Kristallweizen, third placed Tanu-King, and 14 others.

Features

YaneuraOu applies a Shogi adaptation of Stockfish's search, and can be combined with third party evaluations, such as Elmo and Apery [3]. At the WCSC29, it used a NNUE type of evaluation developed by Tanu-King team member Yu Nasu [4]. One of the characteristics of the NNUE type is that the number of parameters of the evaluation function is smaller than Bonanza's KPPT type. Since the number of training phases required for reinforcement learning is considered to be approximately proportional to the number of parameters of the evaluation function, the NNUE type should require fewer training phases than the KPPT type.

Bitboards

9x9 Shogi Bitboards are defined as array of two quad words and similar to Apery, as conditional compiled union type with 128-bit type __m128i, explicitly taking advantage of SSE2 instructions [5]:

// Bitboard 本体クラス

struct alignas(16) Bitboard
{
#if defined (USE_SSE2)
	union
	{
		// 64bit each
		u64 p[2];

		// For handling with SSE
		// bit0 represents SQ_11, bit1 represents SQ_12,…, bit81 represents SQ_99.
		// This bit position corresponds to the Square type.
		// However, bit63 is unused. This is a hack to find the rook's advantage with one pext by leaving here.
		// Invented by the magic bitboard sect, including Apery.
		__m128i m;
	};
#else // no SSE
	u64 p[2];
#endif

Forum Posts

Re: The Stockfish of shogi by Fabian Fichter, CCC, January 07, 2020

External Links

References

Up one Level