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
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()
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)
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]
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)
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
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('Значение на элементе')
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]
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")
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()
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
# 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')
#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':
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")