Strong Othello AI based on Egaroucid4, which got 1st place in the world

Overview

Egaroucid5

Strong Othello AI based on Egaroucid4, which got 1st place in the world

Abstract

Egaroucid5 is an Othello AI.

You can play light version of this AI on the Web.

There are former versions:

https://github.com/Nyanyan/Reversi

https://github.com/Nyanyan/Egaroucid

https://github.com/Nyanyan/Egaroucid3

https://github.com/Nyanyan/Egaroucid4

Requirements

Languages

  • Python3
  • C++

Additional Python libraries

  • subprocess
  • tkinter

Additional C++ libraries

None

How to use

First, you have to clone this repository. For example,

$ git clone [email protected]:Nyanyan/Egaroucid5.git

Then move to the src directory

$ cd Egaroucid5/src

Compile egaroucid4.cpp

$ g++ egaroucid5.cpp -O3 -march=native -fexcess-precision=fast -funroll-loops -flto -mtune=native -lpthread -Wall -o egaroucid5.out

Execute main.py

$ python3 main.py

Then choose which color AI play. 0 for black, 1 for white

AI moves (0: black 1: white): 

Press Start button to play!

Comments
  • book.egbkやeval.egevの参照位置をカレントディレクトリではなく固定にしたい

    book.egbkやeval.egevの参照位置をカレントディレクトリではなく固定にしたい

    概要

    プログラムでそれらのファイルを読み込む際、現在の実装では「カレントディレクトリに存在する resources/book.egbk resources/eval.egev を読む」ようになっているようですが、これを

    • 実行可能ファイルと同じディレクトリに存在する resources/book.egbk resources/eval.egev or
    • 固定パスから読み込む

    ように変更したいです

    動機

    archlinux用のパッケージを作成している間に問題に気が付きました。 現在の実装では、カレントディレクトリが実行可能ファイルと別のディレクトリな時に実行しようとするとコケます。

    $ cd ~
    $ which Egaroucid_for_console
    /usr/bin/Egaroucid_for_console
    $ Egaroucid_for_console
    [ERROR] can't open hash25.eghs
    [ERROR] can't get hash. you can ignore this error
    [ERROR] [FATAL] can't open eval resources/eval.egev
    

    そして、GNU/Linuxでインストールをしたコマンドを使用する際はカレントディレクトリが異なるのが普通なので、毎回見付けられずに結果として毎回手動でコマンドライン引数を用いる必要があります。 勿論パッケージ化する際にパッチを当てることは出来ますが、他のパッケージマネージャーに対応させようとした時も同じパッチを当てる必要が出てくると思われるため、本家側で対処出来ればなと思っています。

    固定パスの場合の具体的な提案

    固定パスとする際、archlinuxでは 実行可能ファイルは /usr/bin/, アプリケーションから利用するデータは /usr/share/<package-name>/ に保存するのが一般的です。これはGNU/Linux的には行儀が良いですが、ディレクトリの構造が異なるパッケージそれぞれに対して別のパスを指定する必要が出てきます。(例えばWindowsとGNU/Linuxとで別の値にする必要がある、とか...)

    若しくは、その構造に従うのが難しい場合は実行可能ファイルを含む全てを /opt/<package-name>/ に配置することも出来ます。こうする場合は、完全な絶対パスを使うのではなく「実行可能ファイルからの相対パス」として指定することとなるため、異なる環境であっても変更をせずにそのまま扱うことが出来ます。

    opened by Cj-bc 7
  • ARMプロセッサでビルド時にエラー

    ARMプロセッサでビルド時にエラー

    ARMプロセッサ(AppleM1)でビルドすることができません。 もしかして私の環境のみで起こっている可能性もあるのですが、特に急いでいないので適切に扱って頂ければと思います。

    実行環境

    $ g++ --version
    g++ (Homebrew GCC 12.2.0) 12.2.0
    Copyright (C) 2022 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    以下の手順でコンパイルを試みたところ、以下のようなエラーになりました。

    $ cd Egaroucid5/src/test
    $ g++ -O3 -fexcess-precision=fast -funroll-loops -flto -march=native -lpthread -Wall ai.cpp -o a.out
    In file included from ./../x86intrin.h:32,
                     from ./../bit.hpp:6,
                     from ./../mobility.hpp:3,
                     from ./../board.hpp:5,
                     from ./../midsearch.hpp:8,
                     from ./../ai.hpp:10,
                     from ai.cpp:2:
    ./../immintrin.h:27:10: fatal error: x86gprintrin.h: No such file or directory
       27 | #include <x86gprintrin.h>
          |          ^~~~~~~~~~~~~~~~
    compilation terminated.
    

    なぜx86gprintrin.hが見つからないのかはなんとなく想像がついたのでIntel製プロセッサ搭載のPCで動かすことで解決しました。 ARMプロセッサでの動かし方を教えていただけると幸いです。

    opened by Asari-Science 4
  • ビルド時にエラー

    ビルド時にエラー

    手元のUbuntu環境でビルドすることができません。

    実行環境

    $ g++ --version
    g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
    Copyright (C) 2021 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    以下の手順でコンパイルを試みたところ、以下のようなエラーになりました。

    $ cd Egaroucid/src/
    $  g++ -O2 Egaroucid_console.cpp -o Egaroucid_for_console.exe -mtune=native -march=native -mfpmath=both -pthread -std=c++17 -Wall -Wextra 
    
    In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
                     from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                     from engine/bit_simd.hpp:17,
                     from engine/bit.hpp:16,
                     from engine/mobility_simd.hpp:13,
                     from engine/mobility.hpp:14,
                     from engine/board.hpp:14,
                     from engine/midsearch.hpp:18,
                     from engine/ai.hpp:17,
                     from engine/engine_all.hpp:12,
                     from Egaroucid_console.cpp:12:
    /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h: In function ‘u64_4 operator>>(u64_4, size_t)’:
    /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:787:1: error: inlining failed in call to ‘always_inline’ ‘__m256i _mm256_srli_epi64(__m256i, int)’: target specific option mismatch
      787 | _mm256_srli_epi64 (__m256i __A, int __B)
          | ^~~~~~~~~~~~~~~~~
    In file included from engine/bit.hpp:16,
                     from engine/mobility_simd.hpp:13,
                     from engine/mobility.hpp:14,
                     from engine/board.hpp:14,
                     from engine/midsearch.hpp:18,
                     from engine/ai.hpp:17,
                     from engine/engine_all.hpp:12,
                     from Egaroucid_console.cpp:12:
    engine/bit_simd.hpp:129:41: note: called from here
      129 |     return _mm256_srli_epi64(lhs.data, n);
          |                                         ^
    In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
                     from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                     from engine/bit_simd.hpp:17,
                     from engine/bit.hpp:16,
                     from engine/mobility_simd.hpp:13,
                     from engine/mobility.hpp:14,
                     from engine/board.hpp:14,
                     from engine/midsearch.hpp:18,
                     from engine/ai.hpp:17,
                     from engine/engine_all.hpp:12,
                     from Egaroucid_console.cpp:12:
    /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:787:1: error: inlining failed in call to ‘always_inline’ ‘__m256i _mm256_srli_epi64(__m256i, int)’: target specific option mismatch
      787 | _mm256_srli_epi64 (__m256i __A, int __B)
          | ^~~~~~~~~~~~~~~~~
    In file included from engine/bit.hpp:16,
                     from engine/mobility_simd.hpp:13,
                     from engine/mobility.hpp:14,
                     from engine/board.hpp:14,
                     from engine/midsearch.hpp:18,
                     from engine/ai.hpp:17,
                     from engine/engine_all.hpp:12,
                     from Egaroucid_console.cpp:12:
    engine/bit_simd.hpp:129:41: note: called from here
      129 |     return _mm256_srli_epi64(lhs.data, n);
          |                                         ^
    
    
    opened by Asari-Science 2
  • ビルド時にエラー(g++ -O3 -fexcess-precision=fast -funroll-loops -flto -march=native -lpthread -Wall ai.cpp -o a.exe)

    ビルド時にエラー(g++ -O3 -fexcess-precision=fast -funroll-loops -flto -march=native -lpthread -Wall ai.cpp -o a.exe)

    以下のようなエラーが私の環境で発生したので共有させて頂きます。 パッチも添付します、(もしかして私の環境のみかもしれないのですが)特に急いでおらず適切に扱って頂ければと思います。

    実行環境

    $ g++ --version
    g++ (Homebrew GCC 9.3.0_1) 9.3.0
    Copyright (C) 2019 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    で以下の手順でコンパイルを試みたところ、以下のようなビルドエラーになりました。

    $ cd Egaroucid5/src/test
    $ g++ -O3 -fexcess-precision=fast -funroll-loops -flto -march=native -lpthread -Wall ai.cpp -o a.exe
    In file included from ./../midsearch.hpp:9,
                     from ./../ai.hpp:10,
                     from ai.cpp:2:
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
      249 | };
          | ^
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    ./../evaluate.hpp:249:1: error: narrowing conversion of '-1' from 'int' to 'uint_fast8_t' {aka 'unsigned char'} [-Wnarrowing]
    

    ひとまず以下のパッチを当てると解決しました。 (正しい修正でない場合はすみません。。適切な型にすれば解決するように思います)

    diff --git a/src/evaluate.hpp b/src/evaluate.hpp
    index cdba630..b42b8aa 100644
    --- a/src/evaluate.hpp
    +++ b/src/evaluate.hpp
    @@ -149,7 +149,7 @@ using namespace std;
     
     struct Feature_to_coord{
         int n_cells;
    -    uint_fast8_t cells[MAX_PATTERN_CELLS];
    +    int cells[MAX_PATTERN_CELLS];
     };
     
     constexpr Feature_to_coord feature_to_coord[N_SYMMETRY_PATTERNS] = {
    @@ -1094,4 +1094,4 @@ inline void eval_undo(Search *search, const Flip *flip){
                 }
             }
         #endif
    -}
    \ No newline at end of file
    +}
    
    opened by seigot 2
  • READMEのtypoを修正しました、、(main.py --> play.py)

    READMEのtypoを修正しました、、(main.py --> play.py)

    お疲れ様です。コードを読ませて頂いております。 本質的な部分でなく申し訳ないのですが、READMEをみてtypoがあった部分のプルリクエストを送ってみました! (main.py --> play.pyに直しただけです、、、  プルリクエスト出すかどうか迷いましたが、とりあえずだしてみることにしました、、)

    opened by seigot 1
Releases(v6.1.0)
  • v6.1.0(Dec 23, 2022)

    日本語は下部にあります。

    Please visit https://www.egaroucid.nyanyan.dev/en/ for more information

    Egaroucid

    egaroucid Please download the installer, then execute and follow it. Egaroucid is optimized to SIMD version, which requires AVX2 instructions, but old CPUs (created in 2013 or older) might not be able to run it. If so, please install Generic version. | OS | CPU | Requirements | Download | | ---- | ---- | ---- | ---- | | Windows | x64 | AVX2(Standard) | Egaroucid_6_1_0_SIMD_installer.exe | | Windows | x64 | - | Egaroucid_6_1_0_Generic_installer.exe |

    Egaroucid for Console

    From this release I added Egaroucid for Console. This application is a console application. I tested it on Windows and Linux. egaroucid_for_console If you use Windows, then please download a zip file and unzip it. If you use Linux, please download the source code and build it with this manual. Egaroucid is optimized to SIMD version, which requires AVX2 instructions, but old CPUs (created in 2013 or older) might not be able to run it. If so, please install Generic version. | OS | CPU | Requirements | Download | | ---- | ---- | ---- | ---- | | Windows | x64(Standard) | AVX2(Standard) | Egaroucid_for_Console_6_1_0_Windows_x64_SIMD.zip | | Windows | x64(Standard) | - | Egaroucid_for_Console_6_1_0_Windows_x64_Generic.zip | | Windows | x86 | - | Egaroucid_for_Console_6_1_0_Windows_x86_Generic.zip | | Linux | x64/x86/ARM64/ARM | AVX2/None | v6.1.0.zip(source code) |

    Updates

    • Faster engine
    • Efficient transposition table
    • Robust uncommon endgame
    • Change book-enlarge algorithms
    • Create new Egaroucid for Console
    • Refactoring
    • Fixed some known bugs

    日本語

    詳しくは https://www.egaroucid.nyanyan.dev/ja/ をご覧ください。

    Egaroucid

    egaroucid インストーラをダウンロードして実行し、画面の表示に従ってください。 EgaroucidはAVX2を使ったSIMDバージョンに最適化して作っていますが、こちらは概ね2013年以降のCPUでないと動作しません。その場合にはGenericバージョンを使用してください。 | OS | CPU | 追加要件 | ダウンロード | | ---- | ---- | ---- | ---- | | Windows | x64 | AVX2(標準) | Egaroucid_6_1_0_SIMD_installer.exe | | Windows | x64 | - | Egaroucid_6_1_0_Generic_installer.exe |

    Egaroucid for Console

    今回からEgaroucid for Consoleを新設しました。旧来のEgaroucidと違い、コンソールアプリとしてのリリースです。こちらはWindowsおよびLinuxでの動作を想定しています。 egaroucid_for_console Windowsで使う場合はzipファイルをダウンロードして解凍してください。 Linuxで使う場合は以下からソースコードをダウンロードし、こちらの手順に従ってビルドしてください。 EgaroucidはAVX2を使ったSIMDバージョンに最適化して作っていますが、こちらは概ね2013年以降のCPUでないと動作しません。その場合にはGenericバージョンを使用してください。 | OS | CPU | 追加要件 | ダウンロード | | ---- | ---- | ---- | ---- | | Windows | x64(標準) | AVX2(標準) | Egaroucid_for_Console_6_1_0_Windows_x64_SIMD.zip | | Windows | x64(標準) | - | Egaroucid_for_Console_6_1_0_Windows_x64_Generic.zip | | Windows | x86 | - | Egaroucid_for_Console_6_1_0_Windows_x86_Generic.zip | | Linux | x64/x86/ARM64/ARM | AVX2/なし | v6.1.0.zip(ソースコード) |

    主なアップデート

    • AIの高速化
    • 置換表の効率化
    • 特殊な終局での評価不備への対処
    • Book生成アルゴリズムの変更
    • Egaroucid for Consoleの新設
    • リファクタリング
    • 既知のバグの修正
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_6_1_0_Generic_installer.exe(67.48 MB)
    Egaroucid_6_1_0_SIMD_installer.exe(67.44 MB)
    Egaroucid_for_Console_6_1_0_Windows_x64_Generic.zip(33.27 MB)
    Egaroucid_for_Console_6_1_0_Windows_x64_SIMD.zip(33.28 MB)
    Egaroucid_for_Console_6_1_0_Windows_x86_Generic.zip(33.26 MB)
  • v6.0.0(Oct 10, 2022)

    app

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 2013年以前のCPUの場合は動かないことがあります。 インストーラをダウンロードして実行し、画面の表示に従ってください。

    主な変更点

    • AIの大幅な高速化
    • UIの変更

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information. If you use CPUs before 2013, this software might not be able to run. Please download the installer and run it.

    Main Updates

    • Make AI much Faster
    • Update UI
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_6_0_0_setup_Windows.exe(57.02 MB)
  • v5.10.0(Jun 8, 2022)

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 基本的にはEgaroucid_5_10_0_setup.exeを使ってインストールしてください。2013年以前のCPUの場合は動かないことがあります。その場合はEgaroucid_5_10_0_setup_high_compatibility.exeを使ってください。 Mac OSバージョンは後ほどリリースします。

    変更点

    • AIの高速化
    • その他バグの修正

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information Please firstly useEgaroucid_5_10_0_setup.exeto install Egaroucid. There are cases this can't run on CPUs before 2013. If it can't run, then please use Egaroucid_5_10_0_setup_high_compatibility.exe. Mac OS version will be released later.

    Updates

    • Make AI faster
    • Fix known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_10_0_setup.exe(57.18 MB)
    Egaroucid_5_10_0_setup_high_compatibility.exe(57.20 MB)
  • v5.9.0(Jun 7, 2022)

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 基本的にはEgaroucid_5_9_0_setup.exeを使ってインストールしてください。2013年以前のCPUの場合は動かないことがあります。その場合はEgaroucid_5_9_0_setup_high_compatibility.exeを使ってください。 Mac OSバージョンは後ほどリリースします。

    変更点

    • AIの高速化
    • レベル定義の変更
    • 評価関数のアップデート
    • モードの仕様変更
    • その他バグの修正

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information Please firstly useEgaroucid_5_9_0_setup.exeto install Egaroucid. There are cases this can't run on CPUs before 2013. If it can't run, then please use Egaroucid_5_9_0_setup_high_compatibility.exe. Mac OS version will be released later.

    Updates

    • Make AI faster
    • Change the definition of level
    • Modify modes
    • Fix known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_9_0_setup.exe(57.23 MB)
    Egaroucid_5_9_0_setup_high_compatibility.exe(57.24 MB)
  • v5.8.0(May 13, 2022)

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 基本的にはEgaroucid_5_8_0_setup.exeを使ってインストールしてください。2013年以前のCPUの場合は動かないことがあります。その場合はEgaroucid_5_8_0_setup_high_compatibility.exeを使ってください。 Mac OSバージョンは後ほどリリースします。

    変更点

    • AIの高速化
    • レベル定義の変更
    • 検討中の手数のずれの修正
    • グラフのリアルタイム描画の機能拡充
    • bookの保存場所変更機能
    • 一部UIの変更
    • その他バグの修正

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information Please firstly useEgaroucid_5_8_0_setup.exeto install Egaroucid. There are cases this can't run on CPUs before 2013. If it can't run, then please use Egaroucid_5_8_0_setup_high_compatibility.exe. Mac OS version will be released later.

    Updates

    • Make AI faster
    • Change the definition of level
    • Fix lag on graph
    • Expansion of real-time graph drawing
    • Book storage location changeable
    • Change some UIs
    • Fix known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_8_0_setup.exe(57.24 MB)
    Egaroucid_5_8_0_setup_high_compatibility.exe(57.24 MB)
  • v5.7.2(May 3, 2022)

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 基本的にはEgaroucid_5_7_2_setup.exeを使ってインストールしてください。2013年以前のCPUの場合は動かないことがあります。その場合はEgaroucid_5_7_2_setup_high_compatibility.exeを使ってください。 Mac OSバージョンは後ほどリリースします。

    変更点

    • グラフ描画専用レベルを搭載
    • AIの高速化
    • 対局読み込み機能の搭載
    • book値消去機能の搭載
    • 一部UIの変更
    • その他バグの修正

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information Please firstly useEgaroucid_5_7_2_setup.exeto install Egaroucid. There are cases this can't run on CPUs before 2013. If it can't run, then please use Egaroucid_5_7_2_setup_high_compatibility.exe. Mac OS version will be released later.

    Updates

    • Create level for drawing graph
    • Make AI faster
    • New function: Import games
    • New function: Delete registered book values
    • Change some UI
    • Fix other known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_7_2_setup.exe(56.88 MB)
    Egaroucid_5_7_2_setup_high_compatibility.exe(56.88 MB)
  • v5.7.1(Apr 26, 2022)

    Egaroucid 5.7.1

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 基本的にはEgaroucid_5_7_1_setup.exeを使ってインストールしてください。2013年以前のCPUの場合は動かないことがあります。その場合はEgaroucid_5_7_1_setup_high_compatibilityを使ってください。 Mac OSバージョンは後ほどリリースします。 変更点:

    • AIの高速化
    • グラフ自動表示機能の搭載
    • レイアウトの変更
    • マスにオーバーレイで定石を表示
    • 盤面編集機能の搭載
    • 自動アップデート確認
    • 互換性の高いバージョンの作成
    • その他既知バグの修正
    • インストーラ形式での提供に変更

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information Please firstly use Egaroucid_5_7_1_setup.exe to install Egaroucid. There are cases this can't run on CPUs before 2013. If it can't run, then please use Egaroucid_5_7_1_setup_high_compatibility. Mac OS version will be released later. Updates:

    • Use faster AI
    • Automatically draw graph
    • Change layout
    • New function: Show joseki when mouse-over a cell
    • New function: editing board
    • New function: automatically check update
    • Create high compatibility version
    • Fix other known bugs
    • Changed to provide installer
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_7_1_setup.exe(56.88 MB)
    Egaroucid_5_7_1_setup_high_compatibility.exe(56.87 MB)
  • v5.6.0(Apr 21, 2022)

    Egaroucid 5.6.0

    詳しくは https://www.egaroucid-app.nyanyan.dev/ をご覧ください。 Mac OSバージョンは後ほどリリースします。 変更点:

    • レイアウトの変更
    • 人間的評価値のアップデート
    • 人間的評価値のグラフ表示
    • その他既知バグの修正

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information Mac OS version will be released later. Update:

    • Update layout
    • Update human sense value
    • Show human sense value graph
    • Fixed other known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_6_0_Windows_64bit.zip(58.41 MB)
  • v5.5.0(Mar 16, 2022)

    Egaroucid 5.5.0

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information

    Mac OS version will be released later.

    Update:

    • Update AI
    • Register record or board with key Enter
    • Display next move in history and fork mode
    • Register new book value with key Enter, quit with key Esc
    • Choose whether to use book and book depth of use
    • Enhance default book
    • Fix other known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_5_0_Windows_64bit.zip(58.42 MB)
  • v5.4.1(Mar 2, 2022)

    Egaroucid 5.4.1

    Please see https://www.egaroucid-app.nyanyan.dev/ for more information

    If you can't open Mac OS X version, please try opening Egaroucid.app/Contents/MacOS/Egaroucid

    Update:

    • add tweet button
    • moving textbox with tab key in game saving available
    • using ctrl + V to paste in textbox available
    • abolish clipboard manipulation, use textbox in inputting board or record
    • make disc difference hint more accurate
    • abolish big start button and usage button
    • fixed a bug in Edax book importing
    • fixed other known bugs
    Source code(tar.gz)
    Source code(zip)
    Egaroucid_5_4_1_MacOSX.zip(60.12 MB)
    Egaroucid_5_4_1_Windows_64bit.zip(56.44 MB)
  • v5.4.0(Feb 20, 2022)

Owner
Takuto Yamana
Maker. World Maker Faire New York Editor's Choice クマ財団5期 IPA未踏スーパークリエータ 技育展最優秀賞 DMM.makeAKIBAスタートライン JPhO銀/実験優秀賞
Takuto Yamana
Tensors and Dynamic neural networks in Python with strong GPU acceleration

PyTorch is a Python package that provides two high-level features: Tensor computation (like NumPy) with strong GPU acceleration Deep neural networks b

null 61.4k Jan 4, 2023
Simplified distributed block storage with strong consistency, like in Ceph (repository mirror)

Vitastor Читать на русском The Idea Make Software-Defined Block Storage Great Again. Vitastor is a small, simple and fast clustered block storage (sto

Vitaliy Filippov 63 Jan 7, 2023
ICRA 2021 - Robust Place Recognition using an Imaging Lidar

Robust Place Recognition using an Imaging Lidar A place recognition package using high-resolution imaging lidar. For best performance, a lidar equippe

Tixiao Shan 296 Jan 1, 2023
Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.

Isaac ROS Visual Odometry This repository provides a ROS2 package that estimates stereo visual inertial odometry using the Isaac Elbrus GPU-accelerate

NVIDIA Isaac ROS 339 Dec 28, 2022
With deep learning to neuroscience world with shield for jetson nano - JNEEG (In progress)

With deep learning to neuroscience world with shield for jetson nano - JNEEG (In progress)

Ildaron 23 Dec 11, 2022
GFPGAN-ncnn - a naive NCNN implementation of GFPGAN aims at developing Practical Algorithms for Real-world Face Restoration

GFPGAN-ncnn a naive ncnn implementation of GFPGAN aims at developing Practical Algorithms for Real-world Face Restoration model support: 1.GFPGANClean

FeiGeChuanShu 42 Dec 10, 2022
Frog is an integration of memory-based natural language processing (NLP) modules developed for Dutch. All NLP modules are based on Timbl, the Tilburg memory-based learning software package.

Frog - A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch Copyright 2006-2020 Ko van der Sloot, Maarten van Gompel, Antal van den

Language Machines 70 Dec 14, 2022
🐸 Coqui STT is an open source Speech-to-Text toolkit which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers

Coqui STT ( ?? STT) is an open-source deep-learning toolkit for training and deploying speech-to-text models. ?? STT is battle tested in both producti

Coqui.ai 1.7k Jan 2, 2023
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

This is the Vowpal Wabbit fast online learning code. Why Vowpal Wabbit? Vowpal Wabbit is a machine learning system which pushes the frontier of machin

Vowpal Wabbit 8.1k Dec 30, 2022
VNOpenAI 31 Dec 26, 2022
This work is an expend version of livox_camera_calib(hku-mars/livox_camera_calib), which is suitable for spinning LiDAR。

expend_lidar_camera_calib This work is an expend version of livox_camera_calib, which is suitable for spinning LiDAR。 In order to apply this algorithm

afei 56 Dec 21, 2022
DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers.

Project DeepSpeech DeepSpeech is an open-source Speech-To-Text engine, using a model trained by machine learning techniques based on Baidu's Deep Spee

Mozilla 20.8k Jan 9, 2023
A program that receives all the results of the matches of a basketball tournament and calculates the final results as well as which teams go up or down a division.

O enunciado fornecido não é necessariamente completo. O comportamento do programa nas situações não previstas no enunciado deve ser escolhido por cada

António Pedro Correia 1 Dec 21, 2021
This is a list of hardware which is supports Intel SGX - Software Guard Extensions.

SGX-hardware list This is a list of hardware which supports Intel SGX - Software Guard Extensions. Desktop The CPU and the motherboard BIOS must suppo

Lars Lühr 513 Dec 16, 2022
This repository is a tensorrt deployment of the onsets and frames model, which is implemented using pytorch.

Onsets and Frames TensorRT inference This repository is a tensorrt deployment of the onsets and frames model, which is implemented using pytorch (http

Xianke Wang 6 Jan 13, 2022
A GPU (CUDA) based Artificial Neural Network library

Updates - 05/10/2017: Added a new example The program "image_generator" is located in the "/src/examples" subdirectory and was submitted by Ben Bogart

Daniel Frenzel 93 Dec 10, 2022
C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library

Build Status Travis CI VM: Linux x64: Raspberry Pi 3: Jetson TX2: Backstory I set to build ccv with a minimalism inspiration. That was back in 2010, o

Liu Liu 6.9k Jan 6, 2023
MaixPy3 is a Python3 toolkit based on cpython

MaixPy3 is a Python3 toolkit based on cpython, which simplifies the development of applications on Linux AI edge devices through Python programming.

Sipeed 139 Jan 2, 2023
A c++ trainable semantic segmentation library based on libtorch (pytorch c++). Backbone: ResNet, ResNext. Architecture: FPN, U-Net, PAN, LinkNet, PSPNet, DeepLab-V3, DeepLab-V3+ by now.

中文 C++ library with Neural Networks for Image Segmentation based on LibTorch. The main features of this library are: High level API (just a line to cr

null 310 Jan 3, 2023