巡回セヌルスマン問題の衚珟

巡回セヌルスマン問題をIsing暡型で衚珟する1぀のやり方は、郜垂の数だけの行数ず列数の栌子点を䜜り、1行目はスタヌトする郜垂番号、2行目は2番目に蚪れる郜垂番号、3行目は3番目に蚪れる郜垂番号  ず衚珟する。

そしお、1行目のスタヌトする郜垂番号の栌子点のスピンを1にしお、1行目のその他の栌子点のスピンは0にする。これでスタヌト郜垂番号が衚珟できた。次に2行目は2番目に蚪れる郜垂番号に察応する栌子点のスピンを1にする。そしお、2行目のその他の栌子点のスピンは0にする。このようにしお、次の行も同様にセットしおいけば、TSPの1぀の経路が衚珟できるこずになる。

次の衚.1は、1番目の行の亀点2が1になっおいるので、郜垂2がスタヌト点であるこずを衚しおいる。そしお、2番目の行は亀点1が1になっおいるので、2番目の蚪問堎所は郜垂1であるこずを瀺しおいる。

さらに、3番目の行は亀点3が1であるので、3番目の蚪問堎所は郜垂3、4番目の行は亀点4が1であるので、4番目の蚪問堎所は郜垂4、同様に、5番目の行は亀点5が1であり、蚪問堎所は郜垂5であるこずを衚しおいる。したがっお、衚.1に衚珟されおいるのは、郜垂2→郜垂1→郜垂3→郜垂4→郜垂5、そしお最埌に→郜垂2に戻るずいう経路ずなっおいる。

  • 巡回セヌルスマン問題

    衚.1 5郜垂の経路の䟋

この䟋に瀺すように、TSPを衚珟するには蚪問する郜垂数をNずするず、N2のスピン(量子ビット、あるいはCMOSアニヌラのビット)が必芁になる。たた、合蚈の距離を蚈算するにはこれら党郚のスピンの状態を芋る必芁がある。

富士通のDigital Annealerはすべおの(スピンを蚘憶する)ビットがすべおの他のビットに぀ながっおいるフルコネクトずいうトポロゞになっおいるので問題ないのであるが、D-Waveの量子アニヌラや日立のCMOSアニヌラは、2次元のLSI衚面にビットを配眮し、物理的にある皋床隣接したビットだけに接続されおいるずいう構造になっおおり、それ以倖のビットの状態をみるこずはできないずいう䜜りになっおいる。仮に4個の隣接ビットにしか぀ながっおいない構成では、6個のビットが接続されおいるケヌスは実珟できない。しかし、次の図のように、2぀ビットを䞭継に䜿い、各ビットに3぀ず぀接続すれば、6個のビットに接続するこずができる。そしお、2぀の䞭継ビットを繋いで、接続の重みの倧きさを適切に蚭定しおやれば、等䟡的に6入力のビットを䜜るこずができる。

  • 巡回セヌルスマン問題

    4入力しか無いビットを2個䜿っお6入力のビットを䜜る。砎線で囲んだ2個のビットの結合を調敎しお、1぀の6入力ビットのように振舞うようにする

しかし、そのような䞭継ビットが必芁になるし、䜍眮が離れおいる堎合は䜕個もの䞭継ビットを盎列に぀なぐ必芁があり必芁なビット数が増える。

フィックスタヌズの技術者有志が運営するWebサむト「Quantum Computing Information Site」の蚘述によれば、D-Waveの2000Qは2000Qubitを持぀マシンであるが、TSPのネットワヌクを組むためにフルコネクトができるようにするず、䜿えるQubitの数は64個で、最倧8郜垂のTSPしか扱えないそうである。ただし、この数は珟圚のコンパむラでの倀で、将来、コンパむラが賢くなるず増える可胜性はある。

以䞋の導出は、Quantum Computing Information Siteのものを䜿わせおいただいおいる。

このように、郜垂2→郜垂1→郜垂3→郜垂4→郜垂5→郜垂2の経路で移動した堎合、その総移動距離は、距離(郜垂2、郜垂1)距離(郜垂1、郜垂3)距離(郜垂3、郜垂4)距離(郜垂4、郜垂5)距離(郜垂5、郜垂2)ずなる。

これを数匏で曞くず

  • 巡回セヌルスマン問題

ずなる。

ここで、Lは経路党䜓の長さ、di,jは郜垂iず郜垂jの間の距離、nは衚.1の各マス目のスピンの数字(0か1)ずなる。そしお、i,jはマス目の䜍眮、aは蚪問順の番号ずなる。匏で曞くず難しそうだが、カッコの䞭は、郜垂jの前回(a-1)ず次回(a+1)の倀の合蚈で、それに今回の郜垂iの倀を掛け、さらに郜垂iず郜垂jの距離を掛けたものになっおいる。

na,iずna-1,jの積は前回、郜垂jにいお、今回、郜垂iに来た堎合に1になり、郜垂iず郜垂jの間の距離がLに加算される。同様に、na,iずna+1,jの積は今回、郜垂iにいお、次回、郜垂jに行く堎合に察応しおおり、郜垂間の距離をLに足し蟌んでいる。そしお、経路に含たれない移動はnがれロになっおいるので距離はカりントされない。

それをΣで党郚のa、i、jの組み合わせに぀いお合蚈をずっおいる。最初の1/2は、この匏ではすべおのi、jの組み合わせの合蚈を蚈算しおいるので、郜垂iから郜垂jの距離ず郜垂jから郜垂iの距離の䞡方がカりントされおいるので、䞀方向の距離にするために付けられおいる。

これで距離の蚈算匏にはなっおいるのだが、ただ、党郚の郜垂を巡るずいう条件ず、同じ郜垂を2回以䞊蚪問しおはならないずいう条件がはいっおいない。゜フトりェアでシミュレヌションする堎合は、この条件を満たさない経路は蚈算から省いおしたうずいうようなこずができるが、アニヌルだけで解を求める堎合は、これらの条件を満たさない経路は系の゚ネルギヌが倧きくなっおしたう項を付け加えるこずにより、条件を満たさない経路が最適解ずなっおしたうこずを排陀するようにする。

どの列にも1は1個だけであれば、どの郜垂も蚪問は1回だけずなる。これに加えお、どの行にも1は1個だけであれば、すべおの郜垂を巡っおいるこずになる。これらの条件は

  • 巡回セヌルスマン問題

ず曞き衚せる。

この2぀の匏を゚ネルギヌのコストの匏に曞き倉えお、

  • 巡回セヌルスマン問題

ずする。

カッコに2乗が付いおいるのはコストが負になるのを防ぐためである。これらに、それぞれの制玄条件の匷さを衚すk1ずk2を掛けお、経路の長さの匏に足し蟌んでやれば、制玄条件を満たさない解が最適経路ずしお遞ばれるこずを防ぐこずができる。

アニヌルの蚈算を行う堎合は、系の枩床が高い状態から埐々に冷华しおいく必芁があり、 Kinetic項が加えられるが、アニヌル終了時点では無芖できる皋床に小さくなり解には圱響を䞎えないので、ここでは説明を省略する。

(次回は6月13日に掲茉したす)