私は遺伝子アルゴリズムが初めてで、薬局の平日のリクエストの順序を最適化する遺伝的アルゴリズムを実装するように割り当てられました。まず、問題を説明しましょう:遺伝的アルゴリズム:リクエストの最適化
仕事の週の任意の日(金曜から金曜日)に出席するように要求する9つの家族がいます。薬局は1日当たり1〜3家族しか出席せず、同じ週に家族を繰り返すことはできません。主な目的は、参加する家族ごとに最適な日を最適化することです。そのようにして、薬局は問題に課せられた制約を払って1週間に最大の要求に従います。最適化アルゴリズムへの入力は、各ファミリによって発行されたリクエスト数の年間平均です。たとえば、次のように
(のは例を簡単にするために、唯一の3家族と協力しましょう):
入力:
| 月 | Tue | 水 | Thu | 金
F1 | | | | | F2 | 20 | 12 | 0 | 1 | 2
F3 | 2 | 0 | 0 | 19 | 3
考えられる解決策:
|月| Tue |水|木|金
| | F2 | F1 | F3 |
これまでのところ、私は遺伝学と遺伝的アルゴリズムの概念全体を研究してきました。パーティクルの最適化を見てきましたが、私の時間が短いので、フレームワークを使うことにしました。私はJGAPを使用していますが、私の主な問題はどのような方法で潜在的な解決策を提示するかです。私は交配、育種などに使用される染色体上のどのように遺伝子を編成すべきですか?私はすでにフィットネス機能を開発しましたが、私が望むように遺伝子をコード化することはできません。助言がありますか?
あなたが説明してきたとの例が与えられたものを、私は(この特定のケースでは、より適切であったその1かなり確実ではない)この問題は、線形組合せ最適化問題であり、そのような単純やナップザックアルゴリズムなどの適切な方法によって解決することができると思うから。 GAを使用しなければならないのですか、それともこのプロジェクトの希望ですか? – posdef
毎週新しいスケジュールを作成していますか、または事前に数週間分のスケジュールを並べ替えていますか? – Alain
5家族で9家族の場合、最大5、9、100万の解決策があります。それほど大したことではない、シンプルなBFSがそのトリックを行うべきである。それとも? – Ishtar