""" Solve the Non Branching Paths Construction Problem. """ import bio.io_utils as io import bio.triee import bio.cluster as cl def do_work(source): (k, m) = [int(p) for p in source.next().split()] beta = float(source.next()) data = io.read_float_list(source) # print "data", data centers = cl.expect_max(k, m, data, beta, epsilon = 1e-6) return io.gen_lines_format(centers, format='%.3f') io.generate_input_output(do_work, False, True)
row_states = read_elements(source) probs = {state: {} for state in row_states} for line in source: elements = line.split() state, state_probs = elements[0], [float(p) for p in elements[1:]] probs[state] = { state: prob for (state, prob) in zip(row_states, state_probs) } return probs def do_work(source): text = source.next() eat_line(source) states = read_elements(source) eat_line(source) probs = read_state_matrix(source) assert (probs.keys() == states) probs[''] = {state: 0.5 for state in states} result = 1 prev_state = '' for s in text: result *= probs[prev_state][s] prev_state = s return io.gen(result) io.generate_input_output(do_work, False, True)