Text this: Cell formation in group technology using constraint programming and Boolean satisfiability