私は、教師が週に 1 回 (音楽のレッスンなどで) 個別に教える生徒数を設定する、教育の時間割を作成しようとしています。生徒はローテーションする必要があります。つまり、週ごとに同じ時間に教えてはいけません (私が「ローテーション期間」と呼んでいる、同時にレッスン間に許容される最小のギャップ)。最も単純な形式を考え出すのは簡単です:
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6
10.00 Alice Edgar David Charles Bertha Alice
10.30 Bertha Alice Edgar David Charles Bertha
11.00 Charles Bertha Alice Edgar David Charles
11.30 David Charles Bertha Alice Edgar David
12.00 Edgar David Charles Bertha Alice Edgar
しかし、ユーザーがルールを追加できるようにしたいと考えています。たとえば、Alice は 3 週目に 10.30 または 11.00 を作ることはできません。単純なバックトラック ループから始めましたが、可能性の数が多すぎるため、これが実現不可能であることにすぐに気付きました。私はあまり経験豊富なプログラマーではありませんが、これが私を高度なプログラミング手法に導く可能性があることを認識していますか. しかし、誰かが問題にアプローチする方法についていくつかのアイデアを私に与えることができれば、私はとても感謝しています. もちろん、私は助けを求めて周りを見回しましたが、議論のほとんどは、学校全体の時間割を作成するというより複雑なタスクに関するものであるようです. 遺伝的プログラミングはこれを調べるものですか?PHPを使用してプログラムをWebページとして構築しています。