satzz the lernanto online

目眩く思想世界擬きと言霊フロンティア
Depuis 2005/05/19

コンピュータサイエンス 4/27

2006年04月30日 22時50分12秒 | Math
「計算可能な関数とはどんなものか」を調べる試みとして原始帰納的関数がある。以下入力、出力ともに自然数であるとする。

1.定数関数をK[m,n](x1,x2,...,xn)=mで定義する。これは一定個数の任意の入力に対してある定数を返す関数である。例えば:
K[3,4](3,5,7)=4
この関数は入力の値を無視して常に4を返す。
2.射影関数をP[n,i](x1,x2,...,xn)=xiで定義する。これは一定個数の任意の入力に対してある個数番目の引数を返す関数である。例えば:
P[3,2](3,5,7)=5
3.後者(successor)関数をS(x)=x+1で定義する。これは引数の次の自然数を返す関数である。例えば:
S(5)=6

これらを次のルールで組み合わせて得られる任意の関数を原始帰納的関数とよぶ。

1.定数関数、射影関数、後者関数は原始帰納的である。これを初期関数とよぶ。
2.m個の入力をもつ関数fとn個の入力をもつ関数f1~fmが原始帰納的ならば、n個の変数をもつ合成関数
g(x1,x2,...,xn)=f(f1(x1,x2,...,xn),f2(x1,x2,...,xn),...,fn(x1,x2,...,xn))
は原始帰納的である。例えば:

f(x1,x2,x3)=x1+x2+x3
f1(x1,x2)=x1+x2
f2(x1,x2)=x1+2*x2
f3(x1,x2)=2*x1+x2

とするとき合成関数g(x1,x2)=f(x1+x2,x1+2*x2,2*x1+x2)=4*x1+4*x2
3.n個の入力をもつ関数fとn+2個の入力をもつ関数gが原始帰納的ならば
h(x1,...,xn,0)=f(x1,...,xn)
h(x1,...,xn,y+1)=g(x1,...,xn,y,h(x1,...,xn,0))
で定義されるhは原始帰納的である。

さて、以上で定義した原始帰納的関数がどのような意義をもつのか。直感的に、原始帰納的関数は計算可能(プログラミング可能)である。例えば足し算をする関数をadd(x,y)とすると、これは

add(x,0)=P[1,1](x)=x(つまり恒等関数、入力をそのまま返す関数)
add(x,y+1)=S(P[3,3](x,y,add(x,y)))(既に定義されているadd(x,y)の次の自然数を返している:x+(y+1)=(x+y)+1)

で定義してやればよい。他に引き算、掛け算、べき、階乗、最大値、最小値や平方根の整数部、円周率のn桁目など殆ど思いつく限りの実用的(整数値)関数は原始帰納的である。

では逆はどうか?計算可能な関数は常に原始帰納的、つまり上のルールに則る初期関数の組み合わせに還元できるのか。
答えはnoだ。(これがyesなら計算可能性の数学的定義は完了したことになるのだが・・・)
例えばAckermann関数というものが存在する:

ack(0,n)=n+1
ack(m+1,0)=ack(m,1)
ack(m+1,n+1)=ack(m,ack(m+1,n))

具体的には:

ack(0,1)=2
ack(0,1)=3
ack(1,0)=ack(0,1)=2
ack(1,1)=ack(0,ack(1,0))=ack(0,2)=3

Ackermann関数はどんな原始帰納的関数よりも早く増加する関数である。例えば:

ack(2,1)=ack(1,ack(2,0))=ack(1,ack(1,1))=5
ack(3,1)=ack(2,ack(3,0))=ack(2,ack(2,1))=13
ack(4,1)=ack(3,ack(4,0))=ack(3,ack(3,1))=65533

この関数は原始帰納的ではないが計算可能であり、プログラムも書ける。このように、原始帰納的関数は計算可能性を定義するには不十分なのである。(ちなみに、Ackermann関数が原始帰納的でないことを示す例題もあるが難しいらしい)

swell

2006年04月30日 18時05分07秒 | Mechatronics
28
例会で火曜に9人だった新入生が16人になり、2チームが4チームになった。ってかまだ止まる気配がない。時代は恐ろしい。

29
昼に起きて10時間くらいレスコン・知能ロボコン集中作業。5,6人で2チーム組んで並行で2台作るってのがキツい。しかし今日は作業がかなり進んだ。巨大な時計の歯車が一つ、ガクンと動いた感じ。

30
機械講習会を初めてやる。新入生6人を相手に工具の使い方を説明し、実際にちょっとした加工をやってもらう。人数が多いのであと2回はやらなければならない。1月もあれば2回生と同じレベルの機械加工はできるようになるのではないかという期待(ぉぃ)。

来週から新入生が部室に詰めかけてきて、2回生チームも加速するので嵐の予感。サークルのHPも更新したくなってきたし、新歓が終わったからといって全く気が抜けない。

でも、このサークルを大きくしたいなと改めて思った次第です。




でも、僕らの休暇はどこへ向かう?

週録

2006年04月30日 18時00分59秒 | Diary
予定のない休日は最高の掘り出し物だ。
天気がいいからって何も外に出て過ごすと決まったわけではない。部屋に風をとりいれてのんびり昼寝とか読書とかも、アリかもよ。
24(MON) <-忘れてた
2限物理数学。確率分布について。3限函数論続論。部分分数分解と無限乗積表示について。4限仏会話。

26(WED)
1限解析力学。2限計算機科学。帰納法について。3限微積続論。4限仏会話。

27(THU)
1限量子力学。今年になって初めて出る。すっかり川合先生のファンである。2限微分方程式論が難易度的に無理っぽいので天文学概論に初めて出る。ちょっと興味あるし。輻射輸送の話。毎週簡単なレポートが出るらしいが、今回のは途中から意味わからん。3限ギリシア語。早くも未来形が登場。4限数学基礎演習をサボる。5限コンピュータサイエンス。原始帰納的関数と計算可能性について。計算機科学と内容カブりそうで、まだ全然カブらない。

28(FRI)
1限エレクトロニクス。引き続き素子の説明。オペアンプ登場。2限神話学。19世紀の神話論がニーチェに至るまで。アポロ的なものとディオニュソス的なものについて。3限解析力学演習。最速降下の問題の解答を発表。4限CG実習。Mandelbrot集合を描くのかと思いきや、それを拡大するプログラムだけ書けということだった。ちょっとつまんね。3限専門のせいで毎週半分しか出られないってのがちょっとしんどい。
放課後またまた10時半から3時までビリヤード。機械研玉突き同好会でも作ろうかな。小学校の友達に遊びに誘われたけど行けなかった。

29(SAT)
理学部のクラスメートに大阪12時間耐久散歩なるものに誘われたけどまた行けなかった。っつーか大阪なんて見るものあんのか??
連日の作業の疲れを癒す時間も充分にない。目下の敵は火曜の代数学の試験。必死こいて勉強せんと。。。これと解析力学は今年の軸か?