@@ -0,0 +1,1318 @@
+package cs437.som.learningrate;%0A%0Aimport cs437.som.LearningRateFunction;%0A%0A/**%0A * Learning rate strategy for self-organizing maps that decays the learning%0A * rate exponentially as the iterations progress.%0A *%0A * %3Cpre%3E%0A * The exact behavior follows the formula:%0A *      %5Calpha_0 * e%5E(-t / t_%7Bmax%7D)%0A *  where%0A *      %5Calpha_0 is the initial learning rate%0A *      e        is the base of the natural logarithm%0A *      t        is the current iteration%0A *      t_%7Bmax%7D  is the maximum expected iteration%0A * %3C/pre%3E%0A */%0Apublic class ExponentialDecayLearningRateFunction implements LearningRateFunction %7B%0A    private final double initialLearningRate;%0A    private double expectedIterations = 0.0;%0A%0A    /**%0A     * Create an exponentially decaying learning rate function.%0A     *%0A     * @param initialWidth The initial learning rate.%0A     */%0A    public ExponentialDecayLearningRateFunction(double initialWidth) %7B%0A        initialLearningRate = initialWidth;%0A    %7D%0A%0A    public void setExpectedIterations(int expectedIterations) %7B%0A        this.expectedIterations = expectedIterations;%0A    %7D%0A%0A    public double learningRate(int iteration) %7B%0A        return initialLearningRate * Math.exp(-iteration / expectedIterations);%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return %22ExponentialDecayLearningRateFunction%22;%0A    %7D%0A%7D%0A

Add exponential decay learning rate.