Release notes
This page gathers the main points describing the evolutions for each and every new Uranie releases.
- Methods development:
- Add the Sensivitity::TSobolRank class to compute sobol indexes for given data (based Chatterjee method)
- Add the ants colony optimization method in Vizir (Reoptimizer)
- Add the CMAES optimization method in Vizir (Reoptimizer)
- Add drawCopulogram which looks like Pairs plot with rank scatterplot on the upper triangle
- Correction / modifications
- Add an agregator to extract value from a TSensitivity object with the method getValue(order, input)
- Simplify the way to run permutation in HSIC ("nperm=100" option)
- Python2 is now deprecated (if you still want to use it, please use previous version)
- Add an agregator to extract the scalar value of a quantile
- User manual :
- Update information about the compatibility with python
- Add a Macro for TSobolRank
- Minor modification to explain how to use HSIC
- Add the new way to extract results from sensitivity analysis using getValue
- Correction / modifications:
- Add the TComposedDistribution class to compose law from other distributions
- High speed up the computation of HSIC sensitivity indices
- Add a quiet mode in the computation of HSIC sensitivity indices and update U-Stat results
- Replace the dependencies of Portable Coroutine Library for coroutines by Boost.Coroutines
- Uniformisation of all doxygen files
- Add exception in TCirce for setSelect
- User manual:
- Add the Composing law description
- Add the description of the THISC class
- Add use case macro : sensitivityHSICFunctionFlowrate
- Methodology:
- Add brief description of the HSIC sensitivity indices
- Correction / modifications:
- Beta version to interface FMU file using the Launcher using FMI library (only tested on Linux)
- Add the possibility to compute Shapley indices (beta version)
- Add the possibility to produce LHS doe with one or more constraints (TConstrLHS)
- Add the possibility to run nested MPI in Relauncher (a parallelised code in a parallelised loop)
- Add two new probability laws: TGeneralizedNormal and TGeneralizedNormalV2 (beta version for the last)
- Add quiet mode in fileDataRead to prevent any warning and information message (when one knows what these mean)
- Ensure and correct some sensitivity classes in order not to be computation-order sensitive (when computations are parallelised)
- User manual :
- Full split between C++ and python version. All code in the text is now only either in C++ or in python. In both cases, code within is tested.
- Python macros have been corrected to be PEP8 complient.
- Add a chapter for the MetaModelOptim chapter: distributed efficient global optimisation (EGO)
- Rewrite Relauncher to discuss more precisely the distribution process
- Add the description of the TGeneralizedNormal law
- Add use case macros: metamodoptEgoHimmel, reoptimizeZoneBiSubMpi, reoptimizeZoneBiFunMpi, samplingConstrLHSLinear, samplingConstrLHSEllipses
- Methodology:
- Description of the heuristic for the constrained LHS doe
- Windows specific:
- First version tested with Python 3
- Correction / modifications:
- Allow to use already done doe to start Sobol analysis (in pick-and-freeze approach)
- Allow to load all computations from previous Sobol estimation in a new Sobol estimation to increase statistics (in pick-and-freeze approach)
- Change the way dataserver and tree are stored for thread safety (peculiar conditions)
- Add a TMpiRun constructor for C++ standlone compilation (to prevent from calling MPI_INIT)
- Correct strange behaviour in addAttributeUsingData
- Correct the Kriging export to dump properly the linear trend
- Correct Code submission procedure in TCodeEval to delete output file from previous estimation (proper failure detection)
- Correct mistake in relauncher output file detection to handle properly empty vector and code failures.
- User manual :
- Rewrite part of the Relauncher discussion for parallelisation (thread and MPI) and failure handling
- Correct many use case macros to allow compatibility for windows python 2
- Add use case macros: relauncherCodeFlowrateMPIStandalone, relauncherCJitFunctionThreadTest, relauncherCodeFlowrateSequentialFailure, relauncherCodeMultiTypeKeyEmptyVectors, relauncherCodeMultiTypeKeyEmptyVectorsAsFailure sensitivitySobolRe-estimation, sensitivitySobolWithData, sensitivitySobolLoadFile
- Methods development:
- Full reorganisation of the Reoptimizer module: now it allows the use of vectors as internal variable (but still not as objectives)
- New module named calibration offering different approaches to calibration-linked issues:
- various minimisation techniques
- linear analytical bayesian approach
- first ABC method: the rejection one to get an approximation of a posteriori distributions
- Markov-chain Metropolis-Hasting method to get a posteriori distributions
- New module metamodeloptim, made for methods that combine optimisation and surrogate models
- Different EGO implementations available (Beta version)
- Corrections / modifications:
- Add method to set default values also for vectors and strings
- Integrate EcCluster for remote launcher technique (specific to ECMWF clusters)
- Add method to create a new attribute from an array of data (addAttributeUsingData)
- ROOT specific update:
- This version has been tested against latest ROOT version 6.22.02.
- It allows python2 and python3 handling at the same time with a single installation (for ROOT and URANIE).
- User manual :
- New module calibration fully described along with use-cases
- New section in introduction called How-to :
- provides examples and discussions on how to convert specific C++ methods/objects to python and vice-versa.
- it is meant to grow depending on your specific needs and requests
- Discuss the correction item introduced above (default for vector, new attribute with data...)
- Add use case macros: calibrationMinimisationFlowrate1D, calibrationLinBayesFlowrate1D, calibrationRejectionABCFlowrate1D, calibrationMetropHastingFlowrate1D, calibrationMetropHastingLinReg, calibrationMinimisationFlowrate2DVizir, howtoConvertTDataServerArray, howtoConvertTMatrixDArray, howtoLoadFunction, howtoPassReference
- Methodological manual:
- New module calibration documented (general introduction and specific method discussion)
- Discussion on the general matern hyperparameters introduced
- Add a glossary to help handle specific vocabulary and acronyms.
- Methods development:
- First implementation Johnson relative weight method for sensitivity.
- First implementation of Metropolis Hastings algorithm for calibration. Beta version.
- First implementation of cluster connection through SSH (to avoid Uranie installation on cluster). Beta version.
- Allow key input/output files to have blank space in the keys (for launcher).
- Allow correlation matrix computation for single-out element of vectors.
- Corrections / modifications:
- Correct bug in Morris: if used with unbounded laws, the provided physical response was possibly wrong.
- Improvement in Vizir many criteria algorithm to prevent stillborn and duplicated solutions.
- Feature in relauncher distribution to avoid stucking ressource while waiting for jobs.
- Improve detection of python version used within ROOT (to remain compatible with upcoming ROOT versions).
- Windows specific:
- So far, Windows specific archive remains pure C++ and will be working with a specific version of Visual.
- Investigation of a new workaround based on WSL (Windows Subsystem for Linux, see README for further explanations): creation of a dedicated archive
- User manual:
- Add description of all aforementioned methods development, but Beta version.
- Discuss the truncation issues: Morris and Halton problems.
- Add use case macros: dataserverComputeCorrelationMatrixVector, launchCodeFilesWithBlank, sensitivityJohnsonRWFunctionFlowrate, sensitivityJohnsonRWCorrelatedFunctionFlowrate, sensitivityJohnsonRWJustCorrelationFakeFlowrate
- Methodological manual:
- Introduction of sensitivity analysis with correlation.
- Discussion of the Johnson relative weight method.
- Methods development:
- Beta version of DGSM sensitivity measurement.
- Beta version of Kernel PCA.
- Allow both TSampling and TBasicSampling to deal with singular correlation matrix.
- Add Kriging prediction with input covariance estimation (to uncorrolate residuals for instance).
- Add methods in kriging and relauncher/reoptimizer to improve interface with python.
- Add possibility to deal with several outputs in THSIC (Beta).
- Add drawQQPlot in DataServer (with ROOT's mathmore).
- Add drawPPPlot in DataServer (with ROOT's mathmore).
- Add Student stochastic law (with ROOT's mathmore).
- Allow Constant and Temporary variable in Relauncher and Reoptimizer with new architecture.
- Add Laws in TTester and compute the p-values.
- Corrections / modifications:
- Deprecate the halton sequence with unbounded infinite-based laws (will throw an exception from v4.6.0).
- Correct bug concerning infinite-based laws once truncated.
- Correct bug concerning size of output name in the sensitivity module.
- Correct GenPareto distribution (unconstrained so far).
- Minor correction for white space in the regexp of TKeyScript.
- Correct a problem in TFlatResults when dealing with bounded vectors.
- Prevent sensitivity classes to re-run when outputs are available
- Windows specific:
- Allow interface with MPICH for Windows version.
- So far, Windows specific archive remains pure C++ and will be working with a specific version of Visual (to be precised later on).
- User manual:
- Add description of all aforementioned methods development, but Beta version.
- Add use case macros: dataserverComputeQuantileVec, dataserverDrawQQPlot, dataserverDrawPPPlot, dataserverPCAExample, samplerSingularCorrelationCase, modelerbuildSimpleGPEstimWithCov, relauncherCodeFlowrateSequential_ConstantVar, relauncherCodeFlowrateSequential_TemporaryVar, reoptimizeHollowBarCodeGradDeco, reoptimizeHollowBarCodeMultiStart.
- Methodological manual:
- New generic introduction for modelling.
- Discussion on PCA principle.
- Discussion on correlated DOE generation.
- Discussion on stochastic law truncation.
- Discussion on kriging prediction (values and covariances)
- Add python 3 compatibility (and ROOT python verification).
- This implies a dedicated ROOT python3 installation.
- Remove the limitation of 40000 samples in TSampling.
- Add possibility to keep every folder in relauncher.
- Add possibility to keep every computation in Reoptimiser.
- Add possibility to change way entries are written in input files for relauncher.
- Add possibility to restart genetic algorithm if it has not converged at once (illustration provided in usermanual).
- First implementation of the HSIC algorithm.
- First attempt to have a windows-compatible version.
- Limitation due to ROOT: only available in C++ and on a Windows 10 machine where Visual Studio 2017 (v15.7.6) is installed.
- Change TSamplerField to be able to create many fields at once.
- Correct ANN export/import incoherent behaviour when running on GPUs.
- Correct wrong exit for nlopt max eval reached.
- Correct plot for Morris Visualisation.
- Remove hardcoded debug option in sampler / modeler.
- First implementation of URANIE using ROOT v6.14.00.
- Add matern1/2 covariance function to produce kriging surrogate model.
- Add constructor to all sensitivity classes, to be able to use sensitivity with relauncher architecture.
- Add possibility to export kriging in pmml format.
- Correct TMaximinLHS to do the simulated annealing only in the probability hyper-volume (not in the physical one).
- Correct an implementation error that was slowing down TSobol estimation of coefficients.
- Cleaning and adding more use case macros in dataserver, modeler, sensitivity, and relauncher sections.
- Implementation of all use-case macros in python :
- New chapter 13 in userManual.(pdf/html).
- All macros can be found in ${URANIESYS}/share/uranie/macros/.
- First implementation of many-criteria algorithms (ibea, moead, knee-point). Beta version.
- First implementation of multi-layer and multi-output neural networks. Beta version.
- Allow standalone compilation of macro with MPI (relauncher).
- Add possibility for code and function to have formulaes to produce new inputs and outputs and optimise on the latter.
- Correction of bug for launcher with multi input-files.
- Correction of bug with vectors as input in relauncher.
- Correction of bug for complicated TAttributeFormula.
- Update of the documentation.
- Add new maximin LHS sampling through the use of dedicated TMaxiMinLHS class
- Add two new probability laws : TGamma and TInvGamma
- Add second estimation of SRC^2 and SRRC^2 using correlation coefficient definition (to provide illustrative 95% confidence interval)
- Python is now consider as a default in the installation. to specifically turn it of, use -D--disable-python='ON'
- Fixing problem with GetV1 method, removing potential issued when dealing with more than one million entries
- Allows the change of the correlation length boundaries on the kriging
- Various bug corrections
- Update of the documentation (providing complete list of references)
- Newly available building Uranie and its prerequisites in Release mode on Windows
- Newly available PyUranie on Windows
- Newly available PGauss library on Windows
- Newly available types: Uranie can deal with strings and vectors (not yet available for (re-)optimizer and modeler)
- Reorganisation of the user manual (with more use cases) and new methodological documentation (both html and pdf files)
- Fix of several bugs
- Implementation of the k Nearsest Neighbor (kNN) algorithm in the Modeler module
- Possibility to use GPU to evaluate a Gaussian Process (still in beta)
- Import/export data from JSON files
- PMMLlib library available in the ROOT interpreter