0% found this document useful (0 votes)
29 views

BP

BIN PACKING PROBLEM

Uploaded by

capodelcapo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

BP

BIN PACKING PROBLEM

Uploaded by

capodelcapo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

CS 130B ST-0

Bin Packing

Given n items with sizes s1 , s2 , ..., sn such


that 0 si 1 for i i n, pack them into
the fewest number of unit capacity bins.
Problem is NP-hard (NP-Complete). There is
no known polynomial time algorithm for its
solution, and it is conjectured none exists.
On-line algorithms: Each item must be placed
in a bin (and never moved again) before the
next item can be viewed (processed).
Off-line algorithm: You may view all items
before placing any item into a bin.
We present algorithms to generate suboptimal
solutions (approximations).


UCSB TG

CS 130B ST-1

Next Fit (aprox. alg.)

(on-line algorithm): Check to see if the current


item fits in the current bin. If so, then place it
there, otherwise start a new bin.
Example: 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8

0.1

0.5 0.8
0.7
0.4
0.2 0.3

B1 B2 B3 B4 B5

Next Fit

0.1
0.3
0.4
0.8
0.7
0.5
0.2

B1 B2 B3

Optimal Packing


UCSB TG

CS 130B ST-2

Theorem 10.2

Let M be the number of bins required to pack a


list I of items optimally. Next Fit will use at
most 2M bins.
Proof:
Let s(Bi ) be the sum of the sizes of all the
items assigned to bin Bi in the solution
generated by Next Fit.
For any two adjacent bins (Bj and Bj+1 ), we
know that s(Bj ) + s(Bj+1 ) > 1.
Let k be the number of bins used by Next Fit
for list I.
We prove the case when k is even, the proof
for the other case is omitted (as it is similar
and establishes that k < 2M + 1).


UCSB TG

CS 130B ST-3

As stated above, s(B1 ) + s(B2 ) > 1,


s(B3 ) + s(B4 ) > 1, ..., s(Bk1 ) + s(Bk ) > 1.
Adding these inequalities we know that
P
s(Bi ) > k/2.
By definition OP T = M > k/2.
The solution SOL = k < 2M .
Therefore, SOL 2M (because of odd case).


UCSB TG

CS 130B ST-4

Theorem 10.2 (2nd Part)

There exist sequences such that Next Fit uses


2M 2 bins, where M is the number of bins in an
optimal solution.
Define an instance with 4N items
The odd numbered ones have si value 1/2,
and the even number ones have si value
1/(2N ).
0.5 0.5 0.5
2N pieces of size 1/(2N)
...
0.5 0.5 0.5

B1 B2 BN BN+1

Optimal Packing

1/(2N) 1/(2N) 1/(2N) 1/(2N)

0.5 0.5 0.5 0.5

B1 B2 B2N1 B2N

Next Fit

OP T = N + 1 = M
Therefore, N = M 1
Solution SOL = 2N = 2M 2.

UCSB TG

CS 130B ST-5

First Fit (aprox. alg.)

(on-line algorithm): Scan the bins in order and


place the new item in the first bin that is large
enough to hold it. A new bin is created only when
an item does not fit in the previous bins.
Example: 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8

0.1
0.3
0.5 0.8
0.7
0.4
0.2
B1 B2 B3 B4

First Fit

0.1
0.3
0.4
0.8
0.7
0.5
0.2

B1 B2 B3

Optimal Packing

Can be easily implemented to take O(n2 ) time.


UCSB TG

CS 130B ST-6

Better Implementation

Can be implemented to take O(n log n) time.


Idea: Use a red-black tree (or other balanced
tree) with height O(log n).
Each node has three values: index of bin,
remaining capacity of bin, and best (largest)
in all the bins represented by the subtree
rooted at the node.
The ordering of the tree is by the bin index.


UCSB TG

CS 130B ST-7

Example

Table 1: Remaining Capacity in Bins

Bin B1 B2 B3 B4 B5 B6 B7 B8
R. Cap. .3 .4 .32 .45 .46 .47 .32 48
i: bin index
RC: Remaining Capacity
i , RC
BRC: Best Remaining Capacity in subtree
BRC

5 , .46

.48

3 , .32 7 , .32

.45 .48

2 , .4 4 , .45 6 , .47 8 , .48

.4 .45 .47 .48

1 , .3

.3
Item Size Goes to Bin
s <= .3 B1

.3 < s <= .4 B2

.4 < s <= .45 B4

.45 < s <= .46 B5

.46 < s <= .47 B6

.47 < s <= .48 B8


UCSB TG

CS 130B ST-8

Upper Bounds

Claim: Let M be the optimal number of bins


required to pack a list I of items. Then First
Fit never uses more than 1.7M .
Proof was not covered.
Theorem: There exist sequences such that
First Fit uses 1.7(M 1) bins.
Example for 1.66...
1
6M items of size 7 + .
1
6M items of size 3 + .
1
6M items of size 2 + .


UCSB TG

CS 130B ST-9

1/7+eps

...
1/3+eps

1/7+eps 1/2+eps
1/3+eps
1/7+eps

B1 ... BM BM+1 ... B4M B4M+1 ... B10M

First Fit

1/7+eps
1/3+eps

1/2+eps

B1 ... B6M
Optimal Packing


UCSB TG

CS 130B ST-10

Best Fit (aprox. alg.)

(on-line algorithm): New item is placed in a


bin where it fits the tightest. If it does not fit
in any bin, then start a new bin.
Claim: If OP T uses M bins, then Best Fit
uses at most 1.7M .
Can be implemented to take O(n log n).
Example: 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8

0.1 0.3

0.5 0.8
0.7
0.4
0.2
B1 B2 B3 B4

Best Fit

0.1
0.3
0.4
0.8
0.7
0.5
0.2

B1 B2 B3


Optimal Packing

UCSB TG

CS 130B ST-11

There are problems instances for which First Fit


uses fewer bins than Best Fit and vice-versa.


UCSB TG

CS 130B ST-12

Better Aprox. Alg.

(off-line algorithm): First Fit Decreasing


(off-line algorithm): Best Fit Decreasing


UCSB TG

You might also like