Commit Graph

6957 Commits

Author SHA1 Message Date
Gilles Sadowski 6f33d5f0a7 Fix incorrect usage of "ROSENBROCK" test function (unit tests). 2021-08-27 18:35:47 +02:00
Gilles Sadowski cc5ae51f98 Favouring the "expanded" simplex over the "reflected" one.
This modification decreases the number of function evaluations in several
test cases. Note however that the original description of the algorithm
uses the strict inequality...
2021-08-27 17:24:51 +02:00
Gilles Sadowski f1ad9d1b00 Simplex search in higher-dimensional cases (unit test). 2021-08-27 05:37:49 +02:00
Gilles Sadowski ca826ba76b Add (back) "POwELL" standard test function for optimizers. 2021-08-26 23:56:42 +02:00
Gilles Sadowski f58da4abf5 Use default SA setup in "SimplexOptimizerTest" (unit test).
A single additional search finds the optimum of the test functions.
2021-08-26 02:05:15 +02:00
Gilles Sadowski 06ec7ad0bc MATH-1622: Simulated annealing entails at least one additional search.
Also ensure that the "best list" contains at least two points.
2021-08-26 01:39:46 +02:00
Gilles Sadowski 677f5f7a3f Input files for "SimplexOptimizerTest" (unit tests). 2021-08-25 01:51:34 +02:00
Gilles Sadowski 2ccdf8d002 MATH-1622: Simulated annealing variant of "NelderMeadTransform". 2021-08-25 01:50:28 +02:00
Gilles Sadowski 80a7eb1832 Change how simulated annealing affects the transformed simplex (cf. MATH-1622).
Compared with commit 97462b1a1b, this commit is
more consistent with assumptions of the original (non-hybridized) algorithm.
2021-08-24 15:46:10 +02:00
Gilles Sadowski c21a810558 Useless local variable. 2021-08-24 04:09:42 +02:00
Gilles Sadowski f8d7476614 Input files for "SimplexOptimizerTest" (unit tests). 2021-08-24 01:28:43 +02:00
Gilles Sadowski 97462b1a1b MATH-1622: Simulated annealing variant of "MultiDirectionalTransform". 2021-08-24 01:18:16 +02:00
Alex Herbert 47904caeb8 Update exception fr locale to match changes to en locale 2021-08-23 07:40:55 +01:00
Alex Herbert 21f8008108 MATH-1627: Throw an exception when column or row sums are zero. 2021-08-22 21:43:52 +01:00
Alex Herbert 991314d461 Remove incorrect localization format for zero exception 2021-08-22 21:43:52 +01:00
Alex Herbert dc639967c2 Fix localization formats used by ZeroException.
The ZeroException preprends zero to the arguments. The {0} corresponds
to zero. All arguments to be formatted must start at {1}.
2021-08-22 21:43:52 +01:00
Gilles Sadowski fb314ef3df Spurious "throws" clauses. 2021-08-22 03:46:25 +02:00
Gilles Sadowski 9bb5791906 Redundant inner class. 2021-08-22 03:28:37 +02:00
Gilles Sadowski f466637d82 Merge branch 'master' of https://gitbox.apache.org/repos/asf/commons-math 2021-08-22 02:32:10 +02:00
Gilles Sadowski 78fbc5f07c Update script for visual check of "SimplexOptimizerTest" debugging output.
Allow displaying negative values of the objective function.
2021-08-22 02:30:01 +02:00
Gilles Sadowski 1e7bce134f Adapt input files for "SimplexOptimizerTest" (unit tests).
The current tests are "baseline" (2D) cases.
Further work should check degradation with increased dimensionality.
2021-08-22 02:14:53 +02:00
Gilles Sadowski 14ebd93426 Relax expected number of evaluations (unit test).
Optimization is sensitive to the change from "AccurateMath" to "Math"
for computing the "pow" function used in "TestFunction.SUM_POW".
2021-08-22 01:10:04 +02:00
Alex Herbert bdb4160b00 Add variance tests for zero weights
Update javadoc for the behaviour when input weights are zero.

This issue was found when checking the sonar report for the variance
class which has a potential divide by zero if the weights sum to zero.
2021-08-21 14:37:13 +02:00
Alex Herbert 033c7e2c39 Correct verification of zero length values and weights
This bug was found when checking the sonar report for the variance class
which uses MathArrays.verifyValues.
2021-08-21 14:37:13 +02:00
Alex Herbert 5245a685a0 sonar fix: Handle variance=0 in skewness computation for input array 2021-08-21 14:37:13 +02:00
Alex Herbert 30aa597f1e sonar fix: Ensure checkFeasableCount is not negative.
Change loop condition to 'i <= checkFeasableCount' from 'i <
checkFeasableCount + 1'

This ensures the loop to identify a new feasible column (RealMatrix
arxk) always executes at least once even with checkFeasibleCount at the
limit of 0 or Integer.MAX_VALUE.
2021-08-21 14:37:13 +02:00
Alex Herbert 228a832532 Javadoc typo 2021-08-21 14:37:13 +02:00
Alex Herbert 75c7377e47 Only restore interrupted state if necessary 2021-08-21 14:37:13 +02:00
Alex Herbert 26e4a737f7 Javadoc typo 2021-08-21 14:37:13 +02:00
Alex Herbert 1bdb310ffa Sonar fix: restore thread interrupted state 2021-08-21 14:37:13 +02:00
Gilles Sadowski 3ba0221c26 Simplify data format for "SimplexOptimizerTest" (randomized) input.
This commit also makes the following changes (unit tests):
 * Add/remove/rename/rewrite test functions.
2021-08-21 14:33:30 +02:00
Alex Herbert 569e35ddbe Add variance tests for zero weights
Update javadoc for the behaviour when input weights are zero.

This issue was found when checking the sonar report for the variance
class which has a potential divide by zero if the weights sum to zero.
2021-08-21 10:04:49 +01:00
Alex Herbert a2efd4fad5 Correct verification of zero length values and weights
This bug was found when checking the sonar report for the variance class
which uses MathArrays.verifyValues.
2021-08-21 09:58:13 +01:00
Alex Herbert 3f7de0eb1e sonar fix: Handle variance=0 in skewness computation for input array 2021-08-21 09:11:05 +01:00
Alex Herbert 1fdd55981d sonar fix: Ensure checkFeasableCount is not negative.
Change loop condition to 'i <= checkFeasableCount' from 'i <
checkFeasableCount + 1'

This ensures the loop to identify a new feasible column (RealMatrix
arxk) always executes at least once even with checkFeasibleCount at the
limit of 0 or Integer.MAX_VALUE.
2021-08-21 08:16:20 +01:00
Alex Herbert 69bab476a5 Javadoc typo 2021-08-20 22:23:58 +01:00
Alex Herbert 5201f2c5fa Only restore interrupted state if necessary 2021-08-20 21:19:23 +01:00
Alex Herbert 7ee70ef474 Javadoc typo 2021-08-20 13:44:15 +01:00
Alex Herbert 09dd29e56d Sonar fix: restore thread interrupted state 2021-08-20 13:38:10 +01:00
Alex Herbert 7813ecb115 Update plugin order in pom
checkstyle
spotbugs
pmd
2021-08-19 00:35:58 +01:00
Alex Herbert 86624912ff Update distribution source archive specification
Copy from commons-rng multi-module project
2021-08-19 00:29:56 +01:00
Alex Herbert b6acad285d Remove checksum from installed artifacts
This creates md5 and sha1 checksums for the dist-archive pom in the
local maven repository. It is not required.
2021-08-19 00:19:54 +01:00
Alex Herbert c8b45d43fa Add jars to dist archive 2021-08-19 00:19:54 +01:00
Alex Herbert 6e1e402ed6 Remove plugin checks from default goal
These plugins already run using executions:

apache-rat:check (validate)
checkstyle:check (verify)

Added to verify using executions:

pmd:check
spotbugs:check
2021-08-19 00:09:46 +01:00
Alex Herbert e693b4d264 Use JUnit 5 Assertions for exact double equality
Fix checkstyle
2021-08-18 23:33:00 +01:00
Alex Herbert 56b7b12c2a Simplify atan2 expressions when y is non-zero 2021-08-18 23:16:01 +01:00
Alex Herbert 7cb883c54b sonar fix: avoid division by zero in atan2 when y=0 2021-08-18 23:02:55 +01:00
Alex Herbert f06bb2aa3f Update atan2 special cases test
Enumerate all combinations of 0, infinity and another value (0.1) with
+/- for each. Results are the same with java.lang.Math.
2021-08-18 23:02:55 +01:00
Alex Herbert f6fe96b23f Sonar fix: Replace x != x with Double.isNaN 2021-08-18 18:30:53 +01:00
Alex Herbert e97c3288a5 Sonar fix: Cast operands to double before assigning result to double 2021-08-18 16:41:10 +01:00