More Related Content
PPT
融合変換による最適化の理論的基盤と正当性 (2006-06-27) PPTX
【輪読会】Braxlines: Fast and Interactive Toolkit for RL-driven Behavior Engineeri... PDF
PDF
自然演繹に基づく文間の含意関係の証明を用いたフレーズアライメントの試み PDF
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres... PDF
PPTX
KB + Text => Great KB な論文を多読してみた PDF
Acl yomikai, 1016, 20110903 What's hot
PDF
PDF
TensorFlow math ja 05 word2vec PDF
PDF
[DL輪読会]Policy Information Capacity: Information-Theoretic Measure for Task Co... PDF
PDF
PDF
PPT
111127.lsj143.田川 japanese conjugation and dm PDF
PPTX
dont_count_predict_in_acl2014 Similar to 融合変換による最適化の理論的基盤と正当性 (2006-06-20)
PDF
関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】 PDF
オブジェクト指向開発におけるObject-Functional Programming PDF
PDF
PDF
PDF
Introduction to Categorical Programming PDF
PDF
PDF
すごいHaskell楽しく学ぼう-第12章モノイド- PDF
Object-Functional Analysis and Design and Programming温泉 ODP
PDF
PFI Christmas seminar 2009 PDF
PPTX
KEY
Algebraic DP: 動的計画法を書きやすく PDF
PDF
Introduction to Categorical Programming (Revised) PDF
PDF
PPTX
More from Masahiro Sakai
PDF
PDF
Introduction to Max-SAT and Max-SAT Evaluation PDF
Writing a SAT solver as a hobby project PDF
PDF
PDF
DeepXplore: Automated Whitebox Testing of Deep Learning PDF
PDF
RClassify: Classifying Race Conditions in Web Applications via Deterministic ... PDF
SAT/SMT solving in Haskell PDF
自然言語をラムダ式で解釈する体系PTQのHaskell実装 KEY
How a CDCL SAT solver works PDF
Towards formal verification of neural networks PDF
Whole Program Paths 等の紹介@PLDIr#3 PDF
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P... PDF
Relaxed Dependency Analysis PDF
萩野服部研究室 スキー合宿 2012 自己紹介(酒井) PDF
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg... PDF
PDF
“Design and Implementation of Generics for the .NET Common Language Runtime”他... PDF
Aluminum: Principled Scenario Exploration through Minimality 融合変換による最適化の理論的基盤と正当性 (2006-06-20)
- 1.
- 2.
- 3.
自己紹介: 活動 HaskellLightweight Language Weekend 2004 Lightweight Language Day and Night 2005 日経ソフトウェア6月号「Haskellによる関数プログラミング入門」 Ruby-GNOME2 - 4.
- 5.
- 6.
- 7.
- 8.
位置づけ 基礎 応用信頼性の高いソフトウェア 高性能なソフトウェア ソフトウェア検証 プログラム変換 数理論理学 プログラム意味論 コンピュータサイエンス - 9.
位置づけ 基礎 応用領域理論 型理論 各種意味論 ロジック 圏論 離散数学 融合変換 等 形式的証明 モデル検査 テスト等 信頼性の高いソフトウェア 高性能なソフトウェア ソフトウェア検証 プログラム変換 数理論理学 プログラム意味論 コンピュータサイエンス - 10.
- 11.
- 12.
- 13.
- 14.
- 15.
融合変換の例 add(vector A,vector B) { vector tmp; for (int i = 0; i < A.dim; i++) { tmp[i] = A[i] + B[i]; } return tmp; } add(add(A,B), C); 二回ループを回す必要 - 16.
融合変換の例 add3(vector A,vector B, vector C) { vector tmp; for (int i = 0; i < A.dim; i++) { tmp[i] = A[i] + B[i] + C[i]; } return tmp; } add3(A,B,C); 一回のループですむ 効率向上 - 17.
- 18.
- 19.
- 20.
関数型言語の代数的性質(例) map 関数 map f [a, b, …] = [f a, f b, …] concat 関数 concat [[a,b], [c], [d,e], ..] = [a,b,c,d,e,…] map f . map g = map (f . g) (map f) . concat = concat . (map (map f)) - 21.
- 22.
圏論 対象と射 (矢印 ) による抽象化 プログラムを扱うのに便利な概念を提供 等式を図式で表現 連続関数 位相空間 準同型 群 関数 集合 プログラム 型 射 対象 - 23.
Catamorphism X, f,g に対して以下を満たす h が一意に存在。 fold(f,g) で表す h . 0 = f h . s = g . h 帰納的定義を表現 h(0) = f h(s(n)) = g(h(n)) catamorphism と呼ばれる - 24.
Catamorphism の例 2倍する関数 double : N -> N double(0) = 0 double(s(n)) = s(s(double(n)) fold で表現 double = fold(0, s.s) - 25.
double . doubleの融合 double は以下を満たす double . 0 = 0 double . s.s = s.s.s.s . double よって double.double . 0 = 0 double.double . s = s.s.s.s.double.double - 26.
double . doubleの融合 double.double . 0 = 0 double.double . s = s.s.s.s.double.double fold(0,s.s.s.s) も 同じ等式を満たす 一意性より double . double = fold(0,s.s.s.s) - 27.
double . doubleの融合 double.double . 0 = 0 double.double . s = s.s.s.s.double.double fold(0,s.s.s.s) も 同じ等式を満たす 一意性より double . double = fold(0,s.s.s.s) 融合できた !! - 28.
融合変換の規則 一般に h:X->Y が h . g = g’ . h h . f = f’ を満たすならば h . fold(f,g) = fold(f’,g’) - 29.
- 30.
融合の難しさ h .fold(f,g) = fold(f’,g’) 関数は fold(f,g) の形をしていないかも f’, g’ をどう発見するか ? 対策 Shortcut 融合変換 関数を融合しやすい形で定義しておく Warm Fusion 一般の再帰的定義から fold/build を導出 - 31.
- 32.
融合変換の実装例(2) 尾上 能之『融合変換による関数プログラムの最適化』 [Onoue’99] 再帰的定義から Hylomorphism という形式を導出し、 Hylo-Cata fusion という規則によって融合を行う GHC に実装 - 33.
- 34.
- 35.
正当性の問題 Hylomorphism と Free Theorems を使用 Hylomorphism には Inductive なデータ型と Coinductive なデータ型の一致が必要 μX. F(X) = νX. F(X) …(A) Free Theorems はパラメトリシティに依存 (A) とパラメトリシティは厳密には 矛盾 !! - 36.
- 37.
- 38.
- 39.
- 40.
パラメトリシティ(2) 例 )length : ∀A. List(A) -> N ∀ A,A’,R⊆AxA’. (xs,ys)∈List(R) ⇒ length xs = length ys xRy iff y = f(x) とおくと、 ∀ A,A’,f: A->A’. ys = List(f)(xs) ⇒ length xs = length ys length xs = length (map f xs) - 41.
- 42.
なぜ矛盾するか (2) ラムダ計算= Cartesian Closed Category パラメトリシティ の元では、直和 A+B を ∀C. (A->C) -> (B->C) -> C で表現可能 Cartesian Closed Category では 直和と不動点コンビネータは矛盾 正確には退化したモデルしか存在しない - 43.
- 44.
- 45.
- 46.
- 47.
- 48.