遺伝的アルゴリズムでタイムテーブル問題のスケジュールを表す方法は?

カマチ:

遺伝的アルゴリズムの場合、通常、このように記号化された遺伝子:

PARENT1: 101101010101001001001001110011100110101011101101
PARENT2: 010100111011010101110101001001101011001010010110

したがって、クロスオーバーでは、次のようにこの表現を使用して変更を行うことができます。

クロスオーバーポイントを選択します。

PARENT1: 1011010101010010 01001001110011100110101011101101
PARENT2: 0101001110110101 01110101001001101011001010010110

クロスオーバーを実行して子を作成します。

CHILD: 1011010101010010 01110101001001101011001010010110

その後、まったく新しい染色体になります。

CHILD: 101101010101001001110101001001101011001010010110

私の問題は、Javaで週次スケジュール遺伝子をどのように表すかです。

この記事の例は次のとおりです。http//secretgeek.net/content/bambrilg.pdf

私はJavaでこの時間割の問題を妨害し、表現したいと思います

FIGURE 10: An Entire University Timetable

Javaで。

トーマス・クレメル:

以下のコードは、問題にどのように取り組むかについてのアイデアを与えるかもしれません。1つのソリューション(大学の時間割)は、一連のシングルルームから構成されます。これらのシングルルームにはそれぞれ2次元配列があり、列は日、行は時間です。HOURSを16に設定したのは、夜間はクラスがないと思うからです。したがって、Hour Row 1は1日の最初の時間になります...おそらく午前7時から8時まででしょう。配列の値は、予約されているクラスを示します。

public class SingleRoom {
    static final int DAYS  = 7;
    static final int HOURS = 16;
    . . .
    private int[][] timetable = new int[DAYS][HOURS];   //0 would say room is not booked, >0 indicates the booked class (english advanced (12), object oriented programming (139), etc..)
}

public class Solution {
    static final int AVAILABLE_ROOMS = 26;
    . . .
    private SingleRoom[] university_timetable = new SingleRoom[AVAILABLE_ROOMS];    
}

突然変異:

クラスの変更を変更-クラスを別のランダムクラスまたはゼロに変更=予約なし

クラスのオン/オフの切り替え-特定の部屋の1日の1時間が予約されている場合、予約されていない場合はオフにし、ランダムクラスでオンに切り替えます。これにより、アルゴリズムが時間を予約しない可能性があります。変更クラス変異0が選択される可能性が低い

制約:ソリューションを作成した後、すべての制約をチェックし、有効なソリューションを維持します。新しい有効なソリューションは、(ソリューションの)母集団に挿入する必要があります。人口の多様性

しかし、あなたが参照したドキュメントでは、この問題のGAを実装する方法についてかなり説明されています(16ページ以降)。

私は、多目的最適化アルゴリズムmPOEMS(改良された改善ステップによる多目的プロトタイプ最適化)の一般的なJavaフレームワークを書きました。これは、進化的概念を使用したGAです。

あなたはここコードを見つけることができます、それはあなたにあなたの問題に取り組む方法のアイデアを与えるかもしれません:

このアルゴリズムで見つけることができるソリューションは、最先端のアルゴリズムSPEA-2およびNSGAを使用した科学的研究で比較されており、アルゴリズムが同等またはそれ以上のパフォーマンスであることが実証されています。パフォーマンスを測定します。

あなたはそれをここで見つけることができます

その他のリソース:このフレームワークをプロジェクト選択問題に適用する私の論文:http : //www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf

フレームワークのドキュメント:http : //thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf

mPOEMSプレゼンテーションペーパー:http ://portal.acm.org/citation.cfm?id=1792634.1792653

実際、少しの熱意があれば、汎用フレームワークのコードをニーズに簡単に適合させることができます。

あなたはあなたの仕事で、または学生としてこのGAを書きますか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

非遺伝的ケースのMatlab遺伝的アルゴリズム

分類Dev

univeristyタイムテーブルの遺伝的アルゴリズム

分類Dev

Java、遺伝的アルゴリズム巡回セールスマン問題

分類Dev

遺伝的アルゴリズム-どのデータ構造が必要ですか?

分類Dev

Pythonの遺伝的アルゴリズムの問題

分類Dev

遺伝的アルゴリズムでブリーダーを選ぶ

分類Dev

遺伝的アルゴリズム/線形ランクセレクター、変数の意味の問題

分類Dev

2次元配列でクロスオーバーを実行する方法-遺伝的アルゴリズム

分類Dev

データセット機能で遺伝的アルゴリズムを変更する方法

分類Dev

遺伝的アルゴリズム/遺伝的プログラミングソリューションの良い例は何ですか?

分類Dev

Golangを使用した遺伝的アルゴリズムでのルーレットホイールの選択

分類Dev

クロスエントロピーと遺伝的アルゴリズムの違いは何ですか?

分類Dev

NEATアルゴリズム:互いに素な遺伝子と過剰な遺伝子をクロスオーバーする方法は?

分類Dev

遺伝的アルゴリズムでのフィットネス比例選択(ルーレットホイール)の確率リストを生成します

分類Dev

遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

分類Dev

遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

分類Dev

"AWT-EventQueue-0" java.lang.StackOverflowErrorをスローするテール再帰遺伝的アルゴリズム

分類Dev

遺伝的アルゴリズムでフィットネススケーリングが必要なのはなぜですか?

分類Dev

遺伝的アルゴリズム用のJavaライブラリはどれですか?

分類Dev

Rの遺伝的アルゴリズム

分類Dev

遺伝的アルゴリズムツールボックス、Deapで0から1の間の乱数を生成する方法

分類Dev

Rで遺伝的アルゴリズムを使用してCARTのパラメーターを最適化する方法

分類Dev

プロセッサでジョブをスケジュールするためのアルゴリズム

分類Dev

遺伝的アルゴリズムDeapは突然変異データを保存しますか?

分類Dev

遺伝的アルゴリズムと反復局所探索アルゴリズムの違いは何ですか?

分類Dev

インターバルスケジューリングアルゴリズムまたはアクティビティ選択アルゴリズム

分類Dev

Java:遺伝的アルゴリズムのクロスオーバーのために2つのダブルビットストリングを混合する

分類Dev

遺伝的アルゴリズムの過剰適合を回避する方法

分類Dev

Javaでのジョブスケジューリングアルゴリズム

Related 関連記事

  1. 1

    非遺伝的ケースのMatlab遺伝的アルゴリズム

  2. 2

    univeristyタイムテーブルの遺伝的アルゴリズム

  3. 3

    Java、遺伝的アルゴリズム巡回セールスマン問題

  4. 4

    遺伝的アルゴリズム-どのデータ構造が必要ですか?

  5. 5

    Pythonの遺伝的アルゴリズムの問題

  6. 6

    遺伝的アルゴリズムでブリーダーを選ぶ

  7. 7

    遺伝的アルゴリズム/線形ランクセレクター、変数の意味の問題

  8. 8

    2次元配列でクロスオーバーを実行する方法-遺伝的アルゴリズム

  9. 9

    データセット機能で遺伝的アルゴリズムを変更する方法

  10. 10

    遺伝的アルゴリズム/遺伝的プログラミングソリューションの良い例は何ですか?

  11. 11

    Golangを使用した遺伝的アルゴリズムでのルーレットホイールの選択

  12. 12

    クロスエントロピーと遺伝的アルゴリズムの違いは何ですか?

  13. 13

    NEATアルゴリズム:互いに素な遺伝子と過剰な遺伝子をクロスオーバーする方法は?

  14. 14

    遺伝的アルゴリズムでのフィットネス比例選択(ルーレットホイール)の確率リストを生成します

  15. 15

    遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

  16. 16

    遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

  17. 17

    "AWT-EventQueue-0" java.lang.StackOverflowErrorをスローするテール再帰遺伝的アルゴリズム

  18. 18

    遺伝的アルゴリズムでフィットネススケーリングが必要なのはなぜですか?

  19. 19

    遺伝的アルゴリズム用のJavaライブラリはどれですか?

  20. 20

    Rの遺伝的アルゴリズム

  21. 21

    遺伝的アルゴリズムツールボックス、Deapで0から1の間の乱数を生成する方法

  22. 22

    Rで遺伝的アルゴリズムを使用してCARTのパラメーターを最適化する方法

  23. 23

    プロセッサでジョブをスケジュールするためのアルゴリズム

  24. 24

    遺伝的アルゴリズムDeapは突然変異データを保存しますか?

  25. 25

    遺伝的アルゴリズムと反復局所探索アルゴリズムの違いは何ですか?

  26. 26

    インターバルスケジューリングアルゴリズムまたはアクティビティ選択アルゴリズム

  27. 27

    Java:遺伝的アルゴリズムのクロスオーバーのために2つのダブルビットストリングを混合する

  28. 28

    遺伝的アルゴリズムの過剰適合を回避する方法

  29. 29

    Javaでのジョブスケジューリングアルゴリズム

ホットタグ

アーカイブ