shiftect.はソルバーではない。
この区別は重要だが、混同されやすい。
なぜ別物なのかを説明する。

ソルバーとは何か。
与えられた問題を解く最適化エンジンだ。
制約条件と目的関数を定義すれば、その範囲で最適解を探索する。
線形計画法、整数計画法、制約充足問題など、数理最適化の手法を実装したものがソルバーだ。
与えられた問題を解くことが、ソルバーの役割だ。

shiftect.は何をしているのか。
問題を解くのではなく、問題の構造を決めている。
業務の状態に応じて、何を探索対象とし何を固定対象とするかを自動的に決定する。
その上で最適化処理を実行する。
最適化エンジンは外部のものを必要とするならば使えばいい。
shiftect.の核心は最適化エンジンではなく、最適化処理への入力構成を業務の状態に応じて自動的に決定する制御部分にある。

この違いを具体的に言えば、こうなる。
ソルバーは「この問題を解いてください」という入力を受け取って動く。
shiftect.は「今の業務の状態はこうだ」という情報から「この問題を解いてください」という入力を自動的に組み立てて、最適化処理に渡す。
ソルバーが解くのは問題そのものだ。
shiftect.が解くのは「どういう問題として解くべきか」という問題の前段だ。

なぜこの区別が重要かというと、スケジューリングの現場で本当に難しいのはソルバーが解く部分ではないからだ。
月初の全体生成、確定済み配置を固定した再生成、振替先だけを探索する自動振替。
これらは毎回「どういう問題として解くべきか」が変わる。
その変化を業務の状態から自動的に読み取り、問題の構造を動的に組み立てる仕組みがなければ、ソルバーをいくら高性能にしても日常業務には使えない。
shiftect.が特願2026-026989として出願している技術の本体は、この問題の構造を動的に決定する制御の仕組みだ。
ソルバーとshiftect.はそこが根本から異なる。