1. Introduction
The pioneering works [
1,
2,
3] mark the development of the revolutionary superresolution microscopy (SRM) that allows us to go beyond the Abbe limit for conventional light microscopy [
4]. The SRM method consists of labeling the molecules moving on a biological support with fluorophores and then in sampling the microscopic images of the activated fluorescent molecules.
Observation of the frames of the sampled SRM microscopic images have suggested that the motion of the molecules could be modeled by a stochastic Langevin equation [
5,
6]. Clearly, the cell membrane at the microscope is a 3-dimensional object; however, it can be considered flat, and the observed motion is 2-dimensional since it results in the projection on the focal plane of the SRM microscope. It appears that an adequate model of the observed trajectories of 2-dimensional images is given by the following stochastic differential equation (SDE) [
7]:
where
b represents the drift,
is the dispersion coefficient, and
denotes the position of the observed molecule at time
t. In this framework, it is well-known that the drift and dispersion coefficients satisfy
where the expected values are computed with respect to the process having value
z at
; the operator
denotes averaging with regard to the measure of the trajectories conditioned to be at
z at time
s.
The formulas above suggest that suitable approximations to
b and
can be obtained by tracking single molecules; see, e.g., [
7,
8]. However, this approach may suffer from the highly fluctuating values of the trajectories and the difficulty of discerning between different molecules that come closer to the resolution limit.
For this reason, already in [
9] the authors have pursued an alternative strategy that allows us to build a robust methodology for the estimation of the drift based on the observation of an ensemble of trajectories. Our approach is built upon the assumption that this ensemble is driven by a velocity field (the drift), given by a potential velocity field
, with
, as follows:
Moreover, one assumes a constant diffusion coefficient whose value is chosen consistently with estimates of laboratory measurement [
10]. It is the purpose of our work to reconstruct the potential
by means of the observation of the motion
of the molecules modeled by Equation (
1).
In agreement with our statistical approach based on ensembles, we focus on the evolution of the probability density function (PDF) of the positions of the molecules (not on the single trajectories) whose evolution is governed by the Fokker–Planck (FP) problem given by [
6,
11]:
where
and
. In this formulation,
represents the PDF of a particle at
at time
t,
is the Cartesian gradient of the potential
U,
is the initial density, and
is the two-dimensional Laplace operator. Notice that we require zero-flux boundary conditions, where
is the following flux of probability
We choose zero-flux boundary conditions since they reasonably model the situation where a similar number of particles enters and exits the domain; see, e.g., [
6,
12].
Our proposal is to construct an FP-based imaging modality that is based on the formulation of an inverse problem for U and the observation of a time sequence, in time interval , of numerical PDFs (two-dimensional histograms), which are obtained from a uniform binning of SRM particles’ positions. We denote this input data as which is a piecewise constant function. In this setting, the initial condition is given by .
This proposal is similar to that in our previous work [
9]. However, in [
9] the assumption of interacting particles was made that resulted in very involved and CPU time demanding calculations. It is the purpose of this work to demonstrate that accurate reconstruction results can be obtained assuming noninteracting particles, hence by using a linear FP model.
At the continuous level, our FP-based imaging tool is formulated as the following inverse problem:
with the given initial and boundary conditions for the FP equation, and
.
In this problem, the objective functional J is defined as the weighted sum of a space–time best fit term , and at final time , and of a suitable ‘energy’ of the potential , which corresponds to the square of the norm of U. Notice that this formulation allows us to avoid any differentiation of the data and makes it possible to choose the binning size and, in general, the measurement setting, independently of any choice of parameters that are required in the numerical solution of the optimization problem.
Our second main concern in determining the potential
U is to provide a measure of uncertainty, and thus of reliability, of its reconstruction. Statistically, this is achieved by many repetitions of the same experiment, that could not be feasible for (short) living cells. However, inspired by the so-called model predictive control (MPC) scheme [
13] already used for optimal control problems [
12,
14], we propose a novel procedure to quantify the uncertainty of the estimation of
U by using the data of a single experiment.
Our methodology is to consider a sequence of non-parametric inverse problems like (
8) defined on time windows
,
, that represent a uniform partition in
K subintervals of the time interval
. Therefore, a statistical analysis can be performed on the set of the corresponding
K solutions for
U that are obtained in the subintervals.
For development and validation, we consider images of a cell’s membrane structures (actin, cytoskeleton), as expression of potentials, that is pixel grey values where increased brightness stands for more repulsion, with which we generate our synthetic data. In particular, we use an image of actin from a cytoskeleton obtained with a Platinium-replica electron microscopy [
15,
16].
With this images taken as gray-level representation of potential functions, we perform Monte Carlo simulation of motion of particles to generate images of molecules at different time instants, thus constructing the datasets representing the output of measurements. This setting is illustrated in
Figure 1, where the image of actin [
17] and a plot of few trajectories of the corresponding stochastic motion of the particles in this potential are shown.
Once the synthetic measurement data is constructed, we perform a pre-processing step on this data to construct the numerical PDF required in our method and solve our inverse problem to find the estimated–measured potential U. The latter is compared with that one used in the MC simulation, by a measure of similarity based on the pixel cross-correlation between the two images.
In
Section 2, we discuss a numerical methodology for solving our FP-based reconstruction method for the potential
U. In
Section 3, we provide all details of our experimental setting and introduce some analysis tools for determining the accuracy of the proposed reconstruction. In
Section 4, we validate our reconstruction method, and use our uncertainty quantification procedure. In
Section 5, we investigate the resolution of the proposed FP image reconstruction as an optical instrument. A section of conclusion and acknowledgements completes this work.
2. Numerical Methodology
Our aim is to reconstruct the potential
U from the data consisting of a temporally sampled SRM images of the positions of particles subject to this potential; see
Figure 2 (up) for a schematic snap-shot of this data. This image is subject to a pre-processing binning procedure in order to construct histograms by counting the number of particles in a regular square partition of
. The height of an histogram is proportional to the number of particles in a bin of the domain. This procedure for the image at time
t defines the histogram function
; see
Figure 2 (down).
In order to illustrate our numerical framework, we introduce the potential-to-state map
, that is, the map that associates to a given
the unique solution to our FP problem (
4)–(
6), with given initial condition
. For the analysis of well-posedness and regularity of the map
S, we refer to [
18].
Next, we remark that with the map
S, we can define the reduced objective functional
and consider the equivalent formulation of (
8) given by
which has the structure of an unconstrained optimization problem. Thanks to the regularity of
S and the quadratic structure of
J, existence of an optimal
U can be stated by well known techniques; see, e.g., [
19].
Further, since
S and
J are Fréchet differentiable, it is possible to characterize an optimal
U as the solution to the following first-order optimality condition
where
denotes the so-called reduced gradient [
20].
In the Lagrange framework, this condition results in the following optimality system:
where
p denotes the adjoint variable, which is governed by a backward adjoint FP equation. Notice that the adjoint equation is a well-posed problem with
, which allows to use the irregular histograms as input data. The numerical solution obtained with a finite difference approximation is consistent with the interpretation of
as a piecewise constant function obtained by local averaging an
function on subcells centered at grid points. Notice that the numerical grid is finer than that of the binning.
The last equation in (
10) is the so-called the optimality condition equation, and the Neumann boundary condition
is our modeling choice. One can show that its left-hand side represents the
gradient along the FP differential constraint with respect to
U of the objective functional. We have
Our approach for solving our FP optimization problem (
8) is based on the nonlinear conjugate gradient (NCG) method; see, e.g., [
20]. This is an iterative method that resembles the standard CG scheme and requires to estimate the reduced gradient
at each iteration.
In order to illustrate the NCG method, we start with a discussion on the construction of the gradient. For a given
obtained after
n iterations, we solve the FP equation and its adjoint, and use (
11) to assemble the
gradient. However, since the potential is sought in
, we need to obtain the
gradient that satisfies the following relation
where
denotes the
scalar product.
Now, using the definition of the
inner product, we obtain
which must hold for all the test functions
. Therefore we obtain
with the boundary conditions
on
; see [
9] for more details. In Algorithm 1 our procedure for computing the gradient is given.
Algorithm 1 Calculate gradient. |
Require: control , , . Ensure: reduced gradient Solve forward the FP equation with inputs: , Solve backward the adoint FP equation with inputs: , Assemble the gradient using ( 11). Compute the gradient solving ( 14). return
|
In this algorithm, the FP problem and its optimization FP adjoint are approximated by the exponential Chang–Cooper scheme and the implicit BDF2 method; see [
12].
Now, we can discuss the NCG method. The NCG iterative procedure is initialized with
. We denote the optimization directions with
. In the first update, we have
and perform the optimization step
where
is obtained by a backtracking linesearch procedure. After the first step, in the NCG method the descent direction is defined as a linear combination of the new gradient and the past direction as follows:
where
, and
, that is, the Dai-Yuan formula
, where here
stand for the deepest descent direction
and
is the conjugate direction at the previous step; see, e.g., [
20].
The tolerance
and the maximum number of iterations
are used for termination criteria. Summarizing, in Algorithm 2 we present the NCG procedure.
Algorithm 2 Nonlinear conjugate gradient (NCG) method |
Require:, , Ensure: Optimal control and corresponding state Assemble gradient using Algorithm 1; set . while
and do Use linesearch to determine Update control: Compute the gradient using Algorithm 1 Calculate the new descent direction Set end while return
|
For our numerical experiments these algorithms have been implemented with object oriented programming in C++, by using the numerical libraries Armadillo [
21,
22], Openblas [
23], Lapack [
24], SuperLU [
25,
26] and HDF5 [
27].
3. Experimental Design and Analysis Tools
In a real application, the input data
is given by frames of a recorded sequence of a SRM experiment, and the desired output is the reconstructed potential denoted with
. In our case, we construct this data based on a sample potential
that determines the drift function in our stochastic model (
1). Thus, we generate our frames of synthetic data first by time-integrating this SDE in the chosen interval
, and choosing the initial positions of the particles randomly uniformly distributed. Next, the positions of the particles at different times are collected in a sequence of 2-dimensional bins that result in the sequence of distributions
,
, where
L is the length of the resulting time sequence of frames. With this preparation, we apply our algorithm to obtain
, which represents the proposed reconstruction of
. A comparison between these two potentials allows to validate the accuracy of our reconstruction method (see below).
We choose a domain
, and
corresponds to
Figure 1 (up), where the values of
in
correspond to the gray scale pixel values of the picture mapped in
. With this
, we perform a stochastic simulation of
particles for a time horizon
T, and diffusion amplitude
. The particles trajectories given by (
1) with (
3), are computed with the Euler-Maruyama scheme with a time step
, which results in a number of
L frames. In this simulation, reflecting barriers for the stochastic motion are implemented. We remark that for the following calculations we are going to consider a relatively small value of density of particles; see [
10,
28].
Next, we perform a binning of the positions of the particles at each frame to construct
. Hence, we consider a uniform partition of
with non-overlapping squares; see
Figure 2 for a plot of particles in
at a given time and the corresponding
. Notice that
is irregular; nevertheless, we do not perform smoothing of this data. The sequence of
values enter in our best fit functional in (
8).
Once we have computed
with our optimization procedure, we aim at providing a quantification of its uncertainty. Thus, we compute the following normalized cross-correlation factor between the reconstructed potential
and the one used to generate the synthetic data
. We have
In this formula,
and
are considered as vectors and · represents the scalar product. Therefore if
we have that the two potentials match perfectly, whereas if its value is close to 0, the two potentials are dissimilar. Notice that cross-correlation is commonly used in medical imaging and biology; see, e.g., [
29,
30,
31].
Clearly, one could consider many repetitions of the simulation of the motion of the particles with the same initial condition and make the final binning on the average of the resulting frames. This procedure would result in a less fluctuating that allows a better reconstruction. However, this scenario seems difficult to realize in the real laboratory setting of a living cell. On the other hand, in SRM, imaging is able to visualize the motion of the particles on a cell membrane for a relatively long time ( in our setting), and our approach exploits this possibility considering a subdivision of the time interval in a number K of time windows, and solving our optimization problem in each of these windows almost independently. This approach allows us to improve the reconstruction and makes it possible to quantify the uncertainty of the reconstruction.
Now, to illustrate our approach, consider a uniform partition of
in time windows of size
with
K a positive integer. Let
,
, denote the start- and end-points of the windows. At time
, we have the initial PDF
, and we solve our optimization problem (
8) in the interval
. This means that the final time is
and the terminal condition for the adjoined variable is given by
. The resulting potential is denoted with
. Thus, the solution obtained in this window also provides the PDF at
.
Clearly, we can repeat this procedure in the interval with the computed PDF at as the initial condition and as final time, to compute . This procedure is recursive and can be repeated for , thus obtaining , .
Notice that small values of K in relation to L produce a rough estimate of the average potential and its standard deviation due to statistical fluctuations of the Monte Carlo experiments. On the other hand, for greater values of K, the number of frames for each window of our approach is reduced when L is kept fixed, thus resulting in a worsening of the reconstruction procedure.
For the purpose of our analysis, we apply a scaling of these potentials so that their point-wise values are in the interval
. This scaling is performed as follows:
Thereafter, we the reconstructed potential by pixel-wise average of the
is given by
Moreover, we can also compute the following pixel-wise standard deviation
Next, we provide conversion formulas for our parameters in order to accommodate data from real laboratory experiments. We introduce a unit of length such that the side length l of our square domain is given by , and the unit of the noise amplitude is given by . In real biological experiments, the typical measure of the length of a cell membrane is given in m. Further, the particle’s diffusion constant is given in m/s; hence, we have the correspondence in unit , whose value is used for MC simulations.
The depth of the potential
is expressed in unit of
, where
is the Boltzmann constant and
the absolute temperature. In experimental papers, the Equation (
3) is written with the diffusion constant
D and
, i.e.,
. As above, we obtain the relationship between the values of a potential
U and the scaled
, as
in the unit of
.
As an illustration of the setting above, we see that in an experiment, the super-resolution of an acquired image frame can reach the value of 0.02
m/pixel. With an image of
pixels, we have
m. The average diffusion coefficient of particles (protein molecules) observed in SRM imaging is estimated with
m
/s [
10]. By super-resolution techniques, it is possible to activate a density of
m
visible particles, which in terms of image pixels corresponds to
particles in a square of 50 pixels of side. Each frame is usually sampled at time intervals of
ms.
In order to set up a consistent MC simulation of a real experiment, by mapping an image of a square of side 10 m on our domain , we get from the above mentioned formula: .
4. Numerical Validation
In this section, we discuss results of experiments in a setting that is close to real laboratory experiments involving SRM imaging. The results of these experiments demonstrate the ability of our methodology to reconstruct the potential from the simulations of the SRM measurements of the motion of particles on a cell’s membrane.
We consider a potential that corresponds to a portion of cytoskeleton as depicted in
Figure 3, with
pixels. We assume that the pixel is 50 nm, which corresponds to an area of 100
m
. In the figure, the white regions represent the structure of the cytoskeleton; the black ones are the ‘valleys’ where the proteins are supposed to be attracted.
For the MC simulations for generating the synthetic data, we choose . This value of corresponds to a diffusion constant of m/s. We consider particles, i.e., an average density of 10 particles per m. In this case, we consider a sequence of frames and , obtained by the numerical integration of the stochastic differential equation with an integration step s. The frames have ms, similar to a real experiment. The resulting (single run) particle trajectories are collected in a binning process based on a mesh of bins.
For our reconstruction method, we choose a numerical partition of of subdivisions, corresponding to a mesh size of 100 nm. The time integration step coincides with that of the frames. For the tracking functional, we set and . Further, in the FP setting, we have . Notice that in the FP model is chosen to be larger than the one used in the MC simulations. This choice is dictated by numerical convenience and it appears that it does not affect the quality of the reconstruction. The calculations are performed according to the MPC procedure with time windows.
With this setting, we obtain the reconstructed potential shown in
Figure 3 (down). We see that the reconstruction is less sharp as we expected considering the much finer structure of the cytoskeleton and the small number of particles involved.
Further, in
Figure 4, we depict the potentials obtained on each time window of the MPC procedure and the values of the corresponding
. With these results, we have obtained the reconstructed potential
in
Figure 3, which we re-plot in level-set format in
Figure 5 for comparison. In
Figure 5, we also depict the standard deviation that suggests that we have obtained a reliable reconstruction with small uncertainty.
5. Resolution of FP-Based Image Reconstruction
In this section, we investigate the optical resolution of our reconstruction method, that is, try to determine a confidence value related to the scale at which our method can resolve variations of the potential. As a guideline, we remark that single molecule localization microscopy (SMLM) can distinguish distances of molecules of approximately 20 nm resolution. Therefore, we assume this resolution range of the fluorescently labeled particles images, and we attempt to quantify the smallest scale at which geometric features of the reconstructed potential U can be distinguished.
For our purpose, we consider the following ‘target potential’, appearing as an alternating sequence of black and white circles (likewise those in test targets used for the resolution measurement of optical instruments), to synthetically generate the motion data of particles. We have
where
A denotes the semi-amplitude of the variation between the minimum and the maximum of the potential,
l is the length of the side of the domain,
d is the distance between two peaks of the potential as a fraction of
l.
Now, we consider a single MC simulation of 500 particles with the setting:
,
and
frames, integrated with the time step
. In
Figure 6, we show (left) the given potential with
and
, with a gray-scale value representation conveniently adjusted for illustration pourpose. According to the above working hypothesis, we suppose that the pixel’s width of the image is 20 nm. In
Figure 6 (left), we depict
U in a square of side of 500 pixels, corresponding to
m. Hence, the distance between two peaks is
nm. Further, the particle’s density is 5 particles per
m
, the diffusion coefficient
m
/s, and the potential depth, i.e., the difference between the maximum and the minimum, is
. For the reconstruction process, we use a binning of
,
. In the numerical setting, we use a grid of
points, and
. Also in
Figure 6 (right), we show the reconstructed potential
and notice its high accuracy that is also confirmed by the high value
of the cross correlation. Notice, that the quality of the reconstruction can be further improved by using post-processing techniques of images.
Now, with the aim to define a criteria to establish the resolution measure for the potential, we introduce a confidence level for the quality of the reconstructed potential by setting a threshold for the calculated cross-correlation. This approach has been adopted in [
29] for the detection of cellular objects from images acquired from electron tomography. For that purpose, the authors used the threshold value of
, whereas in our case, we set a more strict threshold-
level equal to
. With this threshold, we can state that the test pattern depicted in
Figure 6 (left) is satisfactorily reconstructed and determines that the resolution measure associated to our ‘imaging instrument’ is 500 nm. Notice that this value is affected by the value of the potential
U and the diffusion
D, and it can be further improved by changing the other parameters of the experiment, such as
K or the time
T of the motion sampling.
7. Brief Documentation of the Code
The program code has been written in C++ with the support of Armadillo, LAPACK, and others common public available linear algebra routines. The structure of the code follows the object oriented programming style, with some basic classes for the the definition of the mathematical model, numerical grids and solvers, and derived classes for the solution of the optimization problem. Notice that the code is not computationally optimized, that is, it has been written with the purpose to test the ability of the numerical scheme to accomplish the proposed reconstruction task. Further major improvements could be implemented, such as a better organization of the hierarchical class structure and a more efficient use of the pointers.
The package of the source codes is composed of 14 files (The code will be available in the repository of this journal as a
supplemental material):
CALC_FIG3.cpp, CALC_FIG6.cpp the main driver routines
Non_lin_conjug_grad.cpp/.hpp class definitions for the nonlinear conjugate gradient method
Optim_problem.cpp/.hpp class definition for the optimization problem
BDF_Chang_Cooper.cpp/.hpp class definitions of the BDF2 solver associated with the Chang-Cooper method
Chang_Cooper.cpp/.hpp class definitions of the Chang-Cooper numerical method
gradients.cpp/.hpp support functions for the discrete gradients
model.cpp/.hpp class definition for the Fokker–Planck model
For our tests, the following libraries were installed on the OS Linux Mint (20.3): Armadillo (version 12.6), Openblas (version 0.3.8), Lapack (version 3.9.0), SuperLU (version 5.2.1) and HDF5® (version 1.10.4). The makefile gives support for the compilation, provided that the user customizes the library paths according to his own OS configuration. The compilation process is invoked with the command make CALC_FIG3 that produces the related executable file. The command make clean cleans all the object codes. At run time, the executable file loads the input data from the folder input_data, prints on the screen some computation information about the minimizing process, and finally saves the resulting reconstruction in data files and pictures inside automated created folders.
Here follows a brief description of the input/output data structure.
The main input data of the algorithm, namely
, is a 3-dimensional matrix that, according to the syntax of Matlab
®/Octave [
32,
33], has size as
[Nx,Ny,Nt]=size(fd), where
Nx,Ny are the number of histogram bins in each dimension on the domain space, and
Nt is the number of time step samples of the particles trajectories, i.e.,
fd(:,:,n) represents the 2-dimensional matrices slice at the time step
n with the values of the histograms of the particles positions. This matrix is saved in the HDF5
® format [
27] under the set data name
value, as follows
name_h5 = [save_name ’.h5’];
h5create(name_h5,’/value’,size(fd));
h5write(name_h5,’/value’,fd);
The library Armadillo provides the loading method.
The files CALC_FIG3.cpp and CALC_FIG6.cpp are the driver programs for calculating the figures of the papers. They differs on the input/output data name and some parameters value. Here follows the list of variables that can be customized by the user:
base_data_dir: folder name containing the input data.
data: file name of the input data, i.e., the trajectories, binned in histograms, of the particles. The HDF5 format is used.
base_dir: is the parent folder name where the results of the computation will be saved. This folder must be created in advance, otherwise the run-time is stopped by an error. The program creates automatically the sub-folder and saves the results inside.
save_name: is a root file name, used to create file names for saving the results of the reconstruction.
nlcg_param_fname: file name for the file containing the parameters of the nonlinear conjugate gradient algorithm. See below the description.
sig: intensity of the Gaussian noise
in the FPE (
4).
alfa: weight
of the norm of the potential
in the objective functional (
8).
beta: weight of the norm of the gradient of the potential
in the objective functional (
8). Notice, here we assume
beta.
xi: weight
of the terminal condition in the objective functional (
8).
ax, bx, ay, by: are the boundaries of the 2-dimensional domain. It is not necessary to change the default values.
TT: total time interval for the reconstruction. It is equal to the time of the Monte Carlo simulation or the time length of the sampled trajectories.
Nx: number of grid points of the numerical domain. In this implementation it must be square.
mux, muy, s0: parameters for the 2-dimensional Gauss PDF used as initial condition
for the FPE (
4).
mux, muy are the
coordinates of the mean value,
s0 is the standard deviation. If
then the PDF is uniform.
Nt_seq: number of windows of the Model Predictive Control. It corresponds to the number of the reconstructions computed along all available input time step data of the particles trajectories from the Monte Carlo simulation, as depicted in
Figure 4.
lam0: is the initial step length for a single cycle of the NLCG algorithm.
kmax: maximum number of iterations for a single cycle of the NLCG algorithm.
max_restart: maximum restart sequences of the NLCG algorithm.
Non_lin_conjug_grad.hpp/.cpp defines the class
NLCG that implements the nonlinear conjugate gradient method. It contains some default values of parameters for the Armijo condition during the linesearch algorithm (for details see [
12,
20]).
BACK_TRACK 0.5 is the backtracking coefficient of the linesearch algorithm.
MAX_LEVELS 10 is the maximum number of level search for the Armijo condition.
GAMMA 0.1 is the coefficient for the Armijo sufficient decrease condition of the functional.
EPS_CONV 1e-4 is the tolerance level for the search of the step-length
U_TOLERANCE 1e-4 is the tolerance level for the search of the step-length related to the control.
EPS_PDF 1e-8 is the minimum value of the PDF under which the control should be set vanishing (not used).
These values can be overwritten by those defined in an external file pointed out by the variable nlcg_param_fname. Such as an example, in the file nlcg_params.dat the following values are changed
Outline of the classes usage.
The source codes CALC_FIG3.cpp and CALC_FIG6.cpp give the guidelines on how to use the classes for solving the optimization problem. After loading the input data and defining some parameters, the classes Param and Model must be instantiated. In particular, the class Model named fokker_planck that contains the mathematical model of the FPE. Afterward, it follows the definition of the Cauchy initial condition. Then it starts the iterations over the reconstruction windows related to the MPC. Each iteration solves an optimization problem, inside of that it instantiates a Grid class for the numerical grid and matrices for the data. The instance of the class NLCG provides the numerical optimizer for the reconstruction problem. The constructor of the class takes as input arguments the classes Model and Grid, and a reference to the output, i.e., the solution of the optimization stored in u. After loading the algorithm parameters, the optimization starts by invoking the public method start_restart_sequence. At the completion of the method, the solution is stored in u, and the final value of the PDF is set as the initial condition for the next temporal window.
Finally, notice that the classes can be easily reused, e.g., for solving the sole Fokker–Planck equation, or modified in order to implements others optimization algorithms.