def simulate(controller: MemorylessController, exclude=None, drop=0): from lunar_lander import LunarLanderContinuous env = LunarLanderContinuous() env.seed(1337) try: # Simulate and control import funcy as fn state = fn.first( fn.drop(drop, controller.winning_states(exclude=exclude))) state = {k: .5 * (v[0] + v[1]) for k, v in state.items()} env.reset([state[v] for v in states]) statehist = None for step in range(20): u = fn.first(controller.allows(state)) if u is None: print("No safe control inputs for state {}".format(state)) env.close() f.children[0].mgr.configure( reordering=False ) # Needed because mgr.pick_iter toggles reordering to True return statehist picked_u = {'t': u['t'], 's': u['s']} state.update(picked_u) print("Step: ", step, state) for _ in range(T): s, _, _, _ = env.step(np.array([picked_u['t'], picked_u['s']])) env.render() time.sleep(.03) if step == 0: statehist = s else: statehist = np.vstack([statehist, s]) state = {v: s[idx] for idx, v in enumerate(states)} except OutOfDomainError: print("Out of system domain") env.close() return statehist except: env.close() raise env.close() return statehist
def correct_text_HTML(from_text, to_text, insert_between=''): differences = unified_diff(from_text.split(), to_text.split()) differences = drop(3, differences) differences = group_differences(differences) res = [] for diff in differences: type_, text = diff[0], diff[1:] if type_ is '-': res += ['<del>' + text + '</del>'] res += insert_between elif type_ is '+': res += ['<ins>' + text + '</ins>'] else: res += [text] return ' '.join(res)
def correct_text_msg(from_text, to_text, insert_between=''): differences = unified_diff(from_text.split(), to_text.split()) differences = drop(3, differences) differences = group_differences(differences) res = [] for diff in differences: type_, text = diff[0], diff[1:] if type_ is '-': res += [walk(strike, text)] res += insert_between elif type_ is '+': res += [embolden(text)] else: res += [text] return ' '.join(res)
def get_statistical_data(self, drug: str) -> Optional[Tuple[float, float]]: # print(list(self.blood_level_factors.keys())) # print(drug) if drug not in self.blood_level_factors: return None blood_levels = list( drop( 7 * 24, take( self.real_duration, map( lambda x: x[0] * x[1][0], zip(self.drugs_timeline[drug], self.factor_timeline[drug]))))) levels_avg = sum(blood_levels) / len(blood_levels) sq_delta = list(map(lambda x: (x - levels_avg)**2, blood_levels)) levels_std_dev = math.sqrt(sum(sq_delta) / len(blood_levels)) return levels_avg, levels_std_dev
def covariance(expr1, expr2): c1 = fn.pluck(1, coeffs(expr1)) c2 = fn.pluck(1, coeffs(expr2)) return sum(x * y for x, y in fn.drop(1, zip(c1, c2)))
def variance(expr): return sum(fn.drop(1, weights(expr)))