001 package net.sf.cpsolver.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 net.sf.cpsolver.ifs.solver.Solver 012 * 013 * @version 014 * IFS 1.1 (Iterative Forward Search)<br> 015 * Copyright (C) 2006 Tomáš Müller<br> 016 * <a href="mailto:muller@unitime.org">muller@unitime.org</a><br> 017 * Lazenska 391, 76314 Zlin, Czech Republic<br> 018 * <br> 019 * This library is free software; you can redistribute it and/or 020 * modify it under the terms of the GNU Lesser General Public 021 * License as published by the Free Software Foundation; either 022 * version 2.1 of the License, or (at your option) any later version. 023 * <br><br> 024 * This library is distributed in the hope that it will be useful, 025 * but WITHOUT ANY WARRANTY; without even the implied warranty of 026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 027 * Lesser General Public License for more details. 028 * <br><br> 029 * You should have received a copy of the GNU Lesser General Public 030 * License along with this library; if not, write to the Free Software 031 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 032 */ 033 public interface SolutionComparator { 034 /** 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()}). 035 * @param currentSolution given solution 036 * @return true if the given solution is better than the best ever found solution 037 */ 038 public boolean isBetterThanBestSolution(Solution currentSolution); 039 }