Changeset 193 for bdm/estim/merger.cpp

Show
Ignore:
Timestamp:
10/22/08 10:46:42 (16 years ago)
Author:
smidl
Message:

oprava merger_iter a jeho casti

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/estim/merger.cpp

    r192 r193  
    6060                //Re-Initialize Mixture model 
    6161                Mix.init ( &A0, Smp_ex, Nc ); 
    62                 Mix.bayesB ( Smp_ex, ones ( Ns ) );//w*Ns ); 
     62                Mix.bayesB ( Smp_ex, w*Ns ); 
    6363                Mpred = Mix.predictor ( rv ); // Allocation => must be deleted at the end!! 
    6464 
    65                 // Generate new samples 
    66                 eSmp.set_samples ( Mpred ); 
    67                 for ( int i=0;i<Ns;i++ ) {      set_col_part ( Smp_ex,i,Smp ( i ) );} 
     65                if ( 1 ) { 
     66                        // Generate new samples 
     67                        eSmp.set_samples ( Mpred ); 
     68                        for ( int i=0;i<Ns;i++ ) {      set_col_part ( Smp_ex,i,Smp ( i ) );} 
     69                } 
     70                else { 
     71                        for ( int ii=0;ii<10;ii++ ) { 
     72                                for ( int jj=0; jj<10; jj++ ) { 
     73                                        Smp ( ii+jj*10 ) =vec_2 ( -1.0+6*ii/10.0, -1.0+6*jj/10.0 ); 
     74                                } 
     75                        } 
     76                        for ( int i=0;i<Ns;i++ ) {      set_col_part ( Smp_ex,i,Smp ( i ) );} 
     77                } 
    6878 
    6979                sprintf ( str,"Mpdf%d",niter ); 
     
    98108                                // Compute likelihood of the missing variable 
    99109                                if ( rv.count() > ( mpdfs ( i )->_rv().count() + mpdfs ( i )->_rvc().count() ) ) { 
     110                                        /////////////// 
     111                                        cout << Mpred->mean() <<endl; 
    100112                                        // There are variales unknown to mpdfs(i) : rvzs 
    101113                                        mpdf* tmp_cond = Mpred->condition ( rvzs ( i ) ); 
    102114                                        // Compute likelihood 
     115                                        vec lw_dbg=lw_src; 
    103116                                        for ( int k= 0; k<Ns; k++ ) { 
    104117                                                lw_src ( k ) += log ( 
     
    111124                                // Compute likelihood of the partial source 
    112125                                for ( int k= 0; k<Ns; k++ ) { 
    113                                         mpdfs ( i )->condition ( dls ( i )->get_cond ( Smp(k) ) ); 
    114                                         lw_src ( k ) += mpdfs ( i )->_epdf().evalpdflog ( dls ( i )->get_val ( Smp(k) ) ); 
     126                                        mpdfs ( i )->condition ( dls ( i )->get_cond ( Smp ( k ) ) ); 
     127                                        lw_src ( k ) += mpdfs ( i )->_epdf().evalpdflog ( dls ( i )->get_val ( Smp ( k ) ) ); 
    115128                                } 
     129                                 
    116130                        } 
    117131                        lW.set_row ( i, lw_src ); // do not divide by mix 
     
    139153                dbg << Name ( str ) << w; 
    140154 
    141                 eSmp.resample(); // So that it can be used in bayes 
    142                 for ( int i=0;i<Ns;i++ ) {      set_col_part ( Smp_ex,i,Smp ( i ) );} 
     155//              eSmp.resample(); // So that it can be used in bayes 
     156//              for ( int i=0;i<Ns;i++ ) {      set_col_part ( Smp_ex,i,Smp ( i ) );} 
    143157 
    144158                sprintf ( str,"Smp_res%d",niter ); 
     
    147161                // ==== stopping rule === 
    148162                niter++; 
    149                 converged = ( niter>20 ); 
     163                converged = ( niter>4 ); 
    150164        } 
    151165