はてなブログにMathJax ver.3を入れて使える拡張機能を眺める
はてなブログでは、数式表記[tex: xxx]されたものをMathJax v2で変換しています(多分)。 私はJupyter labで記事を書いて、はてなブログ用Markdownに変換してAPI経由で投稿していますが、 私のJupyter labの環境(4.2.1)では、数式はMathJax v3で処理されているようです。投稿後プレビューして確認後に多少の手直しは許容するとしても、...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 1
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 2
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 3
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 4
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 5
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 6
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article自然言語処理100本ノック2020(Rev 2)の記録 Chapter 7
自然言語処理100本ノック2020(Rev 2)の記録(Python 3.11)Chapter 1 準備運動Chapter 2 UNIX コマンドChapter 3 正規表現Chapter 4 形態素解析Chapter 5 係り受け解析Chapter 6 機械学習Chapter 7 単語ベクトルChapter 8 ニューラルネットChapter 9 RNNとCNNChapter 10...
View Article2変数が等しい場合に標的ビットを反転させるゲートを作る
下記などを参考にして、$ n $ビットに一般化したいな、と思ってまとめた。 $ n $ビットの変数2つ($ a ^ {(n)}, b ^ {(n)} $)を比較して、両者が等しい場合に標的ビットを反転させるゲートを作る。 標的ビットを$ \ket{-} $とすると、位相キックバックで位相オラクルになる。 単純には、$ a ^ {(n)}=b ^ {(n)}=000\cdots 0 $のケースと$ a...
View Article2変数が等しい場合に標的ビットを反転させるゲートを作る その2
前回、2変数が等しい場合に標的ビットを反転させるゲートを作ってはみたけど、「トランスパイル時に最適化とかされるのだろうか?」「最適化されると、(入力ビットの全部に制御ビットを立てても、それを半分にしても)結局同じような回路になるのでは?」と気になったので確認する。制御ビットが$ n $個のゲート素直に各値のビットをチェックして構成する方式にする。 前回よりこっちの方が素直で簡単かもしれない。from...
View Article和が条件を満たす2数の組をGroverのアルゴリズムで探す
目的:Groverのアルゴリズムで遊ぶ。 Groverのアルゴリズムは、$ N $個の状態のうちから条件を満たすものを探索するアルゴリズム。 これを使って、和が条件「4以上の奇数」を満たす2数の組を検索する。 条件は、オラクルが簡単に作れそうなものを選んだ。Groverのアルゴリズムまず、Groverのアルゴリズムについてまとめる。候補(検索対象)となる状態の集合を$ S...
View Article4x4数独をGroverのアルゴリズムで解く
数独については、下記を参照。9x9サイズの数独は大変なので、4x4サイズの数独を対象にする。 基本的には、前にやったものと同じ流れで解く*1。例題以下の問題を例題として解く。方針空きマスにそれぞれ2ビットの量子レジスタを割り当て、 各マスの数字を2進の量子状態で表現(1→|00>, 2→|01>, 3→|10>, 4→|11>)する。...
View Article制御U3ゲートなどのメモ
1ビット量子状態はブロッホ球の球面上の点で表される。 なので、一般の1ビット量子ゲート$ U _ 3 $は、ブロッホ球上のEuler回転であらわされる。 ということで、x,y,z軸周りの回転ゲート$$ %\require{physics} \begin{align*} R_x \qty(\theta) &= \exp \qty(-i\frac{\theta}{2} X)...
View Articleグレイコードを使ったマルチ制御ゲートなどのメモ
制御ビットが$ n $個ある場合のマルチ制御ゲートを(制御ビットが1個の制御ゲートを使って)構成する方法をまとめる。制御ビット$ x _ 1,x _ 2,\cdots,x _ n $が$ x _ i=0,1 $の値をとるとき、$$ \require{physics} \begin{align*} 2^{n-1} x_1 x_2 \cdots x_n =& \sum_{r=1}^n...
View Articleグレイコードを使ったマルチ制御ゲートなどのメモ その2
$ m $個の条件のANDが成立する場合に標的ビットに作用させるようなゲートを、 1つの補助ビットを使って構成する方法をまとめる。単純には、条件の数だけ補助量子ビットを用意して、 最後にすべての補助量子ビットのANDを取るようなマルチ制御ゲートを適用させれば構成できる(uncomputationは省略)。ただ、これだと条件数が増えるたびに必要な量子ビット数が増え、...
View Articlenビット整数の任意の組み合わせに対応する初期状態を作る
Groverのアルゴリズムの初期化用に、nビット整数の任意の組み合わせに対応する初期状態を作る。例えば、3量子ビットに対して{001,011,100,101,110}などの組み合わせを与えたときに、 その状態(この場合5状態)の同じ重みで同位相の重ね合わせ状態を作る。...
View Article4x4より大きいサイズの数独をGroverのアルゴリズムで解く
前にやったものでは量子ビット数の制限で(シミュレータ上で)解ける問題が少なかったので、 オラクルの補助量子ビットを減らすように マルチAND制御ゲートを使って改造した。 また、初期状態を構成するゲートを一般化して、 4x4より大きいものについても(一応)対応するようにした。実装大部分が同じなので、どんどん実装していく。...
View Article