Experience the CMOS Annealing Machine

第1章 組合せ最適化問題を解くということ

アニーリングマシンで課題を解決するということを行っていく前に、ユーザは、数理最適化という学問を現実の課題に適用するには何をすればいいかをまず考えることになります。既に数理最適化を現実の課題解決に用いてきた方々は、この章を読み飛ばして頂いて構いません。

まず、アニーリングマシンを使うためには課題を定義し、それをイジングモデルにする定式化を行う必要があります。アニーリングマシンに限らず最適化処理では解きたい問題を示す現象を数式に置き換えることを行います。アニーリングマシンにおける最適化の工程の詳細は、課題整理と要件定義定式化第2章第2節を確認してください。

さて、解こうとする数理最適化の課題を定式化する前に、アニーリングマシンを使ってうまく解けるようなタイプの組合せ最適化問題なのかどうか、を判断するための知識について説明します。

学校の数学の授業で皆さんは様々な課題を解決してきました。1次方程式は直線$y=ax+b$で表されることを学びました。さらに、一次方程式の知識を応用し領域を最大化あるいは最小化する問題を解きました。一次方程式の知識を応用して最適化問題を解くのが、数理最適化における線形計画問題の考え方です(第3章第1節で解説)。アニーリングマシンで解く組合せ最適化問題では、いくつもの(何十、何百、から何百万まで、スケールは課題によって色々の)離散的な値を取るパラメータ同士の組合せを比較してできるだけ良い組合せを選び出すことになります。パラメータが離散ということは直線上の飛び飛びの値を取るため、最適化するパラメータをいくつも組み合わせる場合、その組合せを見つけることが大変であるということをまずは頭に置いておいてください。なぜ難しいかを理解するには、人の手で数えて確かめようと思っても到底難しく、プログラミングとアルゴリズムを用いて解いてみることで実感できるでしょう。

最適化の歴史は線形計画問題から始まりました。その後、最適化問題を解くアルゴリズムを作成し、コンピュータで解かせるといったことが行われるようになりました。また、さらに膨大な組合せの問題を解くためのアルゴリズムが研究されるようになりました。

私たちは、問題を解く際に解くためのアルゴリズムを適用し、適用するアルゴリズムをコンピュータで実行します。解きたい最適化問題があるとき、アニーリングマシンを使ってうまく解けるのか、それとも別の方法が必要なのか、といったことを知るには色々な問題の解き方を学び、実際に解いてみることが必要です。アニーリングマシンの理解を助ける知識を効率よく学ぶためには、幅広い知識を身につける必要がありますが、特に数学が大事となるため、ユーザの皆さんがアニーリングマシンの関連知識に対しできるだけ抵抗感なく学びを進めていける助けになればと、「アニーリングマシンのための数学」をまとめました。尚、今後も加筆修正を行いながらより充実した解説を提供いたします。

ACWスキルロードマップ

未読

後で学びなおすときは未読にスライドしておくことができます。

シェアする/フィードバックする