def cb_function(theta_flat):
     global k_max, curves
     cb_function.iteration += 1
     from progress_bar import update_progress
     update_progress(cb_function.iteration /
                     float(cb_function.max_iteration))
     return 0
示例#2
0
def train(p1, p2, NUMBER_OF_EPISODES):

    print('\n\nTraining ' + str(NUMBER_OF_EPISODES) + ' Episodes')

    for i in range(NUMBER_OF_EPISODES):
        if (i + 1) % 50 == 0:
            update_progress((i + 1) / NUMBER_OF_EPISODES)

        board = Board(p1, p2)
        board.determine_starting_player()

        while not board.isFinished():
            if (board.turns_taken + board.coin_flip) % 2 == 0:
                action = p1.chooseMove(board)
            else:
                action = p2.chooseMove(board)

            board.makeMove(action)
        # board.print()

        # update state function following episode
        if board.winner == 'p1':
            p1.updateValues('win')
            p2.updateValues('loss')

        elif board.winner == 'p2':
            p1.updateValues('loss')
            p2.updateValues('win')

        else:
            p1.updateValues('tie')
            p2.updateValues('tie')

    p1.saveStates()
    p2.saveStates()
示例#3
0
def csv_to_DataFrame():

    name_dic = {}
    header = ['Sex', 'Qty', 'Year']
    print('loading DataFrames...')
    dir = os.listdir("./Year_of_Birth_Data")

    for progress, file in enumerate(dir,1):

        update_progress(progress/len(dir))

        with open("./Year_of_Birth_Data/{}".format(file), 'r') as f_in:
            for line in f_in:
                try:
                    data = line.split(',')
                    key = data[0]
                    data[2] = int(data[2])
                    data[3] = int(data[3][:-1]) #carraige return at the end of each line
                    values = data[1:]
                    tempdf = pd.DataFrame([values], columns = header)
                except ValueError as e:
                    continue #offsetting for the header of every file, throws value error converting text to int

                if key not in name_dic.keys():
                    name_dic[key] = tempdf
                else:
                    name_dic[key] = pd.concat([name_dic[key], tempdf], ignore_index = True)

    print("Done loading DataFrames")

    return(name_dic)
示例#4
0
def first_row_helper(fileReader, texts, n_entry, current_row, total_row):
    first_row = fileReader.next()
    [text_helper(first_row, i) for i in texts]
    current_row += 1
    progress_bar.update_progress(current_row / total_row)
    value = add_row_to_sqlValue(first_row, n_entry, '', '(')
    return [current_row, value]
示例#5
0
def simulate_gameplay(p1, p2, NUMBER_OF_EPISODES):

    play_record = [0, 0, 0]
    print('\n\nSimulating ' + str(NUMBER_OF_EPISODES) + ' Episodes')

    for i in range(NUMBER_OF_EPISODES):
        if (i + 1) % 50 == 0:
            update_progress((i + 1) / NUMBER_OF_EPISODES)

        board = Board(p1, p2)
        board.determine_starting_player()

        while not board.isFinished():
            if (board.turns_taken + board.coin_flip) % 2 == 0:
                action = p1.chooseMove(board)
            else:
                action = p2.chooseMove(board)

            board.makeMove(action)

        if board.winner == 'p1':
            play_record[0] += 1
        elif board.winner == 'p2':
            play_record[1] += 1
        else:
            play_record[2] += 1

    agent_rating = (play_record[0] + 0.2 * play_record[2]) / NUMBER_OF_EPISODES
    formatted_agent_rating = f"{agent_rating:.4f}"
    print('Record: ' + str(play_record))
    print('Agent Rating: ' + formatted_agent_rating)
示例#6
0
def csv_to_DataFrame():
    header = ['Sex', 'Year', 'Name', 'Qty']
    print('loading DataFrames...')
    directory = os.listdir("./Names_By_State")
    states_dic = {}

    for progress, file in enumerate(directory, 1):
        update_progress(progress / len(directory))

        with open("./Names_By_State/{}".format(file), 'r') as f_in:
            for line in f_in:
                try:
                    data = line.split(',')
                    key = data[0]
                    data[2] = int(data[2])  #year
                    data[4] = int(data[4][:-1])  #qty
                    tempdf = pd.DataFrame([data[1:]], columns=header)

                except ValueError as e:
                    print("Error creating DF.... Investigate")

                if key not in states_dic.keys():
                    states_dic[key] = tempdf
                else:
                    states_dic[key] = pd.concat([states_dic[key], tempdf],
                                                ignore_index=True)

    print("Done loading DataFrames")

    return (states_dic)
def model_pereod(quant_el,
                 quant_it,
                 d=0.4,
                 a=0.2,
                 one_rand=0.3,
                 end_rand=0.5,
                 alpha=1,
                 start=1):
    elements = np.zeros((quant_el, quant_it))
    # print(elements)
    if start == 1:
        for i in range(quant_el):
            elements[i][0] = random.uniform(
                one_rand, end_rand)  # задаем случайные начальные условия
    elif start == 0:
        for i in range(
                int(quant_el / 2 - 10),
                int(quant_el / 2 +
                    10)):  # задаем начальные условия типа "прямоугольник"
            elements[i][0] = .5

    elif start == 2:
        f = open('mass.txt')
        matr = np.loadtxt(f)
        for i in range(100000, quant_el + 100000):
            print(i)
            elements[i - 100000][0] = matr[1][i]
    elif start == 3:
        f = open('mass_static.txt')
        matr = np.loadtxt(f)
        for i in range(100000, quant_el + 1000):
            elements[i - 100000][0] = matr[1][i]
    for i in range(quant_it - 1):
        progress_bar.update_progress(i / (quant_it - 1), 'вычисление системы')
        for j in range(quant_el):
            if j == 0:
                elements[j][i + 1] = function.next_iter(
                    a, d, elements[quant_el - 1][i], elements[j][i],
                    elements[j + 1][i], alpha)
            elif j == quant_el - 1:
                elements[j][i + 1] = function.next_iter(
                    a, d, elements[j - 1][i], elements[j][i], elements[0][i],
                    alpha)
            else:
                elements[j][i + 1] = function.next_iter(
                    a, d, elements[j - 1][i], elements[j][i],
                    elements[j + 1][i], alpha)
    print('1')
    return elements
def line_plot(start, alpha, d, beta, N, quant_it):
    elemets = realize(alpha, d, beta, N, quant_it, start)
    number = np.arange(1, N + 1, 1)
    ax = plt.figure(figsize=(8, 6))
    for i in range(0, quant_it - start):
        progress_bar.update_progress((i) / (quant_it - start),
                                     'Построение графика')
        for j in range(N):
            plt.scatter(elemets[j][i], 0, s=1, c=j, vmin=1, vmax=N)
    maxim = elemets.max()
    minim = elemets.min()

    cb = plt.colorbar()
    #plt.ylabel([-.001,.001])
    return maxim - minim
示例#9
0
def line_plot(start, alpha, d, beta, N, quant_it):
    elemets = realize(alpha, d, beta, N, quant_it, start)
    number = np.arange(1, N + 1, 1)
    ax = plt.figure(figsize=(8, 6))
    for i in range(0, quant_it - start):
        progress_bar.update_progress((i) / (quant_it - start),
                                     'Построение графика')
        for j in range(N):
            plt.scatter(elemets[j][i], 0, s=1, c=j, vmin=1, vmax=N)
    maxim = elemets.max()
    minim = elemets.min()

    cb = plt.colorbar()
    #plt.ylabel([-.001,.001])

    plt.plot([maxim, maxim], [-.00001, .00001], color='black')
    plt.plot([minim, minim], [-.00001, .00001],
             color='black',
             label='длинна интревала: ' + str(maxim - minim))
    plt.legend()
    plt.yticks([])
    cb.set_label('Номер элемента')
    plt.xlabel('Значение на элементе')
示例#10
0
def push_helper(fileReader, texts, n_entry, current_row, total_row):

    #for row in fileReader:
    value = ''
    try:
        re = first_row_helper(fileReader, texts, n_entry, current_row,
                              total_row)
        current_row = re[0]
        value = re[1]
        #print 'push helper first value: '+value
        for i in xrange(N_VALUE):
            row = fileReader.next()
            current_row += 1
            progress_bar.update_progress(current_row / total_row)
            [text_helper(row, i) for i in texts]
            #             for i in texts:
            #                 row[i]='\''+row[i]+'\''
            value = add_row_to_sqlValue(row, n_entry, value)
        #print 'push helper 2 value: '+value
        return [current_row, value]
    except StopIteration:
        current_row = -1
        return [current_row, value]
示例#11
0
def upload(state_dic):

    total_states = len(state_dic.keys())

    connection, metadata, engine = connect()

    db_tables = set(metadata.tables.keys())

    print("Loading DataFrames to Database Tables")

    for progress, k in enumerate(state_dic.keys(), 1):
        if k in db_tables:
            update_progress(progress / total_states)
            continue
        try:
            state_dic[k].to_sql(k, con=engine, if_exists='replace')
        except exc.SQLAlchemyError as e:
            print("****Couldn't insert {0} table. Investigate!****".format(k))

        update_progress(progress / total_states)
        state_dic[k] = ''

    print("Done uploading state DataFrames to the Database")
示例#12
0
    minim = elemets.min()

    cb = plt.colorbar()
    #plt.ylabel([-.001,.001])

    plt.plot([maxim, maxim], [-.00001, .00001], color='black')
    plt.plot([minim, minim], [-.00001, .00001],
             color='black',
             label='длинна интревала: ' + str(maxim - minim))
    plt.legend()
    plt.yticks([])
    cb.set_label('Номер элемента')
    plt.xlabel('Значение на элементе')


N = 100
alpha = 0.2
d = .2
beta = 0
start, quant_it = 60000, 62000
var_d = np.arange(0.2, .484, 0.005)
for i in range(len(var_d)):
    progress_bar.update_progress((i) / (len(var_d)), 'PROGRESS')
    d = var_d[i]
    # var = par(alpha, d, beta, N, quant_it)
    line_plot(start, alpha, d, beta, N, quant_it)
    plt.title('d = ' + str(d))
    #plt.grid(True)
    plt.savefig('/home/mechislab/line/img' + str(i + 1))
    plt.close()
示例#13
0
def test():
    for i in range(11):
        update_progress(i, 10)
        time.sleep(1)
 def cb_function( theta_flat ):
     global k_max,curves
     cb_function.iteration += 1
     from progress_bar import update_progress
     update_progress( cb_function.iteration / float(cb_function.max_iteration) )
     return 0
示例#15
0
# for m in range(5, 44):
m = 0
while d < (f[44 + 1] + f[44]) / 2:
    m += 1
    d += 0.00005
all_m = m
m = 0
d = start
while d < (f[44 + 1] + f[44]) / 2:
    m += 1
    if d == start:
        t1 = time.time()
    if d == start + 1 * 0.00005:
        t2 = time.time()
        print('всего потребуется минут', (t2 - t1) / 60 * all_m)
    progress_bar.update_progress((d - start) / (close - start), 'ПРОГРЕСС')
    # d = (f[m + 1] + f[m]) / 2
    matrix = segment_function.segment(
        quant_el,
        quant_it,
        quant_start_one,
        quant_start_end,
        value_start,
        a=a,
        d=d,
        alpha=alpha,
        beta=beta,
        nonlinear=nonlinear
    )  # вызываем функцию, которая возвращает матрицу с реализацией

    # f = open ('spatial_segment_info.txt', 'w')
示例#16
0
        
        #fil.write(str(matrix[40]))
        #fil.close()
        #fil1 = open('matrix', 'w')
        #fil1.write(str(matrix[55]))
        #fil1.close()
        # системыc

        maxim = matrix.max()
        minim = matrix.min()

        plt.figure(figsize=(8, 6))
        ax = plt.subplot(2, 1, 1)
        for t in range(quant_el):
            # color = [str (item / 255.) for item in matrix[i]]
            progress_bar.update_progress(t / quant_el, 'построение графика')
            plt.scatter(np.arange(quant_it), t * np.ones(quant_it), cmap=cm.jet, s=1, c=matrix[t], vmin=minim,
                        vmax=maxim)  # строим график, где цветом отображаем амплитуду

        cb = plt.colorbar()

        cb.set_label('значение элемента')
        # cb.set_ticklabels('one')

        plt.xlabel('n - дискретное время')
        plt.xlim(0, quant_it - 15)
        plt.ylabel('$U_j$ - номер элемента')
        # plt.title('отрезок: ' + str(quant_el) + ' элементов'  + ' начальные условия задаются: \n с ' + str(
        # quant_start_one) + ' по ' + str(quant_start_end) + ' элементы  со значением: ' + str(value_start) + '\n
        # параметры: ' + 'd = ' + str(d) + r'$, \alpha = $' + str(alpha) + ', a = ' + str(a))
        if nonlinear == 'cube':
示例#17
0
def upload(name_dic):

    year_list = [i for i in range(1880,2018)]

    total_keys = len(name_dic.keys())
    total_years = len(year_list)

    connection, metadata, engine = connect()

    db_tables = set(metadata.tables.keys())

    if "Names" in db_tables:
        print("Names Table already exists")
        name_table = Table('Names', metadata)

    else:
        name_table =  Table('Names', metadata,
            Column('id', Integer, primary_key=True),
            Column('name', String(30)))

    if "Years" in db_tables:
        print("Years Table already exists")
        year_table = Table('Years', metadata)

    else:
        year_table =  Table('Years', metadata,
            Column('id', Integer, primary_key=True),
            Column('year', Integer))

    try:
        metadata.create_all(engine)

    except exc.SQLAlchemyError as e:
        print("Tables already existed")

    print("Loading DataFrames to Database Tables")

    for progress,k in enumerate(name_dic.keys(), 1):

        if k in db_tables:
            update_progress(progress/total_keys)
            continue

        try:
            name_dic[k].to_sql(k, con=engine, if_exists='replace')
        except exc.SQLAlchemyError as e:
            print("****Couldn't insert {0} table. Investigate!****".format(k))

        ins = name_table.insert().values(name=k)
        connection.execute(ins)

        update_progress(progress/total_keys)
        name_dic[k] = ''

    print("Loading Years to Year table")

    for progress, y in enumerate(year_list, 1):

        ins = year_table.insert().values(year=y)
        connection.execute(ins)
        update_progress(progress/total_years)

    connection.close()

    print("Done Loading Database")