Example #1
0
File: kpu.py Project: junkyul/kpu
def main(args):
    print "[Solve ID by local search]"
    N, M, K = int(args[1]), int(args[2]), int(args[3])
    from Factor import Factor
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N, M)
    #print "loading model from file...",
    #stime = time.clock()
    #Variables, Factors = read_network_from_file(args[1], useLog=logScale)
    #etime = time.clock() - stime
    #print "done: %d variables, %d factors. \033[91m[%gs]\033[0m" % (len(Variables), len(Factors), etime)
    run(ChanceVars, DecVars, CPT, Strategy, Utility, K, False, 100, True)

    sol = len(DecVars) * [None]
    for n in range(len(DecVars)):
        sol[n] = Factor([DecVars[n]], defaultValue=1.0 / M)
    kPUvalue, kPUit, kPUtime, KPUsize = run(ChanceVars, DecVars, CPT, sol,
                                            Utility, K, False, 100, True)
    sol2 = len(DecVars) * [None]
    for n in range(len(DecVars)):
        sol2[n] = Factor([DecVars[n]], defaultValue=1.0 / M)
    kPUvalue2, kPUit2, kPUtime2, KPUsize2 = run(ChanceVars, DecVars, CPT, sol2,
                                                Utility, K, False, 100, False)
    print
    print "METHOD    \tTIME(s)   \tMAX SIZE  \tVALUE"
    print "Pruned    \t%10s\t%10s\t%g" % (str(kPUtime), str(KPUsize), kPUvalue)
    print "Exhaustive\t%10s\t%10s\t%g" % (str(kPUtime2), str(KPUsize2),
                                          kPUvalue2)
Example #2
0
def main(args):
    print "[Solve ID by local search]"
    N,M,K,T=int(args[1]),int(args[2]),int(args[3]),int(args[4])
    from Factor import Factor
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)

    print "SPU"
    print
    sys.stdout.flush()
    SPUvalue, SPUit, SPUtime, SPUsize = run(ChanceVars, DecVars, CPT, Strategy, Utility, 1, False, 4*N, False)
    
    print "Exact"
    print
    sys.stdout.flush()
    sol = len(DecVars)*[ None ]
    for n in range(len(DecVars)):
        sol[n] = Factor([DecVars[n]], defaultValue=1.0/M)
    kPUvalue, kPUit, kPUtime, kPUsize = run(ChanceVars, DecVars, CPT, sol, Utility, K, True, 2*N, False)
    
    print "Approximate"
    print
    sys.stdout.flush()
    sol2 = len(DecVars)*[ None ]
    for n in range(len(DecVars)):
        sol2[n] = Factor([DecVars[n]], defaultValue=1.0/M)
    akPUvalue, akPUit, akPUtime, akPUsize = run(ChanceVars, DecVars, CPT, sol2, Utility, K, True, 2*N, True, T)
    print
    print "METHOD     \tTIME(s)   \tMAX SIZE  \tVALUE"
    print "SPU        \t%10s\t%10s\t%g" % (str(SPUtime), str(SPUsize), SPUvalue)
    print "Exact      \t%10s\t%10s\t%g" % (str(kPUtime), str(kPUsize), kPUvalue)
    print "Approximate\t%10s\t%10s\t%g" % (str(akPUtime), str(akPUsize),  akPUvalue)
Example #3
0
File: kpu.py Project: denismaua/kpu
def main(args):
    print "[Solve ID by local search]"
    N,M,K=int(args[1]),int(args[2]),int(args[3])
    from Factor import Factor
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)
    #print "loading model from file...",
    #stime = time.clock()
    #Variables, Factors = read_network_from_file(args[1], useLog=logScale)
    #etime = time.clock() - stime
    #print "done: %d variables, %d factors. \033[91m[%gs]\033[0m" % (len(Variables), len(Factors), etime)
    run(ChanceVars, DecVars, CPT, Strategy, Utility, K, False, 100, True)

    sol = len(DecVars)*[ None ]
    for n in range(len(DecVars)):
        sol[n] = Factor([DecVars[n]], defaultValue=1.0/M)
    kPUvalue, kPUit, kPUtime, KPUsize = run(ChanceVars, DecVars, CPT, sol, Utility, K, False, 100, True)
    sol2 = len(DecVars)*[ None ]
    for n in range(len(DecVars)):
        sol2[n] = Factor([DecVars[n]], defaultValue=1.0/M)
    kPUvalue2, kPUit2, kPUtime2, KPUsize2 = run(ChanceVars, DecVars, CPT, sol2, Utility, K, False, 100, False)
    print
    print "METHOD    \tTIME(s)   \tMAX SIZE  \tVALUE"
    print "Pruned    \t%10s\t%10s\t%g" % (str(kPUtime), str(KPUsize), kPUvalue)
    print "Exhaustive\t%10s\t%10s\t%g" % (str(kPUtime2), str(KPUsize2),  kPUvalue2)
Example #4
0
File: mpu.py Project: denismaua/kpu
def main(args):
    print "[multiple policy updating]"
    N,M=int(args[1]),int(args[2])
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)
    mpu,t1,numtables = run(ChanceVars, DecVars, CPT, Strategy, Utility, verbose=True, ComputeHull=True)
    print "Total elapsed time: \033[91m%gs\033[0m" % t1
    mpu,t1,numtables = run(ChanceVars, DecVars, CPT, Strategy, Utility, verbose=True, ComputeHull=False)
    print "Total elapsed time: \033[91m%gs\033[0m" % t1
Example #5
0
def main(args):
    print "[Solve ID by local search]"
    N,M=int(args[1]),int(args[2])
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)
    #print "loading model from file...",
    #stime = time.clock()
    #Variables, Factors = read_network_from_file(args[1], useLog=logScale)
    #etime = time.clock() - stime
    #print "done: %d variables, %d factors. \033[91m[%gs]\033[0m" % (len(Variables), len(Factors), etime)
    MEU, iteration, time = run(ChanceVars, DecVars, CPT, Strategy, Utility)
Example #6
0
def main(args):
    print "[Solve ID by local search]"
    N, M = int(args[1]), int(args[2])
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N, M)
    #print "loading model from file...",
    #stime = time.clock()
    #Variables, Factors = read_network_from_file(args[1], useLog=logScale)
    #etime = time.clock() - stime
    #print "done: %d variables, %d factors. \033[91m[%gs]\033[0m" % (len(Variables), len(Factors), etime)
    MEU, iteration, time = run(ChanceVars, DecVars, CPT, Strategy, Utility)
Example #7
0
def main(args):
    import pickle
    import time
    N,M,L = int(args[1]), int(args[2]), int(args[3]) # num vars, var cardinality, no. of limids
    print "generating %d chain-like limids with %d variables taking on %d values..." % (L,N,M),
    sys.stdout.flush()
    start = time.clock()
    for t in range(L):
        #ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)
        exp = sampleChainID(N,M)
        pickle.dump( exp, open( "experiments/exp-%d-%d-%d.p" % (N,M,t), "wb" ) )
    end = time.clock()
    print "done [%gs]" % (end-start)
    print "saved in experiments/exp-%d-%d-L" % (N,M)
Example #8
0
def main(args):
    import pickle
    import time
    N, M, L = int(args[1]), int(args[2]), int(
        args[3])  # num vars, var cardinality, no. of limids
    print "generating %d chain-like limids with %d variables taking on %d values..." % (
        L, N, M),
    sys.stdout.flush()
    start = time.clock()
    for t in range(L):
        #ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)
        exp = sampleChainID(N, M)
        pickle.dump(exp, open("experiments/exp-%d-%d-%d.p" % (N, M, t), "wb"))
    end = time.clock()
    print "done [%gs]" % (end - start)
    print "saved in experiments/exp-%d-%d-L" % (N, M)
Example #9
0
def main(args):
    print "[multiple policy updating]"
    N, M = int(args[1]), int(args[2])
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N, M)
    mpu, t1, numtables = run(ChanceVars,
                             DecVars,
                             CPT,
                             Strategy,
                             Utility,
                             verbose=True,
                             ComputeHull=True)
    print "Total elapsed time: \033[91m%gs\033[0m" % t1
    mpu, t1, numtables = run(ChanceVars,
                             DecVars,
                             CPT,
                             Strategy,
                             Utility,
                             verbose=True,
                             ComputeHull=False)
    print "Total elapsed time: \033[91m%gs\033[0m" % t1
Example #10
0
File: akpu.py Project: junkyul/kpu
def main(args):
    print "[Solve ID by local search]"
    N, M, K, T = int(args[1]), int(args[2]), int(args[3]), int(args[4])
    from Factor import Factor
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N, M)

    print "SPU"
    print
    sys.stdout.flush()
    SPUvalue, SPUit, SPUtime, SPUsize = run(ChanceVars, DecVars, CPT, Strategy,
                                            Utility, 1, False, 4 * N, False)

    print "Exact"
    print
    sys.stdout.flush()
    sol = len(DecVars) * [None]
    for n in range(len(DecVars)):
        sol[n] = Factor([DecVars[n]], defaultValue=1.0 / M)
    kPUvalue, kPUit, kPUtime, kPUsize = run(ChanceVars, DecVars, CPT, sol,
                                            Utility, K, True, 2 * N, False)

    print "Approximate"
    print
    sys.stdout.flush()
    sol2 = len(DecVars) * [None]
    for n in range(len(DecVars)):
        sol2[n] = Factor([DecVars[n]], defaultValue=1.0 / M)
    akPUvalue, akPUit, akPUtime, akPUsize = run(ChanceVars, DecVars, CPT, sol2,
                                                Utility, K, True, 2 * N, True,
                                                T)
    print
    print "METHOD     \tTIME(s)   \tMAX SIZE  \tVALUE"
    print "SPU        \t%10s\t%10s\t%g" % (str(SPUtime), str(SPUsize),
                                           SPUvalue)
    print "Exact      \t%10s\t%10s\t%g" % (str(kPUtime), str(kPUsize),
                                           kPUvalue)
    print "Approximate\t%10s\t%10s\t%g" % (str(akPUtime), str(akPUsize),
                                           akPUvalue)
Example #11
0
def main(args):
    print "[Solve ID by exhaustive search]"
    N,M=int(args[1]),int(args[2])
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N,M)
    run(ChanceVars, DecVars, CPT, Strategy, Utility)
Example #12
0
def main(args):
    print "[Solve ID by exhaustive search]"
    N, M = int(args[1]), int(args[2])
    # sample network
    ChanceVars, DecVars, CPT, Strategy, Utility = sampleChainID(N, M)
    run(ChanceVars, DecVars, CPT, Strategy, Utility)