示例#1
0
def test_ccm_counting():

    # test CMU ACT-R Counting
    factory = ccm_factory.CcmFactory()
    model = factory.createModel()
    model.load('metaverse.architectures.actr_ccmsuite.counting_prods')
    model.working.addWME('add 5 2 count:None sum:None')

    #TODO: move these to a config file
    model.declarative.addDM('count 0 1')
    model.declarative.addDM('count 1 2')
    model.declarative.addDM('count 2 3')
    model.declarative.addDM('count 3 4')
    model.declarative.addDM('count 4 5')
    model.declarative.addDM('count 5 6')
    model.declarative.addDM('count 6 7')
    model.declarative.addDM('count 7 8')
    model.declarative.addDM('count 8 9')
    model.declarative.addDM('count 9 10')

    myenv = SimpleEnvironment("counting")

    myexp = Experiment(model, myenv, "CMU Counting")
    myexp.start("ccm_count_test") # appends to a log file
    myexp.run(1, 10)
    myexp.stop() #closes log file
    myexp.report("CCM")
示例#2
0
def launch_cmd_prompt():
    prompt = MyPrompt()
    prompt.prompt = 'Thesis> '
    prompt.cmdloop('Starting Metaverse prompt...')

    prompt = MyPrompt()
    prompt.do_demo()

    myexp = Experiment()
    myexp.run_all()
示例#3
0
    def do_run(self, line=""):
        """run an experiment."""

        try:
            arch, env = [str(s) for s in line.split()]
            print(f"Architecture: {arch}")
            print(f"Environment: {env}")

            myexp = Experiment(arch, env)
            myexp.run_all()

        except ValueError:
            print("Run command usage: run <arch> <env>")
示例#4
0
def do_experiment(exp_configs):

    for experiment in exp_configs:

        exp_config = experiment["config"]
        model_config = experiment["model"]
        env_config = experiment["environment"]

        exp_name = exp_config["name"]
        exp_trials = exp_config["trials"]
        exp_steps = exp_config["steps"]
        print(f"Starting Experiment: {exp_name}")

        model_arch = model_config["architecture"]
        factory = get_arch_factory(model_arch)

        model = factory.createModel()
        model_file = model_config["file"]
        model.load(model_file)

        env_default_act = env_config["default_act"]

        model.motor.next_action = env_default_act

        env_type = env_config["type"]
        myenv = get_env_factory(env_type)

        env_map = env_config["obs_map"]

        myexp = Experiment(model, myenv, exp_name,env_map)
        #myexp = Experiment(model, myenv, "CMU Gym Cartpole", map)

        myexp.start(exp_name) # appends to a log file
        myexp.run(exp_trials, exp_steps)
        myexp.stop() #closes log file
示例#5
0
def test_cmu_counting():

    # test CMU ACT-R Counting
    factory = cmu_factory.CmuActrFactory()
    model = factory.createModel()
    model.load("/tests/psych/count_test.lisp")

    myenv = SimpleEnvironment(name="counting")

    myexp = Experiment(model, myenv, "CMU Counting")
    myexp.start("cmu_count_test") # appends to a log file
    myexp.run(1, 50)
    myexp.stop() #closes log file
    myexp.report("ACTR")
示例#6
0
def test_soar_starcraft():

    # test CMU ACT-R Counting
    factory = soar_factory.SoarFactory()
    model = factory.createModel()

    model.load("starcraft2.soar","starcraft")

    myenv = StarCraftEnvironment("SC2MoveToBeacon-v1")
    myexp = Experiment(model, myenv, "Soar StarCraft Beacons")

    model.motor.next_action = [-1, -1]

    myexp.start("soar_beacons") # appends to a log file
    myexp.run(1, 100) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    myexp.report("Soar")
示例#7
0
def test_soar_cartpole():

    # test CMU ACT-R Counting
    factory = soar_factory.SoarFactory()
    model = factory.createModel()

    model.load("cart-pole.soar","cart-pole")

    myenv = GymEnvironment("CartPole-v0") #TODO: pass registered gym.env_id??

    myexp = Experiment(model, myenv, "Soar Gym Cartpole")
    model.perception.create_input_wmes

    myexp.start("soar_cartpole") # appends to a log file
    myexp.run(10, 195) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    myexp.report("Soar")
示例#8
0
def compare_production_systems():

    #changes to production cycle rate
    cycle_start = 1 #once per second
    cycle_end = 0.05 #10 times per second

    task = "production_test"
    trials = 5
    steps = 10

    test_iv = "ps"
    iv_start = 0.05
    iv_end = 0.1
    iv_inc = 0.01

    prod_test_config_switch = {
        'ACTR': "/tests/psych/count_test.lisp",
        'CCM' : 'metaverse.architectures.actr_ccmsuite.counting_prods',
        'Soar' : "soar_agent.config"
    }

    architectures = ['ACTR', 'CCM', 'Soar']
    architectures1 = ['ACTR']
    architectures2 = ['CCM']
    architectures3 = ['Soar']

    reporter = scribe.Reporter()
    experiments = []

    for arch in architectures:

        factory = get_arch_factory(arch)
        model = factory.createModel()
        model_file = prod_test_config_switch.get(arch)
        model.load(model_file)
        myenv = SimpleEnvironment(task)
        myexp = Experiment(model, myenv, task)
        #myexp.set_parameters(test_iv, iv_start, iv_end, iv_inc )
        myexp.start(task+"_"+arch)  # appends to a log file
        myexp.run(trials, steps)
        myexp.stop()  # closes log file
        outfile = myexp.report()
        experiments.append([arch, outfile])
        reporter.add_experiment(arch, outfile)

    with open('last_counting_experiments.yaml', 'w') as yaml_file:
        yaml.dump(experiments, yaml_file)

    reporter.gen_arch_frames()
    reporter.declarative_mem_activation_report(plot="series")
示例#9
0
def test_ccm_cartpole():

    # test CMU ACT-R Counting
    factory = ccm_factory.CcmFactory()
    model = factory.createModel()

    model.load('metaverse.architectures.actr_ccmsuite.cartpole_prods')

    myenv = GymEnvironment("CartPole-v0") #TODO: pass registered gym.env_id??

    map = ['cart_pos', 'cart_vel', 'pole_pos', 'pole_vel']
    myexp = Experiment(model, myenv, "CCM Gym Cartpole", map)
    model.motor.next_action = 0 #TODO: change to random action space

    myexp.start("ccm_cartpole") # appends to a log file
    myexp.run(10, 195) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    myexp.report("CCM") #TODO: get report type from agent factory
示例#10
0
def test_ccm_starcraft():

    # test CMU ACT-R Counting
    factory = ccm_factory.CcmFactory()
    model = factory.createModel()
    #model.perception = Sc2Perception()

    model.load('metaverse.architectures.actr_ccmsuite.beacon_prods')

    myenv = StarCraftEnvironment("SC2MoveToBeacon-v1")
    map = ['loc_x', 'loc_y']
    myexp = Experiment(model, myenv, "CCM StarCraft Beacons", map)

    model.motor.next_action = [-1,-1]  # TODO: change to random action space

    myexp.start("ccm_beacons") # appends to a log file
    myexp.run(1, 100) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    myexp.report("CCM") #TODO: get report type from agent factory
示例#11
0
def test_cmu_starcraft():

    # test CMU ACT-R Counting
    factory = cmu_factory.CmuActrFactory()
    model = factory.createModel()
    map = ['beacon_x', 'beacon_y']
    #model.perception.setObservationSpace(map)

    model.load("/tests/sc2/gym_sc2-beacons-simple.lisp")

    myenv = StarCraftEnvironment("SC2MoveToBeacon-v1")
    myexp = Experiment(model, myenv, "CMU StarCraft Beacons",map)

    model.motor.next_action = [-1, -1]

    myexp.start("cmu_beacons") # appends to a log file
    myexp.run(1, 100) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    myexp.report("ACTR")
示例#12
0
def test_cmu_cartpole():

    # test CMU ACT-R Counting
    factory = cmu_factory.CmuActrFactory()
    model = factory.createModel()

    model.load("/tests/gym/cartpole.lisp")

    map = ['cart_pos', 'cart_vel', 'pole_pos', 'pole_vel']
    #model.perception.setObservationSpace(map)

    myenv = GymEnvironment("CartPole-v0") #TODO: pass registered gym.env_id??

    model.motor.next_action = 0

    myexp = Experiment(model, myenv, "CMU Gym Cartpole", map)
    myexp.start("cmu_cartpole") # appends to a log file
    myexp.run(10, 195) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    myexp.report("ACTR")
示例#13
0
def test_soar_counting():

    # test CMU ACT-R Counting

    factory = soar_factory.SoarFactory()
    #modelFile = model_switch.get(arch)  # TODO: load from experiment config
    model = factory.createModel()

    model.load("soar_agent.config")

    trials = 1
    steps = 11

    myenv = SimpleEnvironment("counting", maxsteps=steps)

    myexp = Experiment(model, myenv, "Soar Counting")
    myexp.start("soar_counting") # appends to a log file
    #myexp.run(12)
    myexp.run(trials, steps)
    myexp.stop() #closes log file
    myexp.report("Soar")
示例#14
0
def compare_beacons():


    task = "visual task"
    trials = 1
    steps = 195

    test_iv = "ps"
    iv_start = 0.05
    iv_end = 0.1
    iv_inc = 0.01

    prod_test_config_switch = {
        'ACTR': "/tests/gym/cartpole.lisp",
        'CCM': 'metaverse.architectures.actr_ccmsuite.cartpole_prods',
        'Soar': "/tests/cart-pole/soar_agent.config"
    }

    architectures = ['ACTR', 'CCM', 'Soar']
    architectures1 = ['ACTR']
    architectures2 = ['CCM']
    architectures3 = ['Soar']

    reporter = scribe.Reporter()
    experiments = []

    # for arch in architectures:
    #     factory = get_arch_factory(arch)
    #     model = factory.createModel()
    #     model_file = prod_test_config_switch.get(arch)
    #     model.load(model_file)
    #     #myenv = SimpleEnvironment(task)
    #     myenv = GymEnvironment("CartPole-v0")  # TODO: pass registered gym.env_id??
    #     model.motor.next_action = 0
    #     myexp = Experiment(model, myenv, task, map)
    #     # myexp.set_parameters(test_iv, iv_start, iv_end, iv_inc )
    #     myexp.start(task + "_" + arch)  # appends to a log file
    #     myexp.run(trials, steps)
    #     myexp.stop()  # closes log file
    #     outfile = myexp.report()
    #     experiments.append([arch, outfile])
    #     reporter.add_experiment(arch, outfile)

    # test CMU ACT-R Starcraft
    factory = cmu_factory.CmuActrFactory()
    model = factory.createModel()
    map = ['beacon_x', 'beacon_y']
    #model.perception.setObservationSpace(map)
    model.load("/tests/sc2/gym_sc2-beacons-simple.lisp")
    myenv = StarCraftEnvironment("SC2MoveToBeacon-v1")
    myexp = Experiment(model, myenv, "CMU StarCraft Beacons",map)
    model.motor.next_action = [-1, -1]
    myexp.start("cmu_beacons") # appends to a log file
    myexp.run(1, 100) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    outfile = myexp.report("ACTR")
    experiments.append(["ACTR", outfile])
    reporter.add_experiment("ACTR", outfile)

    # test CCM ACT-R Starcraft
    factory = ccm_factory.CcmFactory()
    model = factory.createModel()
    #model.perception = Sc2Perception()
    model.load('metaverse.architectures.actr_ccmsuite.beacon_prods')
    myenv = StarCraftEnvironment("SC2MoveToBeacon-v1")
    map = ['loc_x', 'loc_y']
    myexp = Experiment(model, myenv, "CCM StarCraft Beacons", map)
    model.motor.next_action = [-1,-1]  # TODO: change to random action space
    myexp.start("ccm_beacons") # appends to a log file
    myexp.run(1, 100) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    outfile = myexp.report("CCM") #TODO: get report type from agent factory
    experiments.append(["CCM", outfile])
    reporter.add_experiment("CCM", outfile)

    # test Soar Starcraft
    factory = soar_factory.SoarFactory()
    model = factory.createModel()
    model.load("starcraft2.soar","starcraft")
    myenv = StarCraftEnvironment("SC2MoveToBeacon-v1")
    myexp = Experiment(model, myenv, "Soar StarCraft Beacons")
    model.motor.next_action = [-1, -1]
    myexp.start("soar_beacons") # appends to a log file
    myexp.run(1, 100) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    outfile = myexp.report("Soar")
    experiments.append(["Soar", outfile])
    reporter.add_experiment("Soar", outfile)

    with open('last_beacons_experiments.yaml', 'w') as yaml_file:
        yaml.dump(experiments, yaml_file)

    reporter.gen_arch_frames()
    reporter.vision_activation_report(plot="series")
    reporter.motor_activation_report(plot="series")
示例#15
0
def compare_cartpole():


    task = "visual task"
    trials = 1
    steps = 195

    test_iv = "ps"
    iv_start = 0.05
    iv_end = 0.1
    iv_inc = 0.01

    prod_test_config_switch = {
        'ACTR': "/tests/gym/cartpole.lisp",
        'CCM': 'metaverse.architectures.actr_ccmsuite.cartpole_prods',
        'Soar': "/tests/cart-pole/soar_agent.config"
    }

    architectures = ['ACTR', 'CCM', 'Soar']
    architectures1 = ['ACTR']
    architectures2 = ['CCM']
    architectures3 = ['Soar']

    reporter = scribe.Reporter()
    experiments = []

    # for arch in architectures:
    #     factory = get_arch_factory(arch)
    #     model = factory.createModel()
    #     model_file = prod_test_config_switch.get(arch)
    #     model.load(model_file)
    #     #myenv = SimpleEnvironment(task)
    #     myenv = GymEnvironment("CartPole-v0")  # TODO: pass registered gym.env_id??
    #     model.motor.next_action = 0
    #     myexp = Experiment(model, myenv, task, map)
    #     # myexp.set_parameters(test_iv, iv_start, iv_end, iv_inc )
    #     myexp.start(task + "_" + arch)  # appends to a log file
    #     myexp.run(trials, steps)
    #     myexp.stop()  # closes log file
    #     outfile = myexp.report()
    #     experiments.append([arch, outfile])
    #     reporter.add_experiment(arch, outfile)

    # test CMU ACT-R Counting
    factory = cmu_factory.CmuActrFactory()
    model = factory.createModel()
    model.load("/tests/gym/cartpole.lisp")
    map = ['cart_pos', 'cart_vel', 'pole_pos', 'pole_vel']
    myenv = GymEnvironment("CartPole-v0") #TODO: pass registered gym.env_id??
    model.motor.next_action = 0
    myexp = Experiment(model, myenv, "CMU Gym Cartpole", map)
    myexp.start("cmu_cartpole") # appends to a log file
    myexp.run(5, 195) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    outfile = myexp.report("ACTR")
    experiments.append(["ACTR", outfile])
    reporter.add_experiment("ACTR", outfile)

    # test CMU ACT-R Counting
    factory = ccm_factory.CcmFactory()
    model = factory.createModel()
    model.load('metaverse.architectures.actr_ccmsuite.cartpole_prods')
    myenv = GymEnvironment("CartPole-v0") #TODO: pass registered gym.env_id??
    map = ['cart_pos', 'cart_vel', 'pole_pos', 'pole_vel']
    myexp = Experiment(model, myenv, "CCM Gym Cartpole", map)
    model.motor.next_action = 0 #TODO: change to random action space
    myexp.start("ccm_cartpole") # appends to a log file
    myexp.run(5, 195) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    outfile = myexp.report("CCM") #TODO: get report type from agent factory
    experiments.append(["CCM", outfile])
    reporter.add_experiment("CCM", outfile)

    # test CMU ACT-R Counting
    factory = soar_factory.SoarFactory()
    model = factory.createModel()
    model.load("cart-pole.soar","cart-pole")
    myenv = GymEnvironment("CartPole-v0") #TODO: pass registered gym.env_id??
    myexp = Experiment(model, myenv, "Soar Gym Cartpole")
    model.perception.create_input_wmes
    myexp.start("soar_cartpole") # appends to a log file
    myexp.run(5, 195) #if no cycles provided, env determines end state
    myexp.stop() #closes log file
    outfile =  myexp.report("Soar")
    experiments.append(["Soar", outfile])
    reporter.add_experiment("Soar", outfile)

    with open('last_cartpole_experiments.yaml', 'w') as yaml_file:
        yaml.dump(experiments, yaml_file)

    reporter.gen_arch_frames()
    reporter.vision_activation_report(plot="series")
    reporter.motor_activation_report(plot="series")