def process_files(yymm):
#     Qsa_value, _ = load_picle_file('%s/q-value-fare-dur-%s.pkl' % (for_learning_dir, yymm))
    Qsa_value, _ = load_picle_file('/Users/JerryHan88/taxi/for_learning/ALPHA-0.70-GAMMA-0.30/ALPHA-0.70-GAMMA-0.30-q-value-fare-dur-0904.pkl')
    decision_inAP, decision_outAP = [], []
    for s1 in DAY_OF_WEEK:
        for s2 in TIME_SLOTS:
            for s3 in [IN_AP, OUT_AP]:
#                 print (s1, s2, s3), Qsa_value[(s1, s2, s3, IN_AP)], Qsa_value[(s1, s2, s3, OUT_AP)]
                max_a = IN_AP if Qsa_value[(s1, s2, s3, IN_AP)] >= Qsa_value[(s1, s2, s3, OUT_AP)] else OUT_AP
                c = 0 if max_a == IN_AP else 1
                if s3 == IN_AP:
                    decision_inAP.append([s1, s2, c])
                else:
                    decision_outAP.append([s1, s2, c])
    for s1, s2, a in decision_inAP:
        print 'inAP', s1, s2, a
    for s1, s2, a in decision_outAP:
        print 'outAP', s1, s2, a  
    _data = [
             [(s2, id_dow[s1], a) for s1, s2, a in decision_inAP],
             [(s2, id_dow[s1], a) for s1, s2, a in decision_outAP]
             ]
#     titles = ['Decision in the airport', 'Decision outside of the airport']
#     grid_charts(('24 Time slots', []), ('', DAY_OF_WEEK), ['In Airport', 'Out Airport'], titles, _data, '%s/q-value-fare-dur-%s.pdf' % (for_learning_dir, yymm))
    one_grid_chart(('Time slot', []), ('', DAY_OF_WEEK), ['In Airport', 'Out Airport'], '', [(s2, id_dow[s1], a) for s1, s2, a in decision_inAP], 'decision_inAP_q_e')
示例#2
0
def process_files(yymm):
    #     Qsa_value, _ = load_picle_file('%s/q-value-fare-dur-%s.pkl' % (for_learning_dir, yymm))
    Qsa_value, _ = load_picle_file(
        '/Users/JerryHan88/taxi/for_learning/ALPHA-0.70-GAMMA-0.30/ALPHA-0.70-GAMMA-0.30-q-value-fare-dur-0904.pkl'
    )
    decision_inAP, decision_outAP = [], []
    for s1 in DAY_OF_WEEK:
        for s2 in TIME_SLOTS:
            for s3 in [IN_AP, OUT_AP]:
                #                 print (s1, s2, s3), Qsa_value[(s1, s2, s3, IN_AP)], Qsa_value[(s1, s2, s3, OUT_AP)]
                max_a = IN_AP if Qsa_value[(s1, s2, s3, IN_AP)] >= Qsa_value[(
                    s1, s2, s3, OUT_AP)] else OUT_AP
                c = 0 if max_a == IN_AP else 1
                if s3 == IN_AP:
                    decision_inAP.append([s1, s2, c])
                else:
                    decision_outAP.append([s1, s2, c])
    for s1, s2, a in decision_inAP:
        print 'inAP', s1, s2, a
    for s1, s2, a in decision_outAP:
        print 'outAP', s1, s2, a
    _data = [[(s2, id_dow[s1], a) for s1, s2, a in decision_inAP],
             [(s2, id_dow[s1], a) for s1, s2, a in decision_outAP]]
    #     titles = ['Decision in the airport', 'Decision outside of the airport']
    #     grid_charts(('24 Time slots', []), ('', DAY_OF_WEEK), ['In Airport', 'Out Airport'], titles, _data, '%s/q-value-fare-dur-%s.pdf' % (for_learning_dir, yymm))
    one_grid_chart(('Time slot', []), ('', DAY_OF_WEEK),
                   ['In Airport', 'Out Airport'], '',
                   [(s2, id_dow[s1], a)
                    for s1, s2, a in decision_inAP], 'decision_inAP_q_e')
示例#3
0
def run():
    op_policies_q_learning = load_picle_file(
        '/Users/JerryHan88/git/workspace_SMU/taxi_py/learning/q_learning_policy.pkl'
    )
    op_policies_ext_drivers = load_picle_file(
        '/Users/JerryHan88/git/workspace_SMU/taxi_py/learning/extreme_drivers_policy.pkl'
    )

    decision_inAP_Q, decision_outAP_Q = [], []
    decision_inAP_D, decision_outAP_D = [], []
    for s1 in DAY_OF_WEEK:
        for s2 in TIME_SLOTS:
            for s3 in [IN_AP, OUT_AP]:
                p_IN_AP, p_OUT_AP = op_policies_q_learning[(s1, s2, s3)]
                max_a_Q = IN_AP if eval(p_IN_AP) >= eval(p_OUT_AP) else OUT_AP
                c = 0 if max_a_Q == IN_AP else 1
                if s3 == IN_AP:
                    decision_inAP_Q.append([s1, s2, c])
                else:
                    decision_outAP_Q.append([s1, s2, c])
                #
                try:
                    p_IN_AP, p_OUT_AP = op_policies_ext_drivers[(s1, s2, s3)]
                    max_a_D = IN_AP if eval(p_IN_AP) >= eval(
                        p_OUT_AP) else OUT_AP
                    c = 0 if max_a_D == IN_AP else 1
                except KeyError:
                    c = 2
                    print s1, s2, s3
                if s3 == IN_AP:
                    decision_inAP_D.append([s1, s2, c])
                else:
                    decision_outAP_D.append([s1, s2, c])
    inAP_Q = [(s2, id_dow[s1], a) for s1, s2, a in decision_inAP_Q]
    outAP_Q = [(s2, id_dow[s1], a) for s1, s2, a in decision_outAP_Q]
    inAP_D = [(s2, id_dow[s1], a) for s1, s2, a in decision_inAP_D]
    outAP_D = [(s2, id_dow[s1], a) for s1, s2, a in decision_outAP_D]

    d = [inAP_Q, outAP_Q, inAP_D, outAP_D]

    n = [
        'decision_inAP_Q', 'decision_outAP_Q', 'decision_inAP_D',
        'decision_outAP_D'
    ]
    for i in xrange(4):
        one_grid_chart(('Time slot', []), ('', DAY_OF_WEEK),
                       ['Go to AP', 'Go to OA'], '', d[i], n[i])
def run():
    op_policies_q_learning = load_picle_file('/Users/JerryHan88/git/workspace_SMU/taxi_py/learning/q_learning_policy.pkl') 
    op_policies_ext_drivers = load_picle_file('/Users/JerryHan88/git/workspace_SMU/taxi_py/learning/extreme_drivers_policy.pkl')
    
    decision_inAP_Q, decision_outAP_Q = [], []
    decision_inAP_D, decision_outAP_D = [], []
    for s1 in DAY_OF_WEEK:
        for s2 in TIME_SLOTS:
            for s3 in [IN_AP, OUT_AP]:
                p_IN_AP, p_OUT_AP = op_policies_q_learning[(s1, s2, s3)]
                max_a_Q = IN_AP if eval(p_IN_AP) >= eval(p_OUT_AP) else OUT_AP
                c = 0 if max_a_Q == IN_AP else 1
                if s3 == IN_AP:
                    decision_inAP_Q.append([s1, s2, c])
                else:
                    decision_outAP_Q.append([s1, s2, c])
                #
                try:
                    p_IN_AP, p_OUT_AP = op_policies_ext_drivers[(s1, s2, s3)]
                    max_a_D = IN_AP if eval(p_IN_AP) >= eval(p_OUT_AP) else OUT_AP
                    c = 0 if max_a_D == IN_AP else 1
                except KeyError:
                    c = 2
                    print s1, s2, s3
                if s3 == IN_AP:
                    decision_inAP_D.append([s1, s2, c])
                else:
                    decision_outAP_D.append([s1, s2, c])
    inAP_Q = [(s2, id_dow[s1], a) for s1, s2, a in decision_inAP_Q]
    outAP_Q = [(s2, id_dow[s1], a) for s1, s2, a in decision_outAP_Q]
    inAP_D = [(s2, id_dow[s1], a) for s1, s2, a in decision_inAP_D]
    outAP_D = [(s2, id_dow[s1], a) for s1, s2, a in decision_outAP_D]
    
    d = [inAP_Q, outAP_Q, inAP_D, 
         outAP_D]
    
    n = ['decision_inAP_Q', 'decision_outAP_Q', 'decision_inAP_D', 
         'decision_outAP_D']
    for i in xrange(4):
        one_grid_chart(('Time slot', []), ('', DAY_OF_WEEK), ['Go to AP', 'Go to OA'], '', d[i], n[i])