gov.sandia.cognition.learning.algorithm.annealing.Perturber Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cognitive-foundry Show documentation
Show all versions of cognitive-foundry Show documentation
A single jar with all the Cognitive Foundry components.
/*
* File: Perturber.java
* Authors: Justin Basilico and Kevin R. Dixon
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright February 20, 2006, Sandia Corporation. Under the terms of Contract
* DE-AC04-94AL85000, there is a non-exclusive license for use of this work by
* or on behalf of the U.S. Government. Export of this program may require a
* license from the United States Government. See CopyrightHistory.txt for
* complete details.
*
*/
package gov.sandia.cognition.learning.algorithm.annealing;
import gov.sandia.cognition.annotation.CodeReview;
import gov.sandia.cognition.annotation.CodeReviews;
import gov.sandia.cognition.util.CloneableSerializable;
/**
* The Perturber interface defines the functionality of an object that can
* take an object and perturb it, returning the perturbed value.
*
* It is recommended that a {@link Perturber} implement
* {@link CloneableSerializable}, but it is not required.
*
* @param Class that is given to, and returned from, the
* {@code perturb()} method
* @author Justin Basilico
* @author Kevin R. Dixon
* @since 1.0
*/
@CodeReviews(
reviews={
@CodeReview(
reviewer="Kevin R. Dixon",
date="2008-07-22",
changesNeeded=false,
comments={
"Moved previous code review to annotation.",
"Fixed minor typo in javadoc.",
"Interface looks fine."
}
)
,
@CodeReview(
reviewer="Justin Basilico",
date="2006-10-02",
changesNeeded=false,
comments="Interface looks fine."
)
}
)
public interface Perturber
{
/**
* Perturbs the given object and returns the perturbed version.
*
* @param input The object to perturb. It should not be changed.
* @return The perturbed version of the object.
*/
public PerturbedType perturb(
final PerturbedType input);
}