Exemple #1
0
def load_V_Vectors(cluster_v_bar_epsilon, _name):

    global V_vectors
    global p
    # global v_prog

    res = open("show_out" + ".txt", "w")

    _p = Problem.Problem(
        initial=[
            {s: [random.randint(0, na - 1)] for s in range(n)},
            np.zeros(d, dtype=ftype),
            np.zeros((n, d), dtype=ftype),
        ],
        _mdp=m,
        _cluster_error=cluster_v_bar_epsilon,
        _epsilon=epsilon_error,
    )

    """the main problem is defined as a mdp with two errors: epsilon_error: the used error in hierarchical clustering
    using cosine similarity metric. cluster_v_bar_epsilon: the used error for stopping criteria in generating
    \mathcal{V} set."""
    _v_prog = propagation_V.propagation_V(
        m=m,
        inequalities=generate_inequalities(m.d),
        cluster_v_bar_epsilon=cluster_v_bar_epsilon,
        epsilon_error=epsilon_error,
    )
    _v_prog.initialize_LP()

    start1 = time.clock()
    tem = _v_prog.convex_hull_search(_p)
    stop1 = time.clock()

    # cProfile.run('v_prog.convex_hull_search(p)')

    print >> res, "time v propagation", stop1 - start1

    print >> res, "iteration", tem[1]
    res.flush()

    _V_vectors = tem[0]
    V_vectors = _V_vectors

    print "V_vectors", _V_vectors
    print "len(V_vectors)", len(_V_vectors)

    print >> res, "V_vectors", _V_vectors
    res.flush()
    print >> res, "len(V_vectors)", len(_V_vectors)
    res.flush()

    p = _p
    # v_prog = _v_prog

    name = "param" + _name + "v-propagate.dmp"
    pp = pickle.Pickler(open(name, "w"))
    pp.dump(p)
    # pp.dump(v_prog)
    pp.dump(V_vectors)
Exemple #2
0
        time_find_V_optimal = []
        number_asked_queries = []
        error = []

        for iteration in range(average_on):

            _lambda_rand = interior_easy_points(d)
            _r = my_mdp.generate_random_reward_function(n, na, d)
            m = my_mdp.make_simulate_mdp(n, na, _lambda_rand, _r)

            Uvec = m.policy_iteration()
            exact = m.initial_states_distribution().dot(Uvec)

            p = Problem.Problem(initial=[{s:[random.randint(0,na-1)] for s in range(n)}, np.zeros(d, dtype=ftype), np.zeros((n,d),dtype=ftype)],
                         _mdp=m, _cluster_error=0.1, _epsilon=0.00001)
            v_prog = propagation_V.propagation_V(m=m, d=d, cluster_v_bar_epsilon = _cluster_v_bar_epsilon, epsilon_error = epsilon_error)

            start_time_gather_V_bars = time.time()
            V_vectors = v_prog.convex_hull_search(p)
            time_gather_V_bars.append(time.time() - start_time_gather_V_bars)

            print >> log1, 'V_vectors', V_vectors
            print >> log1, "exact", exact
            log1.flush()

            V = V_bar_search.V_bar_search(_mdp= m, _V_bar=V_vectors, lam_random= m.get_lambda())

            start_time_find_V_optimal = time.time()
            v_opt = V.v_optimal()
            print >> log1, 'v_opt', v_opt
            log1.flush()