個別指導塾の時間割作成で、変更が発生するたびに全体を組み直している教室がある。
なぜ全体を組み直す必要があるのか。
答えは、動かしてよい授業と動かしてはいけない授業を区別できていないことにある。
個別指導塾の時間割は、確定済みの授業と、変更が必要な授業が混在している。
欠席が発生する。
講師が欠勤する。
保護者から曜日変更の連絡が入る。
講師が退職する。
そのたびに全体を組み直すと、関係のない確定済み授業まで動かすことになる。
生徒・保護者・講師への連絡が増える。
前回確定した授業の信頼性が下がる。
教室長の時間が変更対応に消費される。
必要なのは、動かす授業と残す授業を分けることである。
変更が必要な授業を探索対象とする。関係のない確定済み授業を固定対象として残す。
探索対象の中で、Hard制約を満たす成立候補を判定し、必要な部分だけを再生成する。
これが部分再生成である。
探索対象:変更が必要な授業。成立候補を探す対象。
固定対象:変更する必要がない確定済み授業。動かさない対象。
部分再生成:固定対象を守りながら、探索対象だけを再配置すること。
この3つの区別があると、1件の欠席や講師退職が発生しても、関係のない授業を動かさずに対応できる。
確定済み授業を固定対象として守りながら、変更が必要な授業だけを探索対象として再配置する。
この部分再生成の構造を個別指導塾向けに扱うことを前提に開発が進められているのが、shiftect. for EDUCA である。