    001    package ifs.solution;
    002
    003    /**
    004     * IFS solution comparator.
    005     * <br><br>
    006     * The solution comparator compares two solutions: the current solution and the best solution found. This comparison can
    007     * be based on several criteria. For example, it can lexicographically order solutions according to the number of
    008     * unassigned variables (smaller number is better) and the number of violated soft constraints.
    009     *
    010     * @see Solution
    011     * @see ifs.solver.Solver
    012     *
    013     * @author <a href="mailto:muller@ktiml.mff.cuni.cz">Tomáš Müller</a>
    014     * @version 1.0
    015     */
    016    public interface SolutionComparator {
    017        /** Compares two solutions. Returns true if the given solution is better than its best ever found solution (see {@link Solution#saveBest()} and {@link Solution#restoreBest()}).
    018         * @param currentSolution given solution
    019         * @return true if the given solution is better than the best ever found solution
    020         */
    021        public boolean isBetterThanBestSolution(Solution currentSolution);
    022    }