スケジューリングシステムを設計する技術者が直面する問いのひとつが、「数理最適化と機械学習をどう使い分けるか」というものだ。


AIへの関心が高まるなかで、機械学習をスケジューリングに適用しようとする試みが増えている。
しかし両者は解こうとしている問題の性質が異なり、スケジューリングという問題に対してどちらをどこに使うべきかを正確に理解することが、システム設計の品質を左右する。
 

こうした問いに対して、スケジューリングの自動化という観点から開発されているのがshiftect.であり、数理最適化と機械学習の役割分担について、その設計思想のなかに明確な判断基準を持っている。
数理最適化が扱う問題を整理する。
 

数理最適化は「与えられた制約条件を全て満たす解の中から、目的関数を最大化または最小化する解を探索する」問題を解く。
制約条件は明示的に定義され、ハード制約を満たさない解は候補にならない。
スケジューリングにおける配置の決定、すなわち「どの生徒をどの講師のどの時間枠に割り当てるか」「どの介護職員をどの利用者のどのケアタスクに割り当てるか」という問題は、この構造に適している。
答えが「正しいか正しくないか」で判定できる問題だからだ。
 

機械学習が扱う問題を整理する。
機械学習はデータからパターンを学習し、新しい入力に対して予測や分類を行う。
 

「だいたい正しい」予測が価値を持つ問題に適している。
スケジューリングの文脈では、機械学習が有効な領域がある。
過去の欠席パターンから次月の欠席予測をする、利用者の状態変化から急変リスクを予測する、配送需要の変動を予測するといった「将来の状態を推定する」問題だ。
 

これらはスケジューリングの入力となる情報の精度を高めるために機械学習が貢献できる領域だ。
つまり使い分けの原則はこうなる。
 

スケジュールそのものを生成する処理、すなわち制約を満たす組み合わせを探索する処理は数理最適化が担う。
スケジューリングへの入力情報の精度を高める処理、すなわち将来の状態を予測する処理は機械学習が担える。
 

shiftect.が特願2026-026989として出願している制御構造は数理最適化を前提として設計されており、業務の状態に応じて全体生成・部分変更・特別期間対応という三つの局面に対応した入力構成を自動的に決定する制御層が核心だ。
 

機械学習はその制御層への入力情報の精度向上という補助的な役割として位置づけられる。
明細書においても最適化エンジンはAI・ソルバー・量子アニーリングマシン等を含む外部エンジンとして定義されており、機械学習モデルを最適化エンジンとして使う可能性も排除されていない。
 

しかしハード制約を必ず満たすことの保証という観点では、確率的な出力を返す機械学習モデルよりも数理最適化エンジンの方が設計上の信頼性が高い。