SlideShare a Scribd company logo
1 of 22
Download to read offline
ZDD入門
(副題:お姉さんを救う方法)

     西尾 泰和




                 1
お姉さん?
• 副題の元ネタがわからない人は
 Youtubeで「フカシギの数え方」を見てください




   http://www.youtube.com/watch?v=Q4gTV4r0zRs
                                                2
前回のあらすじ
• 前回のランダムフォレスト(竹迫さん)は
 決定木を「特徴をランダムに選んで、決
 定しきらなくても適当に打ち切って、と
 にかくたくさん作って多数決!」だった


• 今回も決定木だが「特徴を全部使って、
 巨大な決定木をつくるぞ!」という話


                        3
決定木が表現するもの
• 0/1の特徴がたくさん与えられて0/1を返す関数
• 具体例:
 • 論理式(項が特徴、式の値が返り値)
 • 部分集合の族(各頂点が部分集合xに含まれる
  かどうかが特徴、その部分集合が族に含まれ
  るかどうかが返り値)


                             4
もっと具体例



  の族
         この情報を
         どうやって
       コンピュータの中に
         表現する?

                   5
vector<bool>

• ←赤枠の中身を持つ
• 特徴の個数をNとして2^N bitのメモリ
        3×3 は辺が12本
        → 4096通り
        → 512バイト → 余裕!

                          6
5×5だと?

• 辺の本数は4×5×2=40本
• 局面数は2^40 = 1テラ通り
• 必要なメモリは128ギガバイト…


                     7
もう一声!6×6!
  • 辺の本数は5×6×2=60本
  • 局面数は2^60 = 1ゼタ通り
  • 必要なメモリは128エクサバイト…
   一億テラバイト以上?!




    お姉さん死んじゃう!やめて!
                     8
解のvectorで持つ
xyzr
0000   • 「全部1bit使うよりf(x)=1が成立するx
0010    だけリストアップすればいいのでは」
0100
0111   • 6×6だと一局面を60bitで表現できる
1000
1011   • 解の個数は126万2816通り
1101
1111   • 60bit × 1262816 ≒ 9メガバイト
       • これならメモリに収まる!
                                    9
もう二声!8×8!
 • 辺の本数は 7×8×2=112本
 • 一局面に 112bit
 • 解の個数:789ギガ通り
 • 112bit × 789ギガ通り ≒ 11テラバイト

       お姉さん死んじゃう!やめて!
                                10
どうすればいい??



            11
共通部分をまとめる
• 「?」の部分がなんであれ結果は同一
 →じゃあ別個に持つ必要ないじゃん!
 →共通部分をまとめて圧縮しよう!




                      12
BDD:
Binary Decision Diagram
               二分木、ただし
             共通部分を共有して
             消費メモリ量を節約



               頂点削除:


            記法:点線がlo, 実線がhi
                              13
さらに
• スタートから横に進む辺を選んだら、
 下に進む辺を選んではいけない。
 選んだらその後どうあがいても全部NG



       → 「?」の中身がどうでも
          全部NGになる


                       14
ZDD:
    Zero-supress BDD
• BDDとちょっと頂点削除のルールが違う
• ZDD:「ここが1だったらどうやっても
 結果が0になる」な頂点を削除

• BDD:「ここが0でも1でも結果が変わら
 ない」な頂点を削除


                  ←違いはわずか
                            15
ZDDで8×8!
• ZDDで表現した場合の頂点数:33580個
• 112辺のどの辺についての頂点かを識別す
  るために8bit使おう (7bitでも足りるけど)

• 33580個の頂点を識別するには16bit必要
• (8bit + 16bit × 2) × 33580 ≒ 168キロバイト
 11テラ→168キロ!!
                           TAOCP-ja 7.1 P121
                                           16
BDD/ZDDで何が出来る?
• 168KBで 789ギガ通りの解の集合を保持できる
• 解を辞書順に列挙できる
• 全ての解が等確率なサンプリングが出来る
• ある局面がOKかNGか、
 最大112ステップで判定できる

• BDDのまま和・積などの集合演算ができる
                              17
何が出来る? 続き(2/4)
• f(x)→0/1 のBDDがあると、
 与えられた重みベクトルwについて、
 f(x) = 1の条件下で内積wxを最大化する解xを
 O(n+B)ステップで求められる(Boole計画法)

• 例えば各辺のコストが与えられたら、
 コスト最小のパスを探せる

            n: xのビット数、B: BDDの頂点数
                               18
何が出来る? 続き(3/4)
                                        * 独立に
• 各x_iが確率p_iで1になる時*に、
 f(x) = 1である確率をO(B)ステップで
 求められる(信頼性多項式)


          0.1 * 0.2 * (1-0.3) * (1-0.4) +
           (1-0.1) * (1-0.2) * 0.3 * 0.4

                               B: BDDの頂点数
                                            19
何が出来る? 続き(4/4)

• f(x) = 1の解の個数を最悪実行時間O(nB)で
 求めることが出来る

• 例えばお姉さんが救える!

           n: fのビット数、B: BDDの頂点数
                               20
そんな便利なBDDを
どうすれば作れるか?


             21
to be continued...
                     22

More Related Content

What's hot

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 

What's hot (20)

強化学習@PyData.Tokyo
強化学習@PyData.Tokyo強化学習@PyData.Tokyo
強化学習@PyData.Tokyo
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.
[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.
[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
【DL輪読会】論文解説:Offline Reinforcement Learning as One Big Sequence Modeling Problem
【DL輪読会】論文解説:Offline Reinforcement Learning as One Big Sequence Modeling Problem【DL輪読会】論文解説:Offline Reinforcement Learning as One Big Sequence Modeling Problem
【DL輪読会】論文解説:Offline Reinforcement Learning as One Big Sequence Modeling Problem
 
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
目指せグラフマスター
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 

More from nishio

More from nishio (20)

量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
 
夏プロ報告
夏プロ報告夏プロ報告
夏プロ報告
 
ITと経営
ITと経営ITと経営
ITと経営
 
部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI
 
交渉力について
交渉力について交渉力について
交渉力について
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
組織横断型研究室構想
組織横断型研究室構想組織横断型研究室構想
組織横断型研究室構想
 
2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義
 
強化学習その5
強化学習その5強化学習その5
強化学習その5
 
良いアイデアを出すための方法
良いアイデアを出すための方法良いアイデアを出すための方法
良いアイデアを出すための方法
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
機械学習キャンバス0.1
機械学習キャンバス0.1機械学習キャンバス0.1
機械学習キャンバス0.1
 
首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
Wifiで位置推定
Wifiで位置推定Wifiで位置推定
Wifiで位置推定
 
ESP8266EXで位置推定
ESP8266EXで位置推定ESP8266EXで位置推定
ESP8266EXで位置推定
 

Recently uploaded

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Recently uploaded (8)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

ZDD入門-お姉さんを救う方法