巨大数探索スレッド12 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
間違え
Τ_0(ω^3,ω^2,ω^3)=ψ_0(Ω^2+Ω×ψ_0(Ω^2)) 久しぶりに見たらまだあったのか
しかも2月3日に巨大数論更新されてるし >>55
計算しなおしたところ、確かにそうなりました。
Τ_0(ω^4)=ψ_0(Ω^3) となり、
Τ_0(ω^ω)=ψ_0(Ω^ω) になりそうです。
「FGH with transfinite ordinals」と同程度
(じっさいはFGHよりハーディー階層に近い)なら
Τ_0(ω^(ω+1))=ψ_0(Ω^Ω) になるはず。 新しい順序数崩壊関数
Ρ_0(Ρ_0(Ω))=ψ_0(Ω)
Ρ_0(Ρ_0(Ω)×2)=ψ_0(Ω×2)
Ρ_0(Ρ_0(Ω)^2)=ψ_0(Ω^2)
Ρ_0(Ρ_0(Ω)^Ρ_0(Ω))=ψ_0(Ω^Ω)
Ρ_0(ε_(Ρ_0(Ω)+1))=Ρ_0(Ρ_0(Ω+1))=ψ_0(ε(Ω+1))=ψ_0(ψ_1(0))
Ρ_0(Ρ_0(Ω+Ρ_0(Ω)))=ψ_0(ψ_1(Ω))
Ρ_0(Ρ_0(Ω+Ρ_0(Ω×2)))=ψ_0(ψ_1(Ω_2))
Ρ_0(Ρ_0(Ω+Ρ_0(Ω×2+Ρ_0(Ω×3))))=ψ_0(ψ_1(ψ_2(Ω_3)))
Ρ_0(Ρ_0(Ω×ω))=ψ_0(Ω_ω)
Ρ_0(Ρ_0(Ω×Ρ_0(Ω)))=ψ_0(Ω_Ω)
Ρ_0(Ρ_0(Ω^2))=ψ_0(ψ_Ι(0))
定義は未完成。
Ρ_0(Ρ_0(Ρ_0(Ω)))=ψ_0(Ω)とすればもっと強くなり、
同じ方法でさらに強くできる。 >>59
Taranovsky's Cを参考にしたので(定義を知らないので見た目をまねただけですが)
もしかしたら似たような性質があるかもしれません。 どうやらΤ_0(ω^(ω+1))=ψ_0(Ω^(ω+1))になるようです。
そうなるとΤ_0(Τ_1(1))=ψ_0(Ω^Ω)になり、
Τ_1関数の限界もあまり大きくならなさそうです。 Τ関数の定義を微調整。
Τ_1(#,0)=Τ_1(#)+Ω
Τ_0(#,0)=Τ_0(#)+ω
Τ_0(Ω)=ψ_0(Ω^Ω)
Τ_0(Ω,0,Τ_0(Ω))=ψ_0(Ω^Ω)×2
Τ_0(Ω,0,Τ_0(Ω),1)=ψ_0(Ω^Ω)×ω
Τ_0(Ω,0,Τ_0(Ω),ω)=ψ_0(Ω^Ω+1)
Τ_0(Ω,0,Τ_0(Ω),Τ_0(Ω))=ψ_0(Ω^Ω×2)
Τ_0(Ω,0,Τ_0(Ω)+1)=ψ_0(Ω^Ω×ω)
Τ_0(Ω,0,Τ_0(Ω,0,Τ_0(Ω)))=ψ_0(Ω^Ω×ψ_0(Ω^Ω))
Τ_0(Ω,0,Τ_0(Ω,0,Τ_0(Ω),1))=ψ_0(Ω^(Ω+1))
Τ_0(Ω,0,Ω)=ψ_0(Ω^(Ω×2))
Τ_0(Ω,0,Ω,0,Ω)=ψ_0(Ω^(Ω×3))
Τ_0(Ω,1)=ψ_0(Ω^(Ω×ω))
Τ_0(Ω,1,0,Ω,1)=ψ_0(Ω^(Ω×ω×2))
Τ_0(Ω,1,1)=ψ_0(Ω^(Ω×ω^2))
Τ_0(Ω,1,Τ_0(Ω))=ψ_0(Ω^(Ω×ψ_0(Ω^Ω)))
Τ_0(Ω,1,Ω)=ψ_0(Ω^Ω^2)
Τ_0(Ω,2)=ψ_0(Ω^Ω^ω)
Τ_0(Ω,ω)=ψ_0(ε_(Ω+1))=ψ_0(ψ_1(0))
Τ_0(Ω,ω,Ω)=ψ_0(ψ_1(Ω))
Τ_0(Ω,ω+1)=ψ_0(ψ_1(Ω×ω))
Τ_0(Ω,ω+2)=ψ_0(ψ_1(Ω^ω))
Τ_0(Ω,ω×2)=ψ_0(ψ_1(ψ_1(0)))
Τ_0(Ω,ω^2)=ψ_0(ψ_1(Ω_2)) 巨大数を生成するシステムを作る人工(でなくてもいいけど)知能的なやつ
基本
とにかく不特定多数のプログラムを書きまくる。
実行して停止したものから最終的に出力された数を一旦全て採用
大きさを比較して小さい方は捨てる。
ここから自力でいかに効率をあげられるかが勝負どころ。
健全で停止するプログラムを作った場合は、結果だけ求めるのであれば必要ないが、
健全で停止することの証明まで用意してもらうのが望ましい、
というか知識の共有のためには必要不可欠 最終的に出力された数を保存しようと思ったらグーゴルプレックスでも無理でしょ 指数を導入すればいいだけ
表記法も自動で学習、獲得する感じで グーゴルプレックスそのものは指数で書けるけど、グーゴルプレックス程度の
大きさの指数ではぴったりとかけないような数字を書こうとすると、
どうしても10進数で計算する必要があるよ いずれにせよ「実際に計算する」時点でメモリと計算時間の「現実的制限」があるよ 原子の数は限りがあるけど、電場・磁場・重力場とかのパターンとかなら無限の表現ができるよね。
それで計算できたりしないのかな。
一桁上がる毎に半分のフォントにすれば全角に無限桁入るはず
テオヤンセン機構みたいな感じで電磁力の相互作用で計算できるとすごくいい 1万ビット程度の素因数分解もできないのに、巨大数を素直に計算しようなんて無謀すぎる 「将棋の完全解析をするプログラム」ですらできないわけなので
実行して停止したものから最終的に出力された数
というアプローチだとクラス3の数が限界だよ 宇宙が有限で最小の長さがあるという理論が有力である以上、無限のパターンは無理だろ なんだか語弊のある書き方をしてしまったが、実際には巨大数を生成する
プログラムを記憶すればいいのであって
巨大数そのものは記憶しなくてよい、現実的に不可能だし。
人工知能に限らず普通にグーゴロジストの知能にとっても課題となるが、
つぎの二つを学習しなければならない。
効率的な評価方法
・最低限、プログラムを最初から最後まで起動させなくても大きさを
見積もれるようになってほしい。
より強力なシステムの発見
・(現実的な時間内に)発見したシステムが強力であればあるほど、その発見者は
より自由な意志をもっている(ように見える)
計算不可能レベルは言語そのものを開発して殴り会うからまた事情が違ってくる。 なにをもって「大きさを見積もった」とするかだな
実際には「停止するとわかったものの中で最大」がわかればいいので、
ビジービーバー候補である「優勝マシン」の探索を、いかに効率的にしていくか、
という問題に帰着するのかな 簡単な例をあげれば、実際に計算しなくても、
3+3と3^^3を比較してテトレーションのほうが強力だから
3^^3の方が大きい、と評価する感じ、評価方法が健全であることの証明を添えて。
ここまで書いて気付いたけど、この場合の証明って要するに説明するってことだな。 停止するか確認じゃなくてするか証明させればいいじゃん
本当にやったら人間には理解できないのが出てきそうで期待 そもそもみんな証明することしか考えてなかっただろ
ベクレミシェフの虫も、ヒドラも、グッドスタイン数列も、サブキュービックグラフ数も、
停止することを証明するし、でかいことも証明する 3+3と3^^3 程度の複雑さだったらいいけど、
>>66 の「不特定多数のプログラムを書きまくる」というアプローチで期待していることは、
なんかとても複雑なことをやっていてよくわからないけどでかい数ができることを
期待してるわけでしょ。そんなものの大きさをどう評価するかという問題なわけで。
評価するためには、なんらかの物差しとなる「評価する関数」が必要となる。
そして、結局はその「評価する関数」が整然とした関数なのであれば、はじめから
その「整然とした関数」で巨大数を作ればいいので、
「不特定多数のプログラムを書きまくる」というアプローチの出番はない。 とりあえずは、バシク行列数を出力するプログラムと、
ローダー数を出力するプログラムの大小関係を
どうやって比較するのでしょうか >>82
最初から効率よく評価する方法を知っていればいいですけど、
自然数の公理以外は何も知らない状態から始めることを前提としているので。
それに新しい発見のために従来よいとされているやり方から離れるランダムな
要素は多少必要かと。 ランダムな要素で語弊がありそうなので補足
効率のいいやり方を学習したら不特定多数のプログラムを書きまくる必要はありません。 Τ_ω未満ではΤ_0(Τ_1(Τ_2(Τ_3(…))))という構造が出てきて、原始数列の計算法を使うことになる。
Τ_ω以上を定義するにはΤ_0関数の原始数列バージョンを作るか虫のルールだけで計算できるように
Τ_1の計算法を変える必要がある。
後者の場合Τ_1(0)=ψ_0(Ω^Ω) なのにΤ_1(Τ_1(0))≠Τ_1(ψ_0(Ω^Ω))みたいに変なことになるが
前者より定義は簡単で強さも多分変わらない。 サバンナで一番強い動物は何か、ライオンかゾウかそれとも蚊かって話し合ってるときに「答えはサバンナで一番強い動物だ」って言ってるようなものだな。
その命題は偽じゃないけど情報量がないというかそういう答えは求めてない。その動物名が知りたくてみんなやっているわけで。
ラヨ数とかビジービーバーとかもそういうけがある。いいよ、別に手段としてラヨ数というアプローチを使っても。でもそれで一番だと分かったその関数が何だったのかを知りたい >>47
ちょっとC++でソース書いてみたがこんな感じ?
ここからどう巨大数を生み出せばいいかな?
#include<map>
using namespace std;
template<int N>
class T;
template<int N>
bool operator<(const T<N> &a,const T<N> &b);
template<int N>
class T{
public:
map<T<N-1>,int> val;
};
template<int N>
bool operator<(const T<N> &a,const T<N> &b)
{
return a.val<b.val;
}
template<>
class T<0>{
public:
map<int,int> val;
};
int main()
{
T<0> t0;
T<1> t1;
T<2> t2;
t0.val[0]=1;
t1.val[t0]=1;
t2.val[t1]=1;
} 「サバンナで一番早い動物」の答を求めてるんじゃなくて、
答に至るまでの考え方や知能のはたらき方といった過程を
求めてるんだけど、過程に興味ないと言われてしまえばそれまでなのだわ。 計算不可能レベルでは一番の存在を示すことはできても
それが何であるかを知ることができなくなってきますし・・・
主に英語版の住民がやってることだが、計算不可能レベルにもそれなりに需要があるわけで、
みんな具体的な動物名が知りたくてやってるというのは極論かと。 函数を比べるためにはそれよりも強い函数が必要になるんじゃないの?
でそんな函数があればそれを利用したもっと強い函数が出てきて・・・ BIG FOOT、BIG FOFT、Little Biggedonにはさらに次の議論を示唆する余地があって良いよね。有意義だと思う。
でも計算可能関数もいいよね。それは何だ。っていうのが見えてきて。 Τ_1(0)=ψ_0(Ω^Ω)
Τ_1(0,0)=ψ_0(Ω^Ω)×2
Τ_1(Τ_0(Τ_1(0)))=ψ_0(Ω^Ω)^2
Τ_1(Τ_0(Τ_1(0)),1,Τ_0(Τ_1(0)))=ψ_0(Ω^Ω)^3
Τ_1(Τ_0(Τ_1(0)),ω)=ψ_0(Ω^Ω+1)
Τ_1(Τ_0(Τ_1(0)),Τ_0(Τ_1(0)))=ψ_0(Ω^Ω×2)
Τ_1(Τ_0(Τ_1(0))+1)=ψ_0(Ω^Ω×ω)
Τ_1(Τ_0(Τ_1(0),1))=ψ_0(Ω^(Ω+1))
Τ_1(Τ_0(Τ_1(0),1,Τ_1(0)))=ψ_0(Ω^(Ω+ψ_0(Ω^Ω)))
Τ_1(Τ_1(0))=ψ_0(Ω^(Ω×2))
Τ_1(Τ_1(0),0,Τ_1(0))=ψ_0(Ω^(Ω×3))
Τ_1(Τ_1(0),1)=ψ_0(Ω^(Ω×ω))
Τ_1(Τ_1(0),1,Τ_1(0))=ψ_0(Ω^Ω^2)
Τ_1(Τ_1(0),2)=ψ_0(Ω^Ω^ω)
Τ_1(Τ_1(0),ω)=ψ_0(ψ_1(0))
Τ_1(Τ_1(0),ω,ω)=ψ_0(ψ_1(1))
Τ_1(Τ_1(0),ω,Τ_1(0))=ψ_0(ψ_1(Ω))
Τ_1(Τ_1(0),ω+1)=ψ_0(ψ_1(Ω×ω))
Τ_1(Τ_1(0),ω+2)=ψ_0(ψ_1(Ω^ω))
Τ_1(Τ_1(0),ω×2)=ψ_0(ψ_1(ψ_1(0)))
Τ_1(Τ_1(0),ω^2)=ψ_0(ψ_1(Ω_2))
Τ_1(Τ_1(0),ω^2,Τ_1(0))=ψ_0(ψ_1(Ω_2×Ω))
Τ_1(Τ_1(0),ω^3)=ψ_0(ψ_1(Ω_2^2))
Τ_1(Τ_1(0),Τ_1(0))=ψ_0(ψ_1(Ω_2^Ω_2))
Τ_1(Τ_1(0),Τ_1(0),ω)=ψ_0(ψ_1(Ω_2^Ω_2+1))
Τ_1(Τ_1(0),Τ_1(0),ω+1)=ψ_0(ψ_1(Ω_2^Ω_2×ω))
Τ_1(Τ_1(0),Τ_1(0),ω×2)=ψ_0(ψ_1(ψ_2(0)))
Τ_1(Τ_1(0),Τ_1(0),Τ_1(0))=ψ_0(ψ_1(ψ_2(Ω_3^Ω_3)))
ここまでが正しければΤ_1(Τ_1(0)+1)=ψ_0(Ω_ω)になるはず。
早く定義を完成させなければ。 Ρ関数はこうしたほうが強い。
Ρ_0(Ρ_0(Ρ_0(Ρ_0(…))))=Ρ_0(Ω)
Ρ_1(Ρ_1(Ρ_1(Ρ_1(…))))=Ρ_1(Ρ_1(Ω_2))
Ρ_2(Ρ_2(Ρ_2(Ρ_2(…))))=Ρ_2(Ρ_2(Ρ_2(Ω_3)))
Ρ_3(Ρ_3(Ρ_3(Ρ_3(…))))=Ρ_3(Ρ_3(Ρ_3(Ρ_3(Ω_4))))
さらにこれをΤ関数に応用すれば… >>133
Τ_1(Τ_1(0),Τ_1(0))
=ψ_0(ψ_1(Ω_2^Ω))
Τ_1(Τ_1(0),Τ_1(0),ω+1)
=ψ_0(ψ_1(Ω_2^Ω+ψ_1(Ω_2^Ω)×ω)) まったくの素人意見だが・・・
無限の広さがある碁盤と無限にある碁石を使って、画像認識みたいな
テクニックである程度自分で巨大数ではないかと思われるシステムを
作ることはできるだろう。
でもそれは統計的に「らしい」ものを作っただけでコンピュータが自分で
論理を組み立てたわけではないし、そういうわけで本当にまともなプログラム
になっている保証もない。
結構な確率で出来上がるところまでは行けるだろうが。 評価方法も考えなければならないことをうっかりしていた。
まぁあらかじめ教えておいたとしてもなお課題が残るということで。
>>121
関数自体は評価を表現する一つの手段であって、比べる手段そのものではない
ので・・・
たとえば任意の自然数nについて、n+1<n+2が成り立つというくらいのの証明は、
答えにたどり着くまでただひたすら妥当な証明を書きまくるという数の暴力作戦
でもわりと現実的な時間内に得られるでしょうし。 割と現実的な時間内に得られるww
絶対無理だから。一生計算終わんないから。 証明ができるAIはいつできるだろうか
量子コンピュータのあとかな >>149
証明と量子コンピュータは恐らく全く無関係ですよ
自明でない公理系での定理の証明は定理の言明(を表す論理式)のサイズに関してNP完全かNP困難
ところが量子コンピュータ(より正確な呼び名は量子デジタルコンピュータ)は
NP完全問題を高速に解けないというのが計算量理論の専門家の間でほぼ全員一致で予想され認識されていること
(量子コンピュータが通常のデジタルコンピュータとは違って迅速に解けることが判明した問題の一つである
素因数分解問題はNP問題ではあるがNP完全ではないと計算量理論やアルゴリズム論のコミュニティで予想されている) BBは、ビジービーバー関数
zは、0個以上の0以上の整数
xは、0個以上の0または1
a:bは、b個のa
a,b,n,mは、0以上の整数
f_0()=BB(10↑^(10)10)
f_0(0)=BB(f_0())
f_0(a+1)=BB(f_0(a))
f_0(0:(n+1),0)=f_0(f_0():(n+1))
f_0(0:(n+1),a+1)=f_0(f_0(0:(n+1),a+1):(n+1))
f_0(z,b+1,0:n,0)=f_0(z,b,f_0():(n+1))
f_0(z,b+1,0:n,a+1)=f_0(z,b,f_0(z,b+1,0:n,a):(n+1))
f_1()=f_0(f_0():f_0())
f_1(0:n+1)=f_0(f_1(0:n):f_1(0:n))
f_1(1:(m+1))=f_1(0:f_1(),(1,0:f_1()):m)
f_1(x,0,1:(m+1))=f_1(x,(1,0:f_1()):(m+1))
f_1(x,0,1:(m+1),0:(n+1))=f_1(x,(1,0:f_1(x,0,1:(m+1),0:n)):(m+1))
f_1(2)=f_1(0:f_1(),(1,0:f_1()):f_1()) >>148
妥当な証明を書きまくるというか、公理やすでに証明された論理式に推論規則を
適用しまくって目的のものにたどり着くまで待つって感じか。
∀x∃y(sx=y∧x<y)|-sa=b∧a<b
∀x∃y(sx=y∧x<y)|-sb=c∧b<c
sa=b∧a<b∧sb=c∧b<c|-∀x∃y∃z(sx=y∧x<y∧sy=z∧y<z)
例化や量化の手順は端折ってるがこんな具合。
後者関数の公理だけから出発して例化と量化を適用してるだけだし、
なんとかなるんじゃ、後者の後者のほうが大きいことを証明するだけなら。 >>152
順序数関数だけどヴェブレン関数とかフェファーマンのθ関数とか、あとは超越整数とか、ローダー数とか、ビジービーバー関数とかラヨ数とか、その辺がアプローチが近いと想うよ 愚直にやるとまともな計算結果が出る前に、物理メモリの限界が来るんだよね。
宇宙の全物質を計算機に変えても足りない。 ■ このスレッドは過去ログ倉庫に格納されています