トップ «前の日記(2008-03-03) 最新 次の日記(2008-03-05)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|

ToDo:


2008-03-04

_ GHC

速いな! 見直したよ。

GHC:

./a.out  0.02s user 0.00s system 100% cpu 0.024 total

俺コンパイラ:

./tarai  1.11s user 0.00s system 98% cpu 1.133 total

tarai 1220 520 100 にて

(01:14)

_

GDC のクロージャの扱いがおかしい気がする。 なんとなくスタックフレームが GC されてるとか そんな感じな気がするけどすぐにはわからない

ん。あーこの GDC はそもそも real closure 入ってるバージョン以前か…

(01:39)

_ あへー

たぶん全然違ってるなぁ…

http://pc11.2ch.net/test/read.cgi/tech/1202623572/509

うーん。 まず一応じゃなくて立派にチューリング完全じゃないかなぁ。 CCNOT で即座に NAND 作れるよね。

可逆性については古典コンピュータの演算ってたぶん 全部可逆なんじゃないかなぁ。 たぶんそのへんは真逆というか。

あと任意のユニタリ変換とかいうヤツができるんで よろしこというか NOT と CNOT と CCNOT と SWAP って 全部 CCNOT で即座に作れるんじゃないの。 (CCNOT の入力を A,B,C として A = B = 1 で NOT, A=1 で CNOT, CNOT*3 で SWAP)

そっからは微妙にたぶん正しくて、 こうなんていうか量子コンピュータ屋が 「量子コンピュータ」と言う時に意味するものと 量子コンピュータって単語聞いた時の語感がたぶんズレてるんじゃないかな。 単に量子的なふるまいをするものを構成要素として コンピュータ作ってもそれは量子コンピュータとは呼ばないし、 つまり量子的なふるまいをするものを使って (量子は単に工学的な意味で色々扱いにくい特徴があるので大変だろうけど) 普通の古典コンピュータを作ることは全然できるし。

んで量子コンピュータ屋が量子計算って言う時は、 量子的なふるまいをうまく利用して高速に計算をすることを指しているので、 「量子コンピュータは速い、すごい」なんてのは まぁほとんど定義みたいなもんと言っていいんじゃないかなと思う。

だからまあ古典でできて量子コンピュータでできないことがある、 とかいう主張はこう C でできて C++ でできないことがある、 みたいな主張に近く感じられている。

でまぁ「その性質をフルに発揮する」ことを量子計算と呼んでるとして、 その量子計算に古典コンピュータ用の言語が向いてない、 っていうのは非常に正しいと思う。 「アセンブリは並列計算に向いてない」みたいな感じだけど、 まぁもっと向いてない感じだと思えばそんなに間違ってないと思う。

量子計算がどんなもんかを想像するのは 分子計算とかを知るとイメージが捕みやすい気がする。 分子計算つーのは別に量子計算とはなんも関係ない 古典計算なんだけど、ただ並列度が半端ないとされている。 具体的にどうするかつーとランダムな DNA を大量に用意して、 ばらまく。 んで解答の条件に合致するとひっつく棒をつっこんで ふりまわして、ひっついてきた DNA を見れば解答が判明するというもの。 たぶん性質上解答の成否が確認できないといけないので NP までが解ける感じじゃないかな。 ただアボガドロ数とかって案外少ないので 解空間の DNA を全部作るのが困難な感じの、 ものごっつい複雑な問題は解けないよねーという。

量子計算も同じ感じで答え候補をぐわーと作るってのは同じなんだけど、 作る場所がこうよくわからんくて、 重ねあわせとかいうものでもにょーんと作るってのが違うところ。 多世界解釈とかいうアレだ。

違いはというと、 量子ビットの数 N に対して 2^N とかで解候補を 用意できるから難しい問題に余裕でスケールするってのがメリットで、 2^N 個の解候補を全部なめるようなことは 大人の事情でできなくて、 2^N 個になんらかの演算かました後に、 正しいものだけひきずり出してくるような とても賢いアルゴリズムを考えないといけないというのがデメリット。 このデメリットは案外重要で、現在まででアルゴリズムは えらいちょっとしか見つかってない。 あともう一つのデカいデメリットは量子ビットを たくさん使うのはえらい大変でこう10qubitとかできたら すげーみたいな感じだとかそんな話で、 まぁ正直できそうもないんじゃないかというような。 あとエラーがたくさん起きるので エラーコレクションしなきゃいけないんだけど 1qubit に 7qubit で EC するとかアリエネーというか。

そいや SIGGRAPH のやつみないと。

(22:25)

_ 日本語

http://d.hatena.ne.jp/mr_konn/20080304/1204632557

http://d.hatena.ne.jp/sumim/20080303/p1

を見て、んじゃ mecab で分解すればいいじゃなーいと思ったんだけど、 そういえば Io の UTF8 対応は色々と腐っているのであったと断念した。

Number の := method(
  write(self)
)
100の平方根の逆数を表示する

で 100 とか出ちゃダメだろう!

Io における正しい DSL のありかたとしては 以下のようなものがあるとは思う。

Number k := method(*1024)
Number M := method(k k)
Number G := method(k M)
write(1G,"\n")

(23:11)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2008年
3月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
1.shinh(2014-05-24 02:59) 2.kosaki(2014-05-24 02:59) 3.shinh(2014-05-24 02:59)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h