タイムテーブルの自動ジェネレーターを作成する必要があります。
私の考えは、「n」個のタイムテーブルを生成し、条件に従ってスコアを付けることです。得点の高い時刻表が勝ちです。
私はこれらの変数を持っています:
- 規律
- 教授
- リスト項目
- クラスルーム
各分野には、コードと週に必要な時間数があります。時間数を「ブロック」と呼びましょう。
だから私はブロックの配列を持っています。
array = [5,4,3,2,1];
この配列は、私たちが持っている分野の数 (この場合は 5) と、1 週間に必要な時間数を意味します。最初の訓練は 5 時間、2 番目は 4 時間、3 番目は 3 時間、4 番目は 2 時間、5 番目は 1 時間必要です。
私のタイムテーブルは 5x5 の 2 次元配列 (月曜日から金曜日) で、5x5 配列に分野の配列を割り当てる必要があります。だから私はそれが生成できるすべてのソリューションが必要です.
例:
array = [5,4,3,2,1];
月曜日に最初の訓練 (5 時間)、火曜日に 2 番目 (4 時間)、水曜日に 3 時間と 4 時間 (3 時間と 2 時間)、火曜日に最後の訓練 (1 時間) を置くことができます。このようなもの:
discipline = {A,B,C,D,E};
array = {5,4,3,2,1};
ABC
ABC
ABC
ABD
AED
これは可能な解決策の 1 つにすぎませんが、すべての組み合わせが必要であり、その組み合わせを配列内に保存します。
5x5 の timetable 配列を理解できるコードに変換する関数を作成しました。その逆も同様です。したがって、ソリューションが生成されるたびに、そのコードを配列に保存します。
基本的に、5x5 の時刻表配列コードで満たされた配列が必要ですが、この部分で立ち往生しています。
私の英語でごめんなさい。