@Override public void add(ReconfigurationProblem rp) { List<DemandingSlice> dSlices = new ArrayList<DemandingSlice>(rp.getDemandingSlices()); Collections.sort( dSlices, new SliceComparator(false, SliceComparator.ResourceType.cpuConsumption)); int[][] sizes = new int[2][]; sizes[0] = new int[dSlices.size()]; sizes[1] = new int[dSlices.size()]; IntDomainVar[] assigns = new IntDomainVar[dSlices.size()]; for (int i = 0; i < dSlices.size(); i++) { sizes[0][i] = dSlices.get(i).getCPUheight(); sizes[1][i] = dSlices.get(i).getMemoryheight(); assigns[i] = dSlices.get(i).hoster(); } Node[] ns = rp.getNodes(); IntDomainVar[][] capas = new IntDomainVar[2][]; capas[0] = new IntDomainVar[ns.length]; capas[1] = new IntDomainVar[ns.length]; for (int i = 0; i < ns.length; i++) { capas[0][i] = rp.getFreeCPU(ns[i]); capas[1][i] = rp.getFreeMem(ns[i]); } pack = new FastMultiBinPacking(rp.getEnvironment(), capas, sizes, assigns); rp.post(pack); Plan.logger.debug("SatisfyDemandingSlicesHeightsCustomBP branched"); }