亡父が高校教師をしていたので、年度初めの時間割作成の困難についてはよく聞かされていた。ここでのパラメーターは、毎日何時限まであるのか、先生は誰か、科目の種類、音楽室・図画工作室などの数、運動場をいくつに分割可能か、などであり、完璧にすべての教科を埋めるのはなかなか大変だったらしい。その後、これを計算するソフトができたとも聞いていないが、どうなっているのだろう。
室内楽コンサートでも似たような状況は出てくる。本番はいいのだが、問題はリハーサルである。各曲で奏者が異なり、奏者が集まれるとき、集まれないときがある。練習場の制約もあるだろう。
これらをパラメーターを入力するだけで、ぱたぱたっと予定表を埋めてもらえるソフトができないか、というのがY先生の問いかけであった。
実際のプログラムを組むところまでいっていないのだが、問題をモデル化するところまでやってみる。
例えば、某日の演奏会のプログラムが次のようだったとする。
1.vn vc duo
2. fl vn pf trio
3. vn pf duo
4. fl pf duo
5. fl vn duo
6. fl vn vc pf quartet
ここで、1と4は競合しないので、場所さえあれば同時に練習できるのでこれをひとまとまりとして扱い、それ以外の曲目と合わせて、練習の候補日(時間)=スロットにとりあえずぶちまけてみる。
このスロットは来られませんという奏者もいるであろう。ここでは4番スロットfl欠席、6番スロットvn pf 欠席、8番vc欠席、10番 fl vn 欠席としてみた。
これで、欠席者のいるスロット=曲目の組み合わせは使えないのでグレーにする。あとは残ったスロットについて一つずつ可能な曲を埋めていく。ここではめでたく全曲2回ずつのリハーサルが可能(緑色の部分)となるが、この作業を自動化するのはそれほど難しくないのではないかと愚考する。だれかプログラムしてください。