public DLDFSolver( int[] s, int[] learning_startfactors, boolean singleThreaded, boolean useBacktracking) { log_info("Heuristic weights: %s", Arrays.deepToString(choicefactors)); log_info("Reported number of processors: %d", Runtime.getRuntime().availableProcessors()); nThreads = (singleThreaded || THREAD_COUNT == 1) ? 1 : THREAD_COUNT; log_info("No. of threads to be used: %d\n", nThreads); this.useBacktracking = useBacktracking; log_info("Use backtracking?: %s", useBacktracking ? "Yes" : "No"); this.tileSequence = new int[s.length]; System.arraycopy(s, 0, this.tileSequence, 0, s.length); if (learning_startfactors != null) { if (learning_startfactors.length != learning_starts.length) { throw new IllegalArgumentException("Invalid learning factor size"); } System.arraycopy(learning_startfactors, 0, learning_starts, 0, learning_starts.length); } }