某雑誌で量子アニーリングの記事を読み興味を持ち、これを使ったなにか良いお題がないか考えた結果、シフト表を作成しようと思い立ちました。
以下のような月のシフト表に、自動で出勤日を決定できるようにします。
0が休日で、1が出勤日とします。
フィックスターズの量子アニーリングクラウド「Fixstars Amplify」を使います。
Pythonでamplifyモジュールをインストールするだけで簡単に利用できます。
今回使うイジングマシンのエンジンは、Fixstars Amplify Annealing Engine です。これはGPUベースのアニーリングマシン(いわゆる古典コンピュータ)です。
これ以外にも、たとえば「D-Wave 2000Q」や「D-Wave Advantage」といった量子コンピュータが使えます。同じコードで設定を変えるだけで、簡単にエンジンを切り替えられます。
量子アニーリングのプログラミングは、だいたい以下のステップです。
シフト表作成で、以下の条件を課します。
Google Colabノートブックを使って作業を行いました。
以下のリンクでノートブックを閲覧できます。
https://colab.research.google.com/drive/1xMYavIDCyFJoxkvzwhxIZnrUxMk4d1wA?usp=sharing
作成したシフト表が以下です。
条件を満たしたシフト表を作成することができました。
タグ: Fixstars Amplify, イジングマシン, 量子アニーリング, 量子プログラミング