def _mutate_attribute(ubr: UBR, encoder: RealValueEncoder, noise_max: float, mu: float): if np.random.random() < mu: noise = np.random.uniform(-noise_max, noise_max) x1p = encoder.decode(ubr.x1) ubr.x1 = encoder.encode(x1p, noise) if np.random.random() < mu: noise = np.random.uniform(-noise_max, noise_max) x2p = encoder.decode(ubr.x2) ubr.x2 = encoder.encode(x2p, noise)
def _widen_attribute(ubr: UBR, encoder: RealValueEncoder, noise_max: float, mu: float): # TODO: we should modify both condition and effect parts with the # same noise. if np.random.random() < mu: noise = np.random.uniform(-noise_max, noise_max) x1p = encoder.decode(ubr.x1) ubr.x1 = encoder.encode(x1p, noise) if np.random.random() < mu: noise = np.random.uniform(-noise_max, noise_max) x2p = encoder.decode(ubr.x2) ubr.x2 = encoder.encode(x2p, noise)