すべての言語を判定する計算機構 [無断転載禁止]©2ch.net

0001デフォルトの名無しさん2016/05/18(水) 22:13:24.42 ID:PfJrFPe9
チューリングマシンは可算個しかないからすべての言語は判定できないという。
じゃあチューリングマシンを拡張して濃度を増やせばいいんじゃね?
そのような拡張を考えたときどのようなものが出来上がるか?あるいは無意味なのか?
そんなことを考えるスレ。
0002デフォルトの名無しさん2016/05/18(水) 22:28:06.75 ID:rFetSORz
< `∀´>ニダー
0003デフォルトの名無しさん2016/05/18(水) 22:40:02.24 ID:erwslmaA
言語Lをdecider M(1..i)の集合とする
この時Mは有限個なのでLはdecidableであり、対応するEnumerator Eが存在する

この時次のように動くチューリングマシンM'を考える
入力xに対して、すべてのアルファベットの組み合わせにおけるj番目=xを計算する
前述のEを用いてMjを取り出し、Mjに入力xをシミュレートさせる
もしMjがxを受理したらM'は拒否する、あるいはその逆を行う
すべてのMはdeciderなのでM'もdeciderであり
その言語L(M')もdecidableであるがL(M')はL内にあるどのL(M1...i)とも一致しない

つまり言語を判定できるチューリングマシンがいくつあろうとも
その集合によって判定できない言語L(M')を常に作り上げることができる
つまりすべての言語を判定できるチューリングマシンは存在しない

証明終わり
0004デフォルトの名無しさん2016/05/18(水) 22:55:46.59 ID:PfJrFPe9
>この時Mは有限個なので

なんで有限個なの?今考えている拡張は有限とかいう縛りは考えてないぞ。
0005デフォルトの名無しさん2016/05/18(水) 23:05:29.06 ID:erwslmaA
別に有限じゃなくても大丈夫だよ。有限だと言語Lがdecidableなのは自明というだけのこと
とにかく判定対象の言語Lはdecidableだというのが肝
すると結局LのEnumerator EとLを判定するマシンMで同じことができる
0006デフォルトの名無しさん2016/05/18(水) 23:10:10.83 ID:PfJrFPe9
>すべてのアルファベットの組み合わせにおけるj番目=xを計算する

ここもダウト。
今考えてる拡張はアルファベットを基にしたものとは限らない。
例えば実数を扱えるようにするとか。
0007デフォルトの名無しさん2016/05/18(水) 23:14:19.64 ID:PfJrFPe9
マシンは拡張するけど言語は拡張しないからね?言っとくけど。
0008デフォルトの名無しさん2016/05/18(水) 23:33:18.24 ID:erwslmaA
実数だって一緒だよ。{0-9.+-}というアルファベットの組み合わせなんだから
実数自体はuncountableなのが問題だけど
実数を扱えるチューリングマシンを”仮定”するならEnumeratorは作れる

ところでEnumeratorって日本語だとなんていうの?列挙?
0009デフォルトの名無しさん2016/05/18(水) 23:44:30.22 ID:p8whoeqx
可算の動きしか通常仮定しないチューリングマシンにおいて実数を取り扱うって自体
話を無理矢理な方向にもって行き過ぎ。
uncountable なのは本質なのに。
00102016/05/19(木) 00:02:12.29 ID:aeaYVvO9
だからチューリングマシンを拡張して濃度を増やすっつってんだろ。
濃度が増えなきゃ意味ない。
もう寝る。
00112016/05/19(木) 20:22:06.73 ID:aeaYVvO9
今のところ通常のチューリングマシンにオラクル・ストリングという名前の実数を一つ書き込めるテープを追加したものを考えている。
このオラクル・ストリングに例えばチャイティンのΩのような実数を書き込めばチューリングマシンの停止問題を判定する
拡張チューリングマシンが構成できるだろう。

オラクル・ストリングに任意の実数を書き込めるなら任意の言語を判定する拡張チューリングマシンが構成できると思う。

まあ、これはほとんどトートロジーだよね。
00122016/05/19(木) 20:24:49.45 ID:aeaYVvO9
オラクル・ストリングに書き込む実数のパワーによって拡張チューリングマシンのパワーも変わってくると思う。
じゃあ、最強のオラクル・ストリングは存在するのか?しないのか?とかそんなことを考えている。
00132016/05/19(木) 23:00:19.98 ID:aeaYVvO9
うん?
最強のオラクル・ストリングはまさに>>3の議論によって存在しないのか?
よくわからなくなってきたw
00142016/05/20(金) 20:56:35.88 ID:OCEBmLiZ
拡張チューリングマシンが判定する言語に対して文字列を辞書順に並べ
言語に含まれるなら1含まれないなら0という風に数値を並べ実数を構成する。
ある実数aをオラクル・ストリングにもつ拡張チューリングマシンから生成できる実数の集合をL(a)とする。

Not(a∈L(b)) And Not(b∈(L(a))を満たすような実数の組(a,b)は存在するか?
00152016/05/20(金) 21:00:17.50 ID:OCEBmLiZ
辞書順だとちょっとまずいかな。
まず文字列の長さでならべてそれぞれの長さに対して辞書順でならべたほうがいいかな。
001612016/05/20(金) 21:09:01.15 ID:OCEBmLiZ
すべてのa∈Rに対してNot(b∈L(a))となるb∈Rが存在する。
濃度より明らか
ゆえに最強のオラクル・ストリングは存在しない。
00172016/05/20(金) 21:11:28.28 ID:OCEBmLiZ
>>14も濃度から存在が言えるかな?
よくわからん。
0018デフォルトの名無しさん2016/05/20(金) 22:12:42.14 ID:OCEBmLiZ
ん?
>>16って正しい?
自信なくなってきたwww
00192016/05/20(金) 22:32:07.92 ID:OCEBmLiZ
なんだよレスがまったくねーな。
誰かツッコミ頼む。
00202016/05/21(土) 08:44:04.11 ID:jbF82omc
(a∈L(b))=>(L(a)⊂L(b))
かな
0021デフォルトの名無しさん2016/05/21(土) 09:47:18.67 ID:4qmWB+Wj
既存のチューリングマシンが全ての言語を認識できないなんて誰でも知ってるんだから
拡張して濃度を上げるってんならその拡張をどうやるかについて最初に話すべきじゃない?
00222016/05/21(土) 13:50:35.11 ID:jbF82omc
>>21
俺よりいいアイディア持ってるやつがひょっとしたらいるかと思ってな。
遅まきながら俺のアイディアは>>11で示した。
0023デフォルトの名無しさん2016/05/21(土) 14:34:44.04 ID:jbF82omc
任意の実数aに対してa∈L(a)
まあ当たり前かな。
00242016/05/21(土) 16:17:11.21 ID:jbF82omc
L(a)=L(b)というaとbの同値関係によって実数を同値類に分類したらなにか出てくるかな?
00252016/05/21(土) 18:44:10.86 ID:jbF82omc
キーワードはこの辺やな

相対計算可能性
チューリング次数
チューリング還元可能
0026デフォルトの名無しさん2016/05/21(土) 20:23:20.06 ID:Ox0LpmWi
学校の宿題かなんか?
002712016/05/21(土) 20:31:47.22 ID:jbF82omc
>>26
ただの趣味。
00282016/05/21(土) 22:03:00.11 ID:jbF82omc
ネットだといまいち、いい情報が見つからないな。
本でも買うか…
0029212016/05/22(日) 14:04:16.69 ID:Pvh7yqZB
>>1
形式的に書くと、こんな感じかな。

拡張したチューリングマシン = {Tape, State, Position, Delta, Lambda, Mu}
Tape: Array of Number
State: Integer
Head-Position: Integer
Delta = State * Tape[Position] -> Number
Lambda = State * Tape[Position] -> State
Mu = State * Position -> {-1, 0, 1}
Transition = {Tape(n), State(n), Position(n)} ->
{
Tape(n)[-Infinity .. Position(n) - 1] .. Delta(State(n), Tape(n)[Position(n)]) .. Tape(n)[Position(n) + 1 .. Infinity],
Lambda(State(n), Tape(n)[Position(n)]),
Position(n) + Mu(State(n), Position(n))
}
但しIntegerは可算無限集合、Numberは非可算無限集合、Arrayは高々可算無限長の配列とする。
0030デフォルトの名無しさん2016/05/22(日) 14:27:36.48 ID:Pvh7yqZB
(>>29の続き)
とすると

初期状態{Tape(0), State(0), Position(0)}が与えられていると仮定する。
補題1
Tape(0)[-Infinity .. Infinity]に含まれる値の個数は高々加算無限個なので、
ある関数fが存在し、Tape(0)に存在する全ての値rは、ある整数iが存在し、f(i) = rを満たす。

補題2
整数は自然数に一対一対応可能なため、ある関数gが存在し、Tape(0)に存在する全ての値rは、
ある自然数nが存在し、g(n) = rを満たす。

定理3
g(-n-1) = Delta(State(n), Tape(n)[Position(n)])を満たすように関数gを選ぶ。この時
任意の非負整数nに対し、Tape(0..n)に含まれる値の個数は可算無限個である。

証明3
帰納法による。
n = 0の時、Tape(0..n)に含まれる値の個数は可算無限個である。
n = kの時にTape(0..k)に含まれる値の個数が可算無限個であると仮定する。
n = k + 1の時、Tape(k)に含まれず、かつTape(k + 1)に含まれるような値が存在するとすれば、
その値はDelta(State(k), Tape(k)[Potision(k)])と等しい。
その値をg(-k-1)と置くと、Tape(0..k+1)に含まれる値は全て
ある関数gを用いて整数と一対一対応可能である為
Tape(0..n)に含まれる値の個数は加算無限個である。
0031デフォルトの名無しさん2016/05/22(日) 14:28:30.10 ID:Pvh7yqZB
(>>30の続き)
よって、以下の定理が成り立つ

定理4
この方法により拡張されたチューリングマシンの計算能力は、
元のチューリングマシンと等価である。

証明4
高々加算無限回の演算によってテープに出力可能な値の集合の濃度がN0に等しい事から、
それらの値を適切に符号化する事によって
元のチューリングマシンで高々可算無限回の演算をエミュレート出来る為自明。
00322016/05/22(日) 17:04:22.07 ID:SxU6tRGq
よくわからんが拡張の仕方がまずいと元のチューリングマシンと能力変わんないのはあり得る話だと思う。
>>21って>>11のと違うやつだよね?
>>21だと濃度も増えてないっしょ?多分。
よければ>>11のも形式的に書いてくれんか?
00332016/05/22(日) 17:05:44.25 ID:SxU6tRGq
>>21じゃなくて>>29
0034デフォルトの名無しさん2016/05/22(日) 17:23:55.91 ID:Pvh7yqZB
いや、>>11を適当にエスパーしたのが>>29なんだけど、
その結果得られた拡張だと上手く行かないよって事を言った。

>>11をもうちょっと分かりやすく書きなおしてくれない?
もしかしたら俺が勘違いして>>1が意図したのとは違う拡張をしてるかも知れんから。
00352016/05/22(日) 18:02:18.28 ID:SxU6tRGq
上手く定義できてるか不安だが以下のような感じかな。

拡張チューリングマシンは以下の要素からなる

1.状態の集合Q
2.オラクルテープの内容O
3.入力アルファベットΣ
4.テープ・アルファベットГ
5.遷移関数δ:Q x Г x {0,1} -> Q x Г x {L,R} x {L,R}
6.q_0∈Qは開始状態
7.q_accept∈Qは受理状態
8.q_reject∈Qは拒否状態

拡張チューリングマシンは以下のように動作する。

通常のテープとオラクルテープがあり、
それぞれのテープの上に通常ヘッド、オラクルヘッドが載っている。

オラクルテープには可算無限長の0,1のデータが書き込まれている。

初期状態では通常のテープには入力が書き込まれていて、
通常ヘッド、オラクルヘッドはともにそれぞれのテープの左端にあり、
状態はq_0である。

拡張チューリングマシンは1ステップで通常ヘッドの記号とオラクルヘッドの記号を読み込み、
それと状態にしたがって通常テープの書き換え、通常ヘッドの移動、オラクルヘッドの移動、状態の遷移を行う。

状態がq_acceptになればその入力を受理する。
状態がq_rejectになればその入力を拒否する。

オラクルテープの存在によって拡張チューリングマシンの濃度は可算を超える。
0036デフォルトの名無しさん2016/05/22(日) 19:05:01.51 ID:Pvh7yqZB
うーん
Γが有限集合であると仮定すると、
それは単にテープが2つあるチューリングマシンって事になると思うんだけど
テープが2つあるチューリングマシンはテープ1つのチューリングマシンと等価。
0037デフォルトの名無しさん2016/05/22(日) 19:09:29.82 ID:Pvh7yqZB
次のようにすればテープ1つのチューリングマシンでテープ2つのチューリングマシンをエミュレート出来る:
テープ上の記号の集合をΓ∪{0, 1}とする。
初期状態として、4*i番地と4*i+1番地は非負整数iに対し0で初期化し、負の整数iに対し1で初期化する。
また、4*i+2番地は入力テープ上の添字iのデータで、4*i+3番地はオラクルテープ上の添字iのデータで初期化する。
また、初期状態でテープヘッドは添字0にあるものとする。
状態集合は、エミュレート先の状態集合Qに対しQ x Γ x {0, 1} x Γ x {L, R} x {L, R}の高々定数倍となる。

以下ループ
・手続きS1を呼び出す
・更に2回右へ移動し、テープの値を読み込み、保持する。この値を値(1)とする。
・1回左に移動する
・手続きS1を呼び出す
・更に2回右へ移動し、テープの値を読み込み、保持する。この値を値(2)とする。
・値(1)と値(2)、現状態から次状態と出力するべき値(3)、二つの移動(1)(2)を計算し、それを保持する
・3回左へ移動する
・手続きS1を呼び出す
・更に2回右へ移動し、テープへ値(3)を出力し、2回左へ移動する
・移動(1)がLの場合、4回左へ移動し、テープへ0を出力する。
・移動(1)がRの場合、テープへ1を出力する。
・1回右へ移動する
・手続きS1を呼び出す
・移動(2)がLの場合、4回左へ移動し、テープへ0を出力する。
・移動(2)がRの場合、テープへ1を出力する。
・1回左へ移動する

手続きS1の定義:
・現在の値が0と等しい場合、4回左へ移動し、もう一度この行を実行する
・現在の値が1と等しい場合、4回右へ移動し、もう一度この行を実行する
定義修了
0038デフォルトの名無しさん2016/05/22(日) 19:11:25.22 ID:Pvh7yqZB
sage忘れスマソ

s/修了/終了/
あと、S1での「現在の値」は現在のテープヘッドから読み込んだ時の値って読み替えて。
00392016/05/22(日) 19:33:59.13 ID:SxU6tRGq
テープ二本のチューリングマシンと違うのはオラクルテープに可算無限の情報をあらかじめ書き込めるってことかな。
0040デフォルトの名無しさん2016/05/22(日) 19:45:40.41 ID:Pvh7yqZB
テープ2本のチューリングマシンも予め可算無限個の情報を書き込めるけど・・・・・・?
0041デフォルトの名無しさん2016/05/22(日) 19:51:09.25 ID:SxU6tRGq
ん?どゆこと?
0042デフォルトの名無しさん2016/05/22(日) 20:24:15.32 ID:Pvh7yqZB
初期状態として、テープに可算無限個の列を与えることはよくある拡張だし
>>37はその拡張を踏まえてるって事。

例えば、チューリングマシンで足し算をするアルゴリズムは
初期状態として1進数で2つの数がテープに書かれていると仮定する場合が殆ど。
00432016/05/22(日) 20:37:07.84 ID:SxU6tRGq
通常のチューリングマシンの入力は有限長でしょ?
0044デフォルトの名無しさん2016/05/22(日) 20:43:54.89 ID:Pvh7yqZB
それは計算が有限ステップで終了することを前提にした場合の話だよね?
そもそもは無限長のテープを仮定するんだから、
可算無限個のデータ列がそのテープ上に記述されているとするのは自然な発想だと思うんだけど。
00452016/05/22(日) 20:48:11.74 ID:SxU6tRGq
いや、>>35の拡張チューリングマシンは入力は有限長でさらに有限ステップで停止することを考えている。
オラクルテープの内容は入力ではなくてチューリングマシンの一部。
状態とかと似たようなもんかな?
0046デフォルトの名無しさん2016/05/22(日) 21:02:08.07 ID:Pvh7yqZB
ちょっと待った。
「入力」は何を指してる?

俺は全てのテープ上に存在するデータの集合を指して「入力」って言ってるけど、
君はそうでないように思える。

オラクルテープの内容が計算開始時点で所与であると仮定するならば、
テープとヘッダをもう一組追加するのと何ら変わりはない。
複数のテープがある時に、遷移前にテープへデータを書き込まないようなヘッダの存在を許す拡張は至って普通。

ついでに言うと、通常テープに対する任意の入力列xに対してそのプログラムが有限時間で停止すると仮定するならば、
その停止時刻をT(x)とした時に、オラクルテープの添字T(x)の右側は無視できる。
何故ならそこまでヘッダを動かすのに最低でもT(x)時間掛かるから。
とするならば、オラクルテープが可算無限長であろうが有限長であろうが同じ議論が成り立つと思うのだけど。
00472016/05/22(日) 21:10:50.52 ID:SxU6tRGq
入力は計算開始時に通常テープに書かれてるものだけを指している。

>その停止時刻をT(x)とした時に、オラクルテープの添字T(x)の右側は無視できる。

これはそうはならない。
なぜなら停止時刻は入力によって左右されるものだから。
入力が大きくなれば停止時刻も大きくなり、
結果、オラクルテープが可算無限長もつのは本質的である。
0048デフォルトの名無しさん2016/05/22(日) 21:25:37.88 ID:Pvh7yqZB
>>47
ふぅむ

> なぜなら停止時刻は入力によって左右されるものだから。
その入力によって左右される値を関数形でT(x)と書いたのだけど・・・・・・

今、有限長入力列xが与えられたとしよう。
但し、有限時間T(x)でプログラムは終了するものとする。
さて、任意の正の整数aに対し、添字T(x)+aにヘッダを移動するのには最低でも時間T(x)+aだけ掛かるから
時刻T(x)の時点で添字T(x)+a上の値を読み取ることは不可能である。
よって、任意の有限長入力列xに対し、ある値T(x)が存在し、位置T(x)より右側は無効である。

この議論が問題ないとするならば、系として
どのような有限長入力列を用意したとしても、それがプログラムを必ず有限時間内に停止させるのであれば、
オラクルテープ上の有限個の要素しか扱う事は出来ない。
つまり、オラクルテープ上の要素数は本質的に有限個である。
という事が言えると思うのだけど。
00492016/05/22(日) 21:34:04.14 ID:SxU6tRGq
入力が有限であっても上限はないでしょ?
上限がない入力に対応するために無限のオラクルテープが必要になるの
0050デフォルトの名無しさん2016/05/22(日) 21:38:47.60 ID:Pvh7yqZB
それは正確には
長さに上限がない入力に対応するために、非常に長いオラクルテープが必要になりうる
じゃない?

一定時間あたり有限個の要素しか扱うことができず、
有限時間で停止するならば
停止するまでに有限個の要素しか扱うことが出来ない
というだけの、掛け算レベルの話なんだけど。
00512016/05/22(日) 21:38:50.31 ID:SxU6tRGq
一つの入力に対しオラクルテープの有限部分しか使わないことと、
すべての入力に対して無限のオラクルテープが必要になることは矛盾しない。
0052デフォルトの名無しさん2016/05/22(日) 21:39:57.18 ID:SxU6tRGq
チューリングマシンの入力の濃度はいくつよ?
0053デフォルトの名無しさん2016/05/22(日) 21:43:22.91 ID:Pvh7yqZB
いや、それは矛盾する。
何故なら、計算開始時点でオラクルヘッドは常に左端にあって
任意の正の整数iに対し、オラクルヘッドを添字iに移動するのに最低でもiステップ掛かり
そしてどんな入力を与えても有限時間で動作を停止するから。
0054デフォルトの名無しさん2016/05/22(日) 21:46:12.46 ID:Pvh7yqZB
>>52
入力記号の集合Γの要素数は有限だよね?
00552016/05/22(日) 21:49:21.98 ID:SxU6tRGq
だから入力一つにたいして有限ステップなのは認めるよ。
お前の言ってるのは通常のチューリングマシンのテープ長も有限でいいって言ってるようなもんだぞ。
0056デフォルトの名無しさん2016/05/22(日) 21:51:51.99 ID:Pvh7yqZB
>>55
もしも、任意の入力に対して常に停止するプログラムだって事が保証されてるなら
通常のチューリングマシンのテープ長も有限で良い。

もしプログラムが停止しないような入力が存在するなら、
その時に限り、無限長のテープが必要になる。
0057デフォルトの名無しさん2016/05/22(日) 21:58:41.49 ID:Pvh7yqZB
ところでー
>>37
オラクルテープの長さが無限であろうが、
入力長が無限であろうが、
有限時間で止まらなかろうが、正しく動くんだけど
00582016/05/22(日) 22:05:17.87 ID:SxU6tRGq
じゃあ入力に対してそれを2倍にするプログラムを考えよう。
これは常に停止するな?
テープ長が有限でいいならこのプログラムに対してどれだけのテープがあればいいのだ?
0059デフォルトの名無しさん2016/05/22(日) 22:06:23.77 ID:Pvh7yqZB
入力の倍の長さのテープがあれば良い。
00602016/05/22(日) 22:07:02.07 ID:SxU6tRGq
すまん、今日は落ちる。ノシ
0061デフォルトの名無しさん2016/05/22(日) 22:07:33.27 ID:Pvh7yqZB
おやすみ
0062デフォルトの名無しさん2016/05/22(日) 22:13:55.66 ID:Pvh7yqZB
うーん

俺は
全ての入力列xに対し、ある有限の整数Nが存在し、プログラムは高々N個の要素を使用する
って言ってるのに対し、君は多分
ある有限の整数Nが存在し、全ての入力列xに対し、プログラムは高々N個の要素を使用する
と受け取ってるんじゃないかな。
後者は明らかに偽だ。
0063デフォルトの名無しさん2016/05/22(日) 22:25:18.51 ID:Pvh7yqZB
というか後者が成り立つようならそれは有限個どころか定数個の要素しか使ってない。
定数個しか使わないということは、
チューリングマシンどころか有限状態オートマトンでも計算できるという事になる。
00642016/05/23(月) 20:06:48.97 ID:Y87SDCLt
普通、あるマシン(有限オートマトン、プッシュダウンオートマトン、チューリングマシン問わず)が
どの言語を判定するかという話をするとき、マシンの構成というのは入力によって構成を変えたりしないのだ。
お前がチューリングマシンのテープが有限でいいとか抜かすのは
入力によってマシンの構成(使えるテープの長さ)を無意識のうちにこっそり変えているのだ。
マシンの構成を入力によって変えてはいけないということが了承できるなら、
チューリングマシンのテープ長が可算無限必要なことも了承できるはずだ。
00652016/05/23(月) 21:31:55.99 ID:Y87SDCLt
と思ったけど多項式時間チューリングマシンとかあるんだっけw
よくわからなくなってきたww
どっちにしろテープが有限てことはあり得ないが。
0066デフォルトの名無しさん2016/05/23(月) 21:51:05.41 ID:bDXz1lkX
チューリングマシンの下位に当たる線形拘束オートマトンが
まさに入力長に対してテープ長を変化させるシステムなんだが。

あと、>>57に書いてあるけど、
>>37はそのオラクルテープとやらが無限長だろうがなんだろうが問題なく動くぞ?
00672016/05/23(月) 22:10:54.62 ID:Y87SDCLt
だから通常のチューリングマシンの状態は有限じゃなきゃいけないの。
オラクルテープは可算無限長だから通常のチューリングマシンでは>>37

「4*i+3番地はオラクルテープ上の添字iのデータで初期化する。」

てのは無理なの。

>>37の議論はオラクルテープの存在を認めており、
オラクルテープと通常のテープを一本にまとめてヘッドを一つに出来るという議論であって
通常のチューリングマシンでオラクルテープをエミュレートできるという議論ではない。

本質はオラクルテープがあるかないかだから。

そこんとこ間違えないで。
0068デフォルトの名無しさん2016/05/23(月) 22:12:58.66 ID:bDXz1lkX
「状態」が有限だっていうのは、状態集合Qが有限集合だって意味であって
テープ上に「情報」を乗っけることとは全く関係ないんよ?
00692016/05/23(月) 22:22:39.86 ID:Y87SDCLt
>>37
じゃあ、オラクルテープのない通常のチューリングマシンでどうやって
「4*i+3番地はオラクルテープ上の添字iのデータで初期化する。」
を実現するんだよ。
0070デフォルトの名無しさん2016/05/23(月) 22:28:38.53 ID:bDXz1lkX
>>69
オラクルテープの内容は所与なんだろ?
したらば、テープ1を使うチューリングマシン1の他に、
テープ1とオラクルテープを使うチューリングマシン2を使って
並列計算すれば良い。
0071デフォルトの名無しさん2016/05/23(月) 22:33:21.45 ID:Y87SDCLt
意味不明
オラクルテープを使うチューリングマシン2を使ってってなんだよ?

オラクルテープ使うんじゃん。

そうじゃなくてオラクルテープなしでオラクルテープをエミュレートしろっつってんの。
0072デフォルトの名無しさん2016/05/23(月) 22:34:21.77 ID:bDXz1lkX
どういうこと?
オラクルテープの内容は所与だよね?
00732016/05/23(月) 22:39:28.65 ID:Y87SDCLt
すまん、所与の意味が分からんw

オラクルテープの内容の扱いは状態遷移表の内容の扱いに近い。
通常テープの入力の扱いとはまったく違う。
00742016/05/23(月) 22:41:28.49 ID:Y87SDCLt
すまん、そろそろ寝るわ。
これでも平日は朝6時に起きなきゃならん。
0075デフォルトの名無しさん2016/05/23(月) 22:43:20.74 ID:bDXz1lkX
えーと、前提知識として与えられているものと仮定できるんだよね?っていう事
そのテープの内容は、勿論テープを媒体として与えられているとここでは仮定して、
>>70は「オラクルテープ」と言う名のテープからテープ1へ転写してる。
0076デフォルトの名無しさん2016/05/23(月) 22:44:45.28 ID:bDXz1lkX
>>74
行ける行ける
3時間寝れれば余裕
00772016/05/24(火) 05:42:54.17 ID:/CRqdm6R
そう、オラクルテープは前提の知識として与えられていると仮定できる。

そして、通常のチューリングマシンでは有限の情報しか所与にする手立てがなく、
オラクルテープは可算無限ビットの情報を所与に出来る。

だから拡張チューリングマシンは通常のチューリングマシンと本質的に異なる。
0078デフォルトの名無しさん2016/05/24(火) 09:40:53.38 ID:TtTF6uFS
> そして、通常のチューリングマシンでは有限の情報しか所与にする手立てがなく、
違う。

そのオラクルテープの「内容」が所与なんだから
その内容がテープ上に記述された状態で計算を開始するものとすれば
可算無限長の情報を所与とする事は出来る。

1936年の論文の236ページに、可算無限個の情報による初期化の例が載ってる。
https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf
0079デフォルトの名無しさん2016/05/24(火) 09:43:11.68 ID:TtTF6uFS
何でも良いから
拡張チューリングマシンで計算できて普通のチューリングマシンで計算出来ないようなプログラムを
オラクルテープの内容の計算方法含めて書いてみてくれない?
00802016/05/24(火) 19:34:31.83 ID:/CRqdm6R
例えばチューリングマシンの停止問題。

チューリングマシンを辞書順に並べてx番目のマシンが停止するかどうかをH(x)とおく。

オラクルテープにH(x)を書き込んで置き、入力でxが与えられたら
オラクルテープのx番地を読み込んで1なら受理、0なら拒否する。

こうすることでチューリングマシンの停止問題を判定する拡張チューリングマシンが構成できる。

もちろん我々は具体的にこのオラクルテープを構成することは不可能だろう。
しかしチューリングマシンの停止問題を判定する拡張チューリングマシンは確かに存在するのである。
00812016/05/24(火) 19:37:55.90 ID:/CRqdm6R
やっぱ「所与」のところにすれ違いがあるのかな?
00822016/05/24(火) 20:08:22.49 ID:/CRqdm6R
つか本屋行けてないわ。
マイナー分野だしでかい本屋で探しても見つかるかどうか…
0083デフォルトの名無しさん2016/05/24(火) 20:24:31.67 ID:kp/L/pO1
>>80
どうやってH(x)を計算するの?

H(x)を計算できる前提で拡張チューリングマシンが存在するのなら
Aならば(=>)BでいうところのAが偽なのでBはなんでも言えるんだがw
例えばH(x)が計算できるならば1+1=3であるも真になるぞ
00842016/05/24(火) 20:35:45.53 ID:/CRqdm6R
具体的にH(x)は「計算」では求められない。
しかし拡張チューリングマシンは存在する。

そういうことだ。
0085デフォルトの名無しさん2016/05/24(火) 20:39:04.50 ID:TtTF6uFS
一点目:
> チューリングマシンを辞書順に並べてx番目のマシンが停止するかどうかをH(x)とおく。
・プログラムの個数は非可算無限個。辞書順に並べることは出来ないし、「x番目」という言い方も出来ない。
・マシンへの入力を考慮していない。
・問題解決の前提知識として、その問題の答えを要求している; 拡張チューリングマシンが存在する為には、拡張チューリングマシンが必要である。
どう回避する?

二点目:
Nビットで表現できる全てのプログラム・入力対について判定する問題に置き換える。
つまり、プログラムは有限個であり、辞書順に並べることが出来る。
又、そのプログラム・入力対が有限時間で停止するかどうかは、つまりH(x)の値は既知であると仮定する。
この時、プログラムxが停止するかどうかを判定する>>80による拡張チューリングマシン上のプログラムの
時間計算量はO(2^N)である。
ところで、例えば世界最小のインタプリタは98バイト、そのインタプリタが停止しない最小の入力は3バイトなのでN=808について考えると、
拡張チューリングマシンが1秒間に10^100ステップ計算出来たとしても、終了までに平均2.7*10^135年掛かる。
もう少し現実的なプログラムは無いの?
00862016/05/24(火) 20:51:20.79 ID:/CRqdm6R
>プログラムの個数は非可算無限個。
は?
今問題にしているのは通常のチューリングマシンの停止問題であって
拡張チューリングマシンの停止問題ではないぞ?

>問題解決の前提知識として、その問題の答えを要求している
もちろんそうだが。
そういう見方をすれば確かにこれはつまらない。

しかし真に興味深いのは2つのオラクルテープの関係を調べることなのである。
一方のオラクルテープは他方のオラクルテープより真に強力、ということがあり得る。
そのような関係が美しい数学的構造を成すのである。

>もう少し現実的なプログラムは無いの?
お前のような知識のあるやつがこんなセコイ因縁を吹っかけてくるとは失望したぞ。
0087デフォルトの名無しさん2016/05/24(火) 20:59:57.89 ID:TtTF6uFS
>>86
もちろんそうだが、じゃねぇよ。
三角形の内角の和が180度だから平行線は交わらないって言ってるようなもんだぞ。

ついでで悪いんだけど、
プログラムの個数が高々可算無限個だというのなら自然数と対応付ける方法を示してくれない?
俺には非可算無限個にしか思えないんだ。
00882016/05/24(火) 21:18:34.79 ID:/CRqdm6R
>プログラムの個数が高々可算無限個だというのなら自然数と対応付ける方法を示してくれない?

うん?
チューリングマシンが可算個、入力が可算個で可算の直積集合になると思ったがなにか勘違いしてるだろうか?

>三角形の内角の和が180度だから平行線は交わらないって言ってるようなもんだぞ。
意味わからんどんな例えだ。
0089デフォルトの名無しさん2016/05/24(火) 21:54:01.44 ID:TtTF6uFS
ごめんよ、よーく考えたらプログラムは高々可算無限個だったわ。
(えーと、状態集合Qの大きさをq、入力集合Γの大きさをγとすると、O(q^γ)パターン存在する。
とすると、状態の集合Qの大きさがqであるようなチューリングマシンはO(q^γ x log q)ビットの情報と等価に変換できる。
んでもって、qとγは有限の値を取るからー)
実数の濃度みたいに対角線論法で非可算個になる気がしてた。

喩えについてはユークリッド幾何学の第五公理に関する歴史と論争について知ってれば分かるかと
https://ja.wikipedia.org/wiki/%E5%B9%B3%E8%A1%8C%E7%B7%9A%E5%85%AC%E6%BA%96
0090デフォルトの名無しさん2016/05/24(火) 21:56:05.64 ID:TtTF6uFS
本題に戻るけど
計算不能なテープをどうやって用意するの?
00912016/05/24(火) 22:01:34.74 ID:/CRqdm6R
>喩えについてはユークリッド幾何学の第五公理に関する歴史と論争について知ってれば分かるかと

すまん、知らん。

>計算不能なテープをどうやって用意するの?

実際に用意はできないがあると仮定して推論を進めるのである。
00922016/05/24(火) 22:03:42.61 ID:/CRqdm6R
思わず議論が白熱して張り付いてしまったがこれはいかんなw
張り付くの自重せねばw
0093デフォルトの名無しさん2016/05/25(水) 08:23:37.20 ID:60iV75hD
仮定して推論を進めるのが有効なのは背理法の時だけかと
00942016/05/25(水) 19:42:41.27 ID:5+8zav7P
詳しくはしらんがリーマン予想が真ならば〜と仮定して推論を進めた論文が結構あるそうだぞ。
0095デフォルトの名無しさん2016/05/25(水) 20:52:42.77 ID:8+OpaV01
それは、証明はされていないけど正しいと思われているから。
P≠NPを仮定すれば現代の暗号は安全だっていうのも同じだね。

一方で、君は計算することが出来ないという事が証明されている数が所与であるという
無茶苦茶な仮定を置いてる。
特技:イオナズンとか言っちゃう厨二病患者と似たり寄ったり。
00962016/05/25(水) 22:18:03.18 ID:5+8zav7P
読んでないが>>78の論文とやらが計算することが出来ない状態を所与にした論文とちゃうの?
00972016/05/27(金) 20:25:50.00 ID:wEIQ/dS/
持ちネタも尽きたし新しいネタを仕入れないとな。
暫くこのスレはお休みかな。
00982016/05/27(金) 22:50:36.91 ID:wEIQ/dS/
チューリングマシンの停止問題を解けるオラクルテープを使うとビジービーバー関数が計算出来きるとか
通常のチューリングマシンの停止問題を解けるオラクルテープをもつ拡張チューリングマシンの停止問題を解けるオラクルテープは
通常のチューリングマシンの停止問題を解けるオラクルテープよりさらに強力だとか、そんな感じのネタを仕入れたい。
0099デフォルトの名無しさん2016/05/27(金) 23:15:01.55 ID:A2TIou2n
テープ自体に差はないんじゃないのかな。
結局テープにH(x)とかを書き込むんでしょ?

それともオラクルテープの内容が違うだけで別クラスの拡張チューリングマシンになるのだろうか
0100デフォルトの名無しさん2016/05/30(月) 11:26:36.69 ID:9f9My9NT
もっと下位のオートマトンをより上位に拡張する方法を一般化したほうが早いんじゃないかな
FSMでは何が計算できて、何が計算出来ないのか。それは何故か。
PDAやLBAだとどうだろうか。
0101デフォルトの名無しさん2016/05/30(月) 14:10:13.66 ID:j9NktVXe
FSM=正規表現
PDA=文脈自由文法

終了
0102デフォルトの名無しさん2016/05/31(火) 16:36:27.31 ID:JlIYRfhe
チューリングマシンの停止問題を解けるオラクルテープを持つ拡張チューリングマシン
の停止問題を解けるオラクルテープを持つ拡張チューリングマシン
の停止問題を解けるオラクルテープを持つ拡張チューリングマシン
の停止問題を解けるオラクルテープを持つ拡張チューリングマシン…
と可算無限回繰り返した時のオラクルテープの内容は如何なるものか。
0103デフォルトの名無しさん2016/06/01(水) 14:20:53.02 ID:z/VHQJBB
チューリングマシンの停止問題を解けるオラクルテープを持つ拡張チューリングマシン
の停止問題を解けるオラクルテープを持つ拡張チューリングマシンは
チューリングマシンの停止問題を解けるや否や?
0104デフォルトの名無しさん2016/06/01(水) 20:57:13.79 ID:vZYp5pY7
>>103
>>20を信じるなら解ける
0105デフォルトの名無しさん2016/06/01(水) 23:07:06.59 ID:KWV9l2rU
HALT(TM, x)が解ければAccept(TM, x)もとけるので

入力x∈Σ^*を受け取って∃y∈Σ^*.Accept(y,x)を返す拡張チューリングマシンMを考えた時
その言語L(M)は「あるチューリングマシンM'(=y)によって判定されうる言語」の集合なはず
0106デフォルトの名無しさん2016/06/01(水) 23:30:03.64 ID:KWV9l2rU
よく考えたらAccept(y, x)とかいちいち構築しなくても
オラクルテープあるんだから「i番目の入力xはあるTMによって判定されるか」を0、1で書き込んでおけば一発だね
オラクルテープ万能すぎじゃないかい?
0107デフォルトの名無しさん2016/06/01(水) 23:39:12.08 ID:vZYp5pY7
>>106
もともとそういう定義のものだからな。
オラクルテープを自由に書き換えるんじゃなくて、
オラクルテープを固定して遷移関数だけ変えることを考えると、
色々面白い議論も出てくる、はず。
01082016/06/08(水) 21:22:28.95 ID:wtOBkV3F
エミール・ポストのwikiに

停止性問題よりもチューリング次数が低い計算不可能な帰納的可算集合が存在するかという問題を提起した。
これは1950年代に肯定的に解決

てのがあるんだけどだれか詳しいこと知らない?
0109722016/06/08(水) 22:20:21.00 ID:butypxOf
>>108
ttps://en.wikipedia.org/wiki/Turing_degree#Post.27s_problem_and_the_priority_method?wprov=sfla1
0110デフォルトの名無しさん2016/06/08(水) 22:36:44.92 ID:wtOBkV3F
うお英語か
まあ、サンクス
011112016/06/09(木) 21:16:57.10 ID:EAGKuhJB
チューリング次数について書かれた良和書が欲しい。
英語分からん。
0112722016/06/10(金) 10:05:10.25 ID:T7AOwkcm
>>111
ttps://ja.wikipedia.org/wiki/%E3%83%81%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E6%AC%A1%E6%95%B0
011312016/06/10(金) 22:37:47.93 ID:nrwEVc+r
>>112
日本語でもわからんかったw
とりあえず優先度法というのが気になる。
011412016/06/14(火) 22:12:58.58 ID:Jl6Qd2UZ
NP問題周辺の話題に多項式階層というのがあるが
チューリング次数と何か繋がっているのだろうか
0115722016/06/14(火) 23:59:34.81 ID:ytAJecFL
>>114
ttps://ja.wikipedia.org/wiki/%E5%A4%9A%E9%A0%85%E5%BC%8F%E9%9A%8E%E5%B1%A4
0116デフォルトの名無しさん2016/06/15(水) 00:11:45.70 ID:SLYlY5zm
wikipediaで会話するスレ
0117デフォルトの名無しさん2016/06/24(金) 06:39:10.08 ID:gjcXKDKa
お前らって本当に浅い知識で語りたがるよな
0118デフォルトの名無しさん2016/06/24(金) 20:12:27.64 ID:SgoRQ7d3
>>117
お前の深い知識を披露してくれてもいいんだぜ?
011912016/07/08(金) 23:23:02.66 ID:g+JJCT55
巨大数探索スレ
http://wc2014.2ch.net/test/read.cgi/math/1448211924/

の497に面白そうなのがあった。

http://projecteuclid.org/euclid.pl/1235415519#info

でも英語か〜
新着レスの表示
レスを投稿する