時間割作成を「パズル」と表現する人がいる。
しかしパズルには解が一つある。
時間割作成は違う。
時間割作成は、複数のリソース要素を複数の制約条件の下で最適に配分する問題だ。
生徒・講師・教室・時間帯という要素が絡み合い、それぞれに絶対に破れない条件と、できれば満たしたい条件が存在する。
解の候補は膨大にあり、その中から最もバランスのよいものを選ぶ。
この種の問題は、要素の数が増えるほど探索すべき組み合わせの数が爆発的に増大する。
生徒50名・講師20名・複数の教室・複数の時間帯という条件のもとでは、全ての組み合わせを列挙しようとすると、その数は人間が頭の中で処理できる規模をはるかに超える。
問題はさらに複雑だ。
条件には優先順位がある。
「この生徒はこの曜日しか来られない」は絶対に守らなければならない条件だ。
「兄弟は同じ曜日にそろえたい」は、できれば満たしたい条件だ。
「小学生は早めの時間帯に寄せたい」「講師の連続勤務は避けたい」も同様だ。
これらを1コマを置くたびに同時に判断している。
1コマの配置が他の全てのコマに影響する。
だからやり直しが発生する。
やり直すたびに、また全ての条件を頭の中で照合し直す。
気づけば10時間、12時間が過ぎている。
これは集中力や経験の問題ではない。
人間の認知能力には限界があり、同時に処理できる情報量には物理的な上限がある。
組み合わせの数が一定規模を超えると、人間が頭の中で最適解を探すことは構造的に不可能になる。
この構造そのものを変えなければ、どれだけ頑張っても限界は変わらない。