SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
確率解析計算
  松下祐介
 shiatsumat
確率と計算
乱択アルゴリズムと確率的解析
乱択アルゴリズムは既知の決定的な
解法よりも非常に効率的である。さら
に、多くの場合、乱択アルゴリズムは
単純であり、実装が容易である。(vi)

著者はこの本での素材を、ほんの少し
の例外を除いて、厳密な数学的解析
に基づく方法と技法だけに限定するこ
とにした。(ix)
たとえば、モンテカルロ法の応用分野
で多用される現実的な解法は、その
効果や効率を厳密な数学的解析に
よって示すよりも、むしろ計算機実験に
よって例証された発見的手法である。
発見的手法の長所と短所を理解し適
切に応用するためには、基礎となる確
率論と厳密な技法をしっかり把握する
ことこそが必須であるという考え方を、
本書を通じて訴えたい。(ix)
確率変数:
計算時間、成功/失敗
確率変数についての考察:
期待値、期待値から𝛿以上反れる確
率
クイックソートの解析
2543176

2314576

2134576

1234567
計算量=比較回数の総数X
𝑦1 , 𝑦2 , … , 𝑦 𝑛 :入力を昇順に並び替えたもの
𝑋 𝑖𝑗 :ソート中に𝑦 𝑖 と𝑦 𝑗 を比較するかどうかを表す
確率変数(1 or 0)
     𝑛−1   𝑛

𝑋=               𝑋 𝑖𝑗
     𝑖=1 𝑗=𝑖+1
           𝑛−1          𝑛            𝑛−1   𝑛

𝐄 𝑋 = 𝐄                     𝑋 𝑖𝑗 =               𝐄 𝑋 𝑖𝑗
           𝑖=1 𝑗=𝑖+1                 𝑖=1 𝑗=𝑖+1
𝒚 𝒊 と𝒚 𝒋 が比較される
⇔ 𝒚 𝒊 か𝒚 𝒋 が同じグループにいてどちらかが軸になる
⇔ 𝒚 𝒊 , 𝒚 𝒊+𝟏 , … , 𝒚 𝒋 の中で𝒚 𝒊 か𝒚 𝒋 が最初に軸になる
              2
𝐄 𝑋 𝑖𝑗   =
           𝑗− 𝑖+1
          𝑛−1   𝑛                 𝑛
                                              2
𝐄 𝑋 =                 𝐄 𝑋 𝑖𝑗 =         𝑛+1− 𝑘
                                              𝑘
          𝑖=1 𝑗=𝑖+1              𝑘=2
  = 2𝑛 ln 𝑛 + Θ(𝑛)
平均計算量は𝜪(𝒏 𝐥𝐨𝐠 𝒏)
(入力もしくは軸の選択がランダムであるという条件下で)
最良計算量:𝛰(𝑛 log 𝑛)
 (軸の選択で常に中央値を選ぶ)
最悪計算量:𝛰(𝑛2 )
 (軸の選択で常に最大値/最小値を選ぶ)


どれくらいの確率で𝜪 𝒏 𝐥𝐨𝐠 𝒏 となるのか?
いい質問ですね~
分割した各々の部分の大きさの比が2:1
以上に偏らないとき、「良い頂点」とする

  2543176        2543176

231     576   25431        7
補題1:
木の根から葉までの任意の路において、良い頂点の数
は𝑐 log 2 𝑛を超えない。(𝑐はある正の定数)

証明:
路の上の良い頂点の数を最大にするには、良い頂点
だけの道を通り、かつそれぞれの頂点の子の大きい方
に向かえばよい。
このとき良い頂点の数は、𝑐 = log 3 2とすると、
                              2
      log 3 𝑛 = log 3 2 ∙ log 𝑛 = 𝑐 log 2 𝑛
         2          2
                                      (証明終わり)
補題2:
木の根から葉までの任意の路において、頂点数は
1 − 1 𝑛2 よりも高い確率で𝑐 ′ log 2 𝑛を超えない。(𝑐′はあ
る正の定数)

証明:
1/3の確率でよい頂点が出る試行があるとする。良い頂
点が𝑐 log 2 𝑛回現れるまでにかかる試行の回数𝑋は頂
点数と等しくなると考えてよい。
このとき、
        𝜇 = 𝐄 𝑋 = 3𝑐 log 2 𝑛 ⋯ (1)
*確率pの事象が起こるまでにかかる回数(=パラメーターp
の幾何確率変数)の期待値は1/p
証明続:
ここで、次の定理を用いる。 (Chernoff上界)
𝑋が独立なPoisson試行𝑋1 , … , 𝑋 𝑛 の和であるとき、
𝜇 = 𝐄[𝑋]とすると、任意の0 < 𝛿 ≤ 1に対して
                                 −𝜇𝛿 2 3
        Pr 𝑋 ≥ 1 + 𝛿 𝜇 ≤ 𝑒
上の式に(1)を代入して、
                                 − 3𝑐 log2 𝑛𝛿 2   3
 Pr 𝑋 ≥ 3𝑐 log 2 𝑛 1 + 𝛿   ≤ 𝑒
          −𝑐 log2 𝑒 𝛿 2
      = 𝑛
𝛿=   2/(𝑐 log 2 𝑒), 𝑐 ′ = 3𝑐 1 + 𝛿 とすると、
              Pr(𝑋 ≥ 𝑐 ′ log 2 𝑛) ≤ 𝑛−2
                                        (証明終わり)
定理:
乱択クイックソートの実行時間は少なくとも1 − 1/𝑛の確
率で𝑂(𝑛 log 𝑛)となる。

証明:
路は高々𝑛本なので、最高頂点数が𝑐 ′ log 2 𝑛を超える
ような路がない確率は𝑛が十分大きいとき、
              𝑛
            1     1
         1− 2 >1−
            𝑛     𝑛
このとき、深さの最大値は最高頂点数𝑐 ′ log 2 𝑛であり、
同じ深さの頂点で行われる比較の回数の総和は高々𝑛
である。よって、比較の回数の総和は高々𝑐 ′ log 2 𝑛 ∙ 𝑛
であるので、実行時間のオーダーは𝑂(𝑛 log 𝑛)となる。
𝐄 𝑋
Pr 𝑋 ≥ 𝑎 ≤           𝑋は非負の確率変数, 𝑎 > 0
               𝑎

                       𝐕𝐚𝐫 𝑋
Pr   𝑋− 𝐄 𝑋 ≥ 𝑎 ≤             (𝑎 > 0)
                         𝑎2
                            1
Pr 𝑋 − 𝐄 𝑋 ≥ 𝑡 ∙ σ 𝑋 ≤ 2 (𝑡 > 1)
                            𝑡
                              𝐕𝐚𝐫 𝑋
Pr |𝑋 − 𝐄 𝑋 | ≥ 𝑡 ∙ 𝐄 𝑋 ≤ 2           (t > 1)
                             𝑡 𝐄 𝑋 2

𝑋を独立ないくつかのPoisson試行の和とし、𝜇 = 𝐄 𝑋 とするとき、
                                       𝜇
                          𝑒𝛿
Pr 𝑋 ≥ 1 + 𝛿 𝜇 <                           𝛿>0
                      1+𝛿 1+𝛿
                      −𝜇𝛿 2 3
Pr 𝑋 ≥ 1 + 𝛿 𝜇 ≤ 𝑒                     0< 𝛿≤1
Pr 𝑋 ≥ 𝑅 ≤ 2−𝑅 𝑅 ≥ 6𝜇
                                           𝜇
                       𝑒 −𝛿
Pr 𝑋 ≤ 1 − 𝛿 𝜇 <               0< 𝛿<1
                    1 − 𝛿 1−𝛿
                      2
Pr 𝑋 ≤ 1 − 𝛿 𝜇 ≤ 𝑒 −𝜇𝛿 2 0 < 𝛿 < 1
                               2
Pr   𝑋 − 𝜇 ≥ 𝛿𝜇 ≤ 2𝑒 −𝜇𝛿           3
                                       0< 𝛿<1

               𝐕𝐚𝐫 𝑋
Pr(𝑋 = 0) <=
                𝐄 𝑋 2

𝑋が𝑛個のBernoulli確率変数の和である時
                𝑛 Pr 𝑋 𝑖 =1
Pr 𝑋 > 0 ≥     𝑖=1 𝐄 𝑋 𝑋 =1
                         𝑖
発見的手法の長所と短所を理解し適
切に応用するためには、基礎となる確
率論と厳密な技法をしっかり把握する
ことこそが必須であるという考え方を、
本書を通じて訴えたい。(ix)
#include <cstdio> #include <ctime> #include <cstdlib> #if 1 #define
REP(i,x) for(int i=0;i<x;++i) #define REPab(i,a,b) for(int i=a;i<b;++i)
void MakeInput(int number) { srand((unsigned)time(nullptr)); FILE *fp
= fopen(“in_quicksort.txt”,“w”); fprintf(fp,“%d¥n¥n”,number);
REP(i,number)fprintf(fp,“%d¥n”,rand()*(RAND_MAX+1)+rand());
fclose(fp); } const int MAX = 1000000; int a[MAX], b[MAX]; int number;
FILE *in, *out; int comptimes; void QuickSort(int begin, int end) { ///
comptimes+=end-begin-1; /// if(end-begin<=1) return; int x =
a[rand()%(end-begin)+begin]; int nsmall=0, nlarge=0;
REPab(i,begin,end){ if(a[i]<x){ //small b[begin+nsmall]=a[i];
++nsmall; }else{ //large b[end-nlarge-1]=a[i]; ++nlarge; } }
b[begin+nsmall]=x; REPab(i,begin,end){ a[i]=b[i]; }
QuickSort(begin,begin+nsmall); QuickSort(begin+nsmall+1,end); } const
int repeat = 1000; int main() { srand((unsigned)time(nullptr));
REP(cnt,repeat){ MakeInput((rand()*(RAND_MAX+1)+rand())%MAX); in
= fopen(“in_quicksort.txt”,“r”); out = fopen(“out_quicksort.txt”,“a”);
comptimes=0; fscanf(in,“%d”,&number);
REP(i,number)fscanf(in,“%d”,&a[i]); QuickSort(0,number); ///
fprintf(out,“%d %d¥n”,number,comptimes);
if(cnt%(repeat/100)==0)printf(“cnt is %d¥n”,cnt); /// fclose(in);
fclose(out); } return 0; } #endif
END

Weitere ähnliche Inhalte

Ähnlich wie 確率解析計算

070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
t2tarumi
 
K070k80 点推定 区間推定
K070k80 点推定 区間推定K070k80 点推定 区間推定
K070k80 点推定 区間推定
t2tarumi
 
130323 slide all
130323 slide all130323 slide all
130323 slide all
ikea0064
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
 
ディジタル信号処理の課題解説
ディジタル信号処理の課題解説ディジタル信号処理の課題解説
ディジタル信号処理の課題解説
noname409
 

Ähnlich wie 確率解析計算 (20)

070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
 
prml_titech_9.0-9.2
prml_titech_9.0-9.2prml_titech_9.0-9.2
prml_titech_9.0-9.2
 
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valueUniversity CodeSprint 4 - Magic value
University CodeSprint 4 - Magic value
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法
 
Or学会用20160915.ver2
Or学会用20160915.ver2Or学会用20160915.ver2
Or学会用20160915.ver2
 
K070k80 点推定 区間推定
K070k80 点推定 区間推定K070k80 点推定 区間推定
K070k80 点推定 区間推定
 
ndwave6.pdf
ndwave6.pdfndwave6.pdf
ndwave6.pdf
 
ndwave8.pdf
ndwave8.pdfndwave8.pdf
ndwave8.pdf
 
C02
C02C02
C02
 
異常検知と変化検知の1~3章をまとめてみた
異常検知と変化検知の1~3章をまとめてみた異常検知と変化検知の1~3章をまとめてみた
異常検知と変化検知の1~3章をまとめてみた
 
Foundation of Machine Leaning section8
Foundation of Machine Leaning section8Foundation of Machine Leaning section8
Foundation of Machine Leaning section8
 
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
 
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
Fourier transform
Fourier transformFourier transform
Fourier transform
 
130323 slide all
130323 slide all130323 slide all
130323 slide all
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
第5回Zansa勉強会
第5回Zansa勉強会第5回Zansa勉強会
第5回Zansa勉強会
 
Foundations of Statistical Natural Language Processing (chapter 5)
Foundations of Statistical Natural Language Processing (chapter 5)Foundations of Statistical Natural Language Processing (chapter 5)
Foundations of Statistical Natural Language Processing (chapter 5)
 
ディジタル信号処理の課題解説
ディジタル信号処理の課題解説ディジタル信号処理の課題解説
ディジタル信号処理の課題解説
 

Mehr von Yusuke Matsushita (11)

NPC April Fool's Contest 2014 累乗数
NPC April Fool's Contest 2014 累乗数NPC April Fool's Contest 2014 累乗数
NPC April Fool's Contest 2014 累乗数
 
Haskell Lecture 2
Haskell Lecture 2Haskell Lecture 2
Haskell Lecture 2
 
Haskell Lecture 1
Haskell Lecture 1Haskell Lecture 1
Haskell Lecture 1
 
ドロネー三角形分割
ドロネー三角形分割ドロネー三角形分割
ドロネー三角形分割
 
関数型プログラミングのすゝめ
関数型プログラミングのすゝめ関数型プログラミングのすゝめ
関数型プログラミングのすゝめ
 
型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ
 
C#への招待
C#への招待C#への招待
C#への招待
 
Modeling Concurrent Computing
Modeling Concurrent ComputingModeling Concurrent Computing
Modeling Concurrent Computing
 
Programmers, be a Wikipedian
Programmers, be a WikipedianProgrammers, be a Wikipedian
Programmers, be a Wikipedian
 
OpenMPI入門
OpenMPI入門OpenMPI入門
OpenMPI入門
 
プログラミング・パラダイム
プログラミング・パラダイムプログラミング・パラダイム
プログラミング・パラダイム
 

Kürzlich hochgeladen

Kürzlich hochgeladen (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
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: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
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: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...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

確率解析計算