List of usage examples for org.apache.commons.math3.distribution UniformRealDistribution UniformRealDistribution
public UniformRealDistribution(double lower, double upper) throws NumberIsTooLargeException
From source file:edu.uiowa.javatm.UtilsTestDrive.java
public static void main(String[] args) throws IOException { double tau = 0.01; UniformRealDistribution uniform = new UniformRealDistribution(-1 * tau, tau); System.out.println(uniform.sample()); /*/*from w ww .j a va 2 s. c o m*/ * int a = +0; int b = +0; System.out.println(a/b); String asFile = "/Users/zhiyzuo/Documents/java-topic-model/data/AS.csv"; ArrayList<int[]> AS = Utils.readAS(asFile); System.out.println(Arrays.deepToString(AS.toArray())); // random number genrator final Random random = new Random(); System.out.println(random.ints(1, 0, 10).toArray()[0]); String asFile = "/Users/zhiyzuo/Documents/java-topic-model/data/AS.csv"; ArrayList<int[]> AS = Utils.readAS(asFile); System.out.println(Arrays.deepToString(AS.toArray())); /* * double[][] mydoubleArray = new double [][] { { 1, 2.}, { 0.02, 0.12}, { 4.97, 3.56} }; Utils.write2DArray(mydoubleArray, "/Users/zhiyzuo/Desktop/test.csv"); String[][] myStringArray = new String [][] { { "X0", "Y0"}, { "X1", "Y1"}, { "X2", "Y2"}, { "X3", "Y3"}, { "X4", "Y4"} }; Utils.write2DArray(myStringArray, "/Users/zhiyzuo/Desktop/test.csv"); int[][] array1 = {{1,2,3},{4,5,6},{7,8,9}}; System.out.println("Test getColumn()"); System.out.println(Arrays.toString(Utils.getColumn(array1, 0))); int[] array2 = {1,1,2,3,2,3,2}; System.out.println("Test find()"); System.out.println(Utils.find(array2, 2).toString()); double[] array3 = {0.25, 0.3, 0.15, 0.2, 0.1}; System.out.println("Test sortIndex(double[])"); int[] sortedIndices = Utils.sortIndex(array3); double[] array3_sorted = new double[array3.length]; for (int i = 0; i < array3.length; i++) { array3_sorted[i] = array3[sortedIndices[i]]; } System.out.println(Arrays.toString(array3_sorted)); */ /* System.out.println("Test _sum()"); double sum_ = Utils._sum(array3); System.out.println("Sum of array3 is: " + sum_); double[] array4 = {0.5, 0.7, 0.8}; System.out.println("Test _normalize()"); double[] array4_normed = Utils._normalize(array4); System.out.println("Normalized array4 is: " + Arrays.toString(array4_normed)); */ /* double[] array4 = {0.4, 0.05, 0.1}; System.out.println("Test sample()"); System.out.println("Probablity List: " + Arrays.toString(array4)); int[] choices = new int[10]; for (int i = 0; i < 10; i++) { choices[i] = Utils.sample(array4); } System.out.println(Arrays.toString(choices)); /* .* String vocFileName = "../data/test_mat.csv.clabel"; System.out.println("Test readVocabulary()"); String[] vocArray = Utils.readVocabulary(vocFileName); System.out.println(Arrays.toString(vocArray)); */ /* String docFileName = "../data/WD.csv"; System.out.println("Test readDocFile()"); int[][] WD = Utils.readDocFile(docFileName); int[] DS = Utils.getColumn(WD, 0); int[] WS = Utils.getColumn(WD, 1); System.out.println(Arrays.deepToString(WD)); System.out.println(Arrays.toString(DS)); System.out.println(Arrays.toString(WS)); System.out.println(DS[DS.length-1] + 1); */ /* int[][] DA = Utils.readDA("data/DA.csv"); System.out.println(Arrays.deepToString(DA)); for (int j = 0; j < DA.length; j++) { System.out.println(j + " " + Arrays.toString(Utils.nonZeroIndex(DA[j]))); } */ /* double[][] citationMatrix = Utils.readCitationFile("../data/doc1Citation.csv"); System.out.println(Arrays.deepToString(citationMatrix)); double[] doubleArray = new double[] {1, 2, 3, 4}; System.out.println("Mean of " + Arrays.toString(doubleArray) + " is: " + Utils.mean(doubleArray)); System.out.println("Variance of " + Arrays.toString(doubleArray) + " is: " + Utils.variance(doubleArray)); */ }
From source file:com.ibm.og.util.Distributions.java
/** * Creates a uniform distribution with a range of [average - spread, average + spread]. * //from w ww.ja v a2s .c o m * @param average the average value of this distribution * @param spread distance from the average * @return a uniform distribution instance * @throws IllegalArgumentException if average or spread are negative, or if average - spread is * negative */ public static Distribution uniform(final double average, final double spread) { checkArgument(average >= 0.0, "average must be >= 0.0 [%s]", average); checkArgument(spread >= 0.0, "spread must be >= 0.0 [%s]", spread); if (DoubleMath.fuzzyEquals(spread, 0.0, Distributions.ERR)) { return constant(average); } final double lower = average - spread; final double upper = average + spread; checkArgument(lower >= 0.0, "average - spread must be >= 0.0 [%s]", lower); final String s = String.format("UniformDistribution [average=%s, spread=%s]", average, spread); return new RealDistributionAdapter(new UniformRealDistribution(lower, upper), s); }
From source file:it.cnr.isti.smartfed.papers.qbrokage.DatacenterGenerator.java
public DatacenterGenerator() { costPerMem = new UniformRealDistribution(0.01, 0.10); costPerSto = new UniformRealDistribution(0.0002, 0.0020); costPerSec = new UniformRealDistribution(0.10, 0.80); //not used, see below costPerBw = new UniformRealDistribution(0.001, 0.05); ramAmount = new UniformIntegerDistribution(512, 1024 * 16); bwAmount = new UniformIntegerDistribution(10 * 1024, 10 * 1024 * 1024); stoAmount = new UniformIntegerDistribution(4096, 10 * 1024 * 1024); // 10TB max coreAmount = new UniformIntegerDistribution(1, 8); mipsAmount = new UniformIntegerDistribution(1000, 25000); }
From source file:adams.data.distribution.Uniform.java
/** * Returns the configured distribution.// w w w . java 2 s . c o m * * @return the distribution */ @Override public RealDistribution getRealDistribution() { return new UniformRealDistribution(m_LowerBound, m_UpperBound); }
From source file:eu.crisis_economics.abm.model.parameters.ParameterUtils.java
/** * Create a model parameter with a double value drawn from a * uniform distribution./*from w w w . j a v a 2 s. co m*/ * * @param parameterName * The name of the model parameter. * @param minParameterValue * The minimum value of the paremeter. * @param maxParameterValue * The maximum value of the parameter. */ public static ModelParameter<?> createParameterWithUniformDistribution(final String parameterName, final double minParameterValue, final double maxParameterValue) { Preconditions.checkArgument(minParameterValue <= maxParameterValue); return new FromRealDistributionModelParameter( new UniformRealDistribution(minParameterValue, maxParameterValue), parameterName); }
From source file:io.yields.math.framework.data.DataProvidersTest.java
@Explore(name = "check distributional properties of random numbers", dataProvider = DataProviders.FixedMersenneTwisterDataProvider.class, nrOfRuns = 10000) @Exploration(name = "2D uniform samples", context = FunctionExplorerWithoutProperties.class, group = "data providers") public void testRandomDistribution(Explorer<Pair> explorer) { KolmogorovSmirnovTest ksTest = new KolmogorovSmirnovTest(); DescriptiveStatistics xStats = new DescriptiveStatistics(); DescriptiveStatistics yStats = new DescriptiveStatistics(); explorer.all().forEach(result -> { Pair pair = result.getFunctionOutcome().orElse(new Pair()); xStats.addValue(pair.getX1());/* w ww. j ava2s .c om*/ yStats.addValue(pair.getX2()); }); DescriptiveStatistics cross = new DescriptiveStatistics(); for (int i = 0; i < xStats.getN(); i++) { cross.addValue((xStats.getValues()[i] - .5) * (yStats.getValues()[i] - .5)); } /** * x and y should be uniformly distributed */ assertThat(ksTest.kolmogorovSmirnovStatistic(new UniformRealDistribution(0, 1), xStats.getValues())) .isEqualTo(0, Delta.delta(.015)); assertThat(ksTest.kolmogorovSmirnovStatistic(new UniformRealDistribution(0, 1), yStats.getValues())) .isEqualTo(0, Delta.delta(.015)); /** * and have zero correlation */ assertThat(cross.getMean()).isEqualTo(0, Delta.delta(.05)); }
From source file:io.druid.benchmark.datagen.BenchmarkColumnValueGenerator.java
private void initDistribution() { BenchmarkColumnSchema.ValueDistribution distributionType = schema.getDistributionType(); ValueType type = schema.getType();/*from w ww.ja v a 2 s . c om*/ List<Object> enumeratedValues = schema.getEnumeratedValues(); List<Double> enumeratedProbabilities = schema.getEnumeratedProbabilities(); List<Pair<Object, Double>> probabilities = new ArrayList<>(); switch (distributionType) { case SEQUENTIAL: // not random, just cycle through numbers from start to end, or cycle through enumerated values if provided distribution = new SequentialDistribution(schema.getStartInt(), schema.getEndInt(), schema.getEnumeratedValues()); break; case UNIFORM: distribution = new UniformRealDistribution(schema.getStartDouble(), schema.getEndDouble()); break; case DISCRETE_UNIFORM: if (enumeratedValues == null) { enumeratedValues = new ArrayList<>(); for (int i = schema.getStartInt(); i < schema.getEndInt(); i++) { Object val = convertType(i, type); enumeratedValues.add(val); } } // give them all equal probability, the library will normalize probabilities to sum to 1.0 for (int i = 0; i < enumeratedValues.size(); i++) { probabilities.add(new Pair<>(enumeratedValues.get(i), 0.1)); } distribution = new EnumeratedTreeDistribution<>(probabilities); break; case NORMAL: distribution = new NormalDistribution(schema.getMean(), schema.getStandardDeviation()); break; case ROUNDED_NORMAL: NormalDistribution normalDist = new NormalDistribution(schema.getMean(), schema.getStandardDeviation()); distribution = new RealRoundingDistribution(normalDist); break; case ZIPF: int cardinality; if (enumeratedValues == null) { Integer startInt = schema.getStartInt(); cardinality = schema.getEndInt() - startInt; ZipfDistribution zipf = new ZipfDistribution(cardinality, schema.getZipfExponent()); for (int i = 0; i < cardinality; i++) { probabilities.add(new Pair<>((Object) (i + startInt), zipf.probability(i))); } } else { cardinality = enumeratedValues.size(); ZipfDistribution zipf = new ZipfDistribution(enumeratedValues.size(), schema.getZipfExponent()); for (int i = 0; i < cardinality; i++) { probabilities.add(new Pair<>(enumeratedValues.get(i), zipf.probability(i))); } } distribution = new EnumeratedTreeDistribution<>(probabilities); break; case ENUMERATED: for (int i = 0; i < enumeratedValues.size(); i++) { probabilities.add(new Pair<>(enumeratedValues.get(i), enumeratedProbabilities.get(i))); } distribution = new EnumeratedTreeDistribution<>(probabilities); break; default: throw new UnsupportedOperationException("Unknown distribution type: " + distributionType); } if (distribution instanceof AbstractIntegerDistribution) { ((AbstractIntegerDistribution) distribution).reseedRandomGenerator(seed); } else if (distribution instanceof AbstractRealDistribution) { ((AbstractRealDistribution) distribution).reseedRandomGenerator(seed); } else if (distribution instanceof EnumeratedDistribution) { ((EnumeratedDistribution) distribution).reseedRandomGenerator(seed); } }
From source file:es.csic.iiia.planes.generator.Generator.java
private void addTasks(DProblem p) { ArrayList<DTask> tasks = new ArrayList<DTask>(); // Create the tasks, randomly located for (int i = 0; i < config.getNum_tasks(); i++) { DTask t = new DTask(); t.setX(r.nextInt(p.getWidth())); t.setY(r.nextInt(p.getHeight())); tasks.add(t);/*from w w w .ja v a2 s .com*/ p.getOperators().get(r.nextInt(config.getNum_operators())).getTasks().add(t); } // Set task times. Use the crisis model for now. // How is it done? // 1.a Create a "base" uniform distribution between 0 and duration RealDistribution[] timeDistributions = new RealDistribution[config.getNum_crisis()]; timeDistributions[0] = new UniformRealDistribution(0, config.getDuration()); timeDistributions[0].reseedRandomGenerator(r.nextLong()); // 1.b Create a "base" uniform distribution for the 2d space MultivariateRealDistribution[] spaceDistributions = new MultivariateRealDistribution[config .getNum_crisis()]; spaceDistributions[0] = new MultivariateUniformDistribution(new double[] { 0, 0 }, new double[] { p.getWidth(), p.getHeight() }); spaceDistributions[0].reseedRandomGenerator(r.nextLong()); // 2.a Create one gaussian distribution for each crisis, trying to // spread them out through time. for (int i = 1; i < config.getNum_crisis(); i++) { double mean = r.nextDouble() * config.getDuration(); double std = (config.getDuration() / (double) config.getNum_crisis()) * 0.05; timeDistributions[i] = new NormalDistribution(mean, std); timeDistributions[i].reseedRandomGenerator(r.nextLong()); } // 2.b Create one distribution for each crisis for (int i = 1; i < config.getNum_crisis(); i++) { spaceDistributions[i] = config.getTaskDistributionFactory().buildDistribution(config, r); } // 3. Uniformly sample tasks from these distributions int i = 0; for (DTask t : tasks) { final int j = (int) (r.nextDouble() * (config.getNum_crisis())); t.setnCrisis(j); // Time sampling /** UNCOMMENT TO MAKE TIMES RANDOMLY DISTRIBUTED long time = (long)timeDistributions[i].sample(); while (time < 0 || time > config.getDuration()) { time = (long)timeDistributions[i].sample(); } */ // Set all tasks to appear at the start of the simulation. To change // this, delete the 0 and replace it with the long variable "time" t.setTime(0); // Divide simulation space into (a x a) sized blocks final Location[][] blocks = Location.buildBlocks(config.getBlockSize(), config.getWidthRegions(), config.getHeightRegions()); // Position sampling double[] position = spaceDistributions[j].sample(); /* * Sample a point until its position is not conflicting with * any previous point positions (i.e. it is not located in the same block * as a previously assigned point), AND it is a valid position * that falls inside the simulation space. */ while (invalidPosition(position[0], position[1], p)) { //|| blockConflict(blocks, position[0], position[1], tasks, i)) { position = spaceDistributions[j].sample(); } // int k = 0; // for (DTask t2: tasks) { // if(k < i) { // // Check if the position sampled is within the simulation space // while (invalidPosition(position[0], position[1], p) // || sameBlocks(blocks, position[0], position[1], t2)) { // position = spaceDistributions[j].sample(); // } // } // else { // while (invalidPosition(position[0], position[1], p)) { // position = spaceDistributions[j].sample(); // } // } // k++; // } // while (invalidPosition(position[0], position[1], p)) { // position = spaceDistributions[j].sample(); // } // int posX; // int posY; // if (i < blocks[0].length) { // posX = (int)blocks[0][i].getX(); // posY = (int)blocks[0][i].getY(); // } // else { // posX = (int)blocks[1][0].getX(); // posY = (int)blocks[1][0].getY(); // } t.setX((int) position[0]); t.setY((int) position[1]); // t.setX(posX); // t.setY(posY); i++; } // 4. Debug stuff //printTaskHistogram(tasks); }
From source file:it.cnr.isti.smartfed.papers.qbrokage.BrokageLockin.java
public DatacenterGeneratorCost() { costPerMem = new UniformRealDistribution(0.01, 0.10); costPerSto = new UniformRealDistribution(0.0002, 0.0020); costPerSec = new UniformRealDistribution(0.10, 0.80); //not used, see below costPerBw = new UniformRealDistribution(0.001, 0.05); ramAmount = new UniformIntegerDistribution(512, 1024 * 16); bwAmount = new UniformIntegerDistribution(10 * 1024, 10 * 1024 * 1024); stoAmount = new UniformIntegerDistribution(4096, 10 * 1024 * 1024); // 10TB max coreAmount = new UniformIntegerDistribution(1, 8); mipsAmount = new UniformIntegerDistribution(1000, 25000); this.seed = 1; }
From source file:com.github.aptd.simulation.datamodel.CXMLReader.java
@Override @SuppressWarnings("unchecked") public final IExperiment get(final IFactory p_factory, final String p_datamodel, final long p_simulationsteps, final boolean p_parallel, final String p_timemodel, final Supplier<RealDistribution> p_platformchangedurationdistributionsupplier, final int p_numberofpassengers, final double p_lightbarrierminfreetime, final double p_delayseconds) { try (final FileInputStream l_stream = new FileInputStream(p_datamodel)) { final Asimov l_model = (Asimov) m_context.createUnmarshaller().unmarshal(l_stream); // time definition final Instant l_starttime = ZonedDateTime.now(ZoneId.systemDefault()) .with(ChronoField.CLOCK_HOUR_OF_DAY, 8).with(ChronoField.MINUTE_OF_HOUR, 45) .with(ChronoField.SECOND_OF_MINUTE, 0).with(ChronoField.NANO_OF_SECOND, 0) .with(ChronoField.DAY_OF_MONTH, 3).with(ChronoField.MONTH_OF_YEAR, 10) .with(ChronoField.YEAR, 2017).toInstant(); final ITime l_time = "jump".equals(p_timemodel) ? new CJumpTime(l_starttime, p_simulationsteps) : new CStepTime(l_starttime, Duration.ofSeconds(1), p_simulationsteps); final CMessenger l_messenger = new CMessenger(); final Set<IAction> l_actionsfrompackage = CCommon.actionsFromPackage().collect(Collectors.toSet()); // asl agent definition final Map<String, String> l_agentdefs = agents(l_model.getAi()); // macro (train-network) and microscopic model final Map<String, IPlatform<?>> l_platform = platform(l_model.getNetwork(), l_agentdefs, p_factory, l_time);// w w w . j a va 2 s . co m final Map<String, IStation<?>> l_station = station(l_model.getNetwork(), l_agentdefs, p_factory, l_time, l_platform); final Pair<Map<String, ITrain<?>>, Map<String, IDoor<?>>> l_train = train(l_model.getNetwork(), l_agentdefs, p_factory, l_time, p_lightbarrierminfreetime); final Map<String, IElement<?>> l_agents = new HashMap<>(); l_agents.putAll(l_platform); l_agents.putAll(l_station); l_agents.putAll(l_train.getLeft()); l_agents.putAll(l_train.getRight()); final CExperiment l_experiment = new CExperiment(p_simulationsteps, p_parallel, IStatistic.EMPTY, l_agents, l_time, l_messenger); // @todo create passengersources and their passenger generators according to scenario definition final IElement.IGenerator<IPassenger<?>> l_passengergenerator = passengergenerator(p_factory, "+!activate <-\n state/transition\n.", l_actionsfrompackage, l_time); l_experiment.addAgent("passengersource_test", passengersourcegenerator(p_factory, "+!activate <-\n state/transition\n.", l_actionsfrompackage, l_time).generatesingle(new UniformRealDistribution(0.0, 1.0), l_time.current().toEpochMilli(), p_numberofpassengers, l_passengergenerator, l_experiment, l_agents.get("toy-node-1"), p_platformchangedurationdistributionsupplier.get())); l_messenger.experiment(l_experiment); // experiment (executable model) return l_experiment; } catch (final Exception l_execption) { throw new CRuntimeException(l_execption); } }