「チューリングマシン」を含む日記 RSS

はてなキーワード: チューリングマシンとは

2011-05-20

C言語死ねの件について

カーネルコミッターでも、処理系実装者でも無さそうな人達が、「Cは滅びず!」と叫んでいる不思議光景

http://b.hatena.ne.jp/entry/shyouhei.tumblr.com/post/5545216280/c

http://b.hatena.ne.jp/entry/shyouhei.tumblr.com/post/5603961294/c

Linuxカーネル(せめてPOSIX互換品)を手前が思う言語にさっさと移植すれ。さすればCを滅ぼせん。(ちなみに高機能アセンブラの最適解がCとは俺も思っちゃいない。)

最後のCの牙城、Linux(UNIX)をJavaなり何なりベター言語にさくっと移植してくれ。それともgoogleビッグブラザー様がクラウドでUNIX鯖を駆逐してくれるのを祈ってればいいのか?

Cが死ぬと追ってLinuxとかあらゆるOSミドルウェア技術者いなくなって死ぬじゃん。殺す前に代替言語用意しろバカ

JavaC#も,それにPerlRubyPythonも,実行環境自体はCで書かれている件。コンピューターが「シリコンを基材としたチューリングマシンであるかぎり,アセンブラとCは滅びない。

2010-11-07

プログラムを書けない奴は馬鹿

手順を考えて、その手順を書くだけ。

言語もあらかじめ決められた手順に沿って解析されて実行されるから、オートマトンBNF記法構文木などの仕組みを一通り覚えてどういう機構チューリングマシン原理的に実行可能なコードへと落とされるかを理解すれば言語自体も覚えるのなんてそんなに難しくない。

手順を考えるなんて、人間が生活する上でいつもやっていること。

プログラムを走らせるためのデータ構造を考えるのに苦労するという話も聞くけど、プリミティブな要素が数値、型へのリファレンス値しかないんだから大体は離散数学で使うグラフの初歩的な知識があれば事足りる。GoFデザインパターンなんてまさにそう。

これらは、専門用語の知識は知らなくても概念としては理解できて当たり前の事だから書けることもそれほどすごい事ではない。

もう大分前から普通大学でもC言語を上手く教えてるし、プログラミングは特別なスキルではない事が証明されている。

2010-09-26

PvsNP(P!=NP)問題の別解(らしきもの)

一部の人には有名なPvsNP(P!=NP)問題の別解をhttp://arxiv.org/abs/1008.2247でまとめたのですが、twitter弄っていたらなんかまとまったのでこちらにも転載しておきます。

誰か突っ込みをお願いします。

まずチューリングマシン(TM)の大きな特徴を考えます。TM計算力の源として「複数ある入力をまとめていくつかの計算結果にする」というものがあります。

例えば足し算 1+2+3+4+5 は、あらかじめ定められた計算によって15という計算結果となります。 10+5, 1+14, 5+5+5 なんかも同様ですね。これらの入力も結局は15という計算結果にまとめられます。

もちろん、人間の別の入力ランダムを活用すれば何とかなりますが、基本は入力だけに依存するという条件になりますので、入力が同じならば結果も同じになります。

「複数ある入力をまとめる」というのがTMの特徴だとすると、その入力同士の関係はどのようになっているのか?というのが http://arxiv.org/abs/1008.2247 の骨子です。

TM入力と出力の関係が簡単であればあるほど、計算する時間も短くて済みそうです。逆に入力と出力の関係が複雑であればあるほど、逆に計算する時間が長くなるでしょう。

では、TM計算量と入力/出力の関係はどういうものがあるのか?

関係を扱う数学の道具はたくさんありますが、ここで私は大好きな対称性を使ってみました。

複数の入力をまとめる時、決定性TMでは高々1つの文字しか変更することができません。計算途中のテープの文字は一致している必要があります。

しかし、入力/出力の関係が複雑だと、これをまとめあげるのに多大な苦労があります。気を付けないと、間違った入力まで一緒にしてしまう可能性があります。

そこで、http://arxiv.org/abs/1008.2247 で一つ仮説を立てました。 「テープ全体を使って、テープの変更する場所&文字を1ヶ所以上決定できる」 この関係が常に成り立つのがPではないかと。

HornSATやCNFSATベースに色々と弄ってみたところ、ビンゴ。あたりのようです。このような問題を秩序問題と名付けました。

秩序問題が来れば今度は混沌問題でしょう。ということで混沌問題を定義して対比させます。

秩序問題は下記の通り「計算結果が対称となる1文字を活用して虱潰しに可能性を制限することができる」という特徴があります。

ならば、混沌問題は「複数の文字がセットでないと計算結果が対称にならない」ということでしょう。この複数の文字を拡張文字と名付けます。

こちらもビンゴ。あたりです。CNFSATSATでは、拡張文字の長さに上限がありません。つまり、拡張文字は無数にあることがわかりました。

それでは、拡張文字とは何でしょう? 「0,1,2……を使った数の表記みたいなもの」です。文字を組合せて使うことで、その部品だけでは表現できなかったたくさんのことを表現する文字です。

秩序問題にはこの拡張文字のような「一つに固まった塊」「どこまでも増えていく塊」という概念はありません。結局文字一つ一つをバラバラに扱えますので、塊として扱う必要がありません。

そして、拡張文字は、長さのべき乗規模で数が増えていきます。 ……ここで「指数規模」というPvsNPに繋がるギャップが出て来ました。

ここまで来ればあと一息です。

秩序問題と混沌問題の違いを浮き彫りにします。 まず、NP完全混沌問題はP完全の秩序問題そのものでは表現できません。そして、指数規模に膨れ上がった拡張文字のせいで、秩序問題を多項式規模で繋げても混沌問題を計算することはできません。

よって、P(秩序問題=P完全) << 混沌問題=NP完全 となるので、PvsNPはP!=NPとなります。

……という話をhttp://arxiv.org/abs/1008.2247 にまとめています。 誰かコメント貰えると助かります。 もう自分じゃギャップ見付かりません…………

http://arxiv.org/abs/1008.2247日本語ファイルhttp://arxiv.org/e-print/1008.2247v4 にあります。拡張子を.tar.gzに変更して展開して下さい。

2008-06-16

量子チューリングマシンから想像されるもの

チューリングマシン句構造文法との関係から、量子チューリングマシンから量子句構造文法が導けないだろうか?

量子チューリングマシンでのみ受理される言語クラスだ。

量子チューリングマシンキュービットで、自然言語コード化することできたら関係づけることができるか?

追記

ポアンカレブロッホ球で、キュービットを表すこと考える。

語を球として考ると、球と球の接点を連接演算として群をなすだろう。

平面上における、構文木

3次元上に、構文木状の球が連なったものがイメージできるように思う。

そう、「文脈」のあり方もこの考え方で変わってくるだろう。

似非科学スレスレの文章を書いてるけど、

考える価値はあると思う。

2008-04-12

暗号方式はたぶん胡散臭くないよ

この記事にはブクマを見る限りだいぶ懐疑論が集まってるみたいだね。残念ながらWebで資料を探しても見つけることができなかったので、憶測でしか語れないけれども、たぶん大丈夫だと思う。もっとも、「理論的には」の話であって「実用的に」どうかは知らないけどね。

大矢氏がハッタリをかます動機がない

まず、大矢氏はその道では有力な研究者で、名前も売れてます。俺のような門外漢でも知ってるぐらいだから。だから、胡散臭いものに手を出すという動機がまずないんですよ。

ただし学者というのは自分の仕事を宣伝してナンボという商売でもあるから、まだ残っている欠点を敢えて黙っているということはあるかもしれない。でも、少なくとも「CABは完璧暗号である」とは言っていないはず。そういう意味で、嘘はついていないことは信用していいと思います。

確率0」というのは「絶対に解けない」ということではない

次に、大矢氏の発言「鍵空間は無限大ですから、鍵を推定できる確率ゼロ」という発言は数学的に普通かつ真っ当なものであって、レトリックでないことを指摘しておく。

数学では、確率は長さとか面積とか体積とともに「測度」という概念包含されるんだけれど、「確率0」というのは「『点』は『無』ではない」という話と本質的には同じものだ。例えば、中学校の時「点には大きさがない、長さも幅もない」「直線には幅がない」「平面には厚みがない」と習ったはずだけれど、つまりこれは「点の長さは0」「直線の面積は0」「平面の体積は0」って話なんだよね。点とか直線とか平面というのは「無」ではなくちゃんと存在するものなのに長さとか面積とか体積が0(こういうのは「零集合」なんて名前もついてる重要なものだ)という話、当初違和感をもたなかった?多分、今になってみれば感覚的に「そんなもの」だと理解できているはずだけど。つまり、「長さや面積や体積が0ということと、存在しないということは別物だ」ということ。

確率が0というのもこれと同じなんだ。例えば、0<x<1を満たすxを全くのランダム(あるxが別の数より選ばれやすいということはないものとしよう)に選んでくることを考えよう。これはまさに「数直線0<x<1上、x=0.5という一点の長さはいくつ?」と聞いているのと同じことで、答えは0になる。別に変なことではないでしょ?

アルゴリズムの実用化の難しさ

もっとも確かに、「現実コンピュータ上で、鍵の候補が無限大なんて関数が作れるのか」という疑問があると思う。俺の理解が間違ってなければこれは確かに無理だ。でも、そういう言い方をするのは無理なことではないんだ。

というのは、アルゴリズム理論を作るときは、暗黙に「コンピュータには無限メモリがある」と仮定してしまうことがある。もちろん現実にはそんなことはない。でも、必要なだけメモリを増設すればいくらでもその状態に近づけることはできるので、実用はともかく理論としてはそれで十分と考えることがあるんだ。

もう少し詳しくいうと、チューリングマシンっていう数学モデルがあるんだけれども、これはメモリ無限にあるコンピュータ等価能力を持っている。そして、情報工学の問題はチューリングマシンに対して考えられることが多い。しかし、現実コンピュータメモリが有限しかないから、これは本当は「有限オートマトン」(基本情報処理試験にも出るから知っているはず)とよばれる非常に単純なモデルで表せてしまうものだ。これの能力は余りにも限られているので、たとえばカッコ対応問題(たとえばCやJavaで"{"と"}"の数が釣り合っているかを確かめる問題)すらも一般的には解けない。実際、メモリ内で表現できる最大の数以上のカッコを与えてやればいい。もちろん、そんな沢山のカッコを与えるなんて現実には無理だけどね。

そういう風に、アルゴリズムについて理想と現実の壁は大きく、常に実用化の壁というものがつきまとう。そういう意味で大矢氏の新暗号が本当に画期的なものになるのかどうか、これはやってみないとわからないと思う。今後の展開に期待だね。

追記

生半可な知識で下手なこと書くもんじゃないですね。専門家からのご批判を頂きました。

http://d.hatena.ne.jp/smoking186/20080412/1208008068

というわけで、この記事は反面教師として下さいませ。この記事単独では、間違ったことは書いてないつもりですが、前提を理解していませんでした。

2007-11-06

http://anond.hatelabo.jp/20071105221810

チューリングマシンといえば、オセロ万能チューリングマシンになり得るのだろうか。

オセロの駒が白か黒の状態を表すことは確かなので、1つの駒が1ビット情報を持っていると考えれられる。だが、最近発表された最小構成の万能チューリングマシンは2つの状態と3つの色を必要として、これ以下ではダメなようだ。

だが、オセロの駒が無い状態を盤面の緑とすれば3つの色が実現できる。ということは、オセロによって万能チューリングマシンを構成することも可能だ。そこに知性が発生することも科学的にあり得なくも無い。

2007-11-05

http://anond.hatelabo.jp/20071102195139

グレッグ・イーガン、『ディアスポラ』。

ワンの絨毯。

パズルみたいな海藻が繁茂する惑星があり、その海藻がチューリングマシンになっていて、チューリングマシンのなかにバーチャル生命がいた、こりゃびっくりという話。

...にも似てるよね、って言いたかっただけ。

2007-11-02

ウルフラムチューリングマシンの証明

http://wiredvision.jp/news/200710/2007102622.html

これ、凄いことっすよね。20歳って・・・。

ウルフラムがかなりの天才っていうのは聞いたことがあるんですけど、

こういう人のあとを継ぐのはやっぱりこの証明をした人みたいなの人だろうなとか思ったり。

2007-05-01

俺の感情は全てロジカルに発現されるんだ。

俺の喜怒哀楽創出回路と感情発現回路は完全ノイマンチューリングマシンで構成されていると表現すれば…かえって判りにくくなった。

そりゃ回路設計に不備が見つかる事も突然外界からのインプットパターンが変更になる事も日常茶飯事でその都度修正を強いられるわけですが、その日々の手間も惜しまないむしろ自己改変上等、自分がどんどんより洗練された美しいロジックで組み上がってゆく楽しさと言いますか。

「人の気持ちがわからない奴」?よく言われますよ。ですからそのインプットも参考にしてパッチ作って適用するんですよ。

ログイン ユーザー登録
ようこそ ゲスト さん