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])
Beispiel #2
0
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)
Beispiel #5
0
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}.')
Beispiel #6
0
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("")
Beispiel #7
0
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}.')