def gen_weights_all(ddir): params = import_params(ddir) try: nRows = int(params['nRowsIn']) nCols = int(params['nColsIn']) nOutputs = int(params['nOutputs']) except (KeyError, TypeError) as err: print('necessary parameter not found: ' + str(err)) sys.exit(-1) nInputs = nRows * nCols Wx, Wy = get_weights(ddir, nInputs, nOutputs) if Wx is None or Wy is None: print("failed to read weights") return # take most recent values, strip time and transpose so we can write column wise (like eigen) Wx, Wy = Wx[-1,1:,:].T, Wy[-1,1:,:].T # use final value and reshape to row vector Wx, Wy = np.squeeze(Wx.reshape(-1,1)), np.squeeze(Wy.reshape(-1,1)) # prepend dummy time stamp Wx, Wy = np.concatenate(([0.0],Wx)), np.concatenate(([0.0],Wy)) save_weights_all(ddir, [Wx], [Wy])
def heatmap(ddir, ts, subplot, quiet, show_title, cmap=None): params = import_params(ddir) try: nRows = int(params['nRowsIn']) nCols = int(params['nColsIn']) except KeyError, err: print('necessary parameter not found: ' + str(err)) sys.exit(-1)
def weights(ddir, ts, quiet, show_title, cmap): params = import_params(ddir) try: nRows = int(params['nRowsIn']) nCols = int(params['nColsIn']) nOutputs = int(params['nOutputs']) except KeyError, err: print('necessary parameter not found: ' + str(err)) sys.exit(-1)
def force_fields(ddir, ts, wta, continuous, csteps, subplot, quiet, show_title, cmap): params = import_params(ddir) try: nRows = int(params["nRowsIn"]) nCols = int(params["nColsIn"]) nOutputs = int(params["nOutputs"]) popMinX = float(params["popMinX"]) popMaxX = float(params["popMaxX"]) popMinY = float(params["popMinY"]) popMaxY = float(params["popMaxY"]) except KeyError, err: print("necessary parameter not found: " + str(err)) sys.exit(-1)
def main(): dataset = { 'north_ireland_2012': 'ED-00001-00000001', 'debian_logo': 'ED-00002-00000008' } filename = dataset['north_ireland_2012'] # ------------------- Load extra json files -------------------- # params = utils.import_params(filename=f'json/{filename}') candidates = utils.import_candidates(filename=f'json/{filename}') # -------------------- Load preflib files ---------------------- # pairs = utils.import_pairwise(filename=f'data/{filename}.pwg', params=params) vote_matrix, n_votes = utils.import_strict_order( filename=f'data/{filename}.soi', params=params) # ------------------- Plurality rule ---------------------------- # plurality_rule_winner, scores = libchoice.plurality_rule( votes=vote_matrix, candidates=candidates, n_votes=n_votes) utils.print_plurality(candidates, scores=scores) print(f'The plurality rule winner is {plurality_rule_winner}.') dual_matrix = libchoice.get_dual_matrix_from_pairwise( pairs=pairs, candidates=candidates) winner, scores = libchoice.compute_winner(dual_matrix=dual_matrix, candidates=candidates) utils.print_table_one_to_one(dual_matrix, candidates) utils.print_ranking(candidates=candidates, scores=scores, title='Ranking') # ----------------- Condorcet winner ---------------------------- # condorcet_winner = libchoice.compute_condorcet_winner( dual_matrix=dual_matrix, candidates=candidates) print(f'The condorcet winner is {condorcet_winner}.')
def show_params(d, params_file, recursive): if not os.path.isdir(d): return if recursive: for dd in os.listdir(d): dd = os.path.join(d, dd) if os.path.isdir(dd): show_params(dd, params_file, recursive) params = import_params(d, params_file, verbose=False) if not params: return print("experiment {}".format(d)) linear = False for l, v in params.items(): if l == 'time': continue elif l == 'learningRule': v = LEARNING_RULES[int(params[l])] elif l == 'outputFn': v = OUTPUT_FUNCTIONS[int(params[l])] if v == 'linear': linear = True elif l == 'rewardQty': v = REWARD_QTY[int(params[l])] elif l == 'activationFn': v = ACTIVATION_FUNCTIONS[int(params[l])] else: v = params[l] if l == 'sigmoidBeta' and linear: continue print(" {:<25}: {}".format(l, v)) print("")
def main(): dataset = { 'north_ireland_2012': 'ED-00001-00000001', 'debian_logo': 'ED-00002-00000008' } filename = dataset['debian_logo'] # ------------------- Load extra json files -------------------- # params = utils.import_params( filename=f'json/{filename}' ) candidates = utils.import_candidates( filename=f'json/{filename}' ) # -------------------- Load preflib files ---------------------- # pairs = utils.import_pairwise( filename=f'data/{filename}.pwg', params=params ) vote_matrix, n_votes = utils.import_strict_order( filename=f'data/{filename}.soi', params=params ) # ------------------- Rule 1 ------------------------------------ # dual_results = libchoice.get_dual_matrix_from_pairwise( pairs=pairs, candidates=candidates ) winner, scores = libchoice.compute_winner(dual_matrix=dual_results, candidates=candidates) utils.print_ranking(candidates=candidates, scores=scores, title='Rule 1 ranking') # ------------------- Rule 2 -------------------------------- # # From pairwise file paths = schulze.compute_paths( pairs=pairs, candidates=candidates ) dual_results_schulze = libchoice.get_dual_matrix_from_pairwise( pairs=paths, candidates=candidates ) winner, scores = libchoice.compute_winner( dual_matrix=dual_results_schulze, candidates=candidates ) utils.print_table_one_to_one(dual_results_schulze, candidates) utils.print_ranking(candidates=candidates, scores=scores, title='(Rule 2) Schulz ranking') # ----------------- Condorcet winner ---------------------------- # condorcet_winner = libchoice.compute_condorcet_winner( dual_matrix=dual_results_schulze, candidates=candidates ) print(f'The condorcet winner is {condorcet_winner}.')