タグ

ブックマーク / yaneuraou.yaneu.com (2)

  • 俺氏、将棋が二人零和有限確定完全情報ゲームでないことに気づいてしまうwww | やねうら王 公式サイト

    このブログをご覧の方は将棋が二人零和有限確定完全情報ゲームであることはご存知でしょう。これは、ゲーム理論や探索アルゴリズムの教科書にでも載っています。「二人零和有限確定完全情報ゲームって何?」って方は、Wikipediaでも見ていただくことにして話を先に進めます。 零和とは? この「零和」というのは、和が零。英語で言うとゼロサムです。 零和(「ゼロ和」と読むのが一般的だが「レイワ」とも読む):プレイヤー間の利害が完全に対立し、一方のプレイヤーが利得を得ると、それと同量の損害が他方のプレイヤーに降りかかる https://ja.wikipedia.org/wiki/二人零和有限確定完全情報ゲーム つまり、自分が勝ちなら、相手は負け。相手が勝ちなら自分は負け。勝ちを+1点、負けを-1点、引き分けを0のように定めるなら、(ゲーム終局後に)自分と相手の点数を足すと0になる。なので、ゼロサムゲーム

    ad2217
    ad2217 2021/02/20
    一試合だけ見るのでなければ、完全情報ゼロサムゲームにならないのは自明だが、プログラムを作っている時にはそれを忘れてしまっていたが、思い出したという話。
  • x86環境用にアライメント合わせるのが壊滅的に難しい件 | やねうら王 公式サイト

    やねうら王miniをx86(32bit環境)でコンパイルが通るように作業してたのですが、どうもアライメントを合わせるのが壊滅的に難しいです。 SSE命令を使うときに16byte単位にアライメントが合っていないと実行時にエラーになるものがあります。_mm_store_si128()等です。 まあそれはそれで仕方ないのでアライメントを合わせようとBitboardなどのstructにalignas(16)をつけたわけです。 ところが、ヒープから割り当てたときにはこれがアライメントされていない可能性があるようです。 thread.cpp template<typename T> T* new_thread() { std::thread* th = new T(); *th = std::thread(&T::idle_loop, (T*)th); return (T*)th; } > sourc

    ad2217
    ad2217 2016/01/19
    VC++の話です。
  • 1