Version Notes¶
Version 1.2.0¶
Dec 30, 2022
Changes the strategy for including the noise parameter in data analysis in the
OptBayesExptNoiseParameter()
class. Previously,pdf_update()
packaged the noise parameter samples with measurement_results, which worked, but wasn’t intuitive. In the new version, the noise parameter samples are introduced in the likelihood() function. Additionally, thenoise_parameter_index
is now a required argument, and the class is fully compatible with multiple measurement channels.Corrects lockin_of_coil and sweeper demos
Dec 28, 2022
Traditional information entropy based utility \(U (d)\), quantifies a measurement benefit on a logarithmic scale. In contrast, utility methods in
OptBayesExpt
now use a linear-scale utility, \(\exp(U(d))-1\) to make benefit/cost comparisons reasonable when cost is estimated on a linear scale.Docstrings for class attributes are being moved from the class docstring to docstrings near the attribute definition. This move allows an alphabetized list of attribute descriptions to be generated.
Dec 22, 2022
Added
utility_method
argument and methods toOptBayesExpt()
to provide a choice of utility algorithms based on algorithms featured in R. D. McMichael and S. M. Blakley, Simplified Algorithms for Adaptive Experiment Design in Parameter Estimation, Physical Review Applied 18, 054001 (2022).Added
choice_method
argument toOptBayesExpt()
to select between optimal, good, and random setting selectionsAdded a
differential_entropy()
function to support new utility methods. This function is used only if scipy.stats package is unable to supply it.
Version 1.1.1¶
May 28, 2021
Added
OptBayesExpt.set_n_draws()
to set and queryN_DRAWS
to fix a bug that was introduced with v1.1.0, whereN_DRAWS
sets a dimension of an array. Usingset_n_draws()
ensures that the array is re-sized whenN_DIMS
is changed.
Version 1.1.0¶
May 27, 2021
Implemented just-in-timme (jit) compilation of some of the most time-consuming methods using the
numba
package. Execution time was shortened by 20 % to 40 %. A new demo program was added to highlight these capabilities.Since
numba
is not (yet) a required package foroptbayesexpt
, access tonumba
is tested and a BooleanGOT_NUMBA
is defined with scope extending over the optbayesexpt package.
May 21, 2021
Support for multi-channel measurements has been added to the OptBayesExpt class. As a result,
demos/lockin/obe_lockin.py
is no longer needed, and it has been removed.Support for noise parameter estimation is provided by a new component of the optbayesespt package,
OptBayesExptNoiseParam
, which takes anoise_parameter_index=(int)
argument to identify a parameter as measurement noise. These demos now useOptBayesExptNoiseParam
.demos/line_plus_noise/line_plus_noise.py
,demos/lockin/lockin_of_coil.py
, anddemos/sweeper/sweeper.py
Added support for
**kwargs
arguments to OptBayesExpt. Attribute values for OptBayesExpt, parent class ParticlePDF and OptBayesExpt child classes can now be set at instantiation. Keyword argumentsa_param
,resample_threshold
,auto_resample
andscale
are passed to ParticlePdf to tune resampling behavior.OptBayesExpt
useschoke
, andOptBayesExptNoiseParam
usesnoise_parameter_index
.
Version 1.0.1¶
June 2, 2020
Provides backwards compatibility to numpy.random usage for numpy versions pre-1.17.0.
Fixes some plotting problems
Adds ‘ready’ command to OBE_Server.run() for communication checks.
Version 1.0.0¶
April 27, 2020
Version 1.0.0 represents an overhaul of the optbayesexpt python package. It is not compatible with earlier versions, but only minor changes are needed to adapt script to use the new version. The most significant changes are briefly described here. Please consult the documentation at https://pages.nist.gov/optbayesexpt for more detail.
- Probability Distribution Function:
Starting with V.1.0.0, the probability distribution function over parameter values is implemented using a sequential Monte Carlo scheme in
ParticlePDF()
, replacing the N-dimensional array representation used inProbDistFunc()
. This change boosts speed and allows more parameters in the model function.- Experiment Model:
Starting with V.1.0.0, the
ExptModel
class is no longer used. Methods of theExptModel
class are incorporated intoOptBayesExpt
.- OptBayesExpt class:
The OptBayesExpt class has been rewritten with reuse in mind. As much as possible, the calculations have been split out into separate methods. The goal was to make is easier to determine how to create customized child classes for different applications.
Creation of a functioning
OptBayesExpt
object has been simplified by including the model function, settings, parameters and constants as arguments to__init__()
. In earlier versions, the object was created and then configured in separate steps.- Server:
The
OBE_Server class
has been redesigned to be a caretaker and TCP communication interface for OptBayesExpt objects. With this new design a OBE_Server object can initialize a series of OptBayesExpt objects with different configurations, e.g. for a series of measurement runs.