I氏への最初の相談で、返ってきた言葉は予想外のものだった。
「スケジューリングはすたれた技術だ」。
続けてこう言われた。
「新しいものがあると考えるなら、言語化してほしい」。
これは否定ではなく、要求だった。
「新しいかどうか判断できない。言語化されていないものは評価できない」という意味だ。
言語化作業はここから始まった。
最初に取り組んだのは、既存のスケジューリング技術との差異の整理だ。
従来の最適化システムは「与えられた条件で計算する」ことはできる。
しかし実際の業務では、全てをゼロから作る局面ばかりではない。
既に確定した配置が一部存在する状態で、未確定の部分だけを最適化する局面がある。
特定の1件に変更が生じたとき、その影響範囲のみを再計算し、他の確定済み配置は固定したまま代替案を生成する局面がある。
従来のシステムでこれらを実現しようとすると、ユーザーが「固定したい割り当て」を個別に指定し、再計算の対象範囲を手動で設定する必要があった。
つまり、どの要素を変数として探索し、どの要素を定数として固定するかという問題の構造そのものを、ユーザーが毎回判断しなければならない設計だ。
この構想が解こうとしているのは、問題の構造自体をシステムが自動的に決定するという制御の問題だ。
業務の文脈、すなわち操作の種別と確定済みデータの保持状況を状態情報として記憶し、その状態情報に基づいて今回の最適化処理における変数と定数の構成を自動的に決定する。
ユーザーは通常の業務操作を行うだけでよい。
文章として整理していく過程で、後にshiftect.となるこの構造は、特許出願という選択肢が視野に入ってくることになる。