2

I have some bins with different capacities and some objects with specified size. The goal is to pack these objects in the bins. Until now it is similar to the bin-packing problem. But the twist is that each object has a partial overlap with another. So while object 1 and 2 has sizes s1 and s2, when I put them in the same bin the filled space is less than s1+s2. Supposing that I know this overlapping value for each pair of objects, is there any approximation algorithm like the ones for original bin-packing for this problem too?

Masood_mj
  • 1,036
  • 8
  • 21
  • I posted another way to look at this problem in http://stackoverflow.com/questions/11656784/graph-partitioning-based-on-nodes-and-edges-weights – Masood_mj Jul 25 '12 at 19:06
  • Is there overlapping between more than 2 objects? – Ante Jul 25 '12 at 20:55
  • Yes, it is a dense graph. Each item has similarity to many other items but the degree of similarity (overlapping) is different – Masood_mj Jul 25 '12 at 20:57
  • Let `F()` be fill function, and `O()` overlap function. Than `F(s1,s2)=s1+s2-O(s1,s2)`. For `F(s1,s2,s3)` it should be something like `s1+s2+s3-O(s1,s2)-O(s1,s3)-O(s2,s3)+O(s1,s2,s3)` to have it regular. If not than you can have even negative values of `F()`. E.g. `F(s1,s2,s3,s4)` with `si=x` and `O(si,sj)>2x/3`. – Ante Jul 25 '12 at 21:03
  • @Ante You are right it needs the term O(s1,s2,s3) too – Masood_mj Jul 25 '12 at 21:09
  • I got the answer here http://cstheory.stackexchange.com/questions/12138/bin-packing-with-overlapping-objects – Masood_mj Jul 27 '12 at 19:21

2 Answers2

2

The answer is to use a kind of tree that captures the similarity of objects assuming that objects can be broken. Then run a greedy algorithm to fill the bins according to the tree. This algorithm has 3-x approximation bound. However, there should also be better answers.

This method is presented in Michael Sindelar, Ramesh K. Sitaraman, Prashant J. Shenoy: Sharing-aware algorithms for virtual machine colocation. SPAA 2011: 367-378.

I got this answer from this thread but just wanted to close this question by giving the answer.

Community
  • 1
  • 1
Masood_mj
  • 1,036
  • 8
  • 21
0

The only algorithm I think will work is to prune items that doesn't fit into the bins and use another bin. I don't mean first fit algorithm but to wait a period of time and then use new bins for the items. In reality you can use just another bin? It's a practical approach. I mean you can grow the bin to the left or to the right like in this example: http://codeincomplete.com/posts/2011/5/7/bin_packing/.

Gigamegs
  • 12,342
  • 7
  • 31
  • 71
  • This is first fit algorithm. Is there any bound for that like the one for original bin packing. Does sorting items (for example based on their size) change the approximation bound? – Masood_mj Jul 25 '12 at 12:10
  • @Masood_mj: I don't know if first fit can guarantee you the optimum. Maybe you are right and it's also only useful in euklidian space? – Gigamegs Jul 25 '12 at 12:17
  • @Masood_mj: I've added some more information. Maybe I don't understand your question? I don't mean first fit but to wait a period of time and then use a new bin to fit the item. It's a practical approach. I've written a bin-packing solution for a client? – Gigamegs Jul 25 '12 at 17:29
  • I cannot use a new bin. My bins and their capacities are fixed – Masood_mj Jul 25 '12 at 18:54