時間割編成問題: データ整形課題

柿本 陽平 / MOSS

時間割編成問題のモデルで使う定数を、生データ timetable.csv から作成する課題である。以下の仕様に従い、定数ファイルと対応表を作成すること。

1. データの定義

1.1 科目

科目は「科目名+学年+学科」で1科目とみなす。例えばLHR は複数あるが、1年1学科のLHR と1年2学科のLHR は別科目とみなす。そのため科目数は timetable.csv のヘッダー行を除いた行数と等しい(270科目)。科目ID は行番号と一致させる。

1.2 教員

教員名は匿名化のため「教員1」のように命名されている。「教員n」のn には特に意味はない。そのため教員ID を付ける場合には、教員列を上から順に読み、/ で分割して、初めて出現した教員名に 1, 2, 3, ... を付ける。教員名中の数字n は匿名化のためのラベルであり、ID として使わない。

例:

学年,クラス,科目名,教員,教室
1,1,LHR,教員1,235
1,1,保健/体育実技,教員6/教員7,235
1,1,英語,教員1/教員2,235
1,1,化学,教員5,2

この場合、教員ID は次のようになる。

ID,教員名
1,教員1
2,教員6
3,教員7
4,教員2
5,教員5

1.3 教室

教室は特に規則なく命名されている。ただし、すべて数字となっている。教室ID は教員と同じ方法で出現順に付番すること。

2. 定数の作成

a、h、d、m は timetable.csv から作成すること。

3. その他の定数

その他の定数は timetable.csv からは読み取れない。同じフォルダに置いてある b.csve.csvg.csv を使うこと。

4. 対応表の作成

次の3つの対応表を作成すること。これがないと実験後、結果を時間割に戻せなくなる。

5. 注意: 列名の読み替え

timetable.csv の第1列は「学年」という名前だが、実際には学科(1〜4)が入っている。同様に第2列「クラス」には学年(1〜5)が入っている。b.csv などの係数ファイルの grd(学年)、dpm(学科)と突き合わせる際にはこの読み替えに注意すること。