フローショップスケジューリングは、一連のジョブが固定された順番で一連のマシンで処理しなければならない製造環境に発生する古典的な最適化の問題です。 目標は、ショップフロアを通じてジョブのシーケンスを決定することです。 これにより、ブッパ(合計アイドル時間)、またはイヤリング/耐久性のペナルティなどのメトリックを最小限に抑えます。 実際のフローショップの問題は、多くの場合、仕事の家族、機械の故障、セットアップ、および季節的な決定的な決定を組み合わせることが困難な方法(CP)を組み合わせることが困難な方法と、非常に困難な方法が非常に困難な方法が、非常に困難な方法が非常に困難な方法である。

フローショップスケジューリングの理解

古典的なフローショップでは、各ジョブは同じ順序で機械のセットで処理されなければなりません。例えば、ジョブ1はマシンA、B、C、そして他のすべてのジョブと同様に通過しなければなりません。マシンは2つのジョブを同時に処理することはできません。各操作は既知の処理時間を持っています。決定の問題は、選択した目的を最小限にするジョブ(またはシーケンス)の透過性を見つけることです。ジョブまたはマシンの数は、コンビネーション爆発につながる小さな増加でさえ。 フローは、NP-SP-硬化症例は、PF-SP-SP-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-

フローショップのさまざまな問題

  • 打流店:[]] ジョブのシーケンスは、すべてのマシンで同じです。
  • ]ハイブリッドフローショップ:[各ステージに複数の並列マシンが存在する。
  • ]フレキシブルフローショップ:]は、さまざまな操作に使用できます。ルーティングの柔軟性を追加します。
  • の待たないフローショップ:[]]]は、機械間の待ち時間がない、仕事の処理が継続的である必要があります。

各バリアントは、制約が全体に再構築することなく、制約を加えるか削除できるため、制約プログラミングを理想的なモデリングフレームワークにすることで、満足しなければならない新しい制約を導入しています。

制約プログラミングとは?

制約プログラミングは、宣言的に保持しなければならない制約を固定することによって、組み合わせる問題の解決のパラダイムです。CPモデルは、変数(有限または無限のドメイン)と、可能な値の組み合わせを制限する制約のセットで構成されています。ソルバーは、プロパゲーションアルゴリズムを使用して、ドメインを減らし、ソリューションスペースを探索するヒューリスティックを検索します。制約が複雑または非分岐的であるとき、従来の整数プログラミングとは異なり、CPは、そのようなすべてのセットアップや、または分岐点を区別するような、すべての方向の方向に変化を変化させる。

スケジュールのために、CPモデルは、通常、各操作の開始、終了、および期間を表すために間隔決定変数を使用します。 ソルバーは、同じマシンの重複の操作、ジョブの点述の操作、およびリソース容量が上回らないことを確実にするために、制約伝搬を適用します。

フローショップスケジューリングに制約プログラミングを適用

CPの強みは、異種異種制約を組み合わせる能力にあります。フローショップをモデル化する際には、次のコンポーネントが定義されます。

変数とドメイン

  • []Job シーケンス変数:[]] ジョブの相対的な順序を決定(多くの場合、位置または透過のための整数変数として表されます)。
  • []]操作間隔:[]]]]の各操作は、開始、終了、長さ(処理時間)の間隔変数です。
  • 機械リソース:]]] 重複しない非aryリソース(または並列マシンの累積)。

コア制約

  • [] 優先制約:[]] それぞれのジョブでは、i+1 の動作が始まる前に、i+1 が終了する必要があります。
  • ]機械容量制約:[]]] 2つの操作は同時に同じ機械で処理することができます。
  • []]全差分制約:[ 透過流店では、各機械の注文変数は1...nの透過率でなければなりません。
  • []追加制約:[]]リリース日、期限、セットアップ時間、メンテナンスウィンドウを簡単に追加できます。

目的関数

最も一般的な目的は、makespan(Cmax)を最小化しています。しかし、CPは、総重みのあるtardiness、アイドルタイム、または任意のカスタムメトリックを最適化することができます。ソルバーは、異なる検索戦略をサポートしています:ブランチと-バウンド、ドメイン分割、または大規模な近隣検索(LNS)。

CP の解決法のプロセス

現代のCPソルバー(例:IBM ILOG CP Optimizer、Google OR ツール、または Choco)を使用して、次の手順を実行します。

  1. [モデル処方:]] フローショップを決定変数と制約に変換します。
  2. []コンストラント伝搬:[] ソルバーは、制約から干渉することによって自動的にドメインを削減します。
  3. [Search:]]]検索戦略(例:「first-fail」)は、変数を選択し、値を割り当てます。 伝播は繰り返されます。
  4. []:]]のバックトラック。デッドエンドが到達すると、ソルバーのバックトラックが代替値に値する。
  5. 最適化:]] 可能なソリューションが見つかったら、ソルバーは最適なことが実証されるまで、より良いものを検索し続けます。

このアプローチは、検索スペースの大規模な領域を伝播するので、大幅なインスタンスでも、素早く良いソリューションを見つけることが多いです。

制約プログラミングの利点

制約プログラミングは、フローショップスケジューリングのためのいくつかの異なる利点を提供します。

  • [ 表現力:] 複雑な現実世界制約(例、シーケンス依存セットアップ時間、ワーカーシフトルール)は、線形化のトリックなしで自然にモデル化することができます。
  • [] 増加分解:[ 条件変更(マシンが故障)すると、新しい制約でモデルを修復することができ、ソルバーは以前の検索情報を再利用することができます。
  • ] スケールへの負荷:[ CP は多項式時間を保証するものではなく、 バイトの強制列挙よりもはるかに優れ、しばしば強く制約された問題に MILP を抜く。
  • [マルチオブジェクト処理:[ CP は、レキソグラフィまたは重みのある合計の目的を処理することができ、複数の実行でパリトのフロント探索が可能です。
  • ヒューリスティックスとの統合:[ 大規模近隣検索、CP がヒューリスティックによって生成される近隣を探索するために使用されます。

リアルワールドアプリケーション

多くの業界がCP-ベーススケジューリングシステムに成功しました。

自動車アセンブリ

車の組み立てでは、100以上のジョブは、溶接、塗装、最終組立場所を通過する必要があります。制約には、塗料の色変更コストとツーリング要件が含まれます。CPモデルは、会議の期限が間に合っている間、セットアップ時間を20〜30%削減するスケジュールを生成できます。

半導体製造

ウェーハの製作には、高価な機械で数百の操作が伴います。CP は、バッチ処理、再エントラントフロー、および厳格なクリーンルームの制約を処理します。[] IBM] および ] Google OR ツール のような企業は、この分野で使用されます。

ヘルスケアスケジューリング

病院は複数の手術室、回復湾および専門チームを渡る外科をスケジュールします。CPは患者の待ち時間を最小限に抑え、外科医の可用性と器具の滅菌サイクルを尊重しながら、リソースの活用を最大化するのに役立ちます。

物流・倉庫

配送センターでの配送、梱包、配送をフローショップとしてモデル化できます。CP は、注文が旅行時間と混雑を最小限に抑える順番で処理されるようにします。

チャレンジと未来の方向性

パワーにもかかわらず、制約プログラミングは課題に直面しています。非常に大きなインスタンス(ジョブのハンデ、マシンの数十)では、CPは長期のランタイムを必要とするかもしれません。ハイブリッドアプローチは、混合整数リニアプログラミング(MILP)またはメタヒューリスティックスとCPを組み合わせることは、アクティブな研究の分野です。別の傾向は、検索半数をガイドするために機械学習]の使い方で、ほぼすべてのソリューションのスピードを見つけることを改善します。

また、クラウドコンピューティングの上昇により、CPモデルが分散システム上で解決し、リアルタイムスケジューリング要求まで拡張することができます。IoTとデジタルツインとの統合により、店舗の階層データストリームとして、制約が動的に更新される可能性があることを意味します。

コンテンツ

制約プログラミングは、フローショップスケジューリングへの成熟した進化したアプローチです。 実務家が、解決方法ではなく、CPが堅牢で柔軟性があり、多くの場合、最適なスケジュールを実現する方法に焦点を当てることを可能にすることにより、計算リソースが成長し、ソルバー技術が進歩するにつれて、CPは引き続き製造とそれを超える運用の卓越性のコーナーストーンとなります。 CPを採用する組織は、リードタイムの削減、納期の低減、および、および業務プロセスの効率の向上を期待できます。