고조파 빈 패킹
Harmonic bin packing고조파 빈 패킹은 빈 패킹을 위한 온라인 알고리즘 패밀리입니다.이러한 알고리즘에 대한 입력은 다양한 크기의 항목 목록입니다.출력은 패킹(항목을 고정 용량의 빈으로 분할하여 각 빈의 항목 크기 합계가 최대 용량이 되도록 함)입니다.가능한 한 적은 빈을 사용하는 것이 이상적이지만 빈 수를 최소화하는 것은 NP-난해한 문제입니다.
고조파 빈 패킹알고리즘은 고조파 수열에 따라 항목을 크기에 따라 카테고리로 분할합니다.이 생각에는 몇 가지 변형이 있다.
고조파 k
크기의 간격,(0,1]{(0,1]}나는 j k− 1{\displaystyle k-1}조각 harmonically에:=(1/(j+1\displaystyle)그 Harmonic-k 알고리즘 파티션 1/j]{\displaystyle I_{j}:1≤ j<>에 =(1/(j+1),1/j 해결};k{\displaystyle 1\leq j<, k}과 나는 k:=(0,1/k]{\displaystyle 나_{k}:) I ( , \ _ {j=}^{ IL {\i\ L}는 { - item()I j{ s I_{j )라고 합니다.
이 알고리즘은 빈 빈 세트를 항목 유형별로 1개의 빈 유형인1 에k\ k\ \ displaystyle _ { }개의 무한 j _ { 1 \ j \ k j{의 빈은 j {j의 아이템을 포장하는 빈에만 사용됩니다. j{의 각 빈에는 1j < 1 \ j <}의 { _ { j 아이템을 하게 포함할 수 있습니다.이 알고리즘은 다음과 같이 동작합니다.
- 다음 i i L가 1j < k < 1 \ j < k의 항목인 경우, 해당 항목은j 1\leq k}보다 작은 bin을 포함하는 첫 열림) 에 배치됩니다.
- 다음 i i L가 }) 인 경우 알고리즘은 Next-Fit을 사용하여 }) 의 빈에 넣습니다.
이 알고리즘은 Lee와 [1]Lee에 의해 처음 설명되었다.시간 복잡도는 O log () { {입니다 .여기서 n은 입력 항목의 수입니다.각 단계에는 항목을 배치하는 데 사용할 수 있는 최대 k의 빈이 있습니다. 즉, k-바운딩 공간 알고리즘입니다.
Lee와 Lee는 점근 근사 비율도 연구했다.그들은:=1}, 나는 1+ σ:=σ 나는}에 나 그냥σ 나는<>에 증명해 1{\displaystyle i\geq 1}≥, k<>σ는 a=l+1{\displaystyle \sigma_{나는}<, k<{\displaystyle \sigma_{i+1}:=\sigma _ᆬ(\sigma_{나는}+1)(σ 나는 1+), \sigma _{l+1}}그를 잡고 있는 시퀀스 σ 1:=1{\displaystyle \sigma_{1}정의했다. RHkm그리고 4.9초 만 i 1 /i + / (+ ( k -1) { style R _ { Hk }^{\ \ _ = }^{1 / \ time + k / (-1 ) stylek l + 1 . H k / i+k / ( + 1( -){ }^{\ } = \_ { i=/ \ _ {} + / ( { + 1 - 1 )) 。
세련된 조화(RH)
세련된 하모닉은 Harmonic-k 알고리즘의 아이디어와 세련된 퍼스트 핏의 아이디어를 결합합니다.1보다 아이템은 세련된 First-Fit과 배치하고 작은 아이템은 Harmonic-k를 사용합니다.이 전략의 직관은1/1/보다조금 큰 조각이 들어 있는 쓰레기통의 엄청난 낭비를 줄이는 것입니다.
알고리즘은 다음 간격에 따라 항목을 분류합니다. 1: ( , } : = ( , }, : (/)、 2 : / , 1/ 2 )、 [ I _ { 2 / , 1 { : = ( / ( j + , / )、 j {3,\ \ 3, \ , k - 1\ 、 i i i i i i : : : : : : j j ( , / ) : ( 0 , 1 / k )) 。은 j 아이템을 Harmonic-k로 배치하고 및 에 대해서는 다른 전략을 따릅니다.은 으로 할 수 있으며 은에 넣을 수
- I_{ Displaystyle I_{항목이 만 포함됩니다.
- I_ 에는 I_ - 항목이 만 포함됩니다.
- b- _ { } - item 、 b_ { I _ { } - item i i i i i i i i i i i one one one one one one one one one one one one one one one 。
- b - bin 에는 의 Ib _ { I _ { } - 항목이 포함되어 있습니다.
b \ _ { } - bin 은 두 { } - 항목을 포함하는 빈을 나타냅니다.알고리즘은 N_a, N_b, N_ab, N_bb 및 N_b'라는 숫자를 사용하여 솔루션 내의 대응하는 빈의 수를 계산합니다.또한 N_c=N_b+N_ab
리스트 L = (i_1, \harmonic i_n): 1. N_a = N_b = N_ab = N_b = N_b' = N_c = 0 2에 대한 알고리즘 정제 하모닉 k.i_j가 I_k-피스일 경우 알고리즘 Harmonic-k를 사용하여 3을 채웁니다.그렇지 않으면 i_j가 I_a-항목일 경우 N_b!=1이면 i_j를 임의의 J_b-bin; N_ab+; n_ab+; n_j를 채웁니다.그렇지 않으면 i_j를 새로운 (빈; n_b+a; 4; a) 빈;그렇지 않으면 i_j가 I_b-항목이라면 N_b' = 1이면 i_j를 I_b'-bin에 넣습니다; N_b' = 0; N_bb++; 5.그렇지 않으면 N_bb <= 3N_c인 경우 i_j를 새 빈에 넣고 I_b'-bin으로 지정합니다. N_a!= 0인 경우 N_b' = 1을 제외하고 i_j를 임의의 I_a-bin에 배치합니다. N_a--; N_ab+;N_c++ 그렇지 않으면 i_j를 새 빈에 넣습니다.N_b++;N_c++
이 알고리즘은 Lee와 [1]Lee에 의해 처음 설명되었다.그들은 k { k20}에 H / { 을 유지한다는 것을 증명했다.
기타 변종
Modified Harmonic(MH; 수정 고조파)의 은 M / 33 1. \ 1.[2]
Modified Harmonic 2(MH2)의 은 239091 / 1.61217{\}\ \ 입니다[2]
고조파 + 1(H+1)은 점근비 + R_1.[3]입니다.
고조파 ++(H++)는 R + + 1.{{infty 1. + 1.[3]를 가진다.
레퍼런스
- ^ a b Lee, C. C.; Lee, D. T. (July 1985). "A simple on-line bin-packing algorithm". Journal of the ACM. 32 (3): 562–572. doi:10.1145/3828.3833. S2CID 15441740.
- ^ a b Ramanan, Prakash; Brown, Donna J; Lee, C.C; Lee, D.T (September 1989). "On-line bin packing in linear time". Journal of Algorithms. 10 (3): 305–326. doi:10.1016/0196-6774(89)90031-X. hdl:2142/74206.
- ^ a b c Seiden, Steven S. (2002). "On the online bin packing problem". Journal of the ACM. 49 (5): 640–671. doi:10.1145/585265.585269. S2CID 14164016.