Esempio n. 1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('graph_file')
    parser.add_argument('embeddings_file')
    parser.add_argument('--deg', action='store_true', help='angle in degrees')
    parser.add_argument('--cda', action='store_true', help='correct directed arcs')
    parser.add_argument('--cda-max-vertices', type=int, default=1000)
    parser.add_argument('--gr', action='store_true', help='evaluate greedy routing')
    parser.add_argument('--gr-max-pairs', type=int, default=10000)
    args = parser.parse_args()

    vertices, edges = read_graph_from_file(args.graph_file)
    skip_lines=0
    if args.deg:
        skip_lines=2
    embeddings = read_embeddings_from_file(args.embeddings_file, skip_lines, degrees=args.deg)

    print "Evaluate embeddings"
    report = evaluate_embeddings(embeddings, edges,
        cda=args.cda, cda_max_vertices=args.cda_max_vertices,
        greedy_routing=args.gr, gr_max_pairs=args.gr_max_pairs
    )

    print 'report'
    for name, value in report:
        print '{}: {}'.format(name, value)
Esempio n. 2
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('graph_file')
    parser.add_argument('out_prefix')
    parser.add_argument(
        '--mode',
        default='fit_degrees_sgd',
        help='random|degrees|fit|fit_random|fit_degrees|fit_degrees_sgd')
    parser.add_argument('--learning-rate',
                        default=0.1,
                        help='learning rate for fit_degrees_sgd',
                        type=float)
    parser.add_argument('--n-epoch',
                        default=100,
                        help='number of training epoch for fit_degrees_sgd',
                        type=int)
    parser.add_argument('--ratio-to-second',
                        default=2.,
                        help='ratio of nedges to second neighbour',
                        type=float)
    parser.add_argument('--ratio-between-first',
                        default=1.,
                        help='ratio of nedges between first neighbours',
                        type=float)
    parser.add_argument('--ratio-random',
                        default=1.,
                        help='ratio of random nedges',
                        type=float)
    parser.add_argument('--silent', action='store_true')

    args = parser.parse_args()
    vertices, edges = read_graph_from_file(args.graph_file)
    n = len(vertices)
    print "Number of vertices: {}".format(n)
    print "Number of edges: {}".format(len(edges))
    print "Number of non-edges: {}".format(n * (n - 1) / 2 - len(edges))

    print "Find embeddings"
    embeddings, info = find_embeddings(
        vertices,
        edges,
        mode=args.mode,
        learning_rate=args.learning_rate,
        n_epoch=args.n_epoch,
        ratio_to_second=args.ratio_to_second,
        ratio_between_first=args.ratio_between_first,
        ratio_random=args.ratio_random,
        silent=args.silent)

    with open(args.out_prefix + '-embeddings.txt', 'w') as of:
        for v in embeddings.keys():
            r, phi = embeddings[v]
            of.write('\t'.join(map(str, [v, r, phi])) + '\n')

    core = info['core']
    if core is not None:
        with open(args.out_prefix + '-core.txt', 'w') as of_core:
            for v1, v2 in core:
                of_core.write('\t'.join(map(str, [v1, v2])) + '\n')
Esempio n. 3
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("graph_file")
    parser.add_argument("out_prefix")
    parser.add_argument(
        "--mode", default="fit_degrees_sgd", help="random|degrees|fit|fit_random|fit_degrees|fit_degrees_sgd"
    )
    parser.add_argument("--learning-rate", default=0.1, help="learning rate for fit_degrees_sgd", type=float)
    parser.add_argument("--n-epoch", default=100, help="number of training epoch for fit_degrees_sgd", type=int)
    parser.add_argument("--ratio-to-second", default=2.0, help="ratio of nedges to second neighbour", type=float)
    parser.add_argument(
        "--ratio-between-first", default=1.0, help="ratio of nedges between first neighbours", type=float
    )
    parser.add_argument("--ratio-random", default=1.0, help="ratio of random nedges", type=float)
    parser.add_argument("--silent", action="store_true")

    args = parser.parse_args()
    vertices, edges = read_graph_from_file(args.graph_file)
    n = len(vertices)
    print "Number of vertices: {}".format(n)
    print "Number of edges: {}".format(len(edges))
    print "Number of non-edges: {}".format(n * (n - 1) / 2 - len(edges))

    print "Find embeddings"
    embeddings, info = find_embeddings(
        vertices,
        edges,
        mode=args.mode,
        learning_rate=args.learning_rate,
        n_epoch=args.n_epoch,
        ratio_to_second=args.ratio_to_second,
        ratio_between_first=args.ratio_between_first,
        ratio_random=args.ratio_random,
        silent=args.silent,
    )

    with open(args.out_prefix + "-embeddings.txt", "w") as of:
        for v in embeddings.keys():
            r, phi = embeddings[v]
            of.write("\t".join(map(str, [v, r, phi])) + "\n")

    core = info["core"]
    if core is not None:
        with open(args.out_prefix + "-core.txt", "w") as of_core:
            for v1, v2 in core:
                of_core.write("\t".join(map(str, [v1, v2])) + "\n")
Esempio n. 4
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('graph_file')
    parser.add_argument('embeddings_file')
    parser.add_argument('--deg', action='store_true', help='angle in degrees')
    parser.add_argument('--cda',
                        action='store_true',
                        help='correct directed arcs')
    parser.add_argument('--cda-max-vertices', type=int, default=1000)
    parser.add_argument('--gr',
                        action='store_true',
                        help='evaluate greedy routing')
    parser.add_argument('--gr-max-pairs', type=int, default=10000)
    parser.add_argument('--core', action='store_true', help='evaluate core')
    parser.add_argument('--core-exponent',
                        type=float,
                        help='core exponent',
                        default=0.5)
    parser.add_argument('--seed', type=int, help='random seed', default=42)
    args = parser.parse_args()
    np.random.seed(args.seed)

    vertices, edges = read_graph_from_file(args.graph_file)
    skip_lines = 0
    if args.deg:
        skip_lines = 2
    embeddings = read_embeddings_from_file(args.embeddings_file,
                                           skip_lines,
                                           degrees=args.deg)

    print "Evaluate embeddings"
    report = evaluate_embeddings(embeddings,
                                 edges,
                                 cda=args.cda,
                                 cda_max_vertices=args.cda_max_vertices,
                                 greedy_routing=args.gr,
                                 gr_max_pairs=args.gr_max_pairs,
                                 eval_core=args.core,
                                 core_exponent=args.core_exponent)

    print 'report'
    for name, value in report:
        print '{}: {}'.format(name, value)