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: non-initial 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