開発会社への問い合わせの中で、一貫して同じ誤変換が起きていた。
スケジューリングの制御構造を説明しているつもりが、相手の頭の中でAI・ソルバー案件に変換されてしまう。
なぜこの誤変換が起きるのか。

スケジューリングという言葉自体に問題がある。
スケジューリングは最適化問題として定式化されることが多い。
学術的にも、産業的にも、スケジューリング問題といえば「与えられた制約の下で最適解を求める」という問題として扱われてきた。
この蓄積が、技術者の認識の土台にある。
スケジューリングと聞けば最適化、最適化と聞けばソルバーかAI、という連想が自動的に働く。

この連想は、従来のスケジューリングシステムには正しかった。
制約を定義して、最適化エンジンに投げて、解を得る。
その構造であれば、ソルバーの選定と制約の定式化が核心になる。

しかし業務の現場で起きている問題は、そこにない。
毎月の時間割作成、振替対応、欠勤への再調整、新規入会への対応。
これらは「与えられた条件で最適解を求める」という単一の問題ではない。
業務の状態が変わるたびに、何を探索対象とし、何を前提条件として固定するかという問題の構造自体が変わる。
shiftect.が自動化しようとしているのはこの部分だ。
問題の構造を業務の状態に応じて動的に決定する制御の仕組みを作ることが核心であり、最適化エンジンを必要とするならば外部のものを使えばいい。

「スケジューリング最適化」という言葉で説明した瞬間に、この核心が消える。
技術者の頭の中で「スケジューリング最適化=ソルバー案件」という変換が走り、制御の問題が最適化の問題に置き換わってしまう。
言葉が先に分類を決め、その後の説明がその分類の中で処理される。