More Related Content
PPT
融合変換による最適化の理論的基盤と正当性 (2006-06-27) PDF
PPTX
【輪読会】Braxlines: Fast and Interactive Toolkit for RL-driven Behavior Engineeri... 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
TensorFlow math ja 05 word2vec PDF
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
Introduction to Categorical Programming PDF
PDF
PDF
PDF
PDF
すごいHaskell楽しく学ぼう-第12章モノイド- PDF
Object-Functional Analysis and Design and Programming温泉 PDF
PFI Christmas seminar 2009 ODP
PDF
PPTX
KEY
Algebraic DP: 動的計画法を書きやすく PDF
Introduction to Categorical Programming (Revised) PDF
PDF
PPTX
PDF
More from Masahiro Sakai
PDF
PDF
PDF
SAT/SMT solving in Haskell PDF
PDF
RClassify: Classifying Race Conditions in Web Applications via Deterministic ... PDF
Introduction to Max-SAT and Max-SAT Evaluation PDF
自然言語をラムダ式で解釈する体系PTQのHaskell実装 KEY
How a CDCL SAT solver works PDF
PDF
DeepXplore: Automated Whitebox Testing of Deep Learning PDF
Writing a SAT solver as a hobby project PDF
Towards formal verification of neural networks PDF
Whole Program Paths 等の紹介@PLDIr#3 PDF
Relaxed Dependency Analysis PDF
萩野服部研究室 スキー合宿 2012 自己紹介(酒井) PDF
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P... PDF
PDF
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg... PDF
“Design and Implementation of Generics for the .NET Common Language Runtime”他... PDF
Aluminum: Principled Scenario Exploration through Minimality Recently uploaded
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと... PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2 PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1 PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool 融合変換による最適化の理論的基盤と正当性 (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.