From 8ce0e675dd107b64e6b830253c8a4af60c552437 Mon Sep 17 00:00:00 2001 From: Furkan Arslan Date: Wed, 15 Nov 2017 15:59:33 +0300 Subject: [PATCH] checkers with dynamic programming --- AI.py | 417 +++++++++++++++++++----------------------- Board.py | 207 ++++++++++++++------- Player.py | 36 ++++ Value_Iteration_AI.py | 142 ++++++++++++++ homework-1 report.pdf | Bin 0 -> 117463 bytes homework-1.pdf | Bin 0 -> 59469 bytes requirements.txt | 6 + 7 files changed, 517 insertions(+), 291 deletions(-) create mode 100644 Player.py create mode 100644 Value_Iteration_AI.py create mode 100644 homework-1 report.pdf create mode 100644 homework-1.pdf create mode 100644 requirements.txt diff --git a/AI.py b/AI.py index ede434d..c49b34a 100644 --- a/AI.py +++ b/AI.py @@ -8,42 +8,15 @@ import json from ast import literal_eval from Board import Board +from Player import Player +from Value_Iteration_AI import Value_Iteration_AI import matplotlib.pyplot as plt -class Player: - """ - A class to be inherited by any class representing a checkers player. - This is used so that other functions can be written for more general use, - without worry of crashing (e.g. play_n_games). - - NOTES: - 1) Create set playerID method - """ - - def set_board(self, the_board): - """ - Sets the Board object which is known by the AI. - """ - self.board = the_board - - def game_completed(self): - """ - Should be overridden if AI implementing this class should be notified - of when a game ends, before the board is wiped. - """ - pass - - def get_next_move(self): - """ - Gets the desired next move from the AI. - """ - pass - def reward_function(state_info1, state_info2): """ Reward for transitioning from state with state_info1 to state with state_info2. - + NOTE: 1) do something better with where/how this is implemented 2) should give some kind of negative for tieing @@ -52,8 +25,8 @@ def reward_function(state_info1, state_info2): return 12 if state_info2[0] == 0 and state_info2[2] == 0: return -12 - return state_info2[0]-state_info1[0] + 2*(state_info2[2]-state_info1[2])-(state_info2[1]-state_info1[1])-2*(state_info2[3]-state_info1[3]) - + return state_info2[0] - state_info1[0] + 2 * (state_info2[2] - state_info1[2]) - ( + state_info2[1] - state_info1[1]) - 2 * (state_info2[3] - state_info1[3]) class Q_Learning_AI(Player): """ @@ -65,18 +38,18 @@ class Q_Learning_AI(Player): 2) handle the rewards function which is coded as if the function were already defined """ - - def __init__(self, the_player_id, the_learning_rate, the_discount_factor, info_location=None, the_random_move_probability=0, the_board=None): + def __init__(self, the_player_id, the_learning_rate, the_discount_factor, info_location=None, + the_random_move_probability=0, the_board=None): """ Initialize the instance variables to be stored by the AI. """ self.random_move_probability = the_random_move_probability - self.learning_rate = the_learning_rate + self.learning_rate = the_learning_rate self.discount_factor = the_discount_factor self.player_id = the_player_id self.board = the_board self.pre_last_move_state = None - self.post_last_move_state = None + self.post_last_move_state = None if not info_location is None: self.load_transition_information(info_location) else: @@ -88,39 +61,39 @@ def set_random_move_probability(self, probability): """ self.random_move_probability = probability - def set_learning_rate(self, the_learning_rate): """ Sets the learning rate for the AI. """ self.learning_rate = the_learning_rate - def get_states_from_boards_spots(self, boards_spots): """ Gets an array of tuples from the given set of board spots, each tuple representing the characteristics which define the - state the board is in. - + state the board is in. + Format of returned data: [(own_pieces, opp_pieces, own_kings, opp_kings, own_edges, own_vert_center_mass, opp_vert_center_mass), ...] """ - piece_counters = [[0,0,0,0,0,0,0] for j in range(len(boards_spots))] + piece_counters = [[0, 0, 0, 0, 0, 0, 0] for j in range(len(boards_spots))] + for k in range(len(boards_spots)): for j in range(len(boards_spots[k])): for i in range(len(boards_spots[k][j])): if boards_spots[k][j][i] != 0: - piece_counters[k][boards_spots[k][j][i]-1] = piece_counters[k][boards_spots[k][j][i]-1] + 1 - if (self.player_id and (boards_spots[k][j][i] == 1 or boards_spots[k][j][i] == 3)) or (not self.player_id and (boards_spots[k][j][i] == 2 or boards_spots[k][j][i] == 4)): - if i==0 and j%2==0: + piece_counters[k][boards_spots[k][j][i] - 1] = piece_counters[k][boards_spots[k][j][i] - 1] + 1 + if (self.player_id and (boards_spots[k][j][i] == 1 or boards_spots[k][j][i] == 3)) or ( + not self.player_id and (boards_spots[k][j][i] == 2 or boards_spots[k][j][i] == 4)): + if i == 0 and j % 2 == 0: piece_counters[k][4] = piece_counters[k][4] + 1 - elif i==3 and j%2==1: + elif i == 3 and j % 2 == 1: piece_counters[k][4] = piece_counters[k][4] + 1 - + piece_counters[k][5] = piece_counters[k][5] + j - else: + else: piece_counters[k][6] = piece_counters[k][6] + j - + if piece_counters[k][0] + piece_counters[k][2] != 0: piece_counters[k][5] = int(piece_counters[k][5] / (piece_counters[k][0] + piece_counters[k][2])) else: @@ -131,50 +104,46 @@ def get_states_from_boards_spots(self, boards_spots): piece_counters[k][6] = 0 return [tuple(counter) for counter in piece_counters] - - def get_desired_transition_between_states(self, possible_state_array, initial_transition_value=10):#%%%%%%%%%%%%%%%%%% FOR (1) + def get_desired_transition_between_states(self, possible_state_array, + initial_transition_value=10): # %%%%%%%%%%%%%%%%%% FOR (1) """ Gets the desired transition to taken for the current board configuration. If any possible transition does not exist, it will create it. """ cur_state = tuple(self.get_states_from_boards_spots([self.board.spots])[0]) done_transitions = {} - for state in possible_state_array:#%%%%%%%%%%%%%%%%%%%%%% FOR (1) + for state in possible_state_array: # %%%%%%%%%%%%%%%%%%%%%% FOR (1) if done_transitions.get((cur_state, tuple(state))) is None: if self.transitions.get((cur_state, tuple(state))) is None: - self.transitions.update({(cur_state, tuple(state)):initial_transition_value}) - done_transitions.update({(cur_state, tuple(state)):self.transitions.get((cur_state, tuple(state)))}) - - + self.transitions.update({(cur_state, tuple(state)): initial_transition_value}) + done_transitions.update({(cur_state, tuple(state)): self.transitions.get((cur_state, tuple(state)))}) + if random != 0 and random.random() < self.random_move_probability: try: - return list(done_transitions.keys())[random.randint(0, len(done_transitions)-1)] - except: + return list(done_transitions.keys())[random.randint(0, len(done_transitions) - 1)] + except: return [] - + try: - reverse_dict = {j:i for i,j in done_transitions.items()} + reverse_dict = {j: i for i, j in done_transitions.items()} return reverse_dict.get(max(reverse_dict)) except: - return [] - - + return [] + def game_completed(self): """ Update self.transitions with a completed game before the board is cleared. """ cur_state = self.get_states_from_boards_spots([self.board.spots])[0] - transition = (self.pre_last_move_state ,self.post_last_move_state) + transition = (self.pre_last_move_state, self.post_last_move_state) - self.transitions[transition] = self.transitions[transition] + self.learning_rate * reward_function(transition[0],cur_state) + self.transitions[transition] = self.transitions[transition] + self.learning_rate * reward_function(transition[0], cur_state) self.pre_last_move_state = None self.post_last_move_state = None - - def get_transitions_information(self): """ Get an array of of information about the dictionary self.transitions . @@ -188,48 +157,45 @@ def get_transitions_information(self): max_value = float("-inf") min_value = float("inf") total_value = 0 - for k,v in self.transitions.items(): + for k, v in self.transitions.items(): if start_of_transitions.get(k[0]) is None: - start_of_transitions.update({k[0]:0}) - #if k[0] not in start_of_transitions: - #start_of_transitions.append(k[0]) + start_of_transitions.update({k[0]: 0}) + # if k[0] not in start_of_transitions: + # start_of_transitions.append(k[0]) if v > max_value: max_value = v if v < min_value: min_value = v total_value = total_value + v - - return [len(self.transitions), len(start_of_transitions), float(total_value/len(self.transitions)), max_value, min_value] - - + + return [len(self.transitions), len(start_of_transitions), float(total_value / len(self.transitions)), max_value, + min_value] + def print_transition_information(self, info): """ Prints the output of get_transitions_information in a easy to understand format. """ - print("Total number of transitions: ".ljust(35), info[0]) + print("Total number of transitions: ".ljust(35), info[0]) print("Total number of visited states: ".ljust(35), info[1]) print("Average value for transition: ".ljust(35), info[2]) print("Maximum value for transition: ".ljust(35), info[3]) print("Minimum value for transition: ".ljust(35), info[4]) - - + def save_transition_information(self, file_name="data.json"): """ Saves the current transitions information to a specified json file. """ with open(file_name, 'w') as fp: - json.dump({str(k): v for k,v in self.transitions.items()}, fp) - - + json.dump({str(k): v for k, v in self.transitions.items()}, fp) + def load_transition_information(self, file_name): """ Loads transitions information from a desired json file. """ with open(file_name, 'r') as fp: - self.transitions = {literal_eval(k): v for k,v in json.load(fp).items()} - - + self.transitions = {literal_eval(k): v for k, v in json.load(fp).items()} + def get_optimal_potential_value(self, depth): """ Look ahead a given number of moves and return the maximal value associated @@ -251,17 +217,15 @@ def get_optimal_potential_value(self, depth): """ answer = float("-inf") cur_state = self.get_states_from_boards_spots([self.board.spots])[0] - for k,v in self.transitions.items(): + for k, v in self.transitions.items(): if v > answer and k[0] == cur_state: answer = v - + if answer == float("-inf"): return None return answer - - - def get_next_move(self):#, new_board): + def get_next_move(self): # , new_board): """ NOTES: If the variable names are confusing, think about them being named when you just call the method. @@ -269,72 +233,50 @@ def get_next_move(self):#, new_board): PRECONDITIONS: 1) The board exists and is legal """ - if self.pre_last_move_state is not None:#%%%%%%%%%%%%%%%%%%%%%%% FOR (1) + if self.pre_last_move_state is not None: # %%%%%%%%%%%%%%%%%%%%%%% FOR (1) cur_state = self.get_states_from_boards_spots([self.board.spots])[0] - - transition = (self.pre_last_move_state ,self.post_last_move_state) - try:# self.transitions.get(transition) is not None:#%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOR (1) + + transition = (self.pre_last_move_state, self.post_last_move_state) + try: # self.transitions.get(transition) is not None:#%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOR (1) max_future_state = self.get_optimal_potential_value(1) - self.transitions[transition] = self.transitions[transition] + self.learning_rate * (reward_function(transition[0],cur_state)+ self.discount_factor* max_future_state - self.transitions[transition]) - except:#%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOR (1) - self.transitions[transition] = self.transitions[transition] + self.learning_rate * (reward_function(transition[0],cur_state)) - - - self.pre_last_move_state = self.get_states_from_boards_spots([self.board.spots])[0]#%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOR (1) - + self.transitions[transition] = self.transitions[transition] + self.learning_rate * (reward_function(transition[0], cur_state) + self.discount_factor * max_future_state - self.transitions[transition]) + except: # %%%%%%%%%%%%%%%%%%%%%%%%%%%% FOR (1) + self.transitions[transition] = self.transitions[transition] + self.learning_rate * (reward_function(transition[0], cur_state)) + + self.pre_last_move_state = self.get_states_from_boards_spots([self.board.spots])[0] # %%%%%%%%%%%% FOR (1) + possible_next_moves = self.board.get_possible_next_moves() possible_next_states = self.get_states_from_boards_spots(self.board.get_potential_spots_from_moves(possible_next_moves)) - - self.post_last_move_state = self.get_desired_transition_between_states(possible_next_states)[1] - + + self.post_last_move_state = self.get_desired_transition_between_states(possible_next_states)[1] + considered_moves = [] for j in range(len(possible_next_states)): if tuple(possible_next_states[j]) == self.post_last_move_state: considered_moves.append(possible_next_moves[j]) - - - #I believe with the updated board.is_game_over() I don't need to use this try statement -# try: -# return considered_moves[random.randint(0,len(considered_moves)-1)] -# except ValueError: -# return [] - - return considered_moves[random.randint(0,len(considered_moves)-1)] -def get_number_of_pieces_and_kings(spots, player_id=None): - """ - Gets the number of pieces and the number of kings that each player has on the current - board configuration represented in the given spots. The format of the function with defaults is: - [P1_pieces, P2_pieces, P1_kings, P2_kings] - and if given a player_id: - [player_pieces, player_kings] - """ - piece_counter = [0,0,0,0] - for row in spots: - for element in row: - if element != 0: - piece_counter[element-1] = piece_counter[element-1] + 1 - - if player_id == True: - return [piece_counter[0], piece_counter[2]] - elif player_id == False: - return [piece_counter[1], piece_counter[3]] - else: - return piece_counter - + + # I believe with the updated board.is_game_over() I don't need to use this try statement + # try: + # return considered_moves[random.randint(0,len(considered_moves)-1)] + # except ValueError: + # return [] + + return considered_moves[random.randint(0, len(considered_moves) - 1)] + class Alpha_beta(Player): """ - A class representing a checkers playing AI using Alpha-Beta pruning. - + A class representing a checkers playing AI using Alpha-Beta pruning. + TO DO: - 1) Be able to take in any reward function (for when not win/loss) + 1) Be able to take in any reward function (for when not win/loss) so that you can make a more robust set of training AI """ - + def __init__(self, the_player_id, the_depth, the_board=None): """ - Initialize the instance variables to be stored by the AI. + Initialize the instance variables to be stored by the AI. """ self.board = the_board self.depth = the_depth @@ -342,17 +284,17 @@ def __init__(self, the_player_id, the_depth, the_board=None): def alpha_beta(self, board, depth, alpha, beta, maximizing_player): """ - A method implementing alpha-beta pruning to decide what move to make given - the current board configuration. + A method implementing alpha-beta pruning to decide what move to make given + the current board configuration. """ if board.is_game_over(): - if get_number_of_pieces_and_kings(board.spots, board.player_turn) == [0,0]: + if get_number_of_pieces_and_kings(board.spots, board.player_turn) == [0, 0]: if maximizing_player: - #Using integers instead of float("inf") so it's less than float("inf") not equal to + # Using integers instead of float("inf") so it's less than float("inf") not equal to return -10000000, None else: return 10000000, None - elif get_number_of_pieces_and_kings(board.spots, not board.player_turn) == [0,0]: + elif get_number_of_pieces_and_kings(board.spots, not board.player_turn) == [0, 0]: if maximizing_player: return 1000000, None else: @@ -363,8 +305,8 @@ def alpha_beta(self, board, depth, alpha, beta, maximizing_player): if depth == 0: players_info = get_number_of_pieces_and_kings(board.spots) if board.player_turn != maximizing_player: - return players_info[1] + 2 * players_info[3] - (players_info[0] + 2 * players_info[2]), None - return players_info[0] + 2 * players_info[2] - (players_info[1] + 2 * players_info[3]), None + return players_info[1] + 2 * players_info[3] - (players_info[0] + 2 * players_info[2]), None + return players_info[0] + 2 * players_info[2] - (players_info[1] + 2 * players_info[3]), None possible_moves = board.get_possible_next_moves() potential_spots = board.get_potential_spots_from_moves(possible_moves) @@ -374,11 +316,11 @@ def alpha_beta(self, board, depth, alpha, beta, maximizing_player): for j in range(len(potential_spots)): cur_board = Board(potential_spots[j], not board.player_turn) alpha_beta_results = self.alpha_beta(cur_board, depth - 1, alpha, beta, False) - if v < alpha_beta_results[0]: + if v < alpha_beta_results[0]: v = alpha_beta_results[0] alpha = max(alpha, v) desired_move_index = j - if beta <= alpha: + if beta <= alpha: break if desired_move_index is None: return v, None @@ -388,7 +330,7 @@ def alpha_beta(self, board, depth, alpha, beta, maximizing_player): for j in range(len(potential_spots)): cur_board = Board(potential_spots[j], not board.player_turn) alpha_beta_results = self.alpha_beta(cur_board, depth - 1, alpha, beta, True) - if v > alpha_beta_results[0]: + if v > alpha_beta_results[0]: v = alpha_beta_results[0] desired_move_index = j beta = min(beta, v) @@ -397,10 +339,10 @@ def alpha_beta(self, board, depth, alpha, beta, maximizing_player): if desired_move_index is None: return v, None return v, possible_moves[desired_move_index] - + def get_next_move(self): return self.alpha_beta(self.board, self.depth, float('-inf'), float('inf'), self.player_id)[1] - + def play_n_games(player1, player2, num_games, move_limit): """ @@ -417,20 +359,25 @@ def play_n_games(player1, player2, num_games, move_limit): game_board = Board() player1.set_board(game_board) player2.set_board(game_board) - + players_move = player1 - outcome_counter = [[-1,-1,-1,-1,-1,-1] for j in range(num_games)] + outcome_counter = [[-1, -1, -1, -1, -1, -1] for j in range(num_games)] for j in range(num_games): - #print(j) + # print(j) move_counter = 0 while not game_board.is_game_over() and move_counter < move_limit: game_board.make_move(players_move.get_next_move()) - + move_counter = move_counter + 1 if players_move is player1: + value = players_move.value_iteration() + print(value) + # print(players_move.calculate_policy(value)) players_move = player2 else: players_move = player1 + + print(game_board.print_board()) else: piece_counter = get_number_of_pieces_and_kings(game_board.spots) if piece_counter[0] != 0 or piece_counter[2] != 0: @@ -439,28 +386,28 @@ def play_n_games(player1, player2, num_games, move_limit): outcome_counter[j][0] = 3 else: outcome_counter[j][0] = 2 -# if (j+1)%100==0: -# print("Tie game for game #" + str(j + 1) + " in " + str(move_counter) + " turns!") + # if (j+1)%100==0: + # print("Tie game for game #" + str(j + 1) + " in " + str(move_counter) + " turns!") else: outcome_counter[j][0] = 0 -# if (j+1)%100==0: -# print("Player 1 won game #" + str(j + 1) + " in " + str(move_counter) + " turns!") + # if (j+1)%100==0: + # print("Player 1 won game #" + str(j + 1) + " in " + str(move_counter) + " turns!") else: outcome_counter[j][0] = 1 -# if (j+1)%100==0: -# print("Player 2 won game #" + str(j + 1) + " in " + str(move_counter) + " turns!") - + # if (j+1)%100==0: + # print("Player 2 won game #" + str(j + 1) + " in " + str(move_counter) + " turns!") + outcome_counter[j][1] = move_counter outcome_counter[j][2] = piece_counter[0] outcome_counter[j][3] = piece_counter[1] outcome_counter[j][4] = piece_counter[2] outcome_counter[j][5] = piece_counter[3] - + player1.game_completed() player2.game_completed() - #game_board.print_board() + # game_board.print_board() game_board.reset_board() - + return outcome_counter @@ -472,7 +419,7 @@ def pretty_outcome_display(outcomes): 1) Add functionality for pieces in each game 2) Add ability to take other strings for AI info and display it """ - game_wins = [0,0,0,0] + game_wins = [0, 0, 0, 0] total_moves = 0 max_moves_made = float("-inf") min_moves_made = float("inf") @@ -482,58 +429,78 @@ def pretty_outcome_display(outcomes): min_moves_made = outcome[1] if outcome[1] > max_moves_made: max_moves_made = outcome[1] - + game_wins[outcome[0]] = game_wins[outcome[0]] + 1 - + print("Games Played: ".ljust(35), len(outcomes)) print("Player 1 wins: ".ljust(35), game_wins[0]) print("Player 2 wins: ".ljust(35), game_wins[1]) print("Games exceeded move limit: ".ljust(35), game_wins[3]) print("Games tied: ".ljust(35), game_wins[2]) - print("Total moves made: ".ljust(35), total_moves) - print("Average moves made: ".ljust(35), total_moves/len(outcomes)) + print("Total moves made: ".ljust(35), total_moves) + print("Average moves made: ".ljust(35), total_moves / len(outcomes)) print("Max moves made: ".ljust(35), max_moves_made) print("Min moves made: ".ljust(35), min_moves_made) - + def plot_end_game_information(outcome, interval, title="End of Game Results"): """ """ - player1_wins = [0 for _ in range(int(len(outcome)/interval))] - player2_wins = [0 for _ in range(int(len(outcome)/interval))] - ties = [0 for _ in range(int(len(outcome)/interval))] - move_limit = [0 for _ in range(int(len(outcome)/interval))] - - for j in range(int(len(outcome)/interval)): + player1_wins = [0 for _ in range(int(len(outcome) / interval))] + player2_wins = [0 for _ in range(int(len(outcome) / interval))] + ties = [0 for _ in range(int(len(outcome) / interval))] + move_limit = [0 for _ in range(int(len(outcome) / interval))] + + for j in range(int(len(outcome) / interval)): for i in range(interval): - if outcome[j*interval + i][0] == 0: + if outcome[j * interval + i][0] == 0: player1_wins[j] = player1_wins[j] + 1 - elif outcome[j*interval + i][0] == 1: + elif outcome[j * interval + i][0] == 1: player2_wins[j] = player2_wins[j] + 1 - elif outcome[j*interval + i][0] == 2: + elif outcome[j * interval + i][0] == 2: ties[j] = ties[j] + 1 else: move_limit[j] = move_limit[j] + 1 - + plt.figure(title) - - p1_win_graph, = plt.plot(player1_wins, label = "Player 1 wins") - p2_win_graph, = plt.plot(player2_wins, label = "Player 2 wins") - tie_graph, = plt.plot(ties, label = "Ties") - move_limit_graph, = plt.plot(move_limit, label = "Move limit reached") - - plt.ylabel("Occurance per " +str(interval) + " games") + + p1_win_graph, = plt.plot(player1_wins, label="Player 1 wins") + p2_win_graph, = plt.plot(player2_wins, label="Player 2 wins") + tie_graph, = plt.plot(ties, label="Ties") + move_limit_graph, = plt.plot(move_limit, label="Move limit reached") + + plt.ylabel("Occurance per " + str(interval) + " games") plt.xlabel("Interval") - + plt.legend(handles=[p1_win_graph, p2_win_graph, tie_graph, move_limit_graph]) +def get_number_of_pieces_and_kings(spots, player_id=None): + """ + Gets the number of pieces and the number of kings that each player has on the current + board configuration represented in the given spots. The format of the function with defaults is: + [P1_pieces, P2_pieces, P1_kings, P2_kings] + and if given a player_id: + [player_pieces, player_kings] + """ + piece_counter = [0, 0, 0, 0] + for row in spots: + for element in row: + if element != 0: + piece_counter[element - 1] = piece_counter[element - 1] + 1 + + if player_id == True: + return [piece_counter[0], piece_counter[2]] + elif player_id == False: + return [piece_counter[1], piece_counter[3]] + else: + return piece_counter + - -LEARNING_RATE = .005 +LEARNING_RATE = .005 DISCOUNT_FACTOR = .3 NUM_GAMES_TO_TRAIN = 100 -NUM_TRAINING_ROUNDS = 25 +NUM_TRAINING_ROUNDS = 1 NUM_VALIDATION_GAMES = 5 NUM_GAMES_TO_TEST = 0 TRAINING_RANDOM_MOVE_PROBABILITY = .25 @@ -541,40 +508,43 @@ def plot_end_game_information(outcome, interval, title="End of Game Results"): TRAINING_MOVE_LIMIT = 500 VALIDATION_MOVE_LIMIT = 1000 TESTING_MOVE_LIMIT = 2000 -PLAYER1 = Q_Learning_AI(True, LEARNING_RATE, DISCOUNT_FACTOR, the_random_move_probability=TRAINING_RANDOM_MOVE_PROBABILITY)#, info_location="data.json") -PLAYER2 = Alpha_beta(False, ALPHA_BETA_DEPTH) -#PLAYER3 = Alpha_beta(False, 1) -PLAYER4 = Alpha_beta(False, 3) +# PLAYER1 = Q_Learning_AI(True, LEARNING_RATE, DISCOUNT_FACTOR, +# the_random_move_probability=TRAINING_RANDOM_MOVE_PROBABILITY) # , info_location="data.json") +PLAYER2 = Alpha_beta(False, 2, ALPHA_BETA_DEPTH) +# PLAYER3 = Alpha_beta(False, 1) +# PLAYER4 = Alpha_beta(False, 2, 3) # PLAYER5 = Q_Learning_AI(False, LEARNING_RATE, DISCOUNT_FACTOR, the_random_move_probability=TRAINING_RANDOM_MOVE_PROBABILITY) - - -#PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) - -training_info = [] -validation_info = [] -for j in range(NUM_TRAINING_ROUNDS): - training_info.extend(play_n_games(PLAYER1, PLAYER2, NUM_GAMES_TO_TRAIN, TRAINING_MOVE_LIMIT)) - PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) - PLAYER1.set_random_move_probability(0) - PLAYER1.set_learning_rate(0) - validation_info.extend(play_n_games(PLAYER1, PLAYER4, NUM_VALIDATION_GAMES, VALIDATION_MOVE_LIMIT)) - print("Round " + str(j+1) + " completed!") - PLAYER1.set_random_move_probability(TRAINING_RANDOM_MOVE_PROBABILITY) - PLAYER1.set_learning_rate(LEARNING_RATE) - #print("") - #PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) +PLAYER1 = Value_Iteration_AI(opponent=PLAYER2) +# PLAYER2 = Value_Iteration_AI(player_id=2) + +# PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) + +def run(): + training_info = [] + validation_info = [] + for j in range(NUM_TRAINING_ROUNDS): + training_info.extend(play_n_games(PLAYER1, PLAYER2, NUM_GAMES_TO_TRAIN, TRAINING_MOVE_LIMIT)) + # PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) + # PLAYER1.set_random_move_probability(0) + # PLAYER1.set_learning_rate(0) + # validation_info.extend(play_n_games(PLAYER1, PLAYER2, NUM_VALIDATION_GAMES, VALIDATION_MOVE_LIMIT)) + print("Round " + str(j + 1) + " completed!") + # PLAYER1.set_random_move_probability(TRAINING_RANDOM_MOVE_PROBABILITY) + # PLAYER1.set_learning_rate(LEARNING_RATE) + # print("") + # PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) + print("") + # PLAYER1.save_transition_information() + + # plot_end_game_information(training_info, 200, "Training Information") + # plot_end_game_information(validation_info, NUM_VALIDATION_GAMES, "Validation Information") + plt.show() + + pretty_outcome_display(training_info) print("") - PLAYER1.save_transition_information() - - -#plot_end_game_information(training_info, 200, "Training Information") -#plot_end_game_information(validation_info, NUM_VALIDATION_GAMES, "Validation Information") -plt.show() - -pretty_outcome_display(training_info) -print("") -pretty_outcome_display(validation_info) - + pretty_outcome_display(validation_info) + + """ PLAYER1.set_random_move_probability(0) @@ -588,6 +558,5 @@ def plot_end_game_information(outcome, interval, title="End of Game Results"): PLAYER1.print_transition_information(PLAYER1.get_transitions_information()) """ - -PLAYER1.save_transition_information() +# PLAYER1.save_transition_information() diff --git a/Board.py b/Board.py index c9766f5..d5c133d 100644 --- a/Board.py +++ b/Board.py @@ -7,11 +7,11 @@ -if self.player_turn == True then it is player 1's turn """ - import math import copy from functools import reduce + class Board: """ A class to represent and play an 8x8 game of checkers. @@ -22,40 +22,42 @@ class Board: P1_K = 3 P2_K = 4 BACKWARDS_PLAYER = P2 - HEIGHT = 8 - WIDTH = 4 - - - def __init__(self, old_spots=None, the_player_turn=True): + + def __init__(self, height=8, width=4, old_spots=None, the_player_turn=True): """ Initializes a new instance of the Board class. Unless specified otherwise, the board will be created with a start board configuration. NOTE: Maybe have default parameter so board is 8x8 by default but nxn if wanted. + :type height: int + :type width: int """ - self.player_turn = the_player_turn - if old_spots is None: - self.spots = [[j, j, j, j] for j in [self.P1, self.P1, self.P1, self.EMPTY_SPOT, self.EMPTY_SPOT, self.P2, self.P2, self.P2]] + self.player_turn = the_player_turn + self.HEIGHT = 8 + self.WIDTH = 4 + + if old_spots is None: + self.spots = [[j, j, j, j] for j in + [self.P1, self.P1, self.P1, self.EMPTY_SPOT, self.EMPTY_SPOT, self.P2, self.P2, self.P2]] + # self.spots = [[j, j, j] for j in + # [self.P1, self.P1, self.EMPTY_SPOT, self.EMPTY_SPOT, self.P2, self.P2]] else: self.spots = old_spots - def reset_board(self): """ Resets the current configuration of the game board to the original starting position. """ self.spots = Board().spots - - + def empty_board(self): """ Removes any pieces currently on the board and leaves the board with nothing but empty spots. """ - self.spots = [[j, j, j, j] for j in [self.EMPTY_SPOT] * self.HEIGHT] # Make sure [self.EMPTY_SPOT]*self.HEIGHT] has no issues - - + self.spots = [[j, j, j, j] for j in [self.EMPTY_SPOT] * self.HEIGHT] + def is_game_over(self): """ Finds out and returns weather the game currently being played is over or @@ -65,7 +67,6 @@ def is_game_over(self): return True return False - def not_spot(self, loc): """ Finds out of the spot at the given location is an actual spot on the game board. @@ -73,8 +74,7 @@ def not_spot(self, loc): if len(loc) == 0 or loc[0] < 0 or loc[0] > self.HEIGHT - 1 or loc[1] < 0 or loc[1] > self.WIDTH - 1: return True return False - - + def get_spot_info(self, loc): """ Gets the information about the spot at the given location. @@ -83,8 +83,7 @@ def get_spot_info(self, loc): Might want to not use this for the sake of computational time. """ return self.spots[loc[0]][loc[1]] - - + def forward_n_locations(self, start_loc, n, backwards=False): """ Gets the locations possible for moving a piece from a given location diagonally @@ -95,14 +94,15 @@ def forward_n_locations(self, start_loc, n, backwards=False): temp2 = 0 elif start_loc[0] % 2 == 0: temp1 = 0 - temp2 = 1 + temp2 = 1 else: temp1 = 1 temp2 = 0 - answer = [[start_loc[0], start_loc[1] + math.floor(n / 2) + temp1], [start_loc[0], start_loc[1] - math.floor(n / 2) - temp2]] + answer = [[start_loc[0], start_loc[1] + math.floor(n / 2) + temp1], + [start_loc[0], start_loc[1] - math.floor(n / 2) - temp2]] - if backwards: + if backwards: answer[0][0] = answer[0][0] - n answer[1][0] = answer[1][0] - n else: @@ -113,9 +113,8 @@ def forward_n_locations(self, start_loc, n, backwards=False): answer[0] = [] if self.not_spot(answer[1]): answer[1] = [] - + return answer - def get_simple_moves(self, start_loc): """ @@ -131,7 +130,6 @@ def get_simple_moves(self, start_loc): next_locations = self.forward_n_locations(start_loc, 1, True) # Switched the true from the statement below else: next_locations = self.forward_n_locations(start_loc, 1) - possible_next_locations = [] @@ -139,19 +137,18 @@ def get_simple_moves(self, start_loc): if len(location) != 0: if self.spots[location[0]][location[1]] == self.EMPTY_SPOT: possible_next_locations.append(location) - - return [[start_loc, end_spot] for end_spot in possible_next_locations] - - + + return [[start_loc, end_spot] for end_spot in possible_next_locations] + def get_capture_moves(self, start_loc, move_beginnings=None): """ Recursively get all of the possible moves for a piece which involve capturing an opponent's piece. """ if move_beginnings is None: move_beginnings = [start_loc] - + answer = [] - if self.spots[start_loc[0]][start_loc[1]] > 2: + if self.spots[start_loc[0]][start_loc[1]] > 2: next1 = self.forward_n_locations(start_loc, 1) next2 = self.forward_n_locations(start_loc, 2) next1.extend(self.forward_n_locations(start_loc, 1, True)) @@ -162,54 +159,73 @@ def get_capture_moves(self, start_loc, move_beginnings=None): else: next1 = self.forward_n_locations(start_loc, 1) next2 = self.forward_n_locations(start_loc, 2) - - + for j in range(len(next1)): - if (not self.not_spot(next2[j])) and (not self.not_spot(next1[j])) : # if both spots exist - if self.get_spot_info(next1[j]) != self.EMPTY_SPOT and self.get_spot_info(next1[j]) % 2 != self.get_spot_info(start_loc) % 2: # if next spot is opponent + if (not self.not_spot(next2[j])) and (not self.not_spot(next1[j])): # if both spots exist + if self.get_spot_info(next1[j]) != self.EMPTY_SPOT and self.get_spot_info( + next1[j]) % 2 != self.get_spot_info(start_loc) % 2: # if next spot is opponent if self.get_spot_info(next2[j]) == self.EMPTY_SPOT: # if next next spot is empty temp_move1 = copy.deepcopy(move_beginnings) temp_move1.append(next2[j]) - + answer_length = len(answer) - - if self.get_spot_info(start_loc) != self.P1 or next2[j][0] != self.HEIGHT - 1: - if self.get_spot_info(start_loc) != self.P2 or next2[j][0] != 0: + if self.get_spot_info(start_loc) != self.P1 or next2[j][0] != self.HEIGHT - 1: + if self.get_spot_info(start_loc) != self.P2 or next2[j][0] != 0: temp_move2 = [start_loc, next2[j]] - + temp_board = Board(copy.deepcopy(self.spots), self.player_turn) temp_board.make_move(temp_move2, False) answer.extend(temp_board.get_capture_moves(temp_move2[1], temp_move1)) - + if len(answer) == answer_length: answer.append(temp_move1) - + return answer - - - def get_possible_next_moves(self): + + def get_piece_locations(self): + piece_locations = [] + + for j in range(self.HEIGHT): + for i in range(self.WIDTH): + if (self.player_turn is True and (self.spots[j][i] == self.P1 or self.spots[j][i] == self.P1_K)) or \ + (self.player_turn is False and (self.spots[j][i] == self.P2 or self.spots[j][i] == self.P2_K)): + piece_locations.append([j, i]) + + return piece_locations + + def get_possible_next_moves_for_a_piece(self, piece_location): + capture_moves = self.get_capture_moves(piece_location) + + if len(capture_moves) != 0: + return capture_moves + + return self.get_simple_moves(piece_location) + + def get_possible_next_moves(self, spots=None): """ Gets the possible moves that can be made from the current board configuration. """ + if spots is None: + spots = self.spots + piece_locations = [] for j in range(self.HEIGHT): for i in range(self.WIDTH): - if (self.player_turn == True and (self.spots[j][i] == self.P1 or self.spots[j][i] == self.P1_K)) or (self.player_turn == False and (self.spots[j][i] == self.P2 or self.spots[j][i] == self.P2_K)): + if (self.player_turn is True and (spots[j][i] == self.P1 or spots[j][i] == self.P1_K)) or (self.player_turn is False and (spots[j][i] == self.P2 or spots[j][i] == self.P2_K)): piece_locations.append([j, i]) - - try: #Should check to make sure if this try statement is still necessary - capture_moves = list(reduce(lambda a, b: a + b, list(map(self.get_capture_moves, piece_locations)))) # CHECK IF OUTER LIST IS NECESSARY + + try: # Should check to make sure if this try statement is still necessary + capture_moves = list(reduce(lambda a, b: a + b, list(map(self.get_capture_moves, piece_locations)))) if len(capture_moves) != 0: return capture_moves - return list(reduce(lambda a, b: a + b, list(map(self.get_simple_moves, piece_locations)))) # CHECK IF OUTER LIST IS NECESSARY + return list(reduce(lambda a, b: a + b, list(map(self.get_simple_moves, piece_locations)))) except TypeError: return [] - - + def make_move(self, move, switch_player_turn=True): """ Makes a given move on the board, and (as long as is wanted) switches the indicator for @@ -227,10 +243,9 @@ def make_move(self, move, switch_player_turn=True): middle_y = move[j + 1][1] else: middle_y = move[j][1] - + self.spots[int((move[j][0] + move[j + 1][0]) / 2)][middle_y] = self.EMPTY_SPOT - - + self.spots[move[len(move) - 1][0]][move[len(move) - 1][1]] = self.spots[move[0][0]][move[0][1]] if move[len(move) - 1][0] == self.HEIGHT - 1 and self.spots[move[len(move) - 1][0]][move[len(move) - 1][1]] == self.P1: self.spots[move[len(move) - 1][0]][move[len(move) - 1][1]] = self.P1_K @@ -239,10 +254,9 @@ def make_move(self, move, switch_player_turn=True): else: self.spots[move[len(move) - 1][0]][move[len(move) - 1][1]] = self.spots[move[0][0]][move[0][1]] self.spots[move[0][0]][move[0][1]] = self.EMPTY_SPOT - + if switch_player_turn: self.player_turn = not self.player_turn - def get_potential_spots_from_moves(self, moves): """ @@ -255,11 +269,47 @@ def get_potential_spots_from_moves(self, moves): for move in moves: original_spots = copy.deepcopy(self.spots) self.make_move(move, switch_player_turn=False) - answer.append(self.spots) - self.spots = original_spots + answer.append(self.spots) + self.spots = original_spots return answer - - + + def get_states_from_boards_spots(self, boards_spots, player_id=None): + """ + Gets an array of tuples from the given set of board spots, + each tuple representing the characteristics which define the + state the board is in. + + Format of returned data: + [(own_pieces, opp_pieces, own_kings, opp_kings, own_edges, own_vert_center_mass, opp_vert_center_mass), ...] + """ + piece_counters = [[0, 0, 0, 0, 0, 0, 0] for j in range(len(boards_spots))] + for k in range(len(boards_spots)): + for j in range(len(boards_spots[k])): + for i in range(len(boards_spots[k][j])): + if boards_spots[k][j][i] != 0: + piece_counters[k][boards_spots[k][j][i] - 1] = piece_counters[k][boards_spots[k][j][i] - 1] + 1 + if (player_id and (boards_spots[k][j][i] == 1 or boards_spots[k][j][i] == 3)) or \ + (not player_id and (boards_spots[k][j][i] == 2 or boards_spots[k][j][i] == 4)): + if i == 0 and j % 2 == 0: + piece_counters[k][4] = piece_counters[k][4] + 1 + elif i == 3 and j % 2 == 1: + piece_counters[k][4] = piece_counters[k][4] + 1 + + piece_counters[k][5] = piece_counters[k][5] + j + else: + piece_counters[k][6] = piece_counters[k][6] + j + + if piece_counters[k][0] + piece_counters[k][2] != 0: + piece_counters[k][5] = int(piece_counters[k][5] / (piece_counters[k][0] + piece_counters[k][2])) + else: + piece_counters[k][5] = 0 + if piece_counters[k][1] + piece_counters[k][3] != 0: + piece_counters[k][6] = int(piece_counters[k][6] / (piece_counters[k][1] + piece_counters[k][3])) + else: + piece_counters[k][6] = 0 + + return [tuple(counter) for counter in piece_counters] + def insert_pieces(self, pieces_info): """ Inserts a set of pieces onto a board. @@ -268,8 +318,7 @@ def insert_pieces(self, pieces_info): """ for piece_info in pieces_info: self.spots[piece_info[0]][piece_info[1]] = piece_info[2] - - + def get_symbol(self, location): """ Gets the symbol for what should be at a board location. @@ -284,8 +333,7 @@ def get_symbol(self, location): return "O" else: return "X" - - + def print_board(self): """ Prints a string representation of the current game board. @@ -302,7 +350,32 @@ def print_board(self): if i != 3 or j % 2 != 1: # should figure out if this 3 should be changed to self.WIDTH-1 temp_line = temp_line + "///|" print(temp_line) - print(norm_line) + print(norm_line) + def get_number_of_pieces_and_kings(self, spots, player_id=None): + """ + Gets the number of pieces and the number of kings that each player has on the current + board configuration represented in the given spots. The format of the function with defaults is: + [P1_pieces, P2_pieces, P1_kings, P2_kings] + and if given a player_id: + [player_pieces, player_kings] + """ + piece_counter = [0, 0, 0, 0] + for row in spots: + for element in row: + if element != 0: + piece_counter[element - 1] = piece_counter[element - 1] + 1 + + if player_id == True: + return [piece_counter[0], piece_counter[2]] + elif player_id == False: + return [piece_counter[1], piece_counter[3]] + else: + return piece_counter + def set_spots(self, spots): + if spots is not None: + self.spots = copy.deepcopy(spots) + def switch_turn(self): + self.player_turn = not self.player_turn diff --git a/Player.py b/Player.py new file mode 100644 index 0000000..77b0916 --- /dev/null +++ b/Player.py @@ -0,0 +1,36 @@ +''' +Created on Oct 24, 2017 + +@author: Furkan Arslan +''' + +from Board import Board + +class Player: + """ + A class to be inherited by any class representing a checkers player. + This is used so that other functions can be written for more general use, + without worry of crashing (e.g. play_n_games). + + NOTES: + 1) Create set playerID method + """ + + def set_board(self, the_board): + """ + Sets the Board object which is known by the AI. + """ + self.board = the_board + + def game_completed(self): + """ + Should be overridden if AI implementing this class should be notified + of when a game ends, before the board is wiped. + """ + pass + + def get_next_move(self): + """ + Gets the desired next move from the AI. + """ + pass \ No newline at end of file diff --git a/Value_Iteration_AI.py b/Value_Iteration_AI.py new file mode 100644 index 0000000..3ff5d21 --- /dev/null +++ b/Value_Iteration_AI.py @@ -0,0 +1,142 @@ +from Player import Player +from Board import Board +import numpy as np +import IPython.core.debugger +dbg = IPython.core.debugger.Pdb() + + +class Value_Iteration_AI(Player): + LOSING_STATES = -100 + WINNING_STATES = 100 + + def __init__(self, opponent, player_id=1, discount_factor=0.5, board=None): + self.player_id = player_id + self.discount_factor = discount_factor + self.states = [] + self.value_function = [] + self.policy = [] + self.opponent = opponent + self.board = board + + if self.board is None: + self.board = Board() + + self.value_iteration() + + def reward_function(self, state_info1, state_info2): + if self.board.is_game_over(): + if state_info2[1] == 0 and state_info2[3] == 0: # winning state + return 100 + elif state_info2[0] == 0 and state_info2[2] == 0: # losing state + return -100 + else: + return 0 # draw state + else: + # if my player eats a opponent's piece, gain 5. if my player eats a opponent's king, gain 10 + gained_reward = 5*(state_info2[0] - state_info1[0]) + 10 * (state_info2[2] - state_info1[2]) + # if opponent eats my piece, punish -5. if opponent eats my king, punish -10 + lost_reward = 5*(state_info2[1] - state_info1[1]) + 10 * (state_info2[3] - state_info1[3]) + + return gained_reward - lost_reward + + def get_reward(self, current_spots, next_spots): + current_status = self.board.get_states_from_boards_spots([current_spots]) + next_status = self.board.get_states_from_boards_spots([next_spots]) + + return self.reward_function(current_status[0], next_status[0]) + + def get_transition_probabilities(self, actions, opponent_action): + # the probability of taking the action is calculated by 1 / (number of actions x number of opponent actions) + return 1 / (len(actions) * len(opponent_action)) + + def get_value(self, state): + try: # if the state has already observed, find state's index and state's value and return them + index = self.states.index(state) + + return self.value_function[index], index + except ValueError: # if the state has not been observed yet, create a new state and add it to states array + self.states.append(state) + self.value_function.append(0) + index = len(self.value_function) - 1 + + return 0, index + + def calculate_value_of_action(self, state, possible_moves, opponent_moves): + next_state = self.board.spots # determine next state + next_state_value = self.get_value(next_state)[0] # obtain value of next state. If the state is not in the states array, this function creates the state and adds to the array + reward = self.get_reward(state, next_state) + prob = self.get_transition_probabilities(possible_moves, opponent_moves) + + return prob * (reward + self.discount_factor * next_state_value) + + def calculate_expected_value(self, state): + if self.board.is_game_over(): + return [self.LOSING_STATES] + + possible_moves = self.board.get_possible_next_moves() + expected_value = np.zeros(len(possible_moves)) + + for i in range(len(possible_moves)): + move = possible_moves[i] + self.board.set_spots(state) # recover board to state condition + + self.board.make_move(move) # make my move + opponent_moves = [self.opponent.get_next_move()] # determine possible opponent's moves + + if self.board.is_game_over(): + expected_value[i] = self.calculate_value_of_action(state, possible_moves, opponent_moves) + self.board.switch_turn() + + continue + + for opp_move in opponent_moves: # maybe there can be more than one opponent moves + self.board.make_move(opp_move) # make opponent move to obtain next state + expected_value[i] += self.calculate_value_of_action(state, possible_moves, opponent_moves) + + return expected_value + + def value_iteration(self, theta=0.0001): + self.states.append(self.board.spots) + self.value_function.append(0) + + while True: + delta = 0 + + for state in self.states: + self.board.set_spots(state) # make the board look like same as the state + + v, index = self.get_value(state) + + expected_value = self.calculate_expected_value(state) + + self.value_function[index] = np.max(expected_value) + + delta = max(delta, np.abs(v - self.value_function[index])) + + if delta < theta: + break + + self.board.reset_board() + self.calculate_policy() + + def calculate_policy(self): + for state in self.states: + expected_value = self.calculate_expected_value(state) # get values of actions + self.policy[state] = [0 for i in expected_value] # init policy's values for this state + + best_action = np.argmax(expected_value) # find best action in this state + self.policy[state, best_action] = 1.0 # assign best action to 1 + + def game_completed(self): + pass + + def get_next_move(self): + """ + Gets the desired next move from the AI. + """ + current_state = self.board.spots # determine current state + determine_policies = np.array(self.policy[current_state]) # obtain policy array for current state + possible_actions = self.board.get_possible_next_moves() # obtain available actions + + return possible_actions[determine_policies == 1] # return selected action whose value is 1 + diff --git a/homework-1 report.pdf b/homework-1 report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..31d00a0fb630eb0e9657cc6bde0d6dea2e614c19 GIT binary patch literal 117463 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 kAI8zi+8R0n{$N8zVczzwQ3N0GtBTq5uE@ literal 0 HcmV?d00001 diff --git a/homework-1.pdf b/homework-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e156c8632fba31e491642c3e03f5190b4fce7109 GIT binary patch literal 59469 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≫D=m)2(l?Dv^rJb&5f)BTwH53s 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