docs: def set_initial_status(self, configuration=None):
          """
          Override behaviour of methods in class DiffusionModel.
          Overwrites initial status using random real values.
          Generates random node profiles.
          """
          super(CognitiveOpDynModel, self).set_initial_status(configuration)
  
          # set node status
          for node in self.status:
              self.status[node] = np.random.random_sample()
          self.initial_status = self.status.copy()
  
          # set new node parameters
          self.params['nodes']['cognitive'] = {}
  
          # first correct the input model parameters and retreive T_range, B_range and R_distribution
          T_range = (self.params['model']['T_range_min'], self.params['model']['T_range_max'])
          if self.params['model']['T_range_min'] > self.params['model']['T_range_max']:
              T_range = (self.params['model']['T_range_max'], self.params['model']['T_range_min'])
  
          B_range = (self.params['model']['B_range_min'], self.params['model']['B_range_max'])
          if self.params['model']['B_range_min'] > self.params['model']['B_range_max']:
              B_range = (self.params['model']['B_range_max'], self.params['model']['B_range_min'])
          s = float(self.params['model']['R_fraction_negative'] + self.params['model']['R_fraction_neutral'] +
                    self.params['model']['R_fraction_positive'])
          R_distribution = (self.params['model']['R_fraction_negative']/s, self.params['model']['R_fraction_neutral']/s,
                            self.params['model']['R_fraction_positive']/s)
  
          # then sample parameters from the ranges and distribution
          for node in self.graph.nodes():
              R_prob = np.random.random_sample()
              if R_prob < R_distribution[0]:
                  R = -1
              elif R_prob < (R_distribution[0] + R_distribution[1]):
                  R = 0
              else:
                  R = 1
              # R, B and T parameters in a tuple
              self.params['nodes']['cognitive'][node] = (R,
                                                         B_range[0] + (B_range[1] - B_range[0])*np.random.random_sample(),
                                                         T_range[0] + (T_range[1] - T_range[0])*np.random.random_sample())