Exemple #1
0
def hanoi(disks=7,
          towers=4,
          num_examples=6500,
          N=None,
          num_actions=None,
          direct=None,
          stop_gradient=False,
          aeclass="ConvolutionalGumbelAE",
          comment=""):
    for name, value in locals().items():
        if value is not None:
            parameters[name] = [value]
    default_parameters["aeclass"] = aeclass

    import latplan.puzzles.hanoi as p
    p.setup()
    path = os.path.join(latplan.__path__[0], "puzzles",
                        "-".join(map(str, ["hanoi", disks, towers])) + ".npz")
    with np.load(path) as data:
        pre_configs = data['pres'][:num_examples]
        suc_configs = data['sucs'][:num_examples]
    pres = p.generate(pre_configs, disks, towers)
    sucs = p.generate(suc_configs, disks, towers)
    transitions = np.array([pres, sucs])
    states = np.concatenate((transitions[0], transitions[1]), axis=0)
    data = np.swapaxes(transitions, 0, 1)
    print(data.shape)
    train = data[:int(len(data) * 0.9)]
    val = data[int(len(data) * 0.9):int(len(data) * 0.95)]
    test = data[int(len(data) * 0.95):]
    ae = run(os.path.join("samples", sae_path), train, val, parameters)
    show_summary(ae, train, test)
    plot_autoencoding_image(ae, test, train)
    dump_actions(ae, transitions)
    dump_states(ae, states)
Exemple #2
0
def hanoi(disks=7,towers=4,limit=None):
    path = os.path.join(latplan.__path__[0],"puzzles","-".join(map(str,["hanoi",disks,towers]))+".npz")
    import latplan.puzzles.hanoi as p
    p.setup()
    pres = p.generate_random_configs(disks,towers, limit)
    np.random.shuffle(pres)
    sucs = [ random.choice(p.successors(c1,disks,towers)) for c1 in pres ]
    np.savez_compressed(path,pres=pres,sucs=sucs)
Exemple #3
0
def lightsout(type='digital', size=4):
    import importlib
    p = importlib.import_module('latplan.puzzles.lightsout_{}'.format(type))
    p.setup()
    ics = reservoir_sampling(
        lightsout_special(np.full(size * size, -1), steps,
                          lambda config: p.successors(config)), instances)
    gcs = np.full((1, size * size), -1)
    generate(p, ics, gcs)
Exemple #4
0
def lightsout(type='digital',size=4,limit=None):
    path = os.path.join(latplan.__path__[0],"puzzles","-".join(map(str,["lightsout",type,size]))+".npz")
    import importlib
    p = importlib.import_module('latplan.puzzles.lightsout_{}'.format(type))
    p.setup()
    pres = p.generate_random_configs(size, limit)
    np.random.shuffle(pres)
    sucs = [ random.choice(p.successors(c1)) for c1 in pres ]
    np.savez_compressed(path,pres=pres,sucs=sucs)
def lightsout(type='digital', size=4):
    import importlib
    p = importlib.import_module('latplan.puzzles.lightsout_{}'.format(type))
    p.setup()
    ics = [
        random_walk(np.full(size*size,-1), steps, lambda config: p.successors(config))
        for i in range(instances)
    ]
    gcs = np.full((1,size*size),-1)
    generate(p, ics, gcs)
Exemple #6
0
def hanoi(disks=5, towers=3):
    import latplan.puzzles.hanoi as p
    p.setup()
    ics = [
        np.zeros(disks, dtype=int), *reservoir_sampling(
            dijkstra(np.full(disks, towers - 1, dtype=int), steps,
                     lambda config: p.successors(config, disks, towers)),
            instances - 1)
    ]
    gcs = np.full((1, disks), towers - 1, dtype=int)
    generate(p, ics, gcs, disks, towers)
def hanoi(disks=5, towers=3):
    import latplan.puzzles.hanoi as p
    p.setup()
    ics = [
        np.zeros(disks, dtype=int), *[
            random_walk(np.full(disks, towers - 1, dtype=int), steps,
                        lambda config: p.successors(config, disks, towers))
            for i in range(instances - 1)
        ]
    ]
    gcs = np.full((1, disks), towers - 1, dtype=int)
    generate(p, ics, gcs, disks, towers)
Exemple #8
0
def hanoi(disks=7,
          towers=4,
          num_examples=6500,
          plannpz=None,
          planjson=None,
          allow_invalid=False):
    path = os.path.join("puzzles",
                        "-".join(map(str, ["hanoi", disks, towers])) + ".npz")

    import latplan.puzzles.hanoi as p
    p.setup()

    common_operation(path, p, num_examples, plannpz, planjson, allow_invalid,
                     disks, towers)
Exemple #9
0
def lightsout(type='digital',
              size=4,
              num_examples=6500,
              plannpz=None,
              planjson=None,
              allow_invalid=False):
    path = os.path.join("puzzles",
                        "-".join(map(str, ["lightsout", type, size])) + ".npz")

    import importlib
    p = importlib.import_module('latplan.puzzles.lightsout_{}'.format(type))
    p.setup()

    common_operation(path, p, num_examples, plannpz, planjson, allow_invalid)
Exemple #10
0
def lightsout(type='digital',
              size=4,
              num_examples=6500,
              N=None,
              num_actions=None,
              direct=None,
              stop_gradient=False,
              aeclass="ConvolutionalGumbelAE",
              comment="",
              prob_vis=1.00):
    for name, value in locals().items():
        if value is not None:
            parameters[name] = [value]
    default_parameters["aeclass"] = aeclass

    import importlib
    p = importlib.import_module('latplan.puzzles.lightsout_{}'.format(type))
    p.setup()
    path = os.path.join(latplan.__path__[0], "puzzles",
                        "-".join(map(str, ["lightsout", type, size])) + ".npz")
    with np.load(path) as data:
        pre_configs = data['pres'][:num_examples]
        suc_configs = data['sucs'][:num_examples]
    # TWK: Wrap custom `add_missingness()` method around the data generators
    pres = add_missingness(p.generate(pre_configs), prob_vis)
    sucs = add_missingness(p.generate(suc_configs), prob_vis)
    transitions = np.array([pres, sucs])
    states = np.concatenate((transitions[0], transitions[1]), axis=0)
    data = np.swapaxes(transitions, 0, 1)
    print(data.shape)
    train = data[:int(len(data) * 0.9)]
    val = data[int(len(data) * 0.9):int(len(data) * 0.95)]
    test = data[int(len(data) * 0.95):]
    ae = run(os.path.join("samples", sae_path), train, val, parameters)
    show_summary(ae, train, test)
    plot_autoencoding_image(ae, test, train)
    dump_actions(ae, transitions)
    dump_states(ae, states)