BloBB (Block-Packing with Branch-and-Bound)

Hayward Chan and Igor Markov

BloBB is an open-source software which handles a wide range of block-packing problems.  It is the first software that optimally packs apte, xerox and hp, the 3 smallest MCNC benchmarks.  In addition to an optimal solver of small instances, BloBB is also a competitive heuristic slicing block-packer for larger instances.  Other utilities such as plotter and file format converters, as well as test cases (MCNC, GSRC and random-generated) are also included.  The manual includes more detailed information.

News

March 15, 2005:   BloBB 1.2 released. 
May 11, 2004:  

The benchmarks and utilities are moved here.  New utilities are added.

May 10, 2004:

 

BloBB 1.1 is now available! New features (compaction and operator optimization) are added.

Feb 13, 2004:   CompaSS, that focuses on slicing packings, is now available.  It extends BloBB's capability of handling large instances (10K blocks, for example).  Moreover, It can handle soft blocks, that have fixed area and variable lengths.  While BloBB produces reasonable packings very quickly, CompaSS takes extra time to pack more tightly.  BloBB is faster while CompaSS packs tighter.  Try it out!

Publications

Downloads

If you are using BloBB in a publication, please refer to the GLSVLSI '04 paper, available here.

Version 1.2

Manual ps, pdf

last updated - March 15, 2005

Source code of BloBB and CompaSS only (C++)

last updated - March 15, 2005

Executable of BloBB and CompaSS only (Linux, Solaris)

last updated - March 15, 2005

Source code and Executable of BloBB and CompaSS (Linux, Solaris)

last updated - March 15, 2005

Version 1.1

Manual ps, pdf

last updated - May 11, 2004

Source code of BloBB only (C++)

last updated - May 12, 2004

Executable of BloBB only (Linux, Solaris)

last updated - May 12, 2004

Source code and Executable of BloBB (Linux, Solaris)

last updated - May 12, 2004

Version 1.0

Manual ps, pdf.

last updated - Sept 27, 2003

Source code and executables of BloBB, utilities and test cases (Linux, Solaris).

last updated - Nov 18, 2003

Source code of BloBB, utilities and test cases only (C++).

last updated - Nov 18, 2003

Executables of BloBB and utilities only (Linux, Solaris).

last updated - Nov 18, 2003

Source code of utilities only.

last updated - Nov 18, 2003

MCNC, GSRC and random test cases only.

last updated - Sept 28, 2003

Benchmarks and Utilities

Features

 

non-slicing slicing
free orientations fixed orientations free orientations fixed orientations
small-scale block-packing

non-slicing: ~9 blks slicing: ~12 blks

optimal packing minimizing area supported supported supported supported
backtracking subject to given area threshold supported supported supported supported
non-symmetric optimal packing enumeration supported supported

supported

supported
large scale block-packing hierarchical block-packing --- --- supported supported

 

 

 

 

 

 

Sample Packings (generated by BloBB 1.1)

Optimal Packings

Large-scale Packings

Last updated - March 15, 2005