Common component inventory problems with a budget constraint: Heuristics and upper bounds