v4 matlab: removed useless asamin.m and added an error message for mode_compute=2
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1893 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
7054fd2f87
commit
67d98a4a7b
160
matlab/asamin.m
160
matlab/asamin.m
|
@ -1,160 +0,0 @@
|
|||
% ASAMIN A gateway function to Adaptive Simulated Annealing (ASA)
|
||||
%
|
||||
% ASAMIN is a matlab gateway function to Lester Ingber's Adaptive
|
||||
% Simulated Annealing (ASA)
|
||||
%
|
||||
% Copyright (c) 1999-2001 Shinichi Sakata. All Rights Reserved.
|
||||
%
|
||||
% $Id: asamin.m,v 1.1.2.1 2004/03/27 14:41:06 michel Exp $
|
||||
%
|
||||
% Usage:
|
||||
%
|
||||
% asamin ('set')
|
||||
%
|
||||
% lists the current value of each option.
|
||||
%
|
||||
% asamin ('set', opt_name)
|
||||
%
|
||||
% shows the current value of the option given by a character string
|
||||
% opt_name; e.g.,
|
||||
%
|
||||
% asamin ('set', 'seed')
|
||||
%
|
||||
% asamin ('set', opt_name, opt_value)
|
||||
%
|
||||
% set the value opt_value to the option opt_name; e.g.,
|
||||
%
|
||||
% asamin ('set', 'seed', 654342)
|
||||
% asamin ('set', 'asa_out_file', 'example.log')
|
||||
%
|
||||
% The valid options in these commands are:
|
||||
%
|
||||
% rand_seed
|
||||
% test_in_cost_func
|
||||
% use_rejected_cost
|
||||
% asa_out_file
|
||||
% limit_acceptances
|
||||
% limit_generated
|
||||
% limit_invalid
|
||||
% accepted_to_generated_ratio
|
||||
% cost_precision
|
||||
% maximum_cost_repeat
|
||||
% number_cost_samples
|
||||
% temperature_ratio_scale
|
||||
% cost_parameter_scale
|
||||
% temperature_anneal_scale
|
||||
% include_integer_parameters
|
||||
% user_initial_parameters
|
||||
% sequential_parameters
|
||||
% initial_parameter_temperature
|
||||
% acceptance_frequency_modulus
|
||||
% generated_frequency_modulus
|
||||
% reanneal_cost
|
||||
% reanneal_parameters
|
||||
% delta_x
|
||||
%
|
||||
% rand_seed is the seed of the random number generation in ASA.
|
||||
%
|
||||
% If test_in_cost_func is set to zero, the cost function should
|
||||
% simply return the value of the objective function. When
|
||||
% test_in_cost_func is set to one, asamin () calls the cost
|
||||
% function with a threshold value as well as the parameter
|
||||
% value. The cost function needs to judge if the value of the cost
|
||||
% function exceeds the threshold as well as compute the value of
|
||||
% the cost function when asamin () requires. (See COST FUNCTION
|
||||
% below for details.)
|
||||
%
|
||||
% All other items but use_rejected_cost belong to structure
|
||||
% USER_OPTIONS in ASA. See ASA_README in the ASA package for
|
||||
% details. The default value of use_rejected_cost is zero. If you
|
||||
% set this option to one, ASA uses the current cost value to
|
||||
% compute certain indices, even if the current state is rejected by
|
||||
% the user cost function, provided that the current cost value is
|
||||
% lower than the cost value of the past best state. (See COST
|
||||
% FUNCTION below about the user cost function.)
|
||||
%
|
||||
% asamin ('reset')
|
||||
% resets all option values to the hard-coded default values.
|
||||
%
|
||||
% [fstar,xstar,grad,hessian,state] = ...
|
||||
% asamin ('minimize', func, xinit, xmin, xmax, xtype,...
|
||||
% parm1, parm2, ...)
|
||||
%
|
||||
% minimizes the cost function func (also see COST FUNCTION below).
|
||||
% The argument xinit specifies the initial value of the arguments
|
||||
% of the cost function. Each element of the vectors xmin and xmax
|
||||
% specify the lower and upper bounds of the corresponding
|
||||
% argument. The vector xtype indicates the types of the
|
||||
% arguments. If xtype(i) is -1 if the i'th argument is real;
|
||||
% xtype(i) is 1 if the i'th argument is integer. If this argument
|
||||
% should be ignored in reannealing, multiply the corresponding
|
||||
% element of xtype by 2 so that the element is 2 or -2. All
|
||||
% parameters following xtype are optional and simply passed to the
|
||||
% cost function each time the cost function is called.
|
||||
%
|
||||
% This way of calling asamin returns the following values:
|
||||
%
|
||||
% fstar
|
||||
% The value of the objective function at xstar.
|
||||
% xstar
|
||||
% The argument vector at the exit from the ASA routine. If things go
|
||||
% well, xstar should be the minimizer of "func".
|
||||
% grad
|
||||
% The gradient of "func" at xstar.
|
||||
% hessian
|
||||
% The Hessian of "func" at xstar.
|
||||
% state
|
||||
% The vector containing the information on the exit state.
|
||||
% state(1) is the exit_code, and state(2) is the cost flag. See
|
||||
% ASA_README for details.
|
||||
%
|
||||
%
|
||||
%
|
||||
% COST FUNCTION
|
||||
%
|
||||
% If test_in_cost_func is set to zero, asamin () calls the "cost
|
||||
% function" (say, cost_func) with one argument, say x (the real cost
|
||||
% function is evaluated at this point). Cost_func is expected to
|
||||
% return the value of the objective function and cost_flag, the
|
||||
% latter of which must be zero if any constraint (if any) is
|
||||
% violated; otherwise one.
|
||||
%
|
||||
% When test_in_cost_func is equal to one, asamin () calls the "cost
|
||||
% function" (say, cost_func) with three arguments, say, x (at which
|
||||
% the real cost function is evaluated), critical_cost_value, and
|
||||
% no_test_flag. Asamin expects cost_func to return three scalar
|
||||
% values, say, cost_value, cost_flag, and user_acceptance_flag in the
|
||||
% following manner.
|
||||
%
|
||||
% 1. The function cost_func first checks if x satisfies the
|
||||
% constraints of the minimization problem. If any of the
|
||||
% constraints is not satisfied, cost_func sets zero to cost_flag
|
||||
% and return. (user_acceptance_flag and cost_value will not be used
|
||||
% by asamin () in this case.) If all constraints are satisfied, set
|
||||
% one to cost_flag, and proceed to the next step.
|
||||
%
|
||||
% 2. If asamin () calls cost_func with no_test_flag==1, cost_func
|
||||
% must compute the value of the cost function, set it to cost_value
|
||||
% and return. When no_test_flag==0, cost_func is expected to judge
|
||||
% if the value of the cost function is greater than
|
||||
% critical_cost_value. If the value of the cost function is found
|
||||
% greater than critical_cost_value, cost_func must set zero to
|
||||
% user_acceptance_flag and return. (asamin () will not use
|
||||
% cost_value in this case.) On the other hand, if the value of the
|
||||
% cost function is found no greater than critical_cost_value,
|
||||
% cost_func must compute the cost function at x, set it to
|
||||
% cost_value, and set one to user_acceptance_flag.
|
||||
%
|
||||
% Remark: To understand the usefulness of test_in_cost_func == 1,
|
||||
% note that it is sometimes easier to check if the value of the cost
|
||||
% function is greater than critical_cost_value than compute the value
|
||||
% of the cost function. For example, suppose that the cost function g
|
||||
% is implicitly defined by an equation f(g(x),x)=0, where f is
|
||||
% strictly increasing in the first argument, and evaluation of g(x)
|
||||
% is computationally expensive (e.g., requiring an iterative method
|
||||
% to find a solution to f(y,x)=0). But we can easily show that
|
||||
% f(critical_cost_value,x) < 0 if and only if g(x) >
|
||||
% critical_cost_value. We can judge if g(x) > critical_cost_value by
|
||||
% computing f(critical_cost_value,x). The value of g(x) is not
|
||||
% necessary.
|
||||
%
|
|
@ -318,13 +318,14 @@ if options_.mode_compute > 0 & options_.posterior_mode_estimation
|
|||
end
|
||||
elseif options_.mode_compute == 2
|
||||
% asamin('set','maximum_cost_repeat',0);
|
||||
if ~options_.bvar_dsge
|
||||
[fval,xparam1,grad,hessian_asamin,exitflag] = ...
|
||||
asamin('minimize','DsgeLikelihood',xparam1,lb,ub,-ones(size(xparam1)),gend,data);
|
||||
else
|
||||
[fval,xparam1,grad,hessian_asamin,exitflag] = ...
|
||||
asamin('minimize','DsgeVarLikelihood',xparam1,lb,ub,-ones(size(xparam1)),gend);
|
||||
end
|
||||
% $$$ if ~options_.bvar_dsge
|
||||
% $$$ [fval,xparam1,grad,hessian_asamin,exitflag] = ...
|
||||
% $$$ asamin('minimize','DsgeLikelihood',xparam1,lb,ub,-ones(size(xparam1)),gend,data);
|
||||
% $$$ else
|
||||
% $$$ [fval,xparam1,grad,hessian_asamin,exitflag] = ...
|
||||
% $$$ asamin('minimize','DsgeVarLikelihood',xparam1,lb,ub,-ones(size(xparam1)),gend);
|
||||
% $$$ end
|
||||
error('ESTIMATION: mode_compute=2 option (Lester Ingber''s Adaptive Simulated Annealing) is no longer available')
|
||||
elseif options_.mode_compute == 3
|
||||
optim_options = optimset('display','iter','MaxFunEvals',100000,'TolFun',1e-8,'TolX',1e-6);
|
||||
if isfield(options_,'optim_opt')
|
||||
|
|
Loading…
Reference in New Issue