SlideShare a Scribd company logo
1 of 33
Download to read offline
Introduction to Boost.B-tree

     takayuki_goto@kstm.org
            (@eldesh)
自己紹介

● hatena-id:eldesh, @eldesh
● C++/ML er
● github
    ○ Inhert.PEG :: packrat parser library
● codeplex
    ○ msgpack-sml :: SML message-packシリアライザ
● 就職活動中なう…。
  ○ 拾ってください><
目次

● Boost.B-treeとは
● B-treeとは
   ○ 性質
   ○ 効率
   ○ 採用事例 
● Boost.B-treeの特徴
● Boost.B-treeの使い方
● Boost.B-treeの実装 、制限
B-treeとは

● データ構造(C++風に言うとコンテナ)の一種
● 古来よりHDD上で(ファイルシステムの実装に)活用される
● 近年オンメモリDBとして注目されている[要出典]
   ○ KyotoCabinetなど
● 派生のデータ構造たくさん
   ○ B+, B*, B#, Bx, UB, Dancing, H
 
B-treeの性質

● 平衡多分木の一つ
   ○ 自動で常にバランスする
● 全てのリーフノードはルートから同じ距離になる
● ノード数は一定 
● HDD上で性能が出る
● SSDでも速い(らしい)
B-treeの効率

● 他のコンテナとの比較
   コンテナ          イテレータ           メモリ効率       検索         挿入         削除

    B-tree      bi-directional    N*1.25   O(logmN)   O(logmN)   O(logmN)
                                 (最悪N*2)

 RedBlack-tree bi-directional N*3(or 2)    O(log2N)   O(log2N)   O(log2N)
 (std::mapなど)

    SkipList    (bi-             N*2(?)    O(log2N)   O(log2N)   O(log2N)
                directional)
B-tree採用事例

● NTFS(B+-tree)
● ext3,4(hashed B-tree)
● HFS(B-tree)
● Reiser4(Dancing B*-tree)
● XFS(B+-Tree)

● MySQL(B-tree)
● SQLite(B-tree)
● BerkeleyDB(B+-tree)
● CouchDB(B-tree)
                        ※単に B-tree と言った場合、派生アルゴリズムを含む
                        "B-tree系" の総称として用いることが多いと思われる
B-treeとは…!



Beman Dawes
「B-treeは実質的に、ファイルシステム、リレーショナルデータ
ベース検索機構、NoSQL構造化データシステム、ディスクに
保存するインデックス
全てにインデックスデータ構造を提供するっ!」

                         ※強調は訳者による
Beman Dawes →
Boost.B-tree
Boost.B-treeの特徴

● std::set, std::mapライクなコンテナ
● B+-treeで実装されている
● 自動でファイルに同期
● ライブラリレベルでのキャッシュ管理
● preloadによる高速化オプション
● packによるメモリ効率最適化オプション

● 格納出来る値に制限がある
● 実はBoostに入ってない :p
B+-tree
インストール

git clone https://github.com/Beman/Boost-Btree.git xbtree
(注) Boost全部チェックアウトします
svn export --force http://svn.boost.org/svn/boost/trunk xbtree
cd xbtree
./bootstrap.sh
cd libs/btree/test
../../../bjam
動作確認&ベンチマーク

$ cd xbtree/libs/btree/test
$ bjam

$ cd ../tools
$ bjam
$ bin/bt_time 10000 -stl -p4096 -c1000
ライブラリファイル構成

boost/btree
detail/
support/
dynamic_size.hpp   <- 可変サイズKey,Valueメタ関数
header.hpp         <- Btreeのヘッダクラス
map.hpp            <- btree_map, btree_multimap
set.hpp            <- btree_set, btree_multiset
example/btree_set
using namespace boost::btree;
typedef btree_set<int> set_type;
set_type s("set.btr", flags::truncate);
s.insert(0);
s.insert(1);
s.insert(2);
for (set_type::iterator it=s.begin(); it!=s.
end(); ++it)
    cout << it << 'n';

// output
// 0
// 1
// 2
example/btree_map
typedef btree_map<int, long> map_type;
map_type m("bt_map.btr", flags::truncate);

m.emplace(2, -2); // m.insert(make_pair(2, -2))
m.emplace(3, -3);
m.emplace(1, -1);
for (map_type::iterator it=m.begin(); it!=m.
end(); ++it)
    cout << it->key() << " --> " << it-
>mapped_value() << 'n';

// 2 --> -2
// 3 --> -3
// 1 --> -1
example/btree_multiset
typedef boost::btree::btree_multiset<int>
set_type;
set_type s("set.btr", flags::truncate);
s.insert(1);
s.insert(2); s.insert(2); s.insert(2);
s.insert(3);
set_type::const_iterator_range rng=s.
equal_range(2);
for (set_type::const_iterator it=rng.first; it!
=rng.second; ++it)
    cout << *it << 'n';

// output:
// 2
// 2
// 2
example/btree_multimap
typedef btree_multiset<strbuf,strbuf> map_type;
map_type m("map.btr", flags::truncate);
m.emplace("eat","comer0");
m.emplace("eat","comer1");
m.emplace("eat","comer2");
m.emplace("drink", "beber");
map_type::const_iterator_range rng=m.equal_range
("eat");
for (map_type::iterator it=rng.first; it!=rng.
second; ++it)
    cout << it->key() <<"-->"<< it->mapped_value()
<< 'n';

// output:
// eat -> comer0
// eat -> comer1
// eat -> comer2
標準連想コンテナとの違い

● テンプレートパラメータ
    ○ エンディアンを指定する
● Key とTへのより厳しい制約
● イテレータの無効化規則は、通常の古い連想コンテナより順序
  無し連想コンテナにより近い
● [multi]map value_type は std::pair<> ではなく、
  map_value<> である
● iterator と const_iterator は同じ型であり、それは不
  変なイテレータである
● いくつかのメンバ関数が削除され、いくつかが追加された
Key, Tへの制約

btree_map<
           class Key, class T            <- コレ
         , class Traits=default_endian_traits
         , class Comp=btree::less<T>
 >
 ● static_assert(std::is_trivially_copyable<T>::value==true,"")
     ○ memcpyします
 ● ポインタではないこと

  を要求する。
Key, Valueのバイナリ表現

template<class T1, class T2>
class map_value { // btree_map<>::value_type
  T1 const& key() const {
    return *reinterpret_cast<const T1*>(this); }
  T2 const& mapped_value() const { return
    *reinterpret_cast<const T2*>(
       reinterpret_cast<const char*>(this)
       + dynamic_size(key()));
  }
};
// キャストでアクセスするので
// std::pair<>は使えない
マップされた値の更新

 ● iterator と const_iterator は同じ型であり、
   不変なイテレータである
   btree_map::iterator it=m.find(2);
   it->mapped_value() = "hoge"; // error
 ● 値の更新は専用メソッドを使う
iterator
btree_map<K,V>::update(iterator, V const&);
example/update
typedef btree::btree_map<int, long> map_type;
map_type m("bt_map.btr", btree::flags::
truncate);
m.emplace(2, -2);
m.emplace(3, -3); m.emplace(1, -1);

map_type::iterator it=bt_map.find(2);
//じつはconst_iteratorでも…
cout << it->mapped_value() << "n";
m.update(it, 20L);
cout << it->mapped_value() << "n";

// -2
// 20
Boost.B-treeでは出来ないこと

● std::stringは使えない
    ○ trivially_copyableをkey,valueに要求する
    ○ 文字列を使うためのwrapperはある
● コンテナに値を追加すると勝手にファイルに書き出される
● シリアライザでは無い
    ○ Boost.Serializationの代替ではない
    ○ 複雑なデータ型はB-treeの上に構築する
追加された関数(の一部)
 void open(const path& p,
    flags::bitmask flgs = flags::read_only,
    size_t node_sz = default_node_size)
    // node_sz ignored if existing file
 void flush();
 void close();
 bool is_open() const;
 size_t node_size() const;
 size_t max_cache_size() const;
 void max_cache_size(size_t m);
 void dump_dot(std::ostream &) const;
 

digraph btree {
rankdir=LR;
fontname=Courier;
node [shape = record,margin=.1,width=.1,
height=.1,fontname=Courier,style="filled"];
node1[label = "<f0> 0|1|2|3|4|5|6|7|8|9",
fillcolor="palegreen"];
}
 
クラス階層
ページキャッシュ




buffer_manager // ファイルとバッファの管理
 ● intrusive::set<buffer> // と
 ● intrusive::list<buffer> // で管理
Feedback welcome!

● まだまだ開発途中
● 名前もシグネチャも変わるかも知れない
● ドキュメントがぜんぜん無い
● 継続的に開発していくよ
● フィードバック歓迎!
References

Organization and Maintenance of Large Ordered Indexes,
Bayer and McCreight, 1972

https://github.com/Beman/Boost-Btree

Proposed Boost.B-tree Library(ja)

More Related Content

What's hot

巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table についてHaruka Ozaki
 
データとは何か
データとは何かデータとは何か
データとは何かKenta Suzuki
 
Boostライブラリ一周の旅
Boostライブラリ一周の旅 Boostライブラリ一周の旅
Boostライブラリ一周の旅 Akira Takahashi
 
テーマ「最適化」
テーマ「最適化」テーマ「最適化」
テーマ「最適化」technocat
 
Adding simpl GVN path into GHC
Adding simpl GVN path into GHCAdding simpl GVN path into GHC
Adding simpl GVN path into GHCKei Hibino
 
Vinculum
VinculumVinculum
Vinculumtomerun
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでしたHaruka Ozaki
 
End challenge Part1
End challenge Part1End challenge Part1
End challenge Part1hisa2
 
as-1. アセンブラ入門
as-1. アセンブラ入門as-1. アセンブラ入門
as-1. アセンブラ入門kunihikokaneko1
 
ハッシュと配列
ハッシュと配列ハッシュと配列
ハッシュと配列TENTO_slide
 
ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ushiostarfish _
 
Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Etsuji Nakai
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回龍一 田中
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編Yosuke Onoue
 
PHP文字コード設定
PHP文字コード設定PHP文字コード設定
PHP文字コード設定Masataka Ohara
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理Shintaro Fukushima
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こうYoshitomo Akimoto
 

What's hot (20)

巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
 
データとは何か
データとは何かデータとは何か
データとは何か
 
Boostライブラリ一周の旅
Boostライブラリ一周の旅 Boostライブラリ一周の旅
Boostライブラリ一周の旅
 
テーマ「最適化」
テーマ「最適化」テーマ「最適化」
テーマ「最適化」
 
Adding simpl GVN path into GHC
Adding simpl GVN path into GHCAdding simpl GVN path into GHC
Adding simpl GVN path into GHC
 
Programming school 08
Programming school 08Programming school 08
Programming school 08
 
Vinculum
VinculumVinculum
Vinculum
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
End challenge Part1
End challenge Part1End challenge Part1
End challenge Part1
 
as-1. アセンブラ入門
as-1. アセンブラ入門as-1. アセンブラ入門
as-1. アセンブラ入門
 
ハッシュと配列
ハッシュと配列ハッシュと配列
ハッシュと配列
 
ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法
 
Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
 
仮想記憶の構築法
仮想記憶の構築法仮想記憶の構築法
仮想記憶の構築法
 
PHP文字コード設定
PHP文字コード設定PHP文字コード設定
PHP文字コード設定
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こう
 

Similar to Boost.B-tree introduction

co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッドkunihikokaneko1
 
Boost.Flyweight
Boost.FlyweightBoost.Flyweight
Boost.Flyweightgintenlabo
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryAkira Takahashi
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用Shintaro Fukushima
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)Hiro H.
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/PrismNaoki Aoyama
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as CodeTakuhiro Yoshida
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介Satoshi Hirata
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索Akio Ishida
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonYasunori Horikoshi
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてKosuke Saigusa
 
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsPL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsKohei KaiGai
 

Similar to Boost.B-tree introduction (20)

Boost tour 1_44_0
Boost tour 1_44_0Boost tour 1_44_0
Boost tour 1_44_0
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッド
 
Boost.Flyweight
Boost.FlyweightBoost.Flyweight
Boost.Flyweight
 
Teclab3
Teclab3Teclab3
Teclab3
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.Geomtry
 
Boost Tour 1.50.0
Boost Tour 1.50.0Boost Tour 1.50.0
Boost Tour 1.50.0
 
Map
MapMap
Map
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as Code
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
 
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsPL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database Analytics
 

Recently uploaded

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 

Recently uploaded (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

Boost.B-tree introduction