0

遺伝的アルゴリズムを使用してタイムテーブルの問題を設計する必要があります。問題のパラメータは以下のとおりです。 教師:8 件名:16 クラスの部屋:4 日:5つの スロット:5遺伝的アルゴリズムのための染色体構造の助けが必要

染色体構造は何をすべきですか?

+1

どの言語?何を試しましたか?ここの人々はあなたのために仕事をしません、あなたは質問にもっと努力しなければなりません! –

+0

染色体構造は5×5配列でなければなりません。あなたの遺伝的アルゴリズムの目的は、このタイムテーブルを埋めることです。しかし、ここでは多くの情報が欠落しています。いくつのクラスがありますか(学生はいないようです)。正確に何を最適化しようとしていますか? –

答えて

0

この回答は、自分のnpmパッケージを参照しています。私はしようとすると私は可能な限り一般的な私の答えを作るだろう。

我々は問題を解決するためにgeneticalgorithmようなものを使用した場合、あなたは以下を実装する必要があります:

  1. フィットネス機能
  2. 変異機能
  3. クロスオーバー機能
  4. ダイバーシティ機能(またはdoesABeatBFunction )

同盟国は4つの機能すべてに及んでいる。あなたの染色体機能が単なる古くからのJSONであり、それぞれの機能を説明して議論しているとしましょう。

フィットネス機能

フィットネス機能はJSONを処理できますか?確かに、あなたはそれを行うことができます。 JSONが有効なスケジュールでない場合は、それに0の適合度を割り当てることができます。どういうわけか、1つの無効なスケジュールを別のものよりも優れていると評価できる場合は、さらに優れています。

変異機能

あなたはJSONのための突然変異の機能をコーディングすることはできますか?はい。 2人の教師を周りに置き換えてください。これは、有効な子を作成する必要はありません(それはプラスかもしれない)。これは関係なく、フォーマットトリッキーなことができなかった

クロスオーバー機能を。あなたが突然変異関数を完成させた後、あなたのアルゴリズムがより良い答えを実際に進化させてから、クロスオーバーに取り組むことがわかります。交差はがある親からの答えの一部と別のものからの回答の一部を意味することがあります。それを念頭に置いて、あなたは1人の先生ともう1人のクラスの部屋を使うことができます。クロスオーバは、それが非常に有用であるために可能なすべてのデータエンコーディングをカバーする必要はありません。これを段階的に実装し、遺伝的アルゴリズムとは独立してテストします。

ダイバーシティ機能

2つのJSONのconfigsが類似または異なる場合は、測定することができますか?これはかなり前進しているはずです。それが等しいかどうかをJSONの各ノードで確認することは、合理的な最初の実装になります。私はあなたの染色体構造は長い間、あなたが上記の機能を実装する方法を想像することができるようほとんど何もすることができます信じてい

結論

。私はJSONを提案しました。なぜなら、それは構造体ではなく、その点を証明するためにほぼすべての構造体を格納する方法なのです。

遺伝的アルゴリズムの核は、上記の機能の実施に依存し、染色体とは独立している。あなたの関数の実装だけが染色体で動作する必要があります。

乾杯!

関連する問題