From c574544b1676d729fb2282bb143fe09707ed8a90 Mon Sep 17 00:00:00 2001 From: Michel Juillard Date: Sat, 26 Jun 2010 11:51:40 +0200 Subject: [PATCH] adding a check to Metropolis Hasting initialization in order not to accept a penalized posterior value --- matlab/metropolis_hastings_initialization.m | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/matlab/metropolis_hastings_initialization.m b/matlab/metropolis_hastings_initialization.m index dbbe057a8..9edab4ae4 100644 --- a/matlab/metropolis_hastings_initialization.m +++ b/matlab/metropolis_hastings_initialization.m @@ -95,13 +95,17 @@ if ~options_.load_mh_file & ~options_.mh_recover if all(candidate(:) > mh_bounds(:,1)) & all(candidate(:) < mh_bounds(:,2)) ix2(j,:) = candidate; ilogpo2(j) = - feval(TargetFun,ix2(j,:)',varargin{:}); - fprintf(fidlog,[' Blck ' int2str(j) ':\n']); - for i=1:length(ix2(1,:)) - fprintf(fidlog,[' params:' int2str(i) ': ' num2str(ix2(j,i)) '\n']); + if ilogpo2(j) <= - bayestopt_.penalty+1e-6 + validate = 0; + else + fprintf(fidlog,[' Blck ' int2str(j) ':\n']); + for i=1:length(ix2(1,:)) + fprintf(fidlog,[' params:' int2str(i) ': ' num2str(ix2(j,i)) '\n']); + end + fprintf(fidlog,[' logpo2: ' num2str(ilogpo2(j)) '\n']); + j = j+1; + validate = 1; end - fprintf(fidlog,[' logpo2: ' num2str(ilogpo2(j)) '\n']); - j = j+1; - validate = 1; end init_iter = init_iter + 1; if init_iter > 100 & validate == 0