def expected_util(model, player, state, utils):
    """
    >>> from asym_model import *
    >>> m = AsymmetricModel(0.1, 0.25)
    >>> expected_util(m, 0, (1, 1, 1), {(1, 1, 0):1, (1, 1, 1):2})
    1.25
    >>> expected_util(m, 1, (1, 1, 1), {(1, 1, 0):1, (1, 1, 1):2})
    2.0
    """
    
    norm = sum([model.probs[x] for x in model.graphs[player][state]])
    
    total_util = 0.0
    
    for x in model.graphs[player][state]:
        
        p_x = model.probs[x]/norm

        total_util += p_x * utils[x]
        
    return total_util