All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.cilib.tuning.parameters.RandomParameterGenerator Maven / Gradle / Ivy

Go to download

A library of composable components enabling simpler Computational Intelligence

There is a newer version: 0.8
Show newest version
/**           __  __
 *    _____ _/ /_/ /_    Computational Intelligence Library (CIlib)
 *   / ___/ / / / __ \   (c) CIRG @ UP
 *  / /__/ / / / /_/ /   http://cilib.net
 *  \___/_/_/_/_.___/
 */
package net.sourceforge.cilib.tuning.parameters;

import fj.F;
import static fj.data.List.range;
import net.sourceforge.cilib.math.random.ProbabilityDistributionFunction;
import net.sourceforge.cilib.math.random.UniformDistribution;
import net.sourceforge.cilib.type.types.container.Vector;
import net.sourceforge.cilib.util.functions.Utils;

/**
 * Generates a list of values randomly within the given bounds.
 */
public class RandomParameterGenerator extends ParameterGenerator {
    
    private int count;
    private ProbabilityDistributionFunction distribution;
    
    public RandomParameterGenerator() {
        this.distribution = new UniformDistribution();
        this.count = 10;
    }

    @Override
    public Vector _1() {
        return Vector.copyOf(
            range(0, count).map(new F(){
                @Override
                public Double f(Integer a) {
                    return distribution.getRandomNumber();
                }                
            }.andThen(Utils.precision(precision))));
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getCount() {
        return count;
    }

    public void setDistribution(ProbabilityDistributionFunction distribution) {
        this.distribution = distribution;
    }

    public ProbabilityDistributionFunction getDistribution() {
        return distribution;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy