code: public void postInitialize() throws ContradictionException {
          final int[] biggest = new int[prop.nbDims];
          for (int i = 0; i < prop.bins.length; i++) {
              for (int d = 0; d < prop.nbDims; d++) {
                  biggest[d] = Math.max(biggest[d], prop.iSizes[d][i]);
              }
              if (!prop.bins[i].isInstantiated()) {
                  final DisposableValueIterator it = prop.bins[i].getValueIterator(true);
                  try {
                      while (it.hasNext()) {
                          candidate.get(it.next()).set(i);
                      }
                  } finally {
                      it.dispose();
                  }
              }
          }
  
          for (int b = 0; b < prop.nbBins; b++) {
              for (int d = 0; d < prop.nbDims; d++) {
                  dynBiggest[d][b] =
                          prop.getVars()[0].getEnvironment().makeInt(biggest[d]);
              }
          }
  
          fullKnapsack();
      }
docs: initialize the lists of candidates.