public class DefaultPerturbationsCounter<V extends Variable<V,T>,T extends Value<V,T>> extends Object implements PerturbationsCounter<V,T>
getPenalty(Value, Value)
. Its current
implementation is:
protected double getPenalty(Value assignedValue, Value initialValue) {
return 1.0;
}
Solver
,
Solution
,
Variable
Modifier and Type  Field and Description 

protected static DecimalFormat 
sDoubleFormat 
Constructor and Description 

DefaultPerturbationsCounter(DataProperties properties)
Constructor

Modifier and Type  Method and Description 

void 
getInfo(Map<String,String> info,
Model<V,T> model)
Some (perturbation) information about the solution might be returned
here.

void 
getInfo(Map<String,String> info,
Model<V,T> model,
Collection<V> variables)
Some (perturbation) information about the solution might be returned here
(only include variables from the given set).

protected double 
getPenalty(T assignedValue,
T initialValue)
Computes perturbation penalty between assigned and initial value of the
same lecture.

protected double 
getPenaltyA(T selectedValue,
T initialValue)
Case A: initial value of a different unassigned variable cannot be
assigned (computed by
ViolatedInitials ) 
protected double 
getPenaltyB(T selectedValue,
T assignedValue,
T initialValue)
Case B: initial value is unassigned from a conflicting variable.

protected double 
getPenaltyC(T selectedValue,
T assignedValue,
T initialValue)
Case C: noninitial value is unassigned from a conflicting variable.

protected double 
getPenaltyD(T selectedValue,
T initialValue)
Case D: different than initial value is assigned to the varaible

double 
getPerturbationPenalty(Model<V,T> model)
Returns perturbation penalty, i.e., the distance between current solution
and the solution of the initial problem (see
Variable.getInitialAssignment() ). 
double 
getPerturbationPenalty(Model<V,T> model,
Collection<V> variables)
Returns perturbation penalty, i.e., the distance between current solution
and the solution of the initial (only include variables from the given
set) problem (see
Variable.getInitialAssignment() ). 
double 
getPerturbationPenalty(Model<V,T> model,
T selectedValue,
Collection<T> 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.

protected ViolatedInitials<V,T> 
getViolatedInitials() 
void 
init(Solver<V,T> solver)
Initialization

protected static DecimalFormat sDoubleFormat
public DefaultPerturbationsCounter(DataProperties properties)
properties
 input configurationpublic double getPerturbationPenalty(Model<V,T> model)
PerturbationsCounter
Variable.getInitialAssignment()
).getPerturbationPenalty
in interface PerturbationsCounter<V extends Variable<V,T>,T extends Value<V,T>>
model
 current modelpublic double getPerturbationPenalty(Model<V,T> model, Collection<V> variables)
PerturbationsCounter
Variable.getInitialAssignment()
).getPerturbationPenalty
in interface PerturbationsCounter<V extends Variable<V,T>,T extends Value<V,T>>
model
 current modelprotected ViolatedInitials<V,T> getViolatedInitials()
protected double getPenalty(T assignedValue, T initialValue)
assignedValue
 value assigned to a varuable (null when variable is
unassigned)initialValue
 initial value of the same varaible (always not null)protected double getPenaltyA(T selectedValue, T initialValue)
ViolatedInitials
)selectedValue
 value which is going to be assigned to its variableinitialValue
 value of a different variable, which is currently assigned but
which need to be unassifned Different variable, which is
unassigned and whose initial value is in conflict with the
selected value.protected double getPenaltyB(T selectedValue, T assignedValue, T initialValue)
selectedValue
 value which is going to be unassigned to its variableassignedValue
 value currently assigned to a conflicting variable (different
from the one of selectedVariable)initialValue
 initial value of the conflicting variable of assignedValueprotected double getPenaltyC(T selectedValue, T assignedValue, T initialValue)
selectedValue
 value which is going to be unassigned to its variableassignedValue
 value currently assigned to a conflicting variable (different
from the one of selectedVariable)initialValue
 initial value of the conflicting variable of assignedValueprotected double getPenaltyD(T selectedValue, T initialValue)
selectedValue
 value which is going to be unassigned to its variableinitialValue
 initial value of the same variablepublic double getPerturbationPenalty(Model<V,T> model, T selectedValue, Collection<T> conflicts)
PerturbationsCounter
getPerturbationPenalty
in interface PerturbationsCounter<V extends Variable<V,T>,T extends Value<V,T>>
model
 current modelselectedValue
 value to be selected in the next iterationconflicts
 conflicting values to be unassigned in the next iterationpublic void getInfo(Map<String,String> info, Model<V,T> model)
PerturbationsCounter
public void getInfo(Map<String,String> info, Model<V,T> model, Collection<V> variables)
PerturbationsCounter