1

私は、特別な種類のJob Shop スケジューリング問題であるProject Scheduling Optimizationライブラリを作成しています。簡単にするために、これまでのところ、私のアルゴリズムはワーカーがプロジェクトの唯一のリソースである場合にのみ機能し、これまでのところ 2 種類の制約しかありません。

1) すべての労働者は、自分が取り組むことができるプロジェクトに制約があります。一部の労働者のみが同じプロジェクトに取り組むスキルを持っています (たとえば、W1、W3、W7 の労働者はプロジェクト P2 に取り組むことができ、W2、W3、W5 はプロジェクト P3 に取り組むことができます。など)、同じ労働者がスキルを持って取り組むことができます。複数のプロジェクトで、異なる時間に複数のプロジェクトに取り組むことが許可されています (たとえば、W1 は P1 で 5 日間連続して作業し、その後 P2 に 4 日間切り替え、その後 P1 に戻るなど)。

2) すべての労働者には、毎日何時間働くことができるかという制約があります。これは、労働者の効率を表すものでなければなりません。

まず、4 つのプロジェクトと 4 人の作業員だけで構成される単純なタイムテーブルを作成しました。

プロジェクト:

  • P1; 開始: 5 月 1 日; 締め切り: 30 日; 所要時間: 300
  • P2; 開始: 7 月 1 日; 締め切り: 60 日; 所要時間: 150
  • P3; 開始:5月15日。締め切り: 45 日; 所要時間: 50
  • P4; 開始:4月20日。締め切り: 20 日; 所要時間: 150

労働者:

  • W1; 効率: 10h/日; プロジェクトで利用可能: P1、P2、P3、P4
  • W2; 効率: 5h/日; プロジェクトで利用可能: P1、P3
  • W3; 効率: 8h/日; プロジェクトで利用可能: P1、P4
  • W4; 効率: 6h/日; プロジェクトで利用可能: P2、P4

このように問題が設定されている場合、遺伝的アルゴリズムの染色体はどのように見えるべきか、つまり、このデータを GA 染色体に変換して、GA が処理方法を知っている (数値的な適合度を計算する) 方法は? の例はJava完璧です。

4

2 に答える 2