ifs.perturbations
Interface PerturbationsCounter

All Known Implementing Classes:
DefaultPerturbationsCounter, UniversalPerturbationsCounter

public interface PerturbationsCounter

Counter of perturbation penalty (minimal perturbation problem).

Many real-life problems are dynamic, with changes in the problem definition occurring after a solution to the initial formulation has been reached. A minimal perturbation problem incorporates these changes, along with the initial solution, as a new problem whose solution must be as close as possible to the initial solution. The iterative forward search algorithm is also made to solve minimal perturbation problems.

To define the minimal perturbation problem, we will consider an initial (original) problem, its solution, a new problem, and some distance function which allows us to compare solutions of the initial and the new problem. Subsequently we look for a solution of the new problem with minimal distance from the initial solution. This distance is expressed by this PerturbationCounter

Version:
1.0
Author:
Tomáš Müller
See Also:
Solver, Solution, Variable

Method Summary
 void getInfo(Dictionary info, Solution solution)
          Some (perturbation) information about the solution might be returned here.
 double getPerturbationPenalty(Solution solution)
          Returns perturbation penalty, i.e., the distance between current solution and the solution of the initial problem (see Variable.getInitialAssignment()).
 double getPerturbationPenalty(Solution solution, Value selectedValue, Collection conflicts)
          Returns perturbation penalty of the solution which become from the current solution when given conflicting values are unassigned and the selected value is assigned.
 void init(Solver solver)
          Initialization
 

Method Detail

init

void init(Solver solver)
Initialization


getPerturbationPenalty

double getPerturbationPenalty(Solution solution)
Returns perturbation penalty, i.e., the distance between current solution and the solution of the initial problem (see Variable.getInitialAssignment()).

Parameters:
solution - current solution

getPerturbationPenalty

double getPerturbationPenalty(Solution solution,
                              Value selectedValue,
                              Collection conflicts)
Returns perturbation penalty of the solution which become from the current solution when given conflicting values are unassigned and the selected value is assigned. Since this penalty is used for comparison of different candidate values in the value selection criterion, it is fully acceptable to just return a difference between current and the altered solution (which might be easied for computation that the whole perturbation penalty).

Parameters:
solution - current solution
selectedValue - value to be selected in the next iteration
conflicts - conflicting values to be unassigned in the next iteration

getInfo

void getInfo(Dictionary info,
             Solution solution)
Some (perturbation) information about the solution might be returned here.

Parameters:
info - resultant info table
solution - current solution


Copyright © 2005 Tomáš Müller