Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Tetsuro Nagae
368 views
Purely functional data structures 8.2 日本語での説明
Purely functional data structures 8.2 の説明です
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 7
2
/ 7
3
/ 7
4
/ 7
5
/ 7
6
/ 7
7
/ 7
More Related Content
PPT
SVN経験者のためのGIT入門
by
AimingStudy
PDF
第6回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
09 tm1 migration
by
Shinsuke Yamamoto
PDF
IoC とは
by
Hidenori Doi
PPT
Mercurial はオフラインの海を越える
by
zetamatta
PDF
Open vzでdr hbstudy
by
Kazuaki Fujikura
PDF
Lagopus.confの書式(for lagopus 0.1.x)
by
Masaru Oki
PDF
7 eliminating amortization
by
Hironobu Kinugawa
SVN経験者のためのGIT入門
by
AimingStudy
第6回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
09 tm1 migration
by
Shinsuke Yamamoto
IoC とは
by
Hidenori Doi
Mercurial はオフラインの海を越える
by
zetamatta
Open vzでdr hbstudy
by
Kazuaki Fujikura
Lagopus.confの書式(for lagopus 0.1.x)
by
Masaru Oki
7 eliminating amortization
by
Hironobu Kinugawa
What's hot
ODP
Read daemon on 20121110 by shinaisan
by
shinaisan
PPT
Debug Hacks Conference 2009
by
Hiro Yoshioka
PPT
処理概要図&構築手順書1124
by
Kazuki Miura
PDF
新生Lagopus2017(仮称)
by
Masaru Oki
PDF
Lagopus 0.2
by
Masaru Oki
PPTX
Scala勉強会
by
Kazuaki Shibue
PPTX
Kubernetesできること
by
iPride Co., Ltd.
PDF
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
by
Taira Hajime
PDF
おかあさんとgit
by
manaten
PDF
[Intermediate 02] シェルの使い方 / Git, GitHub について
by
Yuto Takei
PDF
Patch101
by
Tetsuyuki Kobayashi
PPTX
ループその3
by
TENTO_slide
Read daemon on 20121110 by shinaisan
by
shinaisan
Debug Hacks Conference 2009
by
Hiro Yoshioka
処理概要図&構築手順書1124
by
Kazuki Miura
新生Lagopus2017(仮称)
by
Masaru Oki
Lagopus 0.2
by
Masaru Oki
Scala勉強会
by
Kazuaki Shibue
Kubernetesできること
by
iPride Co., Ltd.
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
by
Taira Hajime
おかあさんとgit
by
manaten
[Intermediate 02] シェルの使い方 / Git, GitHub について
by
Yuto Takei
Patch101
by
Tetsuyuki Kobayashi
ループその3
by
TENTO_slide
Viewers also liked
PPT
Advertising guidamaster.it in English
by
DIS S.r.l.
PPT
Motion nuances
by
preethika
PPTX
Presentazione III class b
by
Alfredo
PDF
Purely Functional Data Structures ex3.3 leftist heap
by
Tetsuro Nagae
PPT
Resume powerpoint, coleman
by
kasefacee
DOCX
Resume
by
kasefacee
Advertising guidamaster.it in English
by
DIS S.r.l.
Motion nuances
by
preethika
Presentazione III class b
by
Alfredo
Purely Functional Data Structures ex3.3 leftist heap
by
Tetsuro Nagae
Resume powerpoint, coleman
by
kasefacee
Resume
by
kasefacee
Similar to Purely functional data structures 8.2 日本語での説明
PPTX
並列化による高速化
by
sakura-mike
PDF
PFDS 8.4.3 Real-Time Deques
by
昌平 村山
PDF
第12回計算機構成
by
眞樹 冨澤
PDF
NPCA summer 2014
by
okuraofvegetable
PPT
言語処理系入門10
by
Kenta Hattori
PPTX
20周遅れ
by
ryos36
PDF
programming camp 2008, introduction of programming, algorithm
by
Hiro Yoshioka
PPT
Pythonintro
by
Mikio Kubo
PDF
Rpn and forth 超入門
by
Yoshitaka Seo
PDF
"What Does Your Code Smell Like?"で学ぶPerl6
by
risou
PDF
Adding simpl GVN path into GHC
by
Kei Hibino
PDF
Pfi Seminar 2010 1 7
by
Preferred Networks
PPT
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
PDF
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
PPTX
データとは何か
by
Kenta Suzuki
PDF
プログラミングロボットを用いたオンライン併用型の協調学習実践
by
情報処理学会 情報システム教育委員会
PDF
for文
by
APG4b
PPT
アルゴリズムとデータ構造12
by
Kenta Hattori
PDF
Look at-the-lisper
by
home
PDF
Bluespec @waseda(PDF)
by
Takefumi MIYOSHI
並列化による高速化
by
sakura-mike
PFDS 8.4.3 Real-Time Deques
by
昌平 村山
第12回計算機構成
by
眞樹 冨澤
NPCA summer 2014
by
okuraofvegetable
言語処理系入門10
by
Kenta Hattori
20周遅れ
by
ryos36
programming camp 2008, introduction of programming, algorithm
by
Hiro Yoshioka
Pythonintro
by
Mikio Kubo
Rpn and forth 超入門
by
Yoshitaka Seo
"What Does Your Code Smell Like?"で学ぶPerl6
by
risou
Adding simpl GVN path into GHC
by
Kei Hibino
Pfi Seminar 2010 1 7
by
Preferred Networks
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
データとは何か
by
Kenta Suzuki
プログラミングロボットを用いたオンライン併用型の協調学習実践
by
情報処理学会 情報システム教育委員会
for文
by
APG4b
アルゴリズムとデータ構造12
by
Kenta Hattori
Look at-the-lisper
by
home
Bluespec @waseda(PDF)
by
Takefumi MIYOSHI
More from Tetsuro Nagae
PPTX
オブザーバビリティ、OpenTelemetryについて.pptx
by
Tetsuro Nagae
PPTX
RDBのインデックスについて.pptx
by
Tetsuro Nagae
PPTX
MySQL SQL tuning
by
Tetsuro Nagae
PDF
Hoare論理
by
Tetsuro Nagae
PPT
Blueprintsについて
by
Tetsuro Nagae
PDF
purely functional data structures 5.3 日本語での説明
by
Tetsuro Nagae
オブザーバビリティ、OpenTelemetryについて.pptx
by
Tetsuro Nagae
RDBのインデックスについて.pptx
by
Tetsuro Nagae
MySQL SQL tuning
by
Tetsuro Nagae
Hoare論理
by
Tetsuro Nagae
Blueprintsについて
by
Tetsuro Nagae
purely functional data structures 5.3 日本語での説明
by
Tetsuro Nagae
Purely functional data structures 8.2 日本語での説明
1.
PFDS 8.2
2.
8.2 Global Rebuilding ・基本的なアイデア
: 再構成を通常の処理ごとに数回のステップでインクリメンタルに実行。 ・再構成はコルーチンで行う。 ・再構成された構造が必要になる時間までにはコルーチンが完了しておく必要がある。そのため、それに間に合うよう にコルーチンを早く開始しなければならない。 ・global rebuilding は2つの構造をやりくりすることで達成される。 - プライマリ(working): 通常の構造。 すべてのクエリーと更新はプライマリ (working)上で行われる。 - セカンダリ: 段階的に再構成される。 ・パーシステンス:維持できる ・どの操作も高価でないので、任意の継続する操作は処理時間の上限に影響をおよぼさない。
3.
8.2.1 Hood-Melville Real-Time
Queue(1) ・(7.2のリアルタイムキューと同様に )キューの前と後ろを表現するのに 2つのリストを使う。 ・後ろのリストが前のリストよりも 1つ長くなったとき、後ろのリストから前のリストに要素をインクリメンタルにローテートし 始める。 ・RotationState (1) Idle : 何もしない。 (2) Reversing Int [a] [a] [a] [a] : リバースしている状態。例 . Reversing 1 [2] [1,0] [4,3] [5,6] (3) Appending Int [a] [a] : appendしている状態? 例. Appending 3 [2,1,0] [3,4,5,6] (4) Done [a] : ローテーションが完了した状態。
4.
8.2.1 Hood-Melville Real-Time
Queue(2) ・invalidate snocもしくはtailを呼ぶごとにexecを数回だけ呼ぶ → ローテーションが完了するときまでに、答えは正しくないかもしれない。特に、ローテーションの間に tailがk回 呼ばれる場合、結果のリストの最初の k個の要素は不正なものである。 → この問題を解決する方法は 2つあるが、この本で採用されているのは (2)のほう。 (1) 不正な要素の数のカウントを維持し、 RotationStateに新しい状態 Deleting を追加し、不正な要素がなくなるま でリストから一度に数個の要素を削除する。これは global rebuildingの定義に最もよくあてはまる (2) 答えのリストに不正な要素を置くのを回避する。 f'にある正しい要素の数 (プログラムの中の ok)を保持し、こ の数が0になると f' から r' に要素をコピーするのをやめる。ローテーションの間 tailを呼ぶときは常に、正しい要 素の数を減らす。
5.
8.2.1 Hood-Melville Real-Time
Queue(3) ・トリッキーな点 (1) ローテーションの間、キューの最初の数個は RotationStateの中のf'の後ろの方にある。どうやって headのクエリ に答えるか → 古いworkingのフロントリストを維持する。ローテーションの間、 lenfのフィールドは、 workingのフロ ントリスト fの長さではなく、作成中のリストの長さをカウントする。 → 次のページの snocの例を参照 (2) ローテーションについて。次のローテーションの始まる準備ができるか、もしくは workingのフロントのリストが 使い切られるまでにローテーションが完了していることを保証するために snoc と tailあたり、execを何回呼ばなけ ればならないか (8.1の定数cに対応) → 次のローテーションは合計で 2m+2回の追加と削除の後に始まるが、フ ロントのリストは m回の削除の後に使い切られてしまう (最初に、フロントリストの長さを m、リアリストの長さを m+1と 仮定)。 1処理につき2回execを呼ぶことにすれば、ローテーションは最大で m回の処理で完了する。 (3) exec IDLE = IDLEとなるような、IDLEをRotationStateに追加。 ローテーションの最中なのかそうでないのかということを心配することなく execを呼ぶことができる。
6.
snoc snoc (snoc (snoc
(snoc (snoc (snoc (HM 0 [] Idle 0 []) 0) 1) 2) 3) 4) 5 ⇒ HM 3 [0,1,2] Idle 3 [5,4,3] これに6をsnoc : snoc (HM 3 [0,1,2] Idle 3 [5,4,3]) → check 3 [0,1,2] Idle 4 [6,5,4,3] → lenr > lenfなので exec2 7 [0,1,2] Reversing 0 [0,1,2] [] [6,5,4,3] [] 0 [] exec (exec (state)) → exec (exec (Reversing 0 [0,1,2] [] [6,5,4,3] [])) (exec 第1式を適用して下の行に移る ) → exec (Reversing 1 [1,2] [0] [5,4,3] [6]) (exec 第1式を適用して下の行に移る ) → Reversing 2 [2] [1,0] [4,3] [5,6] したがって、 exec2 7 [0,1,2] Reversing 0 [0,1,2] [] [6,5,4,3] [] 0 [] → HM 7※1 [0,1,2]※2 Reversing 2 [2] [1,0] [4,3] [5,6] 0 [] ※1. HMの右隣の数 7 は作成中のリストの長さを示す (ローテーションの間、 lenfのフィールドは workingのフロン トリストfの長さではなく、作成中のリストの長さを示す。 ) ※2 古いworkingフロントリストの [0,1,2]を維持している。
7.
tail snoc (snoc (snoc
(snoc (snoc (snoc (snoc (HM 0 [] Idle 0 []) 0) 1) 2) 3) 4) 5) 6 ⇒ HM 7 [0,1,2] (Reversing 2 [2] [1,0] [4,3] [5,6]) 0 [] これにtailする: tail (HM 7 [0,1,2] (Reversing 2 [2] [1,0] [4,3] [5,6]) 0 []) → check 6 [1,2] (invalidate (Reversing 2 [2] [1,0] [4,3] [5,6]) 0 []) (invalidate 第1式適用) → check (6 [1,2] Reversing 1 [2] [1,0] [4,3] [5,6] 0 []) → exec2 (6 [1,2] Reversing 1 [2] [1,0] [4,3] [5,6] 0 []) (lenr <= lenf なので) exec (exec (Reversing 1 [2] [1,0] [4,3] [5,6])) (exec 第1式を適用して下の行へ移る ) → exec (Reversing 2 [] [2,1,0] [3] [4,5,6]) (exec 第2式を適用して下の行へ移る ) → Appending 2 [2,1,0] [3,4,5,6] exec2 (6 [1,2] Reversing 1 [2] [1,0] [4,3] [5,6] 0 []) → HM 6 [1,2] (Appending 2 [2,1,0] [3,4,5,6]) 0 [] ※ ここで、fの中の 0 は不正な値。これは Appendingの右隣の数 2 から判断できる
Download