SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
償却について
Banker's method

クレジットはデータ構造の中のロケーションに結び付けられる。

Ai = Ti + Ci – Ci

Ai : 蓄積された償却コスト
Ti : 蓄積された実際のコスト
Ci : 操作 i によって置かれたクレジットの数
Ci : 操作 i によって消費されたクレジット

クレジットは消費される前に置かれる。クレジットは1回しか使えない。
banker's methodはクレジット不変則を定義する。

クレジット不変則とは:
高価(expensive)な操作が発生するときにはいつも充分な
クレジットが正しいロケーションに置かれている。

クレジットの増加 == 計算量の貯金が増える
クレジット(信用)がないとお金を貸さないからbanker(銀行家)?
Physicist's method

関数Φはオブジェクトをdのポテンシャルと呼ばれる実数にマップする。
Φは初めは0で、非負。ポテンシャルは蓄積されたsavingの下限を示す。

Di は操作 i の出力と操作(i+1)の入力とする。
操作 i の償却されたコストAiは

Ai = Ti + Φ(Di) - Φ(Di-1)
となる。
蓄積された実際のコストは

ΣTi = ΣAi + Φ(D0) - Φ(Dj)
となる。

もし Φ(D0) = 0で Φ(Dj) >= 0 なら
Φ(Dj) >= Φ(D0) かつ ΣAi >= ΣTiなので、
蓄積された償却コストは蓄積された実際のコストの上限になる。

ポテンシャルが増加する == 計算量の貯金が増える
ポテンシャルを使うからphysicist (自然科学者)?
5.3 Binomial Heap

wikipediaの説明
http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E3%83%92%E3%83%BC%E3%83%97
 「二項木」
 「二項ヒープの構造」




                     binomial heapの例。ランク 0, 2, 3の3
                     つの二項木から構成されている。
binomial heapのinsertは償却されたらO(1)になる

・1 physicist's methodの場合

ポテンシャルをbinomial heapの中の木の数と定義します。

insert は (k+1)ステップかかります。 (k はlinkを呼ぶ回数)

t個のtreeがbinomial heapにもともと存在する場合、
insert後には t-k+1個の木があることになります。

ポテンシャルの差異は (t-k+1) - t = 1-k なので、
償却されたコストは (k+1) + (1-k) = 2 になります。

rank 4      3   2   1   0
tree   1    0   1   1   1   (1: 木が存在する。0: 木が存在しない)
           ↓ insert (rank 0の木を1個追加する)
tree 1 1 0          0   0
この場合k=3
binomial heapのinsertは償却されたらO(1)になる

・2 banker's methodの場合 (Exercise 5.2)

ヒープの中の木1個ごとにクレジット1を割当てます。

insert は (k+1)ステップかかります。 (k はlinkを呼ぶ回数)

t個のtreeがbinomial heapにもともと存在する場合、
insert後には t-k+1個の木があることになります。

クレジットの変化分は (t-k+1) - t = 1-k なので、
償却されたコストは (k+1) + (1-k) = 2 になります。

(physicist's method とほぼ同一の説明です)
Exercise 5.3 (1)
binomial heapのmergeは償却されてもO(logn)になることを示す。

ポテンシャルをbinomial heapの中の木の数と定義します。

 a = t + Σd∈Out Φ(d) + Σd∈In Φ(d)

mergeの実行において、consはlogn回、linkはk回呼ばれます。

そのとき、ポテンシャルの変化は -k となります。
(merge前のヒープのポテンシャルをそれぞれΦ1, Φ2とすると、
 merge後のヒープのポテンシャルは Φ1+Φ2-k)

合計して logn + k - k = logn となります。よって償却してもO(logn)

rank 4         3   2   1   0
tree 1         0   1   0   1
           + (merge)
tree   0       0   0   1   1
           ↓
tree 1 1 0 0 0
 ⇒ この例ではlinkは3回発生します。ポテンシャルの変化は-3 (=-k)です
Exercise 5.3 (2)
binomial heapのdeleteMinは償却されてもO(logn)になることを示す。

ポテンシャルをbinomial heapの中の木の数と定義します。

(i) heapにrank 1の木がある場合
rank 4 3 2 1 0
tree 1 0 1 0 1
     ↓ deleteMin
tree 1 0 1 0 0
 ⇒ この例ではポテンシャルの変化 = -1

(ii) heapにrank 0の木がない場合
rank 4 3 2 1 0
tree 1 0 0 0 0
     ↓ deleteMin
tree 0 1 1 1 1
 ⇒ この例ではポテンシャルの変化 = 3
つまり、deleteMinによるポテンシャルの変化 = a (-1≦a<logn -1 の整数)
Exercise 5.3 (2) binomial heapのdeleteMinの続き

deleteMinの中でそれぞれの木で最小のrootを見つけるのに αlogn ステップか
また、木からrootを取り去ってそれをマージするのに βlogn ステップかかる。

deleteMinの前後でポテンシャルの変化は a (-1≦a<logn -1 ) となる。
合計して αlogn + βlogn + a       (-1≦a<logn -1 )
よって償却しても O(logn)

Contenu connexe

Tendances

Sanpo
SanpoSanpo
Sanpooupc
 
【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...
【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...
【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...Koji Yoshida
 
Joi模擬予選2013 6番解説
Joi模擬予選2013 6番解説Joi模擬予選2013 6番解説
Joi模擬予選2013 6番解説DEGwer
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号Yuto Takei
 
LL Quiz LT @ LL Diver
LL Quiz LT @ LL DiverLL Quiz LT @ LL Diver
LL Quiz LT @ LL Diverwataken44
 
Gcd
GcdGcd
Gcdoupc
 
UTPC2012 - K
UTPC2012 - KUTPC2012 - K
UTPC2012 - Komeometo
 

Tendances (11)

Sanpo
SanpoSanpo
Sanpo
 
Pfds20120304
Pfds20120304Pfds20120304
Pfds20120304
 
Pyramid
PyramidPyramid
Pyramid
 
【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...
【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...
【DBDA勉強会2013】Doing Bayesian Data Analysis Chapter 9: Bernoulli Likelihood wit...
 
Ml ch7
Ml ch7Ml ch7
Ml ch7
 
Joi模擬予選2013 6番解説
Joi模擬予選2013 6番解説Joi模擬予選2013 6番解説
Joi模擬予選2013 6番解説
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
 
Pad入門その3
Pad入門その3Pad入門その3
Pad入門その3
 
LL Quiz LT @ LL Diver
LL Quiz LT @ LL DiverLL Quiz LT @ LL Diver
LL Quiz LT @ LL Diver
 
Gcd
GcdGcd
Gcd
 
UTPC2012 - K
UTPC2012 - KUTPC2012 - K
UTPC2012 - K
 

Plus de Tetsuro Nagae

オブザーバビリティ、OpenTelemetryについて.pptx
オブザーバビリティ、OpenTelemetryについて.pptxオブザーバビリティ、OpenTelemetryについて.pptx
オブザーバビリティ、OpenTelemetryについて.pptxTetsuro Nagae
 
RDBのインデックスについて.pptx
RDBのインデックスについて.pptxRDBのインデックスについて.pptx
RDBのインデックスについて.pptxTetsuro Nagae
 
Purely functional data structures 8.2 日本語での説明
Purely functional data structures 8.2 日本語での説明Purely functional data structures 8.2 日本語での説明
Purely functional data structures 8.2 日本語での説明Tetsuro Nagae
 
Blueprintsについて
BlueprintsについてBlueprintsについて
BlueprintsについてTetsuro Nagae
 
Purely Functional Data Structures ex3.3 leftist heap
Purely Functional Data Structures ex3.3 leftist heapPurely Functional Data Structures ex3.3 leftist heap
Purely Functional Data Structures ex3.3 leftist heapTetsuro Nagae
 

Plus de Tetsuro Nagae (7)

オブザーバビリティ、OpenTelemetryについて.pptx
オブザーバビリティ、OpenTelemetryについて.pptxオブザーバビリティ、OpenTelemetryについて.pptx
オブザーバビリティ、OpenTelemetryについて.pptx
 
RDBのインデックスについて.pptx
RDBのインデックスについて.pptxRDBのインデックスについて.pptx
RDBのインデックスについて.pptx
 
MySQL SQL tuning
MySQL SQL tuningMySQL SQL tuning
MySQL SQL tuning
 
Hoare論理
Hoare論理Hoare論理
Hoare論理
 
Purely functional data structures 8.2 日本語での説明
Purely functional data structures 8.2 日本語での説明Purely functional data structures 8.2 日本語での説明
Purely functional data structures 8.2 日本語での説明
 
Blueprintsについて
BlueprintsについてBlueprintsについて
Blueprintsについて
 
Purely Functional Data Structures ex3.3 leftist heap
Purely Functional Data Structures ex3.3 leftist heapPurely Functional Data Structures ex3.3 leftist heap
Purely Functional Data Structures ex3.3 leftist heap
 

Dernier

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Dernier (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

purely functional data structures 5.3 日本語での説明

  • 1. 償却について Banker's method クレジットはデータ構造の中のロケーションに結び付けられる。 Ai = Ti + Ci – Ci Ai : 蓄積された償却コスト Ti : 蓄積された実際のコスト Ci : 操作 i によって置かれたクレジットの数 Ci : 操作 i によって消費されたクレジット クレジットは消費される前に置かれる。クレジットは1回しか使えない。 banker's methodはクレジット不変則を定義する。 クレジット不変則とは: 高価(expensive)な操作が発生するときにはいつも充分な クレジットが正しいロケーションに置かれている。 クレジットの増加 == 計算量の貯金が増える クレジット(信用)がないとお金を貸さないからbanker(銀行家)?
  • 2. Physicist's method 関数Φはオブジェクトをdのポテンシャルと呼ばれる実数にマップする。 Φは初めは0で、非負。ポテンシャルは蓄積されたsavingの下限を示す。 Di は操作 i の出力と操作(i+1)の入力とする。 操作 i の償却されたコストAiは Ai = Ti + Φ(Di) - Φ(Di-1) となる。 蓄積された実際のコストは ΣTi = ΣAi + Φ(D0) - Φ(Dj) となる。 もし Φ(D0) = 0で Φ(Dj) >= 0 なら Φ(Dj) >= Φ(D0) かつ ΣAi >= ΣTiなので、 蓄積された償却コストは蓄積された実際のコストの上限になる。 ポテンシャルが増加する == 計算量の貯金が増える ポテンシャルを使うからphysicist (自然科学者)?
  • 4. binomial heapのinsertは償却されたらO(1)になる ・1 physicist's methodの場合 ポテンシャルをbinomial heapの中の木の数と定義します。 insert は (k+1)ステップかかります。 (k はlinkを呼ぶ回数) t個のtreeがbinomial heapにもともと存在する場合、 insert後には t-k+1個の木があることになります。 ポテンシャルの差異は (t-k+1) - t = 1-k なので、 償却されたコストは (k+1) + (1-k) = 2 になります。 rank 4 3 2 1 0 tree 1 0 1 1 1 (1: 木が存在する。0: 木が存在しない) ↓ insert (rank 0の木を1個追加する) tree 1 1 0 0 0 この場合k=3
  • 5. binomial heapのinsertは償却されたらO(1)になる ・2 banker's methodの場合 (Exercise 5.2) ヒープの中の木1個ごとにクレジット1を割当てます。 insert は (k+1)ステップかかります。 (k はlinkを呼ぶ回数) t個のtreeがbinomial heapにもともと存在する場合、 insert後には t-k+1個の木があることになります。 クレジットの変化分は (t-k+1) - t = 1-k なので、 償却されたコストは (k+1) + (1-k) = 2 になります。 (physicist's method とほぼ同一の説明です)
  • 6. Exercise 5.3 (1) binomial heapのmergeは償却されてもO(logn)になることを示す。 ポテンシャルをbinomial heapの中の木の数と定義します。 a = t + Σd∈Out Φ(d) + Σd∈In Φ(d) mergeの実行において、consはlogn回、linkはk回呼ばれます。 そのとき、ポテンシャルの変化は -k となります。 (merge前のヒープのポテンシャルをそれぞれΦ1, Φ2とすると、  merge後のヒープのポテンシャルは Φ1+Φ2-k) 合計して logn + k - k = logn となります。よって償却してもO(logn) rank 4 3 2 1 0 tree 1 0 1 0 1 + (merge) tree 0 0 0 1 1 ↓ tree 1 1 0 0 0  ⇒ この例ではlinkは3回発生します。ポテンシャルの変化は-3 (=-k)です
  • 7. Exercise 5.3 (2) binomial heapのdeleteMinは償却されてもO(logn)になることを示す。 ポテンシャルをbinomial heapの中の木の数と定義します。 (i) heapにrank 1の木がある場合 rank 4 3 2 1 0 tree 1 0 1 0 1 ↓ deleteMin tree 1 0 1 0 0  ⇒ この例ではポテンシャルの変化 = -1 (ii) heapにrank 0の木がない場合 rank 4 3 2 1 0 tree 1 0 0 0 0 ↓ deleteMin tree 0 1 1 1 1  ⇒ この例ではポテンシャルの変化 = 3 つまり、deleteMinによるポテンシャルの変化 = a (-1≦a<logn -1 の整数)
  • 8. Exercise 5.3 (2) binomial heapのdeleteMinの続き deleteMinの中でそれぞれの木で最小のrootを見つけるのに αlogn ステップか また、木からrootを取り去ってそれをマージするのに βlogn ステップかかる。 deleteMinの前後でポテンシャルの変化は a (-1≦a<logn -1 ) となる。 合計して αlogn + βlogn + a (-1≦a<logn -1 ) よって償却しても O(logn)