投稿

フォン・ノイマンが考えたこと

 【 フォン・ノイマンが、考えたこと 】 ここでは、String Diagram が「プロセス」中心の理論であることを、改めて確認します。 「プロセス」中心というのは、フォン・ノイマンが定式化したように、まずヒルベルト空間上のベクトルとして量子の状態を定義して、次にそれに作用する演算子を考えて量子論を構築する、「状態」から出発する理論ではないということです。 雰囲気だけ述べてみれば、世界のスナップショットでしかない固定された「状態」より、変転する世界の変化の「過程」に注目しようという考えだと思います。 こうした考え方は、古代ギリシャにも東洋思想にも、近代のドイツ哲学にもありました。20世紀では、物理学者の David Bohmが、こうした思想の代表者だと思います。 もっとも、いろんな思想はいろんなところに現れるものです。 ここでは、ちょっと意外な発言を紹介しようと思います。  I would like to make a confession which may seem immoral:  I do not believe absolutely in Hilbert space anymore.  不道徳に思われるかもしれない告白をしたい。  私は、もはやヒルベルト空間を全く信じていない。 これは、1935年に、フォン・ノイマンがバーコフにあてた手紙の一節です。 ノイマンが、「量子力学の数学的基礎」で、ヒルベルト空間論に基づく量子論の定式化を完成したのは、1932年のことでしたので、彼は、早々に自身の定式化に疑問を持ちはじめたことがわかります。 ショートムービー「プロセス中心のアプローチ」を公開しました。 https://youtu.be/0FeQpgJyRMY?list=PLQIrJ0f9gMcPSp_fL7-LZW0yOwYXyvXtb スライドのpdfは、次からアクセスできます。 https://drive.google.com/file/d/1hcYB9GZ6mlQ-oxjHI8Q4mtHXXlRsEJ9v/view?usp=sharing このシリーズのまとめページは、こちらです。ご利用ください。 https://www.marulabo.net/docs/category01/ セミナーのお申し込みは、次のページからお願いします。 https://s

「状態」をプロセスとして表現する

【「状態」をプロセスとして表現する 】 String Diagram では、「状態」を特別な「プロセス」として捉えます。 先に、次のものを特別なプロセス考えようと言いました。  1. 入力を持たず出力のみを持つプロセス  2. 出力を持たず入力のみを持つプロセス  3. 入力も出力も持たないプロセス この 1. の 入力を持たず出力のみを持つプロセスを「状態」と考えるのです。Diagram としては、逆三角形から上に出力を表すワイアーが一本出ている図形で表します。 こういうことです。 ある系Aが、可能的には複数の状態を取りうるとしても、こうした図形で表される「状態」は、ある操作からなる「準備過程」によって作られた、系Aの「特定」の「状態」です。 入力を持たないということは、このシステムの来歴を我々は知らないことを意味しています。例えば、「ここに |0> に初期化された qubitがある」という時、我々は、その状態がどのように準備されたかについて知る必要はありません。 「状態」のDiagramの双対として、「効果」というDiagram を考えます。それは、先の図の天地をひっくり返したものです。それは、2. の出力を持たず入力のみを持つ特別なプロセスです。 「効果」はあるシステムによるものなのですが、出力を持たないというのは、その後、その結果は二度と使われることがないことを意味します。その意味では、「効果」の最も簡単な例は、システムが破壊され、以前のシステムを無視することだと考えることができます。 「効果」のもう一つの解釈は、それを「テスト」と考えることです。我々が、ある「効果」が起きたというということは、我々がシステムを「テスト」して、ある特徴が確認できたということです。 3. のケースは、「状態」のプロセスの出力を「効果」のプロセスの入力につなげた時、起こります。String Diagramでは、それは「数」を表していると解釈します。 ショートムービー「状態と効果と数」を公開しました。 https://youtu.be/Yz_ZkfdgW-E?list=PLQIrJ0f9gMcPSp_fL7-LZW0yOwYXyvXtb スライドのpdfは、次からアクセスできます。 https://drive.google.com/file/d/1hkzdyODnKk9izk

関数は関係の特殊な場合である 

 【  関数は関係の特殊な場合である 】  ここでは、関数だけでなく関係もDiagramで表現されることを学びます。  x = 2y+1 とか、z <  x+ y という式で、'=' とか  '<' という記号は、左辺と右辺の「関係」を表しています。もちろん、それが表しているのは、'=' だったら「左辺と右辺は等しい」という関係で、 '<'  だったら「左辺は右辺より小さい」という関係です。 x と y との間に、Rという関係がある時、それを "x R y" で表すのは、よく使われる関係の表現法です。 ただ、関係には、別の表現の仕方もあります。    x R y <==>   ( x, y ) ∈ R x < y という関係が Rだとしましょう。x < y  が成り立つ点は、原点を通る y = x  という直線の上にある領域すべてです。この領域をRとすれば、( x, y ) ∈ R なら、すなわち、 (x, y) で表される点が領域 R に含まれるなら、x < y という関係が成り立つことは、すぐわかります。 この関係の表現を使うと、x ∈ X、y ∈ Y とすると、集合 X と 集合 Y との関係 R は、    ( x, y ) ∈  X × Y の形で表される事がわかります。関係 Rは、集合 X × Y に含まれます。 関係の表現には、もう一つのやり方があります。 a R b、すなわち (a, b) ∈ R の時、R(a) で (a, b) ∈ R を満たす全てのbの集合を表すやり方です。   𝑅(𝑎) ≔ { 𝑏 | (𝑎, 𝑏) ∈ 𝑅 } この R(a) は、引数 a を取る関数のようにも見えますが、関数ではありません。関数なら、R(a)の取る値は一つだけですが、このR(a)の値は、複数の値からなる集合です。R(a)の値は、一つには定まらないのです。 プロセスとしての関係の表現には、関数に似たこちらのスタイルが使われます。 関係についても、二つの関係 P,  S の直列合成と並列合成が可能です。詳しくは、ビデオを参照ください。 関数と関係については、次のことが言えます。  ・関数も関係も、システム・タイプは集合で

デカルト積 再び

【 デカルト積 再び 】 このショートムービーで扱っている、プロセスとしての関数については、基本的なところは、今まで見てきたプロセスの直列合成・並列合成の振り返りになっています。そこは、そんなに難しいことではありません。ビデオをご覧ください。 新しいのは、前回見た集合の「デカルト積」の考えで、関数の入力・出力のシステム・タイプを見直しているところです。 プロセスとしての関数 f が、システム・タイプ A, B を入力に持ち、システム・タイプ B, C, D を出力に持っていたとしましょう。 このことは、f の入力のシステム・タイプが A × B (AとBのデカルト積)で、出力のシステム・タイプが B × C × D (BとCとDのデカルト積)であると考えることができます。f は、集合 A × B から 集合 B × C × D への関数です。 具体的な fの入力の値を  a, b、出力の値を b', c, d としましょう。この時、(a, b) ∈ A × B で、(b’, c, d) ∈ B × C × D ということになります。 普通の関数の表記を使えば、これは    f(a, b) = (b’, c, d)  と書けます。 前回、デカルト座標 (x, y) は、デカルト積の表現だと言ったのですが、f(a,  b) の(a, b)は座標というより、関数の引数ですね。このように、関数の引数が表現しているのもデカルト積なのです。 一般的に言えば、複数の要素の並びをデカルト積は表現します。二つのもののpair、複数の要素からなる tuple も、デカルト積 = 直積 で表現されます。先の例だと、出力の並び、(b’, c, d) もデカルト積の表現です ショートムービー「プロセスとしての「関数」」を公開しました。 https://youtu.be/e8yRiQ9JGiY?list=PLQIrJ0f9gMcPSp_fL7-LZW0yOwYXyvXtb スライドのpdfは、次からアクセスできます。 https://drive.google.com/file/d/1h7CPgAA14upsioNS2LvfVOasKimqQk2P/view?usp=sharing このシリーズのまとめページは、こちらです。ご利用ください。 https://www.marulabo.ne

デカルトの積?

【デカルトの積?】 これまで、抽象的なDiagramの定義から始めて、具体的な量子回路をDiagramで表現するという話をしてきたのですが、今回の新しい節からテーマが変わります。もう一度、抽象的なDiagramの定義に戻ります。 抽象的なDiagramの定義といっても、難しいものではありませんでした。   Diagram = Box +Wire     Box = 「プロセス」   Wire  = 「システム・タイプ」 というだけです。 これまで、二つのプロセスの「合成」の話はしてきました(並列合成・直列合成等)。この節では、一つのプロセスに注目して、代表的なプロセスとして、「関数」と「関係」があるという話をします。 ただ、今回は、プロセスの話ではなく、関数と関係の話をする前提として、システム・タイプの話をします。 結論から言えば、システム・タイプは、ある「集合」だと考えることができます。なら、それで終わりかというと、そうでもないのです。 【 新しいシステム・タイプ 】 こういう問題です。 あるシステムにシステム・タイプA(集合)があって、別のシステムにシステム・タイプB(集合)があったとします。二つのシステムが一緒になったシステムのシステム・タイプは、どうなるかという問題です。 これも、答えを先に言えば、この二つのシステムが一緒になったシステムでは、新しいシステム・タイプを利用できるようになります。 それを A✖️Bで表します。これを、AとBの「デカルト積」あるいは「直積」と言います。システム・タイプは集合ですので、デカルト積は、集合 A, Bから、新しい集合A✖️Bを作ります。 「デカルト積、聞いたことない」という人も多いと思います。でも、ほとんどの人は、その考え方を知っています。「デカルト座標」は、知ってますね。 デカルト座標 (x, y)は、X座標の値がx で、Y座標の値がyの点を表します。X座標が取る値の集合をXで、Y座標が取る値の集合をYとすれば、デカルト積 X✖️Yの要素は、Xに属するxとYに属するyの、デカルト座標(x, y)を持つ点と同じものになります。 数学的にデカルト積を定義すると、次のようになります。  X✖️Y = { (x, y) | x ∈ X, y ∈ Y } この定義に現れる (x,  y)は、デカルト座標と同じものです。 【 デカ

量子回路のDiagram

 【 量子回路のDiagram 】 ここでは、これまででてきた概念を、順番に整理してみましょう。  1. Diagram :   Box + Wire, 並列合成 ⊗, 直列合成 ○  2. 回路のDiagram : Box + Wire, 並列合成 ⊗, 直列合成 ○, Swap  3. 量子回路のDiagram : 量子ゲートを表すBox + Wire, 並列合成 ⊗, 直列合成 ○, Swap 【 抽象的な定義から、より具体的な定義に 】 ここまでの 1. 2. 3. は、Diagramの世界でのお話です。 1. は、まだ、抽象的なDiagramの定義ですが、2. になって、このDiagramは「回路」のDiagramとして、少し具体的になりました。3. の「量子回路のDiagram」では、このDiagramが、量子ゲートからなる量子回路のDiagramとして、より具体的になりました。 ただ、実際の量子コンピュータの量子回路は、もっと具体的です。以下、その実際の量子回路の特徴を、少し詳しく書き出してみましょう。 【   4. 実際の量子回路 】   ・Box = 量子ゲートは、ユニタリ行列に対応する。    ・Wireは、量子ビットの状態を表すベクトルである。   ・量子ゲートの出力のベクトルは、ゲートに対応する「ユニタリ行列 x 入力ベクトル」で計算される。これが量子ゲートの作用を与える。   ・量子ゲートから、量子回路は、並列合成 ⊗, 直列合成 ○, Swapから構成さる。   ・並列合成 ⊗ された量子回路に対応する行列は、「行列のテンソル積」で計算される。   ・直列合成 ○ された量子回路に対応する行列は、「行列の積」で計算される。 こうして、具体的に量子回路の定義を与えれば、回路に対応するユニタリ行列がもとまり、実際の量子回路の振る舞いを、計算で与えることが出来ます。 【 具体化は、抽象的な定義の「解釈」を与える 】 ここでは、3. の「量子回路のDiagram」の定義と、4. の「実際の量子回路」の定義の関係を考えてみましょう。 先には、1. 2. 3. は「Diagramの世界」の話で、4. は「実際の量子回路」の話だとしてきましたが、4. の定義は、明らかに、1. 2. 3. の定義を満たします。ですので、そのことは、4. の「実際の量子回

量子ゲートの行列表現

 【 量子ゲートの行列表現 】 今回も、まず、量子論の基本をふりかえることから始めましょう。 量子の状態は、あるルールに従って変化します。量子の状態は、ベクトルで表現されるので、量子の状態の変化は、あるベクトルからあるベクトルの変化として表現されることになります。ベクトルをベクトルに変えるのは、数学的には、行列の仕事です。ですので、量子の状態を変化させるルールは、ある行列の特徴によって記述されます。 【 ユニタリ行列 】 量子の状態変化を特徴づける行列を「ユニタリ行列」といいます。 全宇宙の全ての量子の状態変化を、このユニタリ行列がつかさどっていると考えると、とても複雑な行列だろうと思うかもしれませんが(確かに、実際にそれを書き出そうとすると、複雑で巨大なのですが)、その基本的働きは、驚くほどシンプルです。 ユニタリ行列は、あるベクトルの長さを変えず、その向きをかえます。長さが変わらないので、それはベクトルを回転させる働きをします。二次元でしたら、ユニタリ行列が作用したベクトルの先端は、ある点を中心に円を描きます。三次元なら、球面を描くことになります。 透明な球体の中に、中心から球面に向かう黒い矢印があって、それがクルクルと回っているのをイメージすればいいと思います。球面をなぞる矢印の先端が、量子の状態を表しています。 量子の状態変化が、すべて、こうしたシンプルなルールに従っているという発見は、驚くべきものだと思います。 【 ユニタリ行列と量子ゲート 】 ここでは、もうひとつの量子の状態変化のイメージを考えましょう。 量子の状態を線で表しましょう。それが変化した量子の状態も、やはり、線で表すことができます。線と線の間に、変化する過程を表す箱を置きましょう。これは、ある箱に、量子の状態が「入力」として入り、ある過程を経て、変化した量子の状態が「出力」として出てくるというイメージです。こうした入力・出力のイメージで量子の状態変化を捉えた時、この過程を表す箱を、量子ゲートといいます。 先に見たように、量子の状態変化はユニタリ行列で表現されるのですから、この箱 -- 量子ゲートの働きは、ユニタリ行列の働きと同じものです。量子ゲートには、それに対応したユニタリ行列が存在します。それを、量子ゲートの行列表現と呼びます。 【 Diagramと量子回路の行列表現 】 量子ゲートから