Zmniejszające się opakowanie z pierwszego dopasowania

Zmniejszanie pierwszego dopasowania (FFD) to algorytm pakowania w pojemniki . Jego dane wejściowe to lista elementów o różnych rozmiarach. Jego wyjściem jest pakowanie - podział przedmiotów na pojemniki o ustalonej pojemności, tak aby suma rozmiarów przedmiotów w każdym pojemniku była co najwyżej pojemnością. W idealnej sytuacji chcielibyśmy użyć jak najmniejszej liczby pojemników, ale minimalizacja liczby pojemników jest problemem NP-trudnym, dlatego używamy w przybliżeniu optymalnej heurystyki .

Opis

Algorytm FFD działa w następujący sposób.

  • Uporządkuj elementy od największego do najmniejszego.
  • Otwórz nowy pusty pojemnik, pojemnik nr 1.
  • Dla każdego elementu od największego do najmniejszego znajdź pierwszy pojemnik, do którego pasuje element, jeśli taki istnieje.
    • Jeśli taki pojemnik zostanie znaleziony, umieść w nim nowy przedmiot.
    • W przeciwnym razie otwórz nowy pusty pojemnik i umieść w nim nowy przedmiot.

W skrócie: FFD porządkuje artykuły według malejącego rozmiaru, a następnie wywołuje pakowanie w pojemnikach pierwszego dopasowania .

Równoważny opis algorytmu FFD jest następujący.

  • Uporządkuj elementy od największego do najmniejszego.
  • Dopóki są pozostałe elementy:
    • Otwórz nowy pusty pojemnik.
    • Dla każdego elementu od największego do najmniejszego:
      • jeśli mieści się w bieżącym pojemniku, włóż go.

W standardowym opisie przeglądamy elementy raz, ale pozostawiamy wiele otwartych pojemników. W równoważnym opisie powtarzamy elementy wiele razy, ale za każdym razem pozostawiamy tylko jeden otwarty pojemnik.

Analiza wydajności

Wydajność FFD analizowano w kilku krokach. Poniżej oznacza liczbę pojemników używanych przez FFD dla zestawu wejściowego S i pojemności pojemnika C.

  • W 1973 roku DS Johnson udowodnił w swojej pracy doktorskiej, że dla dowolnej instancji S i pojemności C .
  • W 1985 roku BS Backer podał nieco prostszy dowód i wykazał, że stała addytywna nie przekracza 3.
  • Yue Minyi udowodnił, że 1991 r., aw 1997 r. poprawił tę analizę do wraz z Li Ronghengiem.
  • W 2007 roku György Dósa udowodnił ścisłe powiązanie i przedstawił przykład, dla którego .

Najgorszy przykład

Przykład dolnej granicy podany przez Dósę jest następujący: Rozważmy dwie konfiguracje pojemników:

  • ;
  • .

optymalnym rozwiązaniu są 4 kopie i 2 kopie

  • 4 pojemniki z konfiguracją ,
  • 1 pojemnik z konfiguracją ,
  • 1 pojemnik z konfiguracją ,
  • 1 pojemnik z konfiguracją ,
  • 1 ostatni pojemnik z konfiguracją }

To znaczy łącznie 8 pojemników, podczas gdy optymalny ma tylko 6 pojemników. Dlatego górna granica jest ciasna, ponieważ .

Ten przykład można rozszerzyć na wszystkie rozmiary : w optymalnej konfiguracji jest 9 k + 6 pojemników: 6 k + 4 typu B 1 i 3 k +2 typu B 2 . Ale FFD potrzebuje co najmniej 11 k + 8 pojemników, czyli .

Właściwości monotoniczności

Wbrew intuicji, nie jest monotoniczną funkcją C . Załóżmy na przykład, że dane wejściowe to:

44, 24, 24, 22, 21, 17, 8, 8, 6, 6.

Przy pojemności 60 FFD pakuje 3 pojemniki:

  • 44, 8, 8;
  • 24, 24, 6, 6;
  • 22, 21, 17.

Ale przy pojemności 61 FFD pakuje 4 pojemniki:

  • 44, 17;
  • 24, 24, 8;
  • 22, 21, 8, 6;
  • 6.

Dzieje się tak, ponieważ przy pojemności 61 17 mieści się w pierwszym pojemniku, a tym samym blokuje drogę do kolejnych 8, 8.

Inny przykład


Jako inny przykład załóżmy, że dane wejściowe to: 51, 28, 28, 28, 27, 25, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10. Przy pojemności 75 FFD pakuje 4 pojemniki:

  • 51, 12, 12
  • 28, 28, 10
  • 28, 27, 10, 10
  • 25, 10, 10, 10, 10, 10

Ale przy pojemności 76 potrzebuje 5 pojemników:

  • 51, 25
  • 28, 28, 12
  • 28, 27, 12
  • 10, 10, 10, 10, 10, 10, 10
  • 10

Podobnie, nie jest monotoniczną funkcją rozmiarów przedmiotów w się ale liczba Rozważmy powyższy przykład z pojemnością 60. Jeśli 17 staje się 16, to wynikowe opakowanie to:

  • 44, 16;
  • 24, 24, 8;
  • 22, 21, 8, 6;
  • 6.

Jednak algorytm FFD ma właściwość „asymptotycznej monotoniczności”, zdefiniowaną w następujący sposób.

  • Dla każdego przypadku S i liczby całkowitej m , niech MinCap ( S, m ) będzie najmniejszą pojemnością C taką, że
  • Dla każdej liczby całkowitej m niech MinRatio( m ) będzie najmniejszą liczbą r ≥1 taką, że dla wszystkich zestawów wejściowych S , . Jest to ilość, o jaką musimy „nadmuchać” pojemniki tak, aby FFD osiągnął optymalną liczbę pojemników.
  • Wtedy dla każdego wejścia S i dla każdego r ≥ MinRatio ( m ), . Pokazuje to w szczególności, że infimum w powyższej definicji można zastąpić minimum.

Zmodyfikowane pierwsze dopasowanie malejące

Zmodyfikowane zmniejszanie pierwszego dopasowania (MFFD) poprawia FFD dla przedmiotów większych niż pół pojemnika, klasyfikując elementy według rozmiaru na cztery klasy wielkości: duży, średni, mały i mały, odpowiadające elementom o rozmiarze > 1/2 pojemnika, > 1/3 kosz, > 1/6 kosza i odpowiednio mniejsze przedmioty. Następnie przechodzi przez pięć faz:

  1. Przydziel pojemnik na każdy duży przedmiot, uporządkowany od największego do najmniejszego.
  2. Idź dalej przez pojemniki. Na każdym: Jeśli najmniejszy pozostały średni element nie mieści się, pomiń ten kosz. W przeciwnym razie umieść największy pozostały średni przedmiot, który pasuje.
  3. Przejdź wstecz przez te pojemniki, które nie zawierają średniego przedmiotu. Na każdym: Jeśli pozostałe dwa najmniejsze małe przedmioty nie mieszczą się, pomiń ten kosz. W przeciwnym razie umieść najmniejszy pozostały mały przedmiot i największy pozostały mały przedmiot, który się mieści.
  4. Przejdź dalej przez wszystkie pojemniki. Jeśli najmniejszy pozostały element dowolnej klasy wielkości nie mieści się, pomiń ten kosz. W przeciwnym razie umieść największy przedmiot, który się mieści i pozostań w tym koszu.
  5. Użyj FFD, aby zapakować pozostałe elementy do nowych pojemników.

udowodnili . Ta granica została poprawiona w 1995 roku przez Yue i Zhanga, którzy udowodnili, że .

Inne warianty

Metoda best-fit-decreasing (BFD) jest bardzo podobna do metody FFD, z tą różnicą, że po posortowaniu lista jest przetwarzana przez najlepiej dopasowane opakowanie bin . Jego współczynnik aproksymacji asymptotycznej jest taki sam jak FFD - 11/9.

Implementacje

Zobacz też

  1. ^ Johnson, David S. (1973). „Niemal optymalne algorytmy pakowania w pojemniki” (PDF) . Instytut Technologii Massachusetts .
  2. ^ Baker, Brenda S. (1985). „Nowy dowód na malejący algorytm pakowania w pojemniki po pierwszym dopasowaniu” . J. Algorytmy . 6 (1): 49–70. doi : 10.1016/0196-6774(85)90018-5 .
  3. ^   Yue, Minyi (październik 1991). „Prosty dowód nierówności FFD (L) ≤ 11/9 OPT (L) + 1, ∀ L dla algorytmu pakowania binarnego FFD”. Acta Mathematicae Applicatae Sinica . 7 (4): 321–331. doi : 10.1007/BF02009683 . S2CID 189915733 .
  4. Bibliografia   _ Yue, Minyi (sierpień 1997). „Dowód FFD (L) <-OPT (L) + 7/9”. Chiński biuletyn naukowy . 42 (15): 1262–1265. Bibcode : 1997ChSBu..42.1262L . doi : 10.1007/BF02882754 . S2CID 93280100 .
  5. ^ a b Dosa, György (2007). „Ścisła granica pierwszego dopasowania algorytmu zmniejszania pakowania w pojemnikach wynosi FFD (I) ≤ 11/9OPT (I) + 6/9”. Kombinatoryka, algorytmy, metodologie probabilistyczne i eksperymentalne. UCIECZKA . doi : 10.1007/978-3-540-74450-4_1 .
  6. ^ a b   Coffman, Jr., EG; Garey, MR; Johnson, DS (1978-02-01). „Zastosowanie bin-packingu do planowania wieloprocesorowego” . SIAM Journal o informatyce . 7 (1): 1–17. doi : 10.1137/0207001 . ISSN 0097-5397 .
  7. Bibliografia   _ Lu, Pinyan (2021-07-18). „Algorytmiczne ramy przybliżania przydziału zadań Maximin Share” . Materiały z 22. Konferencji ACM na temat ekonomii i obliczeń . KE '21. Nowy Jork, NY, USA: Association for Computing Machinery: 630–631. ar Xiv : 1907.04505 . doi : 10.1145/3465456.3467555 . ISBN 978-1-4503-8554-1 .
  8. ^ a b Johnson, David S; Garey, Michael R (październik 1985). „Twierdzenie 7160 dotyczące pakowania w pojemniki” . Dziennik złożoności . 1 (1): 65–106. doi : 10.1016/0885-064X(85)90022-6 .
  9. Bibliografia   _ Zhang, Lei (lipiec 1995). „Prosty dowód nierówności MFFD (L) ≤ 71/60 OPT (L) + 1, L dla algorytmu pakowania bin MFFD”. Acta Mathematicae Applicatae Sinica . 11 (3): 318–330. doi : 10.1007/BF02011198 . S2CID 118263129 .