def generate_random_state(self, diabetic_idx=None):
    if (diabetic_idx is None):
        diabetic_idx = np.random.binomial(1, self.p_diabetes)
    hr_state = np.random.choice(np.arange(3), p=np.array([0.25, 0.5, 0.25]))
    sysbp_state = np.random.choice(np.arange(3), p=np.array([0.25, 0.5, 0.25]))
    percoxyg_state = np.random.choice(np.arange(2), p=np.array([0.2, 0.8]))
    if (diabetic_idx == 0):
        glucose_state = np.random.choice(np.arange(5), p=np.array([0.05, 0.15, 0.6, 0.15, 0.05]))
    else:
        glucose_state = np.random.choice(np.arange(5), p=np.array([0.01, 0.05, 0.15, 0.6, 0.19]))
    antibiotic_state = 0
    vaso_state = 0
    vent_state = 0
    state_categs = [hr_state, sysbp_state, percoxyg_state, glucose_state, antibiotic_state, vaso_state, vent_state]
    return State(state_categs=state_categs, diabetic_idx=diabetic_idx)
def generate_random_state(self, diabetic_idx=None):
    if (diabetic_idx is None):
        diabetic_idx = np.random.binomial(1, self.p_diabetes)
    hr_state = np.random.choice(np.arange(3), p=np.array([0.25, 0.5, 0.25]))
    sysbp_state = np.random.choice(np.arange(3), p=np.array([0.25, 0.5, 0.25]))
    percoxyg_state = np.random.choice(np.arange(2), p=np.array([0.2, 0.8]))
    if (diabetic_idx == 0):
        glucose_state = np.random.choice(np.arange(5), p=np.array([0.05, 0.15, 0.6, 0.15, 0.05]))
    else:
        glucose_state = np.random.choice(np.arange(5), p=np.array([0.01, 0.05, 0.15, 0.6, 0.19]))
    antibiotic_state = 0
    vaso_state = 0
    vent_state = 0
    state_categs = [hr_state, sysbp_state, percoxyg_state, glucose_state, antibiotic_state, vaso_state, vent_state]
    return State(state_categs=state_categs, diabetic_idx=diabetic_idx)