2次元パッケヌゞングに぀いおオンラむンアルゎリズム

これは、オフラむンパッケヌゞングアルゎリズムに関する投皿の続きです。



問題の本質ゲヌムオヌバヌなしのテトリスのように、半無限のストリップず、有限の長方圢のセットがありたす。 四角圢のデヌタはリアルタむムで取埗されたす。 新しい長方圢はそれぞれすぐに配眮し、移動しないようにする必芁がありたす。 目暙は、パックされた長方圢の党䜓の高さを最小化するこずです。

これは、長方圢を半拘束ストリップにパックするタスクのオンラむンバリ゚ヌションです2次元ストリップパッキング、2DSP。



前の蚘事でもう少し理論的な情報を芋぀けるこずができたすが、今のずころ、これ以䞊の苊劎をせずに、アルゎリズムに移りたしょう。



このブリックのシヌケンスを説明するために䜿甚されたす



゜ヌスデヌタスポンサヌ-random.org。

いく぀かの発芋的アルゎリズムに぀いお説明したす。䞀般的な考え方は、ストリップを領域に事前に分割し、特定の基準に埓っお特定の領域に新しく到着した長方圢を配眮するこずです。



レベルアルゎリズム



すべおのレベルアルゎリズムのアプロヌチは、この段階で䜿甚可胜な長方圢の高さに基づいお、ストリップをレベルに分割するこずです。 長方圢は、可胜な限り巊から右に珟圚のレベルのベヌスに沿っお配眮されたす。 収たらない長方圢は次のレベルにパックされたす。 各レベルの高さは、その最䞊䜍の長方圢によっお決たりたす。 3぀のパッケヌゞオプションがありたす。

次の適合レベル-次のレベルが開くず、前のレベルは「閉じ」、もはや考慮されたせん。

最初の適合レベル-アルゎリズムの各ステップで、最䜎レベルから開始しお各レベルが衚瀺され、十分なスペヌスがある最初の適切なレベルで長方圢がパックされたす。

最適なレベル-アルゎリズムの各ステップで、 すべおのレベルがスキャンされ、最適なレベルが遞択されたす-パッケヌゞング埌に最小限のスペヌスになるレベル。

䞊蚘の3぀のアルゎリズムはすべお説明されおいたす。 この段階では、どちらがどこにあるか簡単に掚枬できたす。



アルゎリズムNFL、FFL、BFL
次の適合レベル

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1レベル= 0;  hレベル+ 1= 0;  H = 0;  i = 0
  2展開された長方圢がある間に
  3i ++
  4珟圚のレベルに十分なスペヌスがある堎合
  5長方圢を巊揃えでパック
  6hレベル+ 1<hLiの堎合
  7hレベル+ 1= hLi
  8終了する堎合
  9その他[珟圚のレベルに十分なスペヌスがない]
 10新しいレベルを開き、長方圢をパックしたす
 11H + = hレベル+ 1; レベル++
 12終了する堎合
 13終了
 14Hおよび梱包党䜓の印刷 




最初の適合レベル

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1レベル= 0;  hレベル+ 1= hL1;  H = hL1;  i = 1
  2展開された長方圢がある間に
  3i ++; レベル= 0
  4十分なスペヌスがある最䜎レベルを怜玢する
  5そのようなレベルが存圚する堎合
  6長方圢を巊揃えでパック
  7これが最䞊䜍レベルであり、hレベル<hLiの堎合
  8hレベル= hLi
  9終了する堎合
 10その他[既存のすべおのレベルに十分なスペヌスがありたせん]
 11最䞊䜍レベルの䞊に新しいレベルを䜜成したす
 12長方圢を巊揃えでパック
 13hレベル= hLi;  H + = hLi
 14終了する堎合
 15終了
 16Hおよび梱包党䜓の印刷 




最適なレベル

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1レベル= 0;  hレベル+ 1= hL1;  H = hL1;  i = 0
  2展開された長方圢がある間に
  3i ++; レベル= 0
  4最小の氎平方向の残䜙スペヌスで最䜎レベルを怜玢
  5そのようなレベルが存圚する堎合
  6長方圢を巊揃えでパック
  7その他[このようなレベルは存圚したせん]
  8最䞊䜍レベルの䞊に新しいレベルを䜜成したす
  9長方圢を巊揃えでパック
 10hレベル= hLi;  H + = hLi
 11終了する堎合
 12終了
 13Hおよび梱包党䜓の印刷 




バむレベルネクストフィット



Next Fit Levelのトリッキヌな修正。 2぀のレベルが䜜成され、それぞれに独自の戊略がありたす。

䞋䜍レベルたたはすべおの奇劙なもの最初の入力長方圢は巊端に詰められ、残りは右から巊に、十分なスペヌスがありたす。 次に、レベルが閉じられ、その高さはその䞭の最も高い長方圢によっお決たりたす。

䞊䜍レベルたたはすべおの偶数䞋䜍レベルに長方圢が1぀しかない堎合、レベルは䞋䜍レベルず同様にパックされたす。 2぀以䞊の堎合、最初の長方圢は、ストリップの端に抌し付けられた2぀のうちの䞋郚に詰められ、ストリップの端に抌し付けられたす。 埌続のものは、最初のものがどこにパックされたか巊たたは右に関係なく、右から巊にパックされたす。



混乱したように聞こえたすが、なぜタンバリンず螊るのかはすぐにはわかりたせん。 このアルゎリズムが明らかに提䟛する唯䞀のこずは、巊端にゆがむこずなく、ストリップのボリュヌム䞊でより均䞀な長方圢の分垃です。 ただし、圧瞮アルゎリズムを怜蚎する堎合は、この戊略に戻りたす。



BiNFLアルゎリズム
バむレベルネクストフィット

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1レベル= 1;  hレベル= 0;  H = 0;  i = 1
  2新しいバむレベルを開く
  3「䞋䜍レベルのパック」を呌び出す
  4Hおよび梱包党䜓を印刷
手順「䞋䜍レベルでの梱包」
  1最初にパックされた長方圢は巊揃えになりたす
  2フィットする埌続の長方圢は右揃えになりたす
  3十分なスペヌスがない堎合
  4hレベルはパックされた最も高い長方圢の高さで䞎えられたす
  5「䞊䜍レベルのパック」を呌び出す
  6終了する堎合
手順「䞊䜍レベルでの梱包」
  1Li + 1が最初にパックされる長方圢の堎合
  2李の䞊に巊揃え
  3その他
  4Li + 2がパックされた最初の長方圢の堎合
  5分以䞊のパック{hLi;  hLi + 1}
  6min {hLiに埓っお正圓化する;  hLi + 1}
  7その他
  8Li + jj> 3が䞊䜍レベルに収たる堎合
  9他のすべおの長方圢を巊揃えにしたす
 10else [長方圢が収たらない]
 11H + = h䞋+ h䞊; 新しいバむレベルを開く
 12終了する堎合
 13終了する堎合
 14終了する堎合 




シェルフアルゎリズム



シェルフアルゎリズムは長方圢の正確な高さに関連付けられおおらず、レベルシェルフの最初のアルゎリズムをパックした埌、次のアルゎリズムが少し高い堎合にスペヌスがほずんどありたせん。 この「少し」は、パラメヌタヌr∈0; 1によっお調敎されたす。 棚の高さはr kずしお定矩されたす。ここで、敎数kず最初のパックされた長方圢の高さhL i  に察しお r k + 1 <hL i ≀r kです。 ティアアルゎリズムず同様に、Next Fit、First Fit、およびBest Fitシェルフバむパス戊略が適甚されたす。 各シェルフに残された「予玄」は、最埌の2぀のケヌスで有益になりたすFFLずFFS、BFLずBFSを比范しおください。 この䟋では、 p = 0.7です。



NFS、FFS、BFSアルゎリズム
次の棚

 入力長方圢の寞法{wLi;  hLi}
       パラメヌタrずストリップ幅W
出力高さHおよびパッキング党䜓。
  1棚= 1;  w棚= 0;
     h棚= r ^ kæ•Žæ•°kに぀いお;  i = 0;  H = h棚
  2展開された長方圢がある間に
  3i ++;  kを蚈算する
  4十分なスペヌスがあり、r ^k + 1<hLi≀r ^ kの堎合
  5以前にパックされた長方圢の右偎に長方圢をパック
  6その他[スペヌスが䞍足しおいたす]
  7前の棚の䞊に新しい棚を䜜成する
          そしお、新しい棚に長方圢Liを詰めたす。
  8シェルフ++;  H + = r ^ k
  9終了する堎合
 10終了
 11Hず梱包党䜓を印刷したす。 




ファヌストフィットシェルフ

 入力長方圢の寞法{wLi;  hLi}
       パラメヌタrずストリップ幅W
出力高さHおよびパッキング党䜓。
  1棚= 1;  h棚= r ^ kæ•Žæ•°kに぀いお;
     i = 0;  H = h棚; シェルフ番号= 1
  2展開された長方圢がある間に
  3i ++;  kを蚈算する
  4十分なスペヌスで適切な高さの最䜎棚を怜玢する
  5そのような棚が存圚する堎合
  6以前にパックされた長方圢の右偎に長方圢をパック
  7その他[すべおの棚に十分なスペヌスがない
             適切な高さたたはそのような棚が存圚しない]
  8䞀番䞊の棚の䞊に新しい棚を䜜成したす
          そしお、新しい棚に長方圢Liを詰めたす。
  9シェルフ++;  H + = r ^ k; シェルフナム++
 10終了する堎合
 11終了
 12Hず梱包党䜓を印刷したす。 




ベストフィットシェルフ

 入力長方圢の寞法{wLi;  hLi}
       パラメヌタrずストリップ幅W
出力高さHおよびパッキング党䜓。
  1棚= 1;  h棚= r ^ kæ•Žæ•°kに぀いお;
     i = 0;  H = h棚; シェルフ番号= 1
  2展開された長方圢がある間に
  3i ++;  kを蚈算する
  41぀をすべおの棚䞋から始たるで怜玢したす
       適切な高さで、最小の氎平方向の䜙癜がありたす。
  5そのような棚が存圚する堎合
  6以前にパックされた長方圢の右偎に長方圢をパック
  7その他[スペヌスが䞍足しおいる、たたは
             適切な高さの棚はありたせん]
  8䞀番䞊の棚の䞊に新しい棚を䜜成したす
          そしお、新しい棚に長方圢Liを詰めたす。
  9シェルフ++;  H + = r ^ k; シェルフナム++
 10終了する堎合
 11終了
 12Hず梱包党䜓を印刷したす。 




高調波シェルフ



ハヌモニックシェルフは、同じレベルの高さだけでなく、同じ幅の1぀のレベルの長方圢にパックしたす。 結果はより倚くのレベルになりたすが、それらはより高密床になりたす。 蚱容幅を蚈算するために、远加のパラメヌタヌMが導入されおいたす。



ストリップの合蚈幅。簡単にするために、 M間隔I 1 .. I Mで割った単䜍ずしお取りたす。 著者は、 Mの合理的な倀は[3; 12]。 間隔の幅は次の匏で蚈算されたす。



;



各長方圢に぀いお、 pが蚈算されたす。 高さパラメヌタkは、オフショアアルゎリズムず同様に蚈算されたす。 2぀の条件がチェックされたす。高さr kの任意の棚に長方圢の堎所があり、そのpがすでにそこに詰められおいるかどうか。 少なくずも1぀が満たされおいない堎合、ブラックゞャックず最も快適な条件で、シェルフが䜜成されたす。 この䟋では、 p = 0.7、 M = 4です。



HSアルゎリズム
高調波シェルフ

 入力長方圢の寞法{wLi;  hLi}
       パラメヌタヌM、rおよびストリップ幅W
出力高さHおよびパッキング党䜓。
  1棚= 1;  h棚= r ^ kæ•Žæ•°kに぀いお;  i = 0
  2展開された長方圢がある間に
  3i ++;  r ^k + 1<hLi≀r ^ kずなるようにkを蚈算する
  41 /p + 1<wLi≀1 / pずなるようにpの倀を蚈算する
       ここで、1≀p <M
  5高さr ^ kの棚の䞭から1぀を芋぀ける
       幅が間隔Ipに適合する長方圢をパッキングする
  6十分なスペヌスがない堎合、たたは高さr ^ kの長方圢がない堎合
  7最䞊郚の棚の䞊に適切な高さの新しい棚が䜜成されたす
  8シェルフ++
  9終了する堎合
 10長方圢Liが棚の最初の堎合
 11h棚= r ^ k;  H + = h棚
 12終了する堎合
 13終了
 14Hおよび梱包党䜓の印刷 




アザヌル



レベルに分割するには、特定のしきい倀0 < Y <1/2を導入したす。 長方圢の幅は、ストリップの幅に応じおスケヌリングされたす。ストリップの幅は、1単䜍ず芋なされたす。 高さ2 j -1 <hL i ≀2 jおよび幅2 - x -1 <hL i ≀2 -xの長方圢は1レベルにパックされたす。 ぀たり、レベルは、ある敎数jず正の敎数xのペア x 、 j によっお特城付けられたす。



少なくずもYの幅を持぀長方圢は バッファヌず呌ばれ、それぞれが個別のレベルにパックされたす。 ぀たり、そのような長方圢が捕たえられた堎合、あなたは緊急に新しいレベルを開く必芁がありたす。その高さはそれに等しいです。 他のすべお非バッファヌは、最初の適切なレベルにパッケヌゞ化されたす。 適切-同じペア x 、 j の意味。 突然十分なスペヌスがない堎合、非バッファヌの長方圢が新しいレベルの最初になり、このレベルの高さは2 jになりたす。

䞀般に、ある皮の䞍健康な階局。

この䟋では、 Y = 0.4です。



Azarアルゎリズム
アザヌル

 入力長方圢の寞法{wLi;  hLi}
       パラメヌタYずストリップ幅W
出力高さHおよびパッキング党䜓。
  1hレベル= 0;  wレベル= 0; レベル= 0
  2展開された長方圢がある間に
  3wLi≥Yの堎合
  4レベル++;  wレベル= wLi;  hレベル= hLi;  H + = hレベル
  5else [wLi<Y]
  6次のようにxずjを蚈算する
           2 ^j-1<hLi≀2 ^ jおよび2 ^-x-1<wLi≀2 ^-x
  7最も䜎いx、jレベルを怜玢する
  8x、jレベルが䜿甚できない堎合、たたはLiがブロックされおいる堎合
  9レベル++;  hレベル= 2 ^ j;  H + = hレベル
 10wレベル+ = wLi
 11else [x、jレベルが䜿甚可胜で、ブロックされおいたせん]
 12wレベル+ = wLi
 13終了する堎合
 14終了する堎合
 15終了
 16Hおよび梱包党䜓の印刷 




圧瞮アルゎリズム



圧瞮アルゎリズムはBiNFLに基づいおおり、基本的にトップレベルのパッケヌゞング方法ぞのパッチです。

䞀般的な違いは、最䞊䜍が垞に巊から右に詰め蟌たれおいるこずです。

圧瞮パヌツの適合䞊䜍レベルにパックされた各長方圢に぀いお、䞋䜍レベルでその䞋にスペヌスがあるかどうかを確認したす。 䞋䜍レベルに移動しおその䞀郚を䞊䜍レベルに残すこずができる堎合、それは移動したすしたがっお、Part Fit-郚分的に前のレベルに「抌す」こずができたす。 このようにしお、第2レベルの党䜓の高さを枛らすこずができたす。 圌はパッケヌゞングにもはや根本的な圱響を䞎えたせん。 最初の図は、レベル間にぶら䞋がっおいる長方圢を瀺しおいたす-シフトされたした。

圧瞮完党適合䞊䜍レベルにパックされた各長方圢に぀いお、前のレベルに完党にシフトダりンできるかどうかがチェックされたす。 実際、可胜であれば、それは倉化しおいたす。 これにより、戊略的な利点が埗られたす。この方法で解攟されたスペヌスは、次の長方圢に䜿甚できたす。 残念ながら、2番目の図にはこのような状況は含たれおいたせんが、2぀の倱敗を確認できたす。

圧瞮コンボはい、これは前の2぀の組み合わせであり、したがっおそれらの利点の組み合わせです。 3番目の図に瀺したす。



アルゎリズムCPF、CFF、CC
圧瞮

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1i = 0;  H = 0
  2新しいバむレベルを開く
  3䞋䜍レベルのパッキングはBiNFLに䌌おいたす。  H + = h䞋䜍レベル
  4䞋䜍レベルの長方圢を詰めるのに十分なスペヌスがない堎合
  5「䞊䜍レベルのパック」を呌び出す
  6終了する堎合
  7Hおよび梱包党䜓の印刷
手順「䞊䜍レベルでの梱包」
  1展開された長方圢がある間に
  2i≥3で、Liが最初にパックされる長方圢の堎合
  3短い方に埓っお正圓化する
          巊端ず右端の長方圢の
  4十分なスペヌスがある堎合は、長方圢を䞋にスラむドしたす
          そしお12に行く
  5その他
  6i≥3で、Liが2番目の長方圢である堎合
  7右揃えしお12に進む
  8else [長方圢が収たらない]
  9H + = h䞊䜍レベル; 新しいバむレベルを開く
 10終了する堎合
 11終了する堎合
 12終了 




圧瞮郚フィット

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1i = 0;  H = 0
  2新しいバむレベルを開く
  3䞋䜍レベルのパッキングはBiNFLに䌌おいたす。  H + = h䞋䜍レベル
  4䞋䜍レベルの長方圢を詰めるのに十分なスペヌスがない堎合
  5「䞊䜍レベルのパック」を呌び出す
  6終了する堎合
  7Hおよび梱包党䜓の印刷
手順「䞊䜍レベルでの梱包」
  1展開された長方圢がある間に
  2hLi> VerticalSpaceおよびwLi≀Horizo​​ntalSpaceの堎合
  3長方圢Liを䞋にシフトしたす。  11に行く
  4その他
  5hLi≀VerticalSpaceおよびW-wレベル≥wLiの堎合
  6巊揃え。  11に行く
  7else [長方圢が収たらない]
  8H + = h䞊䜍レベル; 新しいバむレベルを開きたす
  9終了する堎合
 10終了する堎合
 11終了 




コンプレッションフルフィット

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1i = 0;  H = 0
  2新しいバむレベルを開く
  3䞋䜍レベルのパッキングはBiNFLに䌌おいたす。  H + = h䞋䜍レベル
  4䞋䜍レベルの長方圢を詰めるのに十分なスペヌスがない堎合
  5「䞊䜍レベルのパック」を呌び出す
  6終了する堎合
  7Hおよび梱包党䜓の印刷
手順「䞊䜍レベルでの梱包」
  1展開された長方圢がある間に
  2hLi≀VerticalSpaceおよびwLi≀Horizo​​ntalSpaceの堎合
  3長方圢Liを䞋にスラむドさせたす。  11に行く
  4その他
  5hLi≀VerticalSpaceおよびW-wレベル≥wLiの堎合
  6巊揃え。  11に行く
  7else [長方圢が収たらない]
  8H + = h䞊䜍レベル; 新しいバむレベルを開く
  9終了する堎合
 10終了する堎合
 11終了 




圧瞮コンボ

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1i = 0;  H = 0
  2新しいバむレベルを開く
  3䞋䜍レベルのパッキングはBiNFLに䌌おいたす。  H + = h䞋䜍レベル
  4䞋䜍レベルの長方圢を詰めるのに十分なスペヌスがない堎合
  5「䞊䜍レベルのパック」を呌び出す
  6終了する堎合
  7Hおよび梱包党䜓の印刷
手順「䞊䜍レベルでの梱包」
  1展開された長方圢がある間に
  2wLi≀Horizo​​ntalSpaceの堎合
  3長方圢Liを䞋にスラむドさせたす。  11に行く
  4その他
  5wLi> Horizo​​ntalSpaceおよびW-wレベル≥wLiの堎合
  6巊揃え、11ぞ
  7else [長方圢が収たらない]
  8H + = h䞊䜍レベル; 新しいバむレベルを開く
  9終了する堎合
 10終了する堎合
 11終了 




オンラむンフィット



以前の方法よりも面倒な方法ですが、生産性も向䞊したす。 タスクのオフラむンバヌゞョンのBurkeアルゎリズムに基づいおいたす。 おそらくいく぀かの偎面を描きたす。







パッケヌゞングプロセス䞭に、空の領域が圢成される堎合がありたす。この領域は、アルゎリズムが最初に埋めようずしたす。 それらがどのように圢成されるかは、巊の写真に瀺されおいたす。 このため、垯域幅の特定の衚珟を保存する必芁があるこずに泚意しおください。

空の領域を埋めた埌、2぀たたはうたくいかないかもしれたせんを取埗するこずがありたす。



たた、1ステップのパッケヌゞングで耇数の領域を䞀床に䜜成できたす。長方圢の䞋のスペヌスは垂盎方向に分析され、「ステップ」の数で分割されたす。 䞭倮の写真では、長方圢が再びパックされた埌の空の領域の2぀の分割が瀺されおいたすずころで、この堎所では氎平に分割した方が良いように思われたす。

䞀般に、森の䞭に行くほど、より倚くのボむドが発生したす。 各ステップで、急速にフェヌドするボむドを詳しく調べたす。 ここで、別の最適化が衚瀺されたす。䜿甚可胜な領域の枬定倀を入力し、奜たしくないものを砎棄できたす。



適切な空き領域がない堎合、パッケヌゞングは​​バヌク方匏で続行されたす。 思い出させたす。 ストリップの高さマップが䜜成され、珟圚最も䜎い領域で長方圢が詊行されたす。 そこに入らない堎合、䜎い堎所は最も近いステップのレベルたで「埋められ」、怜玢が繰り返されたす。 したがっお、朜圚的な堎所を最䞊郚にプッシュするこずができたす。次に、空きスペヌスを圢成するための別のオプションがありたす右を参照。

空の゚リアを識別するために、すべおのステップで同じ暙高マップが䜿甚されたす。



䞀般的に、すべおがすでに蚀われおいたす。 最初に空の゚リアに詰め蟌み、次に最䞋局、最埌に重芁なこずずしお、䞊から「最䞋局」の瞮退したケヌスに詰め蟌みたす。



OFアルゎリズム
オンラむンフィット

 入力長方圢の寞法{wLi;  hLi}およびストリップ幅W
出力高さHおよびパッキング党䜓。
  1i = 0;  H = 0
  2芁玠数がWに等しい線圢配列を䜜成したす
  3展開された長方圢がある間に
  4i ++
  5Liを詰め蟌むのに十分なスペヌスがないか、空の゚リアのリストを怜玢する
  6wEmptyArea≥wLiおよびhEmptyArea≥hLiの堎合
  7空の領域に長方圢を詰める
  8その他
  9長方圢が空の領域に収たらない堎合
 10利甚可胜なパッキング幅に぀いお線圢配列を怜玢する
 11else [線圢配列のスペヌスが䞍足しおいたす]
 12巊䞊に長方圢を詰める
             より小さなスペヌスに぀ながるむンデックスから
 13終了する堎合
 14終了する堎合
 15終了
 16H =線圢配列の最高゚ントリ
 17Hおよび梱包党䜓を印刷 




あずがき



䜕が起こっおいるのかずいう目的のない感芚を払拭するために、半限られたストリップでの2次元パッキングアルゎリズムの適甚の叀兞的で刺激的な䟋を挙げたす。 これは、マルチプロセッサシステム甚のタスクスケゞュヌラです。 クラスタ向けの最新の゜フトりェアでは、より「成熟した」アルゎリズムが䜿甚されたすが、 蚈画タスク自䜓は2DSPに削枛されたす。 クラスタヌ操䜜の条件䞋では、着信タスクのフロヌはパッケヌゞングのオンラむンデヌタにすぎたせん。氎平方向のディメンション-必芁なコア数、垂盎方向-タスクの時間です。 すべおがテクノロゞヌの倜明けのようです。コンピュヌタヌに接続し、必芁なリ゜ヌスの量ずパンチカヌドがスピンする時間を事前に譊告したす。 スケゞュヌラは、タスクに特定のプロセッサを割り圓お、開始時間を決定する必芁がありたす。 ちなみに、スケゞュヌラがタスクを埅っおいるか、その堎所を考えおいる間に時間がなくなるため、玔粋な圢匏ではアルゎリズムを䜿甚できたせん。 さらに、プログラマヌはさたざたな特定の条件䞋で手で瞛られたす。タスクの優先床。 実行時にタスクをスケヌリングする機胜。 ハヌドりェアの遅延ずシステムのセルフサヌビス障害が発生したリ゜ヌスに基づく再配垃を含む。 タスク内の通信の性質をクラスタヌのアヌキテクチャなどにマッピングする

アルゎリズムは、実際の生掻に適甚し始めるたで、数孊的厳密さにおいお完璧です。



そしお最埌に-心地よい、非人栌的な圢でのアルゎリズムの比范説明。 これは、最適なパッキング高さ長方圢の面積の合蚈をストリップの幅で割ったものず埗られたものの比率です。

Nfl Ffl Bfl ビンフル NFS FFS Bfs Hs アザヌル CPF CFF CC の
0.56 0.63 0.75 0.56 0.45 0.57 0.57 0.37 0.44 0.60 0.59 0.63 0.72



コヌドQt

アルゎリズムpackager.h packager.cpp

Gui window.h window.cpp renderarea.h renderarea.cpp main.cpp



All Articles