def apply_update_rules(state, predecessor_node_lists, truth_tables):
    """
    Update network state according to the update rule.

    :param state: current network state
    :param predecessor_node_lists: list of predecessor node lists
    :param truth_tables: list of dicts (key: tuple of predecessor node
        states, value: resulting node state)
    :return: next network state
    """
    return [truth_tables[node][tuple(state[predecessor_node]
                                     for predecessor_node in predecessor_node_lists[node])]
            for node in range(len(state))]