示例#1
0
"""
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)
示例#2
0
    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)