測度と外測度
今回も測度論、次回も測度論、たぶんその次も測度論。
測度
測度とは、長さや面積、体積といった概念の抽象化あるいは精密化である。-加法族と違い簡単には作ることができないため、適切な集合族の上で定義された「前測度」を拡張して構成されることが多い。より広い意味ではバナッハ空間に値を持つ測度などが定義されるが、ここでは単純に値のものを考える。
定義 -加法族上の測度(measure)とは、以下の性質を満たす写像のことである。
- が成り立つ。
- 互いに素な(つまり)に対し、
が成り立つ。
このときを可測空間上の測度といい、組を測度空間と呼ぶ。
例えば次のようなものがある。
- 可測な集合に対してを対応させる写像は測度になる。これを自明測度と呼ぶ。
- が有限集合なら元の個数を対応させ、無限集合のときはを対応させると測度になる。これを数え上げ測度(counting measure)と呼ぶ。
- に対して写像を、ならと定め、ならと定めると測度になる。これをディラック測度(Dirac's measure)と呼ぶ。
圏に替わるものを考えるとき、測度空間を対象とするものは当然その候補となる。射に関して言うと、圏への忘却函手の存在という観点からすれば、可測写像であることはもちろん前提となるだろう。ここで問題となるのはその範囲をどうするかである。以下を測度空間、を可測写像としよう。測度の情報をなるべく取り入れるのであれば、測度保存()を仮定すると良く、実際いくつかの論文ではこれが仮定されている。ただこれでは射が少なすぎる気がしなくもない。そこで測度空間を対象とする3つの圏を定める。
これらの圏は可測空間の圏よりずっと豊かな構造を持つ。そのため与えられた2つの測度空間が積対象を持つかどうかでさえ簡単には述べることができない。
外測度による測度の構成
この節で用いる集合函数に関する諸定義を述べておく。
定義 を空でない集合、とする。を集合函数とする。
のときは正値(positive)であるという。
についてならであるときは単調(monotone)であるという。
互いに素なに対し、
が成り立つときは有限加法的(finite-additive)であるという。
- に対し、
が成り立つときは有限劣加法的(finite-subadditive)であるという。
- 互いに素なに対し、
が成り立つときは可算加法的(countable-additive)であるという。
- に対し、
が成り立つときは可算劣加法的(countable-subadditive)であるという。
定義 集合函数が正値、単調、可算劣加法的のとき、外測度(outer measure)あるいはカラテオドリ(Caratheodory's)の外測度と呼ぶ。
測度の概念については、ユークリッド空間上の次元体積が念頭にあることは言うまでもない。まず矩形に対し、各辺の「長さ」の積をその体積とする。ここである図形の体積が知りたければ、十分小さな矩形で覆い、その体積の和を調べ、更にその下限を取ることで「外側の体積」とする。これが外測度を導入する理由である。
以下とする。について、がの被覆であるとは、が可算集合であり、を満たすこととする。
と定める。(ただしがの可算個の元で覆えないときはと定める。)このときは外測度となる。
(証明)を取ればの被覆となるからなので正値である。
またに対しての被覆はの被覆でもあるから単調性も従う。
可算劣加法的であることを示すためにを取りとする。正の実数を固定する。このときの被覆を、
を満たすように取れる。(の何れかがの可算個の元で覆えないときはも覆えないため、となり主張は正しい。)このときはの被覆であり、
となる。は任意だからを得る。
補題の方法で定義された外測度をから誘導された外測度と呼ぶこともある。この値については次の特徴付けがある。
一般にならがの被覆となるのでが成り立つ。
命題 について
が成り立つ。特にこの式を実現するが存在する。
(証明)まずがを満たすとする。外測度は単調だからが従う。特に(左辺)(右辺)であり、また逆を示すときにはとしてよいことが分かる。このときをの被覆とする。すると-加法性よりであるから、
を得る。被覆の下限を取れば(左辺)(右辺)も分かる。
今示した式より、として及び を満たすものが取れる。このときについて、だから単調性よりが成り立つ。特に右辺はへ収束するからが従う。
次の定義を導入したことこそ、カラテオドリの偉大なところであろう。私自身はこの定義についてよく理解していないのだが。
定義 外測度に対し、がカラテオドリ可測、あるいは-可測であるとは、任意のについてが成り立つことをいう。
根源的な着想はルベーグに依るらしい。ルベーグ自身はとして矩形を考えていた。ちなみにであるから、外測度の可算劣加法性よりは常に成り立つ。つまりカラテオドリ可測であることを示すにはを示せば十分である。
が成り立つ。特になら
が成り立つ。
(証明)がカラテオドリ可測なら、任意のについて
が従う。
定理 外測度について、をカラテオドリ可測な集合全体とする。このときは-加法族であり、のへの制限は可測空間上の測度となる。
(証明)まずについてよりはカラテオドリ可測である。
またがカラテオドリ可測なら
よりもカラテオドリ可測となる。
次にが有限和に関して閉じていることを述べる。をカラテオドリ可測とすると、補題より任意のについて
が成り立つ。一方であるから、
となる。右辺はの-可測性よりとなり、これは再びの-可測性よりと一致する。従ってはカラテオドリ可測となる。あとはこれを繰り返せば良い。
ここまでの議論で、は有限加法族と呼ばれる集合族になることが分かる。(有限加法族についてはまた改めて議論するが、可算和の代わりに有限和としたもの。)有限加法族に対しては、有限交叉や差集合で閉じている。実際に対してであり、であり、である。
ここでのへの制限をと書くことにする。は有限加法的である。実際について、補題より任意のについて
が成り立つ。特にと置けば
が分かる。
さてが-加法族であることを示すためにを取る。と置けば、はカラテオドリ可測でありである。ここでと定めればもカラテオドリ可測であり、と非交叉和で書ける。補題より任意のに対して
が成り立つ。単調性よりであることに注意すると、の-可測性より
となる。は任意だからとなる。ここでだから、外測度の可算劣加法性よりが成り立つ。従ってとなり、これはがカラテオドリ可測であることを意味している。
最後にが可算加法的であることを示すために、互いに素なを取る。まず外測度の可算劣加法性より
である。また単調性及びが有限加法的であることから
が分かる。は任意だから
を得る。
所感
まとめ:外測度があれば測度空間を定義できる。
可測空間と可測写像
暖かくなってきて、生き物もだいぶ活動的になってきた。蜂とかね、巣作り始めてるよ…やめてくれよ。花粉も大量に積もってるので、そのうち赤い虫(ダニ)もいっぱい湧くんだろうなぁと戦々恐々してる。
さて、測度論や確率論、統計的学習理論などのカテゴリカルな理解、あるいはアナロジーや定式化について興味があって、ここのところ色々と情報を集めている。検索するといくつか見つかるんだけど、前提知識もそれなりに必要なので確認することが多くて進まない。まあ急ぐわけでもないので少しずつやっていこう。今回は測度論の初歩だけ。
圏
伊藤清という数学者は、確率とはルベーグ測度のことである、と言ったとか言わなかったとか。コルモゴロフに始まる測度論を用いた確率論の公理化は数学的に明瞭で、厳密に取り扱うのが面倒なことを除けば疑う余地はない。最近はゲーム理論的な解釈もあるらしいが、枠組みとしては測度論を使うのが自然だろう。
定義 集合の部分集合の族が次の三条件を満たすとき、は上の-加法族であるという。
- である。
- ならである。
- ならである。
このとき組を可測空間(measurable space)といい、集合は-可測、あるいは単に可測である、などという。
定義に解釈を求めても仕方ないが、可算という視点で物事を捉える、というのが測度論の基本的な考え方とするならば、有限の立場で議論する論理学(特に命題論理)のアナロジーという意味で、この定義は自然なものだと考えられる。
-加法族は歴史的な経緯から呼び方が安定しない。他に完全加法族、可算加法族、-集合代数、-集合体、-体、トライブ(tribe)などと呼ばれているようだ。
-加法族について、自明なものとしては、空集合と全体集合のみからなるもの、あるいは任意の部分集合からなるものがある。
命題 写像について以下が成り立つ。
- が可測空間なら、は上の-加法族となる。
- が可測空間なら、は上の-加法族となる。(ではないことに注意。)
ひとまず対象については可測空間を考えるとして、次に考えるべきは射であろう。
定義 を可測空間とする。写像がを満たすとき、つまり任意のについてを満たすとき、は-可測、あるいは単に可測であるという。
この定義であれば、からへの写像として定めれば良いのではないかと思うかもしれない。しかし、あくまで全体空間における写像として考えるのには理由があって、それは「測ることのできない集合」を念頭に入れているからである。可測でなくても測りたい集合が存在する。このようなものについて議論するために全体空間が必要なのだ。
可測写像の合成は可測であり、恒等写像はもちろん可測である。故に可測空間と可測写像は圏の対象と射を定める。これを圏と記すことにする。
次に可測空間と可測空間の対象としての積を考えたい。射が全体空間における写像であることを考えれば、積対象の全体空間はで定めるのが妥当だろう。更に射影の存在を考慮すると、少なくとも()の形をした集合は可測となる必要がある。しかし一般には-加法族ではない。このような場合には生成という方法が有効になる。
まず-加法族の任意の交叉は-加法族である。つまり任意のについてを-加法族とするとも-加法族となる。そこで生成を次のように定義する。
定義 について、を含む上の-加法族全体の交叉を、あるいは単にで記し、により上で生成された-加法族と呼ぶ。このときは-可測であるという。
値域の可測性が生成により与えられているとき、写像の可測性は生成元のみを考えれば十分である。
命題 を可測空間とする。写像について以下は同値である。
- は可測写像である。
- 任意のについてである。
(証明)上から下は明白。下が成り立つとすると、任意のについてが成り立つ。すなわちとなるが、今は-加法族であるから、生成の最小性よりが従う。これはが可測であることを表している。
定義 により生成される上の-加法族をと記し、積-加法族という。また組を積可測空間という。
積可測空間が圏における積対象であることを示すために、普遍性を示そう。
命題 を可測空間、を可測写像とする。このとき唯一つの可測写像が存在して、図式を可換にする。
(証明)と定めればよい。可測性は先の命題よりについてを示せばよいが、例えばよりの可測性から従う。
三つ以上の積について、積が結合的であることや交換できること、普遍性を満たすことも示すことが出来る。この意味で圏は任意の有限積を持つことが分かる。
生成と積の関係は次の命題が便利である。
命題 に対し、が成り立つ。
(証明)より、生成すれば最小性よりが従う。逆を示すために、を示そう。射影を考えれば
となる。故に最小性よりを得る。つまりが従う。についても同様だから、が分かる。最小性よりが従う。
所感
圏について言えることはこれくらいかな? 可算積や一般の積も定義はできるけど、少し考察が必要そうだからまた別の機会にしよう。
2018年5月7日:最後の命題は誤りなので削除しました。今後の議論には影響しないはずです。
juliaで組合せ問題を解く
mathtodonより
問題 相異なる5つの正の自然数でどの2つの積も5つの総和で割り切れるようなものの内,なるべく小さいものの組みを答えよ
上手い方法を知らないのでベタ書き。だれか詳しい人教えてください。
flag = true sum = 15 @inline function d(p::Int64, q::Int64) return (p*q)%sum == 0 end @inline function slt(a, b) if a%b==0 return fld(a, b)-1 else return fld(a, b) end end @time while flag for l=4:slt(sum-6, 2) for i=1:(l-3) for j=(i+1):(l-2) for k=(j+1):(l-1) m=sum-i-j-k-l if m <= l break end if d(i, j) && d(i, k) && d(i, l) && d(i, m) && d(j, k) && d(j, l) && d(j, m) && d(k, l) && d(k, m) && d(l, m) @show i, j, k, l, m flag = false break end end end end end sum += 1 end
自分の環境だと12秒以内。
(i, j, k, l, m) = (15, 30, 45, 60, 75) 11.232019 seconds (68.38 M allocations: 2.006 GiB, 1.59% gc time)
ちなみに最初の12個
(i, j, k, l, m) = (15, 30, 45, 60, 75) (i, j, k, l, m) = (16, 32, 48, 64, 96) (i, j, k, l, m) = (17, 34, 51, 68, 119) (i, j, k, l, m) = (17, 34, 51, 85, 102) (i, j, k, l, m) = (18, 36, 54, 72, 144) (i, j, k, l, m) = (18, 36, 54, 90, 126) (i, j, k, l, m) = (18, 36, 72, 90, 108) (i, j, k, l, m) = (19, 38, 57, 76, 171) (i, j, k, l, m) = (19, 38, 57, 95, 152) (i, j, k, l, m) = (19, 38, 76, 95, 133) (i, j, k, l, m) = (19, 57, 76, 95, 114) (i, j, k, l, m) = (19, 38, 57, 114, 133)
追記
寝ながら考え直したら0.08秒まで短縮できました。
@inline function check(p::Int64, q::Int64, total) return (p*q)%total == 0 end function calc(N::Int64) counter = 0 total = a = s = [0, 0, 0, 0, 0] total[1] = 15 while true for a[1] = 1:total[1] total[2] = total[1]-a[1]*5 if (total[2] <= 0) break end s[1] = a[1] for a[2] = 1:total[2] total[3] = total[2]-a[2]*4 if (total[3] <= 0) break end s[2] = s[1]+a[2] if !check(s[1], s[2], total[1]) continue end for a[3] = 1:total[3] total[4] = total[3]-a[3]*3 if (total[4] <= 0) break end s[3] = s[2]+a[3] if !check(s[1], s[3], total[1]) continue end if !check(s[2], s[3], total[1]) continue end for a[4] = 1:total[4] a[5] = total[4]-a[4]*2 if (a[5] <= 0) break end s[4] = s[3]+a[4] if !check(s[1], s[4], total[1]) continue end if !check(s[2], s[4], total[1]) continue end if !check(s[3], s[4], total[1]) continue end s[5] = s[4]+a[5] if !check(s[1], s[5], total[1]) continue end if !check(s[2], s[5], total[1]) continue end if !check(s[3], s[5], total[1]) continue end if !check(s[4], s[5], total[1]) continue end @show s counter += 1 if (counter >= N) return end end end end end total += 1 end end @time calc(10)
s = [15, 30, 45, 60, 75] s = [16, 32, 48, 64, 96] s = [17, 34, 51, 68, 119] s = [17, 34, 51, 85, 102] s = [18, 36, 54, 72, 144] s = [18, 36, 54, 90, 126] s = [18, 36, 72, 90, 108] s = [19, 38, 57, 76, 171] s = [19, 38, 57, 95, 152] s = [19, 38, 57, 114, 133] 0.081676 seconds (21.75 k allocations: 1.098 MiB)
このプログラムだと、1個も10個もあまりかわりませんでした。メモリの関係上、起動直後は少し時間が掛かって0.3秒くらい。