AIに多用されている機械学習も組合せ最適化を行うアニーリングマシンも人の代わりに難しい処理を行うコンピュータ技術だといえます。この2つはどのような違いがあるのでしょうか。実は、決定的に違います。機械学習は蓄積された経験の中から最適な選択肢を推論しますが、アニーリングマシンは定義したルールの上で現在の状況において最適な組合せを選択します。
AIが出来るのは、これまでの過去のデータから学習しそのデータから状況を推論することです。AIを使って勤務シフトを作るとしたらどのような処理が行われるでしょうか。過去に蓄積されたデータから、Aさんはこんな働き方がいいだろう、Bさんはこんな働き方がいいだろう、と推論してシフトを決めていくことになります。
色々なパターンを考える必要があるときは、それに応じた過去のデータを使って学習しておく必要があります。
これに対し、アニーリングマシンが出来るのは、現在の状況から最適な選択肢の組合せを決めることです。例えば、勤務シフトを作る際には、Aさんはこういう希望、Bさんはこういう希望があり、またその職場における勤務上のルールや事情を考慮して、その中で最適と思われるシフトを作成します。
考慮するべきことはすべて定義しておく必要があります。
上述の通り、アニーリングはあるべき条件や制約をすべて考慮し、コスト関数や制約として定義する必要があります。AIは条件や制約を定義する必要はありませんが、考慮したい状況を全て学習する必要があります。
例えば、これまで火曜日に有給休暇を取ったことのない人のシフトに、火曜日の有給休暇を組み入れる必要があったとします。アニーリングマシンではその人が有給休暇を火曜日に取得することを定義すれば考慮をしてシフトを作成できます。対してAIの場合は、その人にとって経験のない火曜日の有給休暇をシフトに入れることを学習できないため、調整や工夫が必要になります。
例えば、シフトを組む際にどの時間にどれくらいの人が必要か、というのは経験的にわかることが多いと考えられます。そこで、スタッフの必要人数予測にはAIを活用します。その上で、働く人の個別の事情を正確に定義してアニーリングマシンでシフトを作成することが出来ます。
このようにAIとアニーリングマシンを組み合わせることで、これまでの経験でどれくらいの人が働けばいいかという予想に合わせて、各人の希望の入ったシフトを作成することが可能となります。
以上のようにAIとアニーリングマシンには大きな違いがあります。一方で、その違いを理解した上で、組み合わせて使うと効果を発揮することがあります。