 load sched; load PLM_CACHE; load HUMAN_ZCONGR;
 descr=zeros(9600,5,20);for k=1:10 d=block_from_cache(sched1,PLM_CACHE);descr(:,:,k)=cat(1,d{:});end;
 for k=11:20 d=block_from_cache(sched2,PLM_CACHE);descr(:,:,k)=cat(1,d{:});end

*****   May 30, 2003   *****************************************
 Mparams.trigger=3.5;Nruns=6;o=zeros(9600,4,Nruns);for k=1:Nruns [o(:,:,k),Wh]=PLM_Hebb1(descr(:,:,k),Mparams);end;st=PLM_stats(descr(:,:,1:Nruns),o(:,1,:),o(:,2,:),o(:,3,:));sst=PLM_summary(st);sst=PLM_summary(st);figure(1);plot_PLM_fit({sst.zP_congr',sst.zP_incon'});figure(2);plot_PLM_dynamics(sst);
 figure(3);M=0.6;for k=1:5;subplot(3,2,k);plot(Wh([1:7]+7*k-7,:)');axis([0 9600 -M +M]);set(gca,'xtick',bnd,'xticklabel',[]);grid on;end;b=10;c=Mparams.trigger;subplot(3,2,6);plot(1:9600/b,Wh(36,1:b:9600),'.',[0 0;1 1].*9600/b,[-1 1;-1 1].*c,'r-');axis([0 9600/b -12 +12]);set(gca,'xtick',bnd/b,'xticklabel',[]);grid on;title('Running Average');


%-- Parameter search
 Sparams=PLM_search_params
Sparams = 
    lsfun_name: 'PLM_paramsearch'
    model_name: 'PLM_Zcongr1'
        params: [1x1 struct]
     p2v_templ: {1x7 cell}
     v2p_templ: {1x7 cell}
        bounds: [2x7 double]
         optns: [1x1 struct]

 Sparams.p2v_templ'
ans = 
    'VAL = PARAMS.learn_rate *100 ;'
    'VAL = PARAMS.out_noise ;'
    'VAL = PARAMS.rep_noise ;'
    'VAL = PARAMS.W_init ;'
    'VAL = PARAMS.rep_gain ;'
    'VAL = PARAMS.criterion *10 ;'
    'VAL = PARAMS.trigger ;'


 x0=params2vector(Mparams,Sparams.p2v_templ)
x0 = [0.7000  0.2000  0.5000  0.2000  0.7000  0.7000  3.5000]

%%% 5 runs under sched1 + 5 runs under sched2
 for k=1:5 mdata1(k).stim=descr(:,:,k);mdata1(k).chev=make_chev(9600);end
 for k=1:5 mdata1(5+k).stim=descr(:,:,10+k);mdata1(5+k).chev=make_chev(9600);end
 for k=1:5 mdata2(k).stim=descr(:,:,k+5);mdata2(k).chev=make_chev(9600);end
 for k=1:5 mdata2(5+k).stim=descr(:,:,10+k+5);mdata2(5+k).chev=make_chev(9600);end

%%% Search for parameters using FMINCON
 [opt_par1,ssq1,opt_X1,det1]=paramsearch(mdata,Sparams)
ssq1 = 5.9034
opt_X1 = [0.1657  0.1620  0.0986  0.1739  0.4564  0.3335  3.2921]

 [opt_par2,ssq2,opt_X2,det2]=paramsearch(mdata2,Sparams)
ssq2 = 6.4786
opt_X2 = [0.3251  0.1737  0.2610  0.1790  0.4168  0.2953  3.8191]

%%% Document the performance of the model with these parameters
 Mparams=opt_par1;Nruns=20;o=zeros(9600,4,Nruns);for k=1:Nruns [o(:,:,k),Wh]=PLM_Hebb1(descr(:,:,k),Mparams);end;st=PLM_stats(descr(:,:,1:Nruns),o(:,1,:),o(:,2,:),o(:,3,:));sst=PLM_summary(st);sst=PLM_summary(st);figure(1);plot_PLM_fit({sst.zP_congr',sst.zP_incon'});figure(2);plot_PLM_dynamics(sst);
 figure(3);M=0.6;for k=1:5;subplot(3,2,k);plot(Wh([1:7]+7*k-7,:)');axis([0 9600 -M +M]);set(gca,'xtick',bnd,'xticklabel',[]);grid on;end;b=10;c=Mparams.trigger;subplot(3,2,6);plot(1:9600/b,Wh(36,1:b:9600),'.',[0 0;1 1].*9600/b,[-1 1;-1 1].*c,'r-');axis([0 9600/b -12 +12]);set(gca,'xtick',bnd/b,'xticklabel',[]);grid on;title('Running Average');


%%%%%%%%  Include the d-prime profiles into the goodness-of-fit
% See PLM_SUMSQFIT2
 [opt_par2_1,ssq2_1,opt_X2_1,det]=paramsearch(mdata1,Sparams_dpr)
 [opt_par2_2,ssq2_2,opt_X2_2,det]=paramsearch(mdata2,Sparams_dpr)
ssq2_1 = 6.5104
opt_X2_1 = [0.1756  0.2018  0.1441  0.1767  0.7999  0.4736  3.3350]
ssq2_2 = [6.7752
opt_X2_2 = [0.2088  0.2138  0.0786  0.1670  0.7661  0.4560  3.2987]

%%% Document the performance of the model with the new parameters
 descr=zeros(9600,5,100);for k=1:50 d=block_from_cache(sched1,PLM_CACHE);descr(:,:,k)=cat(1,d{:});end;
 for k=51:100 d=block_from_cache(sched2,PLM_CACHE);descr(:,:,k)=cat(1,d{:});end;

 Mparams=opt_par2_1;Nruns=100;o=zeros(9600,4,Nruns);for k=1:Nruns [o(:,:,k),Wh]=PLM_Hebb1(descr(:,:,k),Mparams);end;st=PLM_stats(descr(:,:,1:Nruns),o(:,1,:),o(:,2,:),o(:,3,:));sst=PLM_summary(st);sst=PLM_summary(st);figure(1);plot_PLM_fit({sst.zP_congr',sst.zP_incon'});figure(2);plot_PLM_dynamics(sst);
 figure(3);M=0.6;for k=1:5;subplot(3,2,k);plot(Wh([1:7]+7*k-7,:)');axis([0 9600 -M +M]);set(gca,'xtick',bnd,'xticklabel',[]);grid on;end;b=10;c=Mparams.trigger;subplot(3,2,6);plot(1:9600/b,Wh(36,1:b:9600),'.',[0 0;1 1].*9600/b,[-1 1;-1 1].*c,'r-');axis([0 9600/b -12 +12]);set(gca,'xtick',bnd/b,'xticklabel',[]);grid on;title('Running Average');
sst2_1 =
       N_runs: 100
        accZP: [0.8494 0.9137 0.9529 1.2487 0.4864 -0.1277]
         accA: [0.5001 0.5145 0.5221 -0.0161 -0.1943 -0.3381]
         accI: [0.4996 0.5150 0.5220 -0.0147 -0.1942 -0.3368]
sst2_2 =                    % time = 56,000 sec = 15.6 hours
       N_runs: 100
        accZP: [0.8597 0.9102 0.9380 1.2301 0.4781 -0.1220]
         accA: [0.4990 0.5112 0.5177 8.3403e-004 -0.1810 -0.3272]
         accI: [0.4989 0.5129 0.5185 7.9533e-004 -0.1817 -0.3269]


*****   May 28, 2003   *****************************************

 Mparams.trigger=0.2;Nruns=6;o=zeros(9600,3,Nruns);for k=1:Nruns [o(:,:,k),Wh]=PLM_Hebb1(descr(:,:,k),Mparams);end;st=PLM_stats(descr(:,:,1:Nruns),o(:,1,:),o(:,2,:),o(:,3,:));sst=PLM_summary(st);sst=PLM_summary(st);figure(1);plot_PLM_fit({sst.zP_congr',sst.zP_incon'});figure(2);plot_PLM_dynamics(sst);

 figure(3);M=0.6;for k=1:5;subplot(3,2,k);plot(Wh([1:7]+7*k-7,:)');axis([0 9600 -M +M]);set(gca,'xtick',bnd,'xticklabel',[]);grid on;end;b=10;c=Mparams.trigger;subplot(3,2,6);plot(1:9600/b,Wh(36,1:b:9600),'.',[0 0;1 1].*9600/b,[-1 1;-1 1].*c,'r-');axis([0 9600/b -1 +1]);set(gca,'xtick',bnd/b,'xticklabel',[]);grid on;title('Criterion');

 r=sign(o(:,1,Nruns)-1.5);b=30;figure(4);subplot(2,1,1);plot(mean(reshape(r,b,9600/b)),'.-');axis([0 9600/b -.6 +.6]);set(gca,'xtick',bnd/b,'xticklabel',[]);grid on;title('Response frequencies');

Mparams = 
       rep_size: [7 5 1]
        max_act: 0.5000
     fdbk_input: [-2 2]
       rep_gain: 1
      rep_noise: 0.1500
       out_gain: 1.5000
      out_noise: 0.1500
       W_minmax: [-1 1]
         W_init: 0.2000
        W0_seed: [35x1 double]
    switch_bias: 0.1900
      threshold: 0.0830
     learn_rate: 0.0080
     runav_rate: 0.9800
        trigger: 0.1000
       blk_size: 300


 Hstats=Hebb_stats(Mparams);print_Hebb_stats(Hstats);

Condition   dprime   bias  : mnYcon  mnYinc  :   sdY   SDcon  SDinc 
-------------------------------------------------------------------
Wsame
  Cp=.23    0.966  -0.015  :  0.058  -0.088  :  0.151  0.015  0.019
  Cp=.15    0.646   0.010  :  0.059  -0.039  :  0.151  0.016  0.022
  Cp=.10    0.365   0.030  :  0.058   0.003  :  0.151  0.016  0.022
  Mean  +   0.659   0.008  +  0.058  -0.041  +  0.151  0.016  0.021
  Diff     -0.601          :  0.000   0.091  :

Wother
  Cp=.23    0.865   0.097  :  0.162   0.032  :  0.151  0.015  0.022
  Cp=.15    0.545   0.115  :  0.156   0.074  :  0.152  0.019  0.025
  Cp=.10    0.298   0.125  :  0.147   0.102  :  0.152  0.022  0.025
  Mean  +   0.569   0.112  +  0.155   0.069  +  0.152  0.019  0.024
  Diff     -0.567          : -0.015   0.070  :

Wmix
  Cp=.23    0.916   0.041  :  0.110  -0.028  :  0.151  0.015  0.021
  Cp=.15    0.596   0.062  :  0.108   0.017  :  0.151  0.017  0.023
  Cp=.10    0.332   0.077  :  0.102   0.052  :  0.151  0.018  0.023
  Mean  +   0.614   0.060  +  0.107   0.014  +  0.151  0.017  0.022
  Diff     -0.584          : -0.008   0.081  :

W0step
  Cp=.23    1.801   0.225  :  0.369   0.081  :  0.160  0.050  0.060
  Cp=.15    1.110   0.303  :  0.393   0.213  :  0.162  0.056  0.066
  Cp=.10    0.557   0.351  :  0.397   0.306  :  0.163  0.059  0.068
  Mean  +   1.156   0.293  +  0.386   0.200  +  0.162  0.055  0.065
  Diff     -1.245          :  0.028   0.225  :

W0lin
  Cp=.23    1.193   0.162  :  0.256   0.069  :  0.157  0.044  0.049
  Cp=.15    0.726   0.220  :  0.277   0.162  :  0.158  0.049  0.053
  Cp=.10    0.346   0.254  :  0.281   0.226  :  0.159  0.052  0.056
  Mean  +   0.755   0.212  +  0.271   0.152  +  0.158  0.048  0.053
  Diff     -0.847          :  0.025   0.158  :
-------------------------------------------------------------------
Condition   dprime   bias  : mnYcon  mnYinc  :   sdY   SDcon  SDinc 

