def update_neighbourhood_structure
      self.update_recent_scores
      best = self.backtrack_or_continue
      unless @distributions.empty?
        @standard_deviations = Hash[@distributions.map { |k, d| [k, d.sd] }]
      end
      best[:parameters].each_pair do |param, value|
        self.update_distribution(param, value)
      end
    end
def update_neighbourhood_structure
      self.update_recent_scores
      best = self.backtrack_or_continue
      unless @distributions.empty?
        @standard_deviations = Hash[@distributions.map { |k, d| [k, d.sd] }]
      end
      best[:parameters].each_pair do |param, value|
        self.update_distribution(param, value)
      end
    end
update the neighbourhood structure by adjusting the probability
 distributions according to total performance of each parameter