Package es.urjc.etsii.grafo.algorithms
Class SimpleAlgorithm<S extends Solution<S,I>,I extends Instance>
java.lang.Object
es.urjc.etsii.grafo.algorithms.Algorithm<S,I>
es.urjc.etsii.grafo.algorithms.SimpleAlgorithm<S,I>
- Type Parameters:
S
- Solution classI
- Instance class
Example simple algorithm, executes:
Constructive → (Optional, if present) Local Searches → (Optional, if present) Shake → If did not improve end
^_________________________________________| else repeat
This class can be used to test all the pieces if they are working properly, or as a base for more complex algorithms
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSimpleAlgorithm
(String algorithmName, Constructive<S, I> constructive) Constructor for SimpleAlgorithm.SimpleAlgorithm
(String algorithmName, Constructive<S, I> constructive, Improver<S, I> improver) Constructor for SimpleAlgorithm. -
Method Summary
Modifier and TypeMethodDescriptionRuns the algorithmprotected S
constructive
(I instance) Construct a solution first by calling the correct Java constructor and then initialize it using the provided constructive method.protected S
localSearch
(S solution) localSearch.protected void
printStatus
(String phase, S solution) printStatus.toString()
Methods inherited from class es.urjc.etsii.grafo.algorithms.Algorithm
getBuilder, getName, newSolution, setBuilder, setName
-
Field Details
-
constructive
-
improver
-
-
Constructor Details
-
SimpleAlgorithm
Constructor for SimpleAlgorithm.
- Parameters:
constructive
- aConstructive
object.
-
SimpleAlgorithm
@AutoconfigConstructor public SimpleAlgorithm(@ProvidedParam String algorithmName, Constructive<S, I> constructive, Improver<S, I> improver) Constructor for SimpleAlgorithm.
- Parameters:
algorithmName
- Algorithm name, uniquely identifies the current algorithm. Tip: If you dont care about the name, generate a random one usingStringUtil.randomAlgorithmName()
constructive
- aConstructive
object.improver
- aImprover
object.
-
-
Method Details
-
algorithm
Runs the algorithmAlgorithm: Execute a single construction and then all the local searchs a single time.
-
constructive
Construct a solution first by calling the correct Java constructor and then initialize it using the provided constructive method.
- Parameters:
instance
- a I object.- Returns:
- a S object.
-
localSearch
localSearch.
- Parameters:
solution
- a S object.- Returns:
- a S object.
-
printStatus
printStatus.
- Parameters:
phase
- aString
object.solution
- a S object.
-
toString
-