インテリジェントなアルゴリズム (GA、DBO など) により、ゼロアイドル フロー ショップ スケジューリング問題 (NIFSP) が解決されます。

最初に断っておきますが、この記事は私の個人公式アカウントのプッシュから直接コピペしたものですので、インテリジェントな最適化アルゴリズムに興味のある友人は私の個人公式アカウント「ヒューリスティックアルゴリズムディスカッション」をフォローしてください私は、さまざまなインテリジェントな最適化アルゴリズムを、古典的なアルゴリズムや、近年提案された新しいインテリジェントな最適化アルゴリズムを、MATLAB コードとともに公開アカウントで随時共有していきます。

この号の主な参考資料:

[1] Pan Quanke、Gao Liang、Li Xinyu. フロー ショップのスケジューリングとその最適化アルゴリズム [M]. 武漢: Huazhong University of Science and Technology Press、2013.

マシンが停止することは許されません。これは、ゼロアイドル スケジューリング問題として知られています。図 1(a) は、3×3 ゼロアイドル フロー ショップ スケジューリング問題のガント チャートを示しています。機械の連続稼働要件により、最初のワークピースが機械 2 に到着しても、機械はすぐに起動できません。図 1(b) に示す交換フローショップのスケジューリングと比較すると、マシン 2 の起動時間が遅れています。したがって、ゼロアイドルフローショップのスケジューリング問題は、一般的な交換フローショップのスケジューリング問題とは異なります。

写真

図1

01問題の
説明

ここでは、最大完了時間を最適化目標として主にゼロアイドル フローショップ スケジューリング問題 (NIFSP) を考慮します。これは、F m | perm, no - idle | C max として記録されます。m≧3 の場合、このタイプのスケジューリング問題はNP困難問題です。

F m | perm, no - idle | C max この問題は次のように説明できます:同じプロセス ルートに従ってm台のマシンで処理されたn 個のワークピースがあり、すべてのマシンでのワークピースの処理順序は同じであることが合意されています。同一の機械で加工する必要があり、隣接する 2 つのワークの間にアイドル時間がありません。機械間に無限のバッファゾーンがあると仮定すると、1 つのワークを複数の機械で同時に処理したり、1 つの機械で複数のワークを同時に処理したりすることはできません。各機械でのワークの処理時間はわかっています。問題は、各ワークの生産順序をどのように調整して最大完了時間を最小限に抑えるかです。

02数学
モデル

(以下の内容はツイート冒頭の参考書、パン先生の著書より抜粋)

写真

写真

03
処理性能指標の算出

最大完了時間 ( C max) は、ゼロアイドル フロー ショップのスケジューリング問題を研究するために最も一般的に使用される処理パフォーマンス指標です。NIFSP の最大完了時間の計算方法は 5 つあり、計算量はいずれもO ( nm ) です。

方法 1: マシン間の起動時間の差を計算する

方法 2: Kalezynski および Kamburowski 法 ( F 2 | perm | C max に変換)

方法3:前向き計算法

方法4:逆算法

方法 5: 双方向計算方法

ここでは主に前向き計算法を紹介します。(以下の内容はツイート冒頭で紹介した参考書、パン先生の本から引用しています。) 他の計算方法もこの本で参照できます。ガント チャートの描画を容易にするために、前方計算方法が選択されます。

写真

写真

写真

04インテリジェント
アルゴリズム(GA、DBO等)符号化方式

遺伝的アルゴリズム (GA) の場合、アルゴリズム自体が離散的であるため、選択、交叉、突然変異を通じて次世代が生成されます。したがって、染色体はスケジューリング スキームを表します。つまり、アーティファクトの順序は、その個別のコーディングです。たとえば、10 個のアーティファクトの並べ替えスキームの場合、MATLAB を使用して GA の 1 つの個体 (1 つの染色体) を初期化すると、次のようになります。

x=randperm(10);

効果は次のとおりです。

写真

ただし、粒子群最適化 (PSO)、スズメ探索アルゴリズム (SSA)、糞虫最適化 (DBO) などについては、それら自体が連続最適化問題として提案されているため、コーディング時にさらなる処理が必要です。GA と同様に、スケジュール計画 (ワークピースの順序付け) は個人を表し、SPV ルールを使用して実数エンコーディングを整数エンコーディングに変換できます。たとえば、10 個のアーティファクトの並べ替えスキームの場合、MATLAB を使用して DBO の個々 (1 つの染色体) を初期化する手順は次のようになります。

jobNum=10; % 工件数x=unifrnd(0,1,[1 jobNum]); % 产生10个[0,1]之间随机数os = 1:1:jobNum; % 产生从1到10的数列[~, up_index] = sort(x); % 对x进行降序排序, 得到位置序列x = os(up_index); % 按照位置序列排序工件, 得到一个调度方案

効果は次のとおりです。

写真

さらに、SPV ルールとは逆に、Li らは最大ランク値 (LRV) 法を提案しましたが、これも連続値を離散配列にマッピングするために一般的に使用される方法の 1 つです。図2に示すように、LRVは、集団の個人を表す一連の連続値を降順に並べることによって、一連のアーティファクトランキングを生成します。(参考文献: [2] LI X、YIN M. 多様性尺度に基づく置換フロー ショップ スケジューリングのための対立ベースの差分進化アルゴリズム [J]. Advances in Engineering Software, 2013, 55(8): 10-31.)

写真

図2 最大順位値方式の表現方法

05数値
実験

ここでは、NIFSP を解く際の DBO の効果について簡単なテストを行い、スケジューリング問題の例として Rec (21) を選択します。最大反復数Tは 2000 に設定され、母集団サイズNPは 60 に設定されます。以下に示す結果は、アルゴリズムをランダムに 1 回実行して得られた結果です。

まず、Rec05(ワーク20個×5台)を例に、DBOをランダムに1回実行した場合の解析結果を示します。図 3 は、各世代の集団の最適適応度収束曲線と平均適応度収束曲線をプロットしています。

写真

図 3 Rec05 の DBO-NIFSP の収束曲線

図 4 は、スケジュール結果のガント チャートを示しています。

写真

図 4 Rec05 の DBO-NIFSP ガント チャート

次に、Rec11 (ワーク 20 個 × 機械 10 台) を例として、DBO をランダムに 1 回実行した場合の解析結果を図 5 と図 6 に示します。

写真

図 5 Rec11 の DBO-NIFSP の収束曲線

写真

図 6 Rec11 の DBO-NIFSP のガント チャート

最後に、Rec41 (75 ワーク × 20 台の機械) を例として、DBO をランダムに 1 回実行した場合の解析結果を図 7 と図 8 に示します。

写真

図 7 Rec41 の DBO-NIFSP の収束曲線

写真

図 8 Rec41 の DBO-NIFSP のガント チャート

06
MATLAB コード

アイドル状態でないフローショップ スケジューリング問題 (NIFSP) を解決するためのインテリジェント アルゴリズム (GA、PSO、DE、GWO、SSA、DBO など) の MATLAB コード。 main.m はメイン関数であり、直接実行されます。それ; アルゴリズムの略語にちなんで名付けられた .m アルゴリズム コード; gantt_chart.m はガント チャートの描画に使用されます; object.m は Makespan を計算する目的関数です; Method.pdf は Makespan の計算方法を説明するために使用されます、コードでは以前の方向計算方法が使用されており、Car.xlsx と Rec.xlsx はフロー ショップ スケジューリング用の 2 つの古典的なテスト セットです。

出力結果には、メイクスパン、ワーク選別、計算時間、最適適応度収束曲線、平均適応度収束曲線、ガントチャートが含まれます。

ブロガーは、NIFSP を解決するために 10 個のアルゴリズムを選択しました。主にいくつかの古典的なアルゴリズムと、近年よく引用されたいくつかのアルゴリズムです。対応する MATLAB コードのリンクは次のとおりです。

遺伝的アルゴリズム (GA) は NIFSP を解決します

差分進化 (DE) は NIFSP を解決します 公開アカウントをフォローするとリンクがあります
粒子群最適化 (PSO) による NIFSP の解決 公開アカウントをフォローするとリンクがあります
Gray Wolf Optimization (GWO) による NIFSP の解決 公開アカウントをフォローするとリンクがあります
Whale Optimization Algorithm (WOA) が NIFSP を解決する 公開アカウントをフォローするとリンクがあります
Harris Hawk Optimization (HHO) による NIFSP の解決 公開アカウントをフォローするとリンクがあります
Sparrow Search Algorithm (SSA) は NIFSP を解決します 公開アカウントをフォローするとリンクがあります
African Vulture Optimization Algorithm (AVOA) による NIFSP の解決 公開アカウントをフォローするとリンクがあります
フンコロガシ最適化 (DBO) は NIFSP を解決します 公開アカウントをフォローするとリンクがあります
Star Crow 最適化アルゴリズム (NOA) が NIFSP を解決 公開アカウントをフォローするとリンクがあります
上記の 10 個のインテリジェントな最適化アルゴリズム (GA、DE、PSO、GWO、WOA、HHO、SSA、AVOA、DBO、NOA) は、NIFSP ファミリ バケットを解決します。 公開アカウントをフォローするとリンクがあります

以下のリンクからコード リストをダウンロードし、その中で必要なアルゴリズム コードを見つけて、対応するリンクに移動して取得できます。リストは同時に更新され、新しいコードが利用可能になると、リストで見つけることができます。リスト内のコードの一部はオープン ソースから取得したものです。いつでも無料でダウンロードできます。

リンク: https://pan.baidu.com/s/1SFDMplrL7tiqGZlrpOSGYg

抽出コード:8023

また、コミュニケーションのためにアルゴリズム コミュニケーション グループに参加することも歓迎します: 912369858

おすすめ

転載: blog.csdn.net/jieyanping/article/details/135188289