Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-341

Benchmarker: The logarithmic scaling throws exception if the problemScale is ambiguous and therefore set to -1L in ProblemBenchmarkResult

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 6.3.0.CR1
    • 6.2.0.Final
    • optaplanner-benchmark
    • None

      "The logarithmic scaling does not work if the problemScale is ambiguous and therefore set to -1L in ProblemBenchmarkResult.class.
      While creating a chart having problems with ambiguous scale JfreeChart is throwing a Runtime Exception:"

      java.lang.RuntimeException: Values less than or equal to zero not allowed with logarithmic axis
      at org.jfree.chart.axis.LogarithmicAxis.autoAdjustRange(LogarithmicAxis.java:530)
      at org.jfree.chart.axis.NumberAxis.configure(NumberAxis.java:415)
      at org.jfree.chart.plot.XYPlot.configureDomainAxes(XYPlot.java:974)
      at org.jfree.chart.plot.XYPlot.datasetChanged(XYPlot.java:4539)
      at org.jfree.chart.plot.XYPlot.setDataset(XYPlot.java:1396)
      at org.optaplanner.benchmark.impl.report.BenchmarkReport.createScalabilityPlot(BenchmarkReport.java:527)
      at org.optaplanner.benchmark.impl.report.BenchmarkReport.writeBestScoreScalabilitySummaryChart(BenchmarkReport.java:302)
      at org.optaplanner.benchmark.impl.report.BenchmarkReport.writeReport(BenchmarkReport.java:202)
      at org.optaplanner.benchmark.impl.PlannerBenchmarkRunner.benchmarkingEnded(PlannerBenchmarkRunner.java:197)
      at org.optaplanner.benchmark.impl.PlannerBenchmarkRunner.benchmark(PlannerBenchmarkRunner.java:89)
      at de.akquinet.jbosscc.energyplanner.planner.runtime.benchmark.PlannerBenchmarkTest.testDifferentLocalSearchParametersMoreStatistics(PlannerBenchmarkTest.java:63)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
      

      Solution proposals:

      Proposal A) don't add a point on the graph for a result with a problem scale of -1. Problem X: Given result A, B, C: if A and C have a problem scale, and B has -1, then the color of C will be different in graphs with the problem scale and graphs without it. That's not acceptable, because it is extremely misleading. Make sure to manually test problem X by configuring a benchmark to reproduce that case!

      Proposal B) Like proposal A, but still add with a problem scale of 0.

      Any other proposals we can think of?

            oskopek Ondrej Skopek (Inactive)
            gdesmet@redhat.com Geoffrey De Smet (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: