Bin Packing -...

25
Bin Packing

Transcript of Bin Packing -...

Page 1: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

Bin Packing

Page 2: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

2

Bin Packing

1. Problembeschreibung und einfache Beobachtungen

2. Approximative Lösung des Online Bin Packing Problems

3. Approximative Lösung des Offline Bin Packing Problems

Page 3: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

3

Problembeschreibung

Gegeben:

n Objekte der Größen

s1, ... , sn

mit 0 < si ≤ 1, für 1 ≤ i ≤ n.

Gesucht:

Die kleinst mögliche Anzahl von Kisten (Bins) der Größe 1, mit der alle

Objekte verpackt werden können.

Beispiel:

7 Objekte mit Größen 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8

Page 4: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

4

Problembeschreibung

Online Bin Packing:

Jedes (ankommende) Objekt muss verpackt sein, bevor das nächste

Objekt betrachtet wird. Ein Objekt verbleibt in derjenigen Kiste, in die

es zuerst gepackt wird.

Offline Bin Packing:

Zunächst wird die Anzahl n und alle n Objekte vorgegeben. Dann

beginnt die Verpackung.

Page 5: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

5

Beobachtung

• Bin Packing ist beweisbar schwer.

(Offline Version ist NP-schwer.

Entscheidungsproblem ist NP-vollständig.)

• Kein Online Bin Packing Verfahren kann stets

eine optimale Lösung liefern

Page 6: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

6

Online Verfahren

Satz 1

Es gibt Eingaben, die jeden Online Bin Packing Algorithmus zwingen,

wenigstens 4/3 OPT Bins zu verwenden, wobei OPT die minimal

mögliche Binzahl ist.

Beweis:

Annahme: Online Bin Packing Algorithmus A benötigt stets weniger als

4/3 OPT Bins

1/2

0.... .....

1 2 m m + 1 m + 2 2m

Zeit

1

Page 7: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

7

Online Verfahren

Zeitpunkt 1:

OPT = m/2 und #Bins(A) = b

Es gilt nach Annahme: b<4/3 ⋅ m/2 = 2/3m

Sei b = b1 + b2 , wobei

b1 = #Bins mit einem Objekt

b2 = #Bins mit zwei Objekten

Es gilt: b1 + 2 b2 = m , d.h. b1 = m –2b2

und damit b = b1 + b2 = m – b2 (∗)

Page 8: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

8

Online Verfahren

Zeitpunkt 2:

OPT = m

#Bins(A) ≥ b + m – b1 = m + b2

Annahme: m + b2 ≤ #Bins( A ) < 4/3m

b2 < m/3

mit (∗): b = m – b2 > 2/3m

Page 9: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

9

Online Verfahren

Next Fit (NF), First-Fit (FF), Best-Fit (BF)

Next Fit:

Verpacke das nächste Objekt in dieselbe Kiste wie das vorherige, wenn

es dort noch hineinpasst, sonst öffne eine neue Kiste und verpacke es

dort.

Satz 2

(a) Für alle Inputfolgen I gilt:

NF(I) ≤ 2OPT(I).

(b) Es gibt Inputfolgen I mit:

NF(I) ≥ 2OPT(I) – 2.

Page 10: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

10

Next Fit

Beweis: (a)

Betrachte zwei Kisten B2k-1, B2k, 2k ≤ NF( I ).

0

1

B1 B2 B2k-1 B2k

Page 11: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

11

Next Fit

Beweis: (b)

Betrachte Inputfolge I mit Länge n

(n ≡ 0 ( mod 4)):

0.5, 2/n, 0.5, 2/n, 0.5, ... , 0.5, 2/n

Optimale Packung:

0

1

B1 B2 Bn/4 Bn/4 + 1

0.5

0.5

0.5

0.5

0.5

0.5 2/n

2/n

2/n

.......... ....

.

Page 12: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

12

Next Fit

Next Fit liefert:

NF ( I ) =

OPT ( I ) =

00.5

1

B1 B2 Bn/2

..........2/n 2/n

0.5 0.5

2/n

Page 13: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

13

First Fit

First Fit:

Packe nächstes Objekt in die erste Kiste, in die es noch hineinpasst,

wenn es eine solche Kiste gibt, sonst in eine neue Kiste.

Beobachtung:

Zu jedem Zeitpunkt kann es höchstens eine Kiste geben, die weniger

als halb voll ist.

� FF( I ) ≤ 2OPT( I )

Page 14: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

14

First Fit

Satz 3

(a) Für alle Inputfolgen I gilt:

FF( I ) ≤ 17/10 OPT( I )

(b) Es gibt Inputfolgen I mit:

FF( I ) ≥ 17/10 (OPT( I ) – 1)

(b´) Es gibt Inputfolgen I mit:

FF( I ) = 10/6 OPT( I )

Page 15: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

15

First Fit

Beweis (b`): Inputfolge der Länge 3 ⋅ 6m

444 3444 21K

44 344 21K

444 3444 21K

m

mm

6

66

2/1,,2/1

,3/1,,3/1,7/1,,7/1

εε

εεεε

++

++++

Page 16: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

16

First Fit

First-Fit liefert:

444 3444 21

LLL

m

mBB

ε

ε

ε

ε

ε

ε

ε

ε

ε

ε

ε

ε

+

+

+

+

+

+

+

+

+

+

+

+

7/1

7/1

7/1

7/1

7/1

7/1

7/1

7/1

7/1

7/1

7/1

7/1

1

444 3444 21

LL

2/6

41

3/1

3/1

3/1

3/1

m

mmBB

ε

ε

ε

ε

+

+

+

+

+

Page 17: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

17

First Fit

444 3444 21m

mmBB

6

1014

2/1

2/1 εε ++

+

.........

Page 18: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

18

Best Fit

Best Fit:

Verpacke das nächste Objekt in diejenige Kiste, in die es am besten

passt (d.h. den geringsten Platz ungenutzt lässt).

Verhalten von BF ähnlich zu FF

Laufzeit für Inputfolgen der Länge n

NF O(n)

FF O(n2) O(n log n)

BF O(n2) O(n log n)

Page 19: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

19

Off-line Verfahren

n und s1, ..., sn sind gegeben, bevor die Verpackung beginnt

Optimale Packung kann durch erschöpfende Suche

bestimmt werden.

Idee für off-line Approximationsalgorithmus:

Sortiere die Objekte zunächst nach abnehmender

Größe und verpacke größere Objekte zuerst!

First Fit Decreasing (FFD) bzw. FFNI

Best Fit Decreasing (BFD)

Page 20: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

20

First Fit Decreasing

Lemma 1

Sei I eine Folge von n Objekten mit Größen

s1 ≥ s2 ≥ ..... ≥ sn

und sei m = OPT(I).

Dann haben alle von FFD in den Bins

Bm+1,Bm+2, ... , BFFD(I)

verpackten Objekte eine Größe von höchstens 1/3.

Page 21: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

21

First Fit Decreasing

Lemma 2

Sei I eine Folge von n Objekten mit Größen

s1 ≥ s2 ≥ ..... ≥ sn

und sei m = OPT( I ).

Dann ist die Anzahl der Objekte, die FFD in die Kisten

Bm+1,Bm+2, ... , BFFD(I)

verpackt, höchstens m – 1.

Page 22: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

22

First Fit Decreasing

Beweis:

Annahme: Es gibt mehr als m – 1 Objekte

x1,....,xm in I, die FFD in extra Kisten verpackt.

W1 W2 Wm

B1 B2 Bm Bm+1

Page 23: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

23

First Fit Decreasing

Satz

Für alle Inputfolgen I gilt:

FFD( I ) ≤ (4 OPT( I ) + 1)/3.

Satz

1. Für alle Inputfolgen I gilt:

FFD( I ) ≤ 11/9 OPT( I ) + 4.

2. Es gibt Inputfolgen I mit:

FFD( I ) = 11/9 OPT( I ).

Page 24: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

24

First Fit Decreasing

Beweis (b): Inputfolge der Länge 3 ⋅ 6m + 12m

444 3444 21K

444 3444 21K

444 3444 21K

444 3444 21K

mm

mm

126

66

24/1,,24/1,4/1,,4/1

24/1,,24/1,2/1,,2/1

εεεε

εεεε

−−++

++++

Optimale Packung:

1/2 + ε

1/4 - 2ε

1/4 + ε

1/2 + ε

1/4 - 2ε

1/4 + ε

............

1/4 - 2ε

1/4 - 2ε

1/4 + 2ε

1/4 + 2ε

.........

1/4 - 2ε

1/4 - 2ε

1/4 + 2ε

1/4 + 2ε

4444 34444 214444 34444 21m

m

m

m BBB B

3

9 16m

6

61 +

Page 25: Bin Packing - lak.informatik.uni-freiburg.delak.informatik.uni-freiburg.de/lak_teaching/ws10_11/slides/12-bin-packing.pdf · 4 Problembeschreibung Online Bin Packing: Jedes (ankommende)

25

First Fit Decreasing

1/2 + ε

1/4 + 2ε

1/4 + ε

1/4 + ε

1/4 + ε

..........

1/4 - ε

1/4 - ε

1/4 - ε

1/4 - ε

................... ..........

44 344 21444 3444 2144 344 21m

m

m

m

m

BBB

3

8

2

16

6

1

+

First Fit Decreasing liefert:

OPT(I) = 9m

FFD(I) = 11m