Next-fit kärlförpackning

Next-fit är en onlinealgoritm för soppackning . Dess ingång är en lista över föremål av olika storlekar. Dess produktion är en packning - en uppdelning av föremålen i fack med fast kapacitet, så att summan av storlekarna av föremål i varje fack är som mest kapaciteten. Helst skulle vi vilja använda så få papperskorgar som möjligt, men att minimera antalet papperskorgar är ett NP-hårt problem. Next-fit-algoritmen använder följande heuristik :

  • Den behåller en aktuell papperskorg , som initialt är tom.
  • När en vara anländer kontrollerar den om varan får plats i den aktuella papperskorgen.
    • Om den passar placeras den inuti den.
    • Annars stängs den aktuella papperskorgen, en ny papperskorg öppnas och det kommande föremålet placeras i denna nya papperskorg.

Next-Fit är en algoritm för begränsat utrymme - den kräver att endast en delvis fylld papperskorg är öppen när som helst. Algoritmen studerades av David S. Johnson i sin doktorsavhandling 1973.

Körtid

Körtiden för NextFit kan begränsas av , där är antalet objekt i listan.

Approximationsförhållande

Ange med NF(L) antalet fack som används av NextFit, och med OPT(L) det optimala antalet fack som är möjligt för listan L.

Övre gräns

Sedan, för varje lista , . Intuitionen till beviset är följande. Antalet fack som används av denna algoritm är inte mer än dubbelt så mycket som det optimala antalet fack. Med andra ord, det är omöjligt att 2 kärl som högst är halvfulla eftersom en sådan möjlighet innebär att vid någon tidpunkt var exakt en behållare högst halvfull och en ny öppnades för att rymma ett föremål av storlek som högst . Men eftersom den första har minst ett mellanslag på , kommer algoritmen inte att öppna en ny papperskorg för något föremål vars storlek är högst . Först efter att papperskorgen fylls med mer än eller om ett föremål med en storlek större än anländer, kan algoritmen öppna en ny papperskorg. Så om vi har -fack, är åtminstone -fack mer än halvfulla. Därför, . Eftersom är en nedre gräns för det optimala värdet , vi får att och därför .

Nedre gräns

För varje finns det en lista så att och .

Listfamiljen för vilken det gäller att ges av med . Den optimala lösningen för den här listan har fack som innehåller två artiklar med storlek och en fack med objekt med storlek (dvs. , medan lösningen som genereras av NF har fack med en artikel i storlek och en artikel med storlek .

Avgränsad artikelstorlek

Om den maximala storleken på ett föremål är uppfyller det asymptotiska approximationsförhållandet

  • alla ;
  • för alla displaystyle

Övriga fastigheter

Next-Fit packar en lista och dess invers i samma antal papperskorgar.

Next- k -Fit (NkF)

Next-k-Fit är en variant av Next-Fit, men istället för att bara hålla ett fack öppet, håller algoritmen de sista -fackarna öppna och väljer den första fack som objektet får plats i.

För , levererar NkF resultat som är förbättrade jämfört med resultaten av NF, men en ökning av till konstanta värden större än förbättrar dock algoritmen no vidare i sitt värsta tänkbara beteende. Om algoritm är en AlmostAnyFit-algoritm och .

Se även

  • Next-fit-decreasing (NFD) är offlinevarianten av Next-Fit: den accepterar alla inmatningsartiklar, beställer dem efter fallande storlek och anropar Next-Fit. Dess asymptotiska approximationsförhållande är mycket bättre: mindre än 1,7 istället för 2.
  1. ^ a b Johnson, David S (1973). "Nästan optimala bin packing algoritmer" (PDF) . Massachusetts Institute of Technology .
  2. ^ Suri, Subhash. "Linpackning" . UCSB datavetenskap . Hämtad 7 oktober 2021 .
  3. ^   Vazirani, Vijay V. (2003), Approximation Algorithms , Berlin: Springer, ISBN 3-540-65367-8
  4. ^   "Next-fit packar en lista och dess baksida i samma antal fack" . Operations Research Letters . 7 (6): 291–293. 1988-12-01. doi : 10.1016/0167-6377(88)90060-0 . ISSN 0167-6377 .