logInfo( "Did not find last computed belief in utility calc.");
if ( _logger.isInfoEnabled() ) _logger.info( "Did not find last computed belief in utility calc.");
    boolean utilityHasChangedEnough( )            throws BelievabilityException    {        // Easiest case is when we have never published before.  Here        // we always want to publish the first things we see.        //        if ( _last_published_belief == null )            return true;        // This really should not happen, but we should check anyway.        //        if ( _last_computed_belief == null )        {            logInfo( "Did not find last computed belief in utility calc.");            return false;        }        double previous_utility = 0.0;        double current_utility = 0.0;        Enumeration prev_dim_enum                 = _last_published_belief.getAllBeliefStateDimensions                ().elements();        // The utilitiies are just the sum of the individual weighted        // utlities of each possible state value for each possible        // state dimension.        //        // We make some strong assumptions in this loop as far as the        // number and names of the state dimensions/values.  If they        // do not all agree (which they should), this loop will likely        // bomb miserably, or compute the wrong values.        //        while ( prev_dim_enum.hasMoreElements() )        {            BeliefStateDimension prev_bsd =                    (BeliefStateDimension) prev_dim_enum.nextElement();                        BeliefStateDimension cur_bsd =                    _last_computed_belief.getBeliefStateDimension                    ( prev_bsd.getName() );            // Get the utility weights             double[] mau_weighted_utilities =                     _model_manager.getWeightedAssetUtilities                    ( _asset_id.getType(),                       prev_bsd.getAssetStateDimension() );                        double[] prev_probs = prev_bsd.getProbabilityArray();            for ( int i = 0; i < prev_probs.length; i++ )                 previous_utility += ( prev_probs[i]                                       * mau_weighted_utilities[i] );            double[] cur_probs = cur_bsd.getProbabilityArray();            for ( int i = 0; i < cur_probs.length; i++ )                 current_utility += ( cur_probs[i]                                      * mau_weighted_utilities[i] );        } // while prev_dim_enum        // The threshold for whether the utilities has changed enough        // is a policy/model decision, so we defer this to the modfel        // manager.        //        if ( Math.abs( current_utility - previous_utility )             > _model_manager.getBeliefUtilityChangeThreshold() )            return true;        return false;    } // method utilityHasChangedEnough