Example usage for org.apache.commons.math3.stat.descriptive SummaryStatistics SummaryStatistics

List of usage examples for org.apache.commons.math3.stat.descriptive SummaryStatistics SummaryStatistics

Introduction

In this page you can find the example usage for org.apache.commons.math3.stat.descriptive SummaryStatistics SummaryStatistics.

Prototype

public SummaryStatistics() 

Source Link

Document

Construct a SummaryStatistics instance

Usage

From source file:net.adamjak.thomas.graph.application.gui.ResultsWidnow.java

private JTable createJtResults() {
    if (this.results.containsKey("resultsData")) {
        GraphTestResult[][] results = (GraphTestResult[][]) this.results.get("resultsData");

        String[] columnNames = { "Graph ID", "Avarage time", "Standard deviation", "Minimum", "Maximum" };
        Object[][] data = new Object[results[0].length][5];

        for (int graph = 0; graph < results[0].length; graph++) {
            SummaryStatistics summaryStatistics = new SummaryStatistics();

            for (int run = 0; run < results.length; run++) {
                summaryStatistics.addValue((double) results[run][graph].getValue("timeInSeconds"));
            }//from   www  . jav  a 2s.co  m

            data[graph][0] = graph;
            data[graph][1] = summaryStatistics.getMean();
            data[graph][2] = summaryStatistics.getStandardDeviation();
            data[graph][3] = summaryStatistics.getMin();
            data[graph][4] = summaryStatistics.getMax();
        }

        return new JTable(data, columnNames);
    } else {
        String[] columnNames = { "Description", "Result" };
        Object[][] data = new Object[this.results.keySet().size()][2];

        int i = 0;
        for (String key : this.results.keySet()) {
            data[i][0] = key;
            data[i][1] = this.results.get(key);
            i++;
        }

        return new JTable(data, columnNames);
    }
}

From source file:ijfx.core.stats.DefaultImageStatisticsService.java

public SummaryStatistics getStatistics(File file) {
    try {//from  w w  w .  java 2  s  .  co m
        Timer t = timerService.getTimer("getStatistics(File)");
        t.start();
        Dataset dataset = datasetIoService.open(file.getAbsolutePath());
        t.elapsed("open dataset");
        SummaryStatistics stats = getSummaryStatistics(dataset);
        t.elapsed("read dataset");
        return stats;
    } catch (IOException e) {
        return new SummaryStatistics();
    }
}

From source file:net.sourceforge.jabm.report.PayoffMap.java

public StatisticalSummary createStatisticalSummary(Strategy s) {
    return new SummaryStatistics();
}

From source file:com.github.steveash.jg2p.aligntag.AlignTagTrainer.java

private void trainExamples(InstanceList examples) throws IOException {
    Pipe pipe = examples.getPipe();

    TransducerTrainer trainer;/*from   w w  w . j  a  va  2  s. co  m*/

    int round = 0;
    CrossValidationIterator trials = new CrossValidationIterator(examples, 4, new Random(123321123));
    SummaryStatistics overall = new SummaryStatistics();

    while (trials.hasNext()) {
        log.info("Starting training round {}...", round);
        InstanceList[] split = trials.next();
        InstanceList trainData = split[0];
        InstanceList testData = split[1];

        trainer = trainOnce(pipe, trainData);
        double thisAccuracy = evaluateOnce(round, trainData, testData, trainer);
        overall.addValue(thisAccuracy);

        round += 1;
    }

    log.info("Training on whole data...");
    trainer = trainOnce(pipe, examples);
    writeModel(trainer);

    log.info("Done! overall " + overall.getMean() + " stddev " + overall.getStandardDeviation());
}

From source file:model.experiments.tuningRuns.CompetitiveAveragingGridSearch.java

public static CompetitiveAveragingResult exponentialRuns(float hrWeight,
        PriceAverager.NoTradingDayPolicy hrPolicy, float salesWeight,
        PriceAverager.NoTradingDayPolicy salesPolicy, int maximizerAveragePeriod) {

    SummaryStatistics averageResultingPrice = new SummaryStatistics();
    SummaryStatistics averageResultingQuantity = new SummaryStatistics();
    SummaryStatistics averageStandardDeviation = new SummaryStatistics();
    for (int i = 0; i < 5; i++) {
        final MacroII macroII = new MacroII(i);
        final TripolistScenario scenario1 = new TripolistScenario(macroII);

        scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
        scenario1.setAskPricingStrategy(SalesControlWithFixedInventoryAndPID.class);
        scenario1.setControlType(/*  ww  w  .jav  a 2  s  .  c o m*/
                MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);
        scenario1.setAdditionalCompetitors(4);
        scenario1.setWorkersToBeRehiredEveryDay(true);
        scenario1.setDemandIntercept(102);

        scenario1.setSalesPricePreditorStrategy(FixedDecreaseSalesPredictor.class);

        //assign scenario
        macroII.setScenario(scenario1);

        macroII.start();

        macroII.schedule.step(macroII);
        for (Firm firm : scenario1.getCompetitors()) {
            for (HumanResources hr : firm.getHRs()) {
                hr.setPredictor(new FixedIncreasePurchasesPredictor(0));
                hr.setPriceAverager(new ExponentialPriceAverager(hrWeight, hrPolicy));
            }
            firm.getSalesDepartment(UndifferentiatedGoodType.GENERIC)
                    .setPriceAverager(new ExponentialPriceAverager(salesWeight, salesPolicy));
            firm.getSalesDepartment(UndifferentiatedGoodType.GENERIC)
                    .setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
        }

        for (final PlantControl control : scenario1.getMaximizers()) {
            ((MarginalPlantControl) control).getMaximizer()
                    .setHowManyDaysBeforeEachCheck(maximizerAveragePeriod);
        }

        while (macroII.schedule.getTime() < 10000) {
            macroII.schedule.step(macroII);
        }

        SummaryStatistics prices = new SummaryStatistics();
        SummaryStatistics quantities = new SummaryStatistics();
        for (int j = 0; j < 500; j++) {
            macroII.schedule.step(macroII);
            prices.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
            quantities.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());

        }

        //okay?
        averageResultingPrice.addValue(prices.getMean());
        averageResultingQuantity.addValue(quantities.getMean());
        averageStandardDeviation.addValue(prices.getStandardDeviation());

    }

    //okay?
    return new CompetitiveAveragingResult(averageResultingPrice.getMean(), averageResultingQuantity.getMean(),
            averageStandardDeviation.getMean());

}

From source file:fr.inria.eventcloud.benchmarks.radix10_conversion.Radix10ConversionBenchmark.java

private final void test(Run run) {
    System.out.println("Testing precision with NB_QUADS_TO_READ=" + run.getNbQuadsToRead() + " and PRECISION="
            + run.getPrecision());//  w  w w .  jav  a  2 s.c o m

    FileInputStream fis = null;
    Iterator<Quad> it = null;
    try {
        fis = new FileInputStream(this.trigResource);

        it = RiotReader.createIteratorQuads(fis, Lang.TRIG, null);

        SummaryStatistics statsWithoutPrefixRemoval = new SummaryStatistics();
        SummaryStatistics statsWithPrefixRemoval = new SummaryStatistics();

        Stopwatch stopwatch = Stopwatch.createUnstarted();

        int i = 1;

        while (it.hasNext()) {
            if (i >= run.getNbQuadsToRead()) {
                break;
            }

            Quad quad = it.next();

            if (this.enableRdfStats) {
                // compute stats without applying doping function
                statsWithoutPrefixRemoval.addValue(size(quad.getGraph()));
                statsWithoutPrefixRemoval.addValue(size(quad.getSubject()));
                statsWithoutPrefixRemoval.addValue(size(quad.getPredicate()));
                statsWithoutPrefixRemoval.addValue(size(quad.getObject()));
            }

            String g = SemanticCoordinate.applyDopingFunction(quad.getGraph());
            String s = SemanticCoordinate.applyDopingFunction(quad.getSubject());
            String p = SemanticCoordinate.applyDopingFunction(quad.getPredicate());
            String o = SemanticCoordinate.applyDopingFunction(quad.getObject());

            if (this.enableRdfStats) {
                // compute stats by applying doping function
                statsWithPrefixRemoval.addValue(g.length());
                statsWithPrefixRemoval.addValue(s.length());
                statsWithPrefixRemoval.addValue(p.length());
                statsWithPrefixRemoval.addValue(o.length());
            }

            long precision = run.getPrecision();

            stopwatch.start();
            ApfloatUtils.toFloatRadix10(g, precision);
            ApfloatUtils.toFloatRadix10(s, precision);
            ApfloatUtils.toFloatRadix10(p, precision);
            ApfloatUtils.toFloatRadix10(o, precision);
            stopwatch.stop();

            i++;
        }

        if (this.enableRdfStats) {
            System.out.println(
                    "  RDF term min size before prefix removal is " + statsWithoutPrefixRemoval.getMin());
            System.out.println(
                    "  RDF term max size before prefix removal is " + statsWithoutPrefixRemoval.getMax());
            System.out.println(
                    "  RDF term average size before prefix removal is " + statsWithoutPrefixRemoval.getMean());

            System.out
                    .println("  RDF term min size after prefix removal is " + statsWithPrefixRemoval.getMin());
            System.out
                    .println("  RDF term max size after prefix removal is " + statsWithPrefixRemoval.getMax());
            System.out.println(
                    "  RDF term average size after prefix removal is " + statsWithPrefixRemoval.getMean());
        }

        System.out.println("Time to perform radix 10 conversion for " + i + " with precision set to "
                + run.getPrecision() + " is " + stopwatch.toString() + " --> "
                + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
        System.out.println();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } finally {
        if (fis != null) {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

From source file:net.adamjak.thomas.graph.application.run.TestRunner.java

private void save(Map<String, Object> results, boolean rawData) {
    SnarkTestTypes testType = (SnarkTestTypes) results.get("testType");

    if (this.outputFile.getName().split("\\.")[this.outputFile.getName().split("\\.").length - 1].toLowerCase()
            .equals("ods")) {

        String[] columnNames;/*from  w w w. j av a2  s.c  o  m*/
        Object[][] data;

        if (testType == SnarkTestTypes.ALL_ALGORITHMS) {
            GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

            columnNames = String.valueOf("Algorithm,Graph ID,Avarage time,Standard deviation,Minimum,Maximum")
                    .split(",");
            data = new Object[graphTestResult[0].length][6];

            for (int cls = 0; cls < graphTestResult[0][0].length; cls++) {
                Class<?> c = (Class<?>) graphTestResult[0][0][cls].getValue("algorithmClass");

                for (int graph = 0; graph < graphTestResult[0].length; graph++) {
                    SummaryStatistics summaryStatistics = new SummaryStatistics();

                    for (int run = 0; run < graphTestResult.length; run++) {
                        summaryStatistics
                                .addValue((double) graphTestResult[run][graph][cls].getValue("timeInSeconds"));
                    }

                    data[graph][0] = c.getSimpleName();
                    data[graph][1] = graph;
                    data[graph][2] = summaryStatistics.getMean();
                    data[graph][3] = summaryStatistics.getStandardDeviation();
                    data[graph][4] = summaryStatistics.getMin();
                    data[graph][5] = summaryStatistics.getMax();
                }
            }
        } else if (testType == SnarkTestTypes.ONE_ALGORITHM_START_IN_EVERY_VERTEX) {
            GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

            columnNames = String
                    .valueOf("Graph ID,Start vertex,Avarage time,Standard deviation,Minimum,Maximum")
                    .split(",");
            data = new Object[graphTestResult[0].length][6];

            for (int vid = 0; vid < graphTestResult[0][0].length; vid++) {
                for (int graph = 0; graph < graphTestResult[0].length; graph++) {
                    SummaryStatistics summaryStatistics = new SummaryStatistics();

                    for (int run = 0; run < graphTestResult.length; run++) {
                        summaryStatistics
                                .addValue((double) graphTestResult[run][graph][vid].getValue("timeInSeconds"));
                    }

                    data[graph][0] = graph;
                    data[graph][1] = vid;
                    data[graph][2] = summaryStatistics.getMean();
                    data[graph][3] = summaryStatistics.getStandardDeviation();
                    data[graph][4] = summaryStatistics.getMin();
                    data[graph][5] = summaryStatistics.getMax();
                }
            }
        } else {
            GraphTestResult[][] graphTestResult = (GraphTestResult[][]) results.get("resultsData");

            columnNames = String.valueOf("Graph ID,Avarage time,Standard deviation,Minimum,Maximum").split(",");
            data = new Object[graphTestResult[0].length][5];

            for (int graph = 0; graph < graphTestResult[0].length; graph++) {
                SummaryStatistics summaryStatistics = new SummaryStatistics();

                for (int run = 0; run < graphTestResult.length; run++) {
                    summaryStatistics.addValue((double) graphTestResult[run][graph].getValue("timeInSeconds"));
                }

                data[graph][0] = graph;
                data[graph][1] = summaryStatistics.getMean();
                data[graph][2] = summaryStatistics.getStandardDeviation();
                data[graph][3] = summaryStatistics.getMin();
                data[graph][4] = summaryStatistics.getMax();
            }
        }

        try {
            SpreadSheet.createEmpty(new JTable(data, columnNames).getModel()).saveAs(outputFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

        if (rawData == true) {
            if (testType == SnarkTestTypes.ALL_ALGORITHMS) {
                GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

                columnNames = String.valueOf("Class,Run,Graph,Time").split(",");
                data = new Object[graphTestResult.length * graphTestResult[0].length
                        * graphTestResult[0][0].length][4];

                int row = 0;
                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        for (int k = 0; k < graphTestResult[i][j].length; k++) {
                            data[row][0] = graphTestResult[i][j][k].getValue("algorithmClass");
                            data[row][1] = i;
                            data[row][2] = j;
                            data[row][3] = graphTestResult[i][j][k].getValue("time");
                            row++;
                        }
                    }
                }
            } else if (testType == SnarkTestTypes.ONE_ALGORITHM_START_IN_EVERY_VERTEX) {
                GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

                columnNames = String.valueOf("Run,Graph,Vertex,Time").split(",");
                data = new Object[graphTestResult.length * graphTestResult[0].length
                        * graphTestResult[0][0].length][4];

                int row = 0;
                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        for (int k = 0; k < graphTestResult[i][j].length; k++) {
                            data[row][0] = i;
                            data[row][1] = j;
                            data[row][2] = k;
                            data[row][3] = graphTestResult[i][j][k].getValue("time");
                            row++;
                        }
                    }
                }
            } else if (testType == SnarkTestTypes.ALGORITHM_COMPARATION) {
                GraphTestResult[][] graphTestResult = (GraphTestResult[][]) results.get("resultsData");

                columnNames = String.valueOf("Run,Graph,Time,Class").split(",");
                data = new Object[graphTestResult.length * graphTestResult[0].length][4];

                int row = 0;
                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        data[row][0] = i;
                        data[row][1] = j;
                        data[row][2] = graphTestResult[i][j].getValue("time");
                        data[row][3] = ((Class<?>) graphTestResult[i][j]
                                .getValue(GraphTestResult.SNARK_TESTER_CLASS_KEY)).getSimpleName();
                        row++;
                    }
                }
            } else {
                GraphTestResult[][] graphTestResult = (GraphTestResult[][]) results.get("resultsData");

                columnNames = String.valueOf("Run,Graph,Time").split(",");
                data = new Object[graphTestResult.length * graphTestResult[0].length][3];

                int row = 0;
                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        data[row][0] = i;
                        data[row][1] = j;
                        data[row][2] = graphTestResult[i][j].getValue("time");
                        row++;
                    }
                }
            }

            try {
                SpreadSheet.createEmpty(new JTable(data, columnNames).getModel()).saveAs(outputFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } else {
        StringBuilder sbData = new StringBuilder();

        if (testType == SnarkTestTypes.ALL_ALGORITHMS) {
            GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

            sbData.append(",,All data,,,,,Data without extremes,,,,,\n");
            sbData.append(
                    "Graph ID,Graph ID,Avarage time,Standard deviation,Minimum,Maximum,Confidence Interval,Avarage time,Standard deviation,Minimum,Maximum,Confidence Interval\n");

            for (int cls = 0; cls < graphTestResult[0][0].length; cls++) {
                Class<?> c = (Class<?>) graphTestResult[0][0][cls].getValue("algorithmClass");

                for (int graph = 0; graph < graphTestResult[0].length; graph++) {
                    DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics();

                    for (int run = 0; run < graphTestResult.length; run++) {
                        descriptiveStatistics
                                .addValue((double) graphTestResult[run][graph][cls].getValue("timeInSeconds"));
                    }

                    DescriptiveStatistics descriptiveStatisticsWithoutExtremes = StatisticsUtils
                            .statisticsWithoutExtremes(descriptiveStatistics, StatisticsUtils.GrubbsLevel.L005);

                    sbData.append(c.getSimpleName());
                    sbData.append(",");
                    sbData.append(graph);
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getMean());
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getStandardDeviation());
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getMin());
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getMax());
                    sbData.append(",");
                    sbData.append(StatisticsUtils.getConfidenceInterval(descriptiveStatistics,
                            StatisticsUtils.NormCritical.U0050));
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getMean());
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getStandardDeviation());
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getMin());
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getMax());
                    sbData.append(",");
                    sbData.append(StatisticsUtils.getConfidenceInterval(descriptiveStatisticsWithoutExtremes,
                            StatisticsUtils.NormCritical.U0050));
                    sbData.append("\n");
                }
            }
        } else if (testType == SnarkTestTypes.ONE_ALGORITHM_START_IN_EVERY_VERTEX) {
            GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

            sbData.append(",,All data,,,,,Data without extremes,,,,,\n");
            sbData.append(
                    "Graph ID,Start vertex,Avarage time,Standard deviation,Minimum,Maximum,Confidence Interval,Avarage time,Standard deviation,Minimum,Maximum,Confidence Interval\n");

            for (int vid = 0; vid < graphTestResult[0][0].length; vid++) {
                for (int graph = 0; graph < graphTestResult[0].length; graph++) {
                    DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics();

                    for (int run = 0; run < graphTestResult.length; run++) {
                        descriptiveStatistics
                                .addValue((double) graphTestResult[run][graph][vid].getValue("timeInSeconds"));
                    }

                    DescriptiveStatistics descriptiveStatisticsWithoutExtremes = StatisticsUtils
                            .statisticsWithoutExtremes(descriptiveStatistics, StatisticsUtils.GrubbsLevel.L005);

                    sbData.append(graph);
                    sbData.append(",");
                    sbData.append(vid);
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getMean());
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getStandardDeviation());
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getMin());
                    sbData.append(",");
                    sbData.append(descriptiveStatistics.getMax());
                    sbData.append(",");
                    sbData.append(StatisticsUtils.getConfidenceInterval(descriptiveStatistics,
                            StatisticsUtils.NormCritical.U0050));
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getMean());
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getStandardDeviation());
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getMin());
                    sbData.append(",");
                    sbData.append(descriptiveStatisticsWithoutExtremes.getMax());
                    sbData.append(",");
                    sbData.append(StatisticsUtils.getConfidenceInterval(descriptiveStatisticsWithoutExtremes,
                            StatisticsUtils.NormCritical.U0050));
                    sbData.append("\n");
                }
            }
        } else {

            GraphTestResult[][] graphTestResult = (GraphTestResult[][]) results.get("resultsData");

            sbData.append(",All data,,,,,Data without extremes,,,,,\n");
            sbData.append(
                    "Graph ID,Avarage time,Standard deviation,Minimum,Maximum,Confidence Interval,Avarage time,Standard deviation,Minimum,Maximum,Confidence Interval\n");

            for (int graph = 0; graph < graphTestResult[0].length; graph++) {
                DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics();

                for (int run = 0; run < graphTestResult.length; run++) {
                    descriptiveStatistics
                            .addValue((double) graphTestResult[run][graph].getValue("timeInSeconds"));
                }

                DescriptiveStatistics descriptiveStatisticsWithoutExtremes = StatisticsUtils
                        .statisticsWithoutExtremes(descriptiveStatistics, StatisticsUtils.GrubbsLevel.L005);

                sbData.append(graph);
                sbData.append(",");
                sbData.append(descriptiveStatistics.getMean());
                sbData.append(",");
                sbData.append(descriptiveStatistics.getStandardDeviation());
                sbData.append(",");
                sbData.append(descriptiveStatistics.getMin());
                sbData.append(",");
                sbData.append(descriptiveStatistics.getMax());
                sbData.append(",");
                sbData.append(StatisticsUtils.getConfidenceInterval(descriptiveStatistics,
                        StatisticsUtils.NormCritical.U0050));
                sbData.append(",");
                sbData.append(descriptiveStatisticsWithoutExtremes.getMean());
                sbData.append(",");
                sbData.append(descriptiveStatisticsWithoutExtremes.getStandardDeviation());
                sbData.append(",");
                sbData.append(descriptiveStatisticsWithoutExtremes.getMin());
                sbData.append(",");
                sbData.append(descriptiveStatisticsWithoutExtremes.getMax());
                sbData.append(",");
                sbData.append(StatisticsUtils.getConfidenceInterval(descriptiveStatisticsWithoutExtremes,
                        StatisticsUtils.NormCritical.U0050));
                sbData.append("\n");
            }

        }

        this.saveStringIntoFile(this.outputFile, sbData.toString());

        if (rawData == true) {
            StringBuilder sbRawData = new StringBuilder();

            if (testType == SnarkTestTypes.ALL_ALGORITHMS) {
                GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

                sbRawData.append("Class,Run,Graph,Time\n");

                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        for (int k = 0; k < graphTestResult[i][j].length; k++) {
                            sbRawData.append(graphTestResult[i][j][k].getValue("algorithmClass"));
                            sbRawData.append(",");
                            sbRawData.append(i);
                            sbRawData.append(",");
                            sbRawData.append(j);
                            sbRawData.append(",");
                            sbRawData.append(graphTestResult[i][j][k].getValue("time"));
                            sbRawData.append("\n");
                        }
                    }
                }
            } else if (testType == SnarkTestTypes.ONE_ALGORITHM_START_IN_EVERY_VERTEX) {
                GraphTestResult[][][] graphTestResult = (GraphTestResult[][][]) results.get("resultsData");

                sbRawData.append("Run,Graph,Vertex,Time\n");

                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        for (int k = 0; k < graphTestResult[i][j].length; k++) {
                            sbRawData.append(i);
                            sbRawData.append(",");
                            sbRawData.append(j);
                            sbRawData.append(",");
                            sbRawData.append(k);
                            sbRawData.append(",");
                            sbRawData.append(graphTestResult[i][j][k].getValue("time"));
                            sbRawData.append("\n");
                        }
                    }
                }
            } else if (testType == SnarkTestTypes.ALGORITHM_COMPARATION) {
                GraphTestResult[][] graphTestResult = (GraphTestResult[][]) results.get("resultsData");

                sbRawData.append("Run,Graph,Time,Class\n");

                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        sbRawData.append(i);
                        sbRawData.append(",");
                        sbRawData.append(j);
                        sbRawData.append(",");
                        sbRawData.append(graphTestResult[i][j].getValue("time"));
                        sbRawData.append(",");
                        sbRawData.append(((Class<?>) graphTestResult[i][j]
                                .getValue(GraphTestResult.SNARK_TESTER_CLASS_KEY)).getSimpleName());
                        sbRawData.append("\n");
                    }
                }
            } else {
                GraphTestResult[][] graphTestResult = (GraphTestResult[][]) results.get("resultsData");

                sbRawData.append("Run,Graph,Time\n");

                for (int i = 0; i < graphTestResult.length; i++) {
                    for (int j = 0; j < graphTestResult[i].length; j++) {
                        sbRawData.append(i);
                        sbRawData.append(",");
                        sbRawData.append(j);
                        sbRawData.append(",");
                        sbRawData.append(graphTestResult[i][j].getValue("time"));
                        sbRawData.append("\n");
                    }
                }
            }

            this.saveStringIntoFile(new File(this.outputFile.getParent(), "raw_" + this.outputFile.getName()),
                    sbRawData.toString());
        }
    }
}

From source file:com.github.rinde.rinsim.util.StochasticSuppliersTest.java

/**
 * Tests whether the rescaling of the mean of a truncated normal distribution
 * is implemented correctly./*from w  w w .  j ava  2s . co m*/
 */
@Test
public void testNormalScaleMean() {
    final double[] means = new double[] { 1d, 2d, 3d, 10d, 100d };
    final double[] sds = new double[] { 1d, 1d, 3d, 5d, 100d };

    for (int i = 0; i < means.length; i++) {
        final StochasticSupplier<Double> ss = StochasticSuppliers.normal().mean(means[i]).std(sds[i])
                .lowerBound(0).scaleMean().redrawWhenOutOfBounds().buildDouble();

        final RandomGenerator rng = new MersenneTwister(123);
        final SummaryStatistics stats = new SummaryStatistics();
        for (int j = 0; j < 10000; j++) {
            stats.addValue(ss.get(rng.nextLong()));
        }
        // 1 % deviation from mean is acceptable
        final double allowedDeviation = 0.01 * means[i];
        assertEquals(means[i], stats.getMean(), allowedDeviation);
    }

}

From source file:model.experiments.LearningSupplyChainExperiment.java

public static void monopolist(final boolean beefLearned, final boolean foodLearned, long seed) {
    final MacroII macroII = new MacroII(seed);

    final OneLinkSupplyChainScenarioWithCheatingBuyingPrice scenario1 = new OneLinkSupplyChainScenarioWithCheatingBuyingPrice(
            macroII) {/*from   w ww. j  a  va 2  s  .co m*/

        @Override
        protected void buildBeefSalesPredictor(SalesDepartment dept) {
            if (beefLearned) {
                FixedDecreaseSalesPredictor predictor = SalesPredictor.Factory
                        .newSalesPredictor(FixedDecreaseSalesPredictor.class, dept);
                predictor.setDecrementDelta(2);
                dept.setPredictorStrategy(predictor);
            } else {
                assert dept.getPredictorStrategy() instanceof RecursiveSalePredictor; //assuming here nothing has been changed and we are still dealing with recursive sale predictors
                dept.setPredictorStrategy(new RecursiveSalePredictor(model, dept, 500));
            }
        }

        @Override
        public void buildFoodPurchasesPredictor(PurchasesDepartment department) {
            if (foodLearned)
                department.setPredictor(new FixedIncreasePurchasesPredictor(0));

        }

        @Override
        protected SalesDepartment createSalesDepartment(Firm firm, Market goodmarket) {
            SalesDepartment department = super.createSalesDepartment(firm, goodmarket);
            if (goodmarket.getGoodType().equals(OneLinkSupplyChainScenario.OUTPUT_GOOD)) {
                if (foodLearned)
                    department.setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
            }
            return department;
        }

        @Override
        protected HumanResources createPlant(Blueprint blueprint, Firm firm, Market laborMarket) {
            HumanResources hr = super.createPlant(blueprint, firm, laborMarket);
            if (blueprint.getOutputs().containsKey(OneLinkSupplyChainScenario.INPUT_GOOD)) {
                if (beefLearned) {
                    hr.setPredictor(new FixedIncreasePurchasesPredictor(1));
                }
            }
            if (blueprint.getOutputs().containsKey(OneLinkSupplyChainScenario.OUTPUT_GOOD)) {
                if (foodLearned)
                    hr.setPredictor(new FixedIncreasePurchasesPredictor(0));
            }
            return hr;
        }

    };

    scenario1.setControlType(MarginalMaximizer.class);
    scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
    scenario1.setBeefPriceFilterer(null);

    //competition!
    scenario1.setNumberOfBeefProducers(1);
    scenario1.setNumberOfFoodProducers(5);

    scenario1.setDivideProportionalGainByThis(100f);
    scenario1.setDivideIntegrativeGainByThis(100f);
    //no delay
    scenario1.setBeefPricingSpeed(0);
    scenario1.setBeefTargetInventory(1000);

    try {
        File toWriteTo = Paths.get("runs", "supplychai", "beefshouldlearn.csv").toFile();
        CSVWriter writer = new CSVWriter(new FileWriter(toWriteTo));
        DailyStatCollector collector = new DailyStatCollector(macroII, writer);
        collector.start();

    } catch (IOException e) {
        System.err.println("failed to create the file!");
    }

    macroII.setScenario(scenario1);
    macroII.start();

    while (macroII.schedule.getTime() < 14000) {
        macroII.schedule.step(macroII);
        printProgressBar(14001, (int) macroII.schedule.getSteps(), 100);
    }

    SummaryStatistics averageFoodPrice = new SummaryStatistics();
    SummaryStatistics averageBeefProduced = new SummaryStatistics();
    SummaryStatistics averageBeefPrice = new SummaryStatistics();
    for (int j = 0; j < 1000; j++) {
        //make the model run one more day:
        macroII.schedule.step(macroII);
        averageFoodPrice.addValue(macroII.getMarket(OneLinkSupplyChainScenario.OUTPUT_GOOD)
                .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE));
        averageBeefProduced
                .addValue(macroII.getMarket(OneLinkSupplyChainScenario.INPUT_GOOD).getYesterdayVolume());
        averageBeefPrice.addValue(macroII.getMarket(OneLinkSupplyChainScenario.INPUT_GOOD)
                .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE));
    }

    ((Firm) macroII.getMarket(OneLinkSupplyChainScenario.OUTPUT_GOOD).getSellers().iterator().next())
            .getPurchaseDepartment(OneLinkSupplyChainScenario.INPUT_GOOD).getData()
            .writeToCSVFile(Paths.get("runs", "supplychai", "beefBuying.csv").toFile());

    System.out.println("beef price: " + averageBeefPrice.getMean());
    System.out.println("food price: " + averageFoodPrice.getMean());
    System.out.println("produced: " + averageBeefProduced.getMean());
    System.out.println();
    System.out.flush();

}

From source file:cl.usach.managedbeans.CreditosManagedBean.java

public double buscarPromedioSrpintGrupo(SprintGrupos springG) {
    List<Equipo> eqs = buscarEquipos(springG);
    SummaryStatistics stats = new SummaryStatistics();
    int s;/*from   ww w. j ava 2  s  .com*/
    for (Equipo equipo : eqs) {
        s = buscarTiempoTareas(equipo);
        stats.addValue(s);
    }
    double mean = stats.getMean();
    mean = (double) Math.round(mean * 10) / 10;
    return mean;
}