solver.post(precedence(windows, 1, painting, solver));
solver.post(precedence(roofing, 1, facade, solver));
solver.post(precedence(plumbing, 8, facade, solver));
solver.post(precedence(roofing, 1, garden, solver));
solver.post(precedence(plumbing, 8, garden, solver));
solver.post(precedence(facade, 2, objective, solver));
solver.post(precedence(garden, 1, objective, solver));
solver.post(precedence(painting, 2, objective, solver));
solver.set(IntStrategyFactory.minDom_LB(new IntVar[]{masonry, carpentry, plumbing, ceiling,
roofing, painting, windows, facade, garden, objective}));