def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/projects/downward/benchmarks')
    suite = [
        'airport',
        'depot',
        'driverlog',
        'elevators-opt08-strips',
        'elevators-opt11-strips',
        'freecell',
        'hiking-opt14-strips',
        'pipesworld-tankage',
    ]

    configs = {
        IssueConfig(
            'astar-blind-ssec',
            ['--search', 'astar(blind(), pruning=stubborn_sets_ec())']),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()

    exp()
Beispiel #2
0
def main(revisions=None):
    benchmarks_dir=os.path.expanduser('~/projects/downward/benchmarks')
    suite=suites.suite_optimal_strips()

    configs = {
        IssueConfig('astar-blind', ['--search', 'astar(blind())']),
        IssueConfig('astar-blind-sss', ['--search', 'astar(blind(), pruning=stubborn_sets_simple())']),
        IssueConfig('astar-blind-ssec', ['--search', 'astar(blind(), pruning=stubborn_sets_ec())']),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()

    if matplotlib:
        for attribute in ["memory", "total_time"]:
            for config in configs:
                exp.add_report(
                    RelativeScatterPlotReport(
                        attributes=[attribute],
                        filter_config=["{}-{}".format(rev, config.nick) for rev in revisions],
                        get_category=lambda run1, run2: run1.get("domain"),
                    ),
                    outfile="{}-{}-{}.png".format(exp.name, attribute, config.nick)
                )

    exp()
Beispiel #3
0
def main(revisions=None):
    suite = suites.suite_optimal_with_ipc11()

    configs = {
        IssueConfig('astar-blind', ['--search', 'astar(blind())'],
                    driver_options=['--search-time-limit', '5m']),
    }

    exp = IssueExperiment(
        benchmarks_dir=os.path.expanduser('~/projects/downward/benchmarks'),
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()

    attribute = "total_time"
    config_nick = 'astar-blind'
    exp.add_report(
        RelativeScatterPlotReport(
            attributes=[attribute],
            filter_config=["{}-{}".format(rev, config_nick) for rev in revisions],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
        outfile="{}-{}-{}.png".format(exp.name, attribute, config_nick)
    )

    exp()
Beispiel #4
0
def main(revisions=None):
    suite = suites.suite_optimal_with_ipc11()

    configs = {
        IssueConfig('rl-b50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_linear(variable_order=reverse_level),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('cggl-b50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_linear(variable_order=cg_goal_level),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('dfp-b50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('rl-ginf', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_linear(variable_order=reverse_level),shrink_strategy=shrink_bisimulation(max_states=infinity,threshold=1,greedy=true),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('cggl-ginf', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_linear(variable_order=cg_goal_level),shrink_strategy=shrink_bisimulation(max_states=infinity,threshold=1,greedy=true),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('dfp-ginf', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(max_states=infinity,threshold=1,greedy=true),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('rl-f50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_linear(variable_order=reverse_level),shrink_strategy=shrink_fh(max_states=50000),label_reduction=exact(before_shrinking=false,before_merging=true)))']),
        IssueConfig('cggl-f50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_linear(variable_order=cg_goal_level),shrink_strategy=shrink_fh(max_states=50000),label_reduction=exact(before_shrinking=false,before_merging=true)))']),
        IssueConfig('dfp-f50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_fh(max_states=50000),label_reduction=exact(before_shrinking=false,before_merging=true)))']),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    search_out_of_memory = Attribute('search_out_of_memory', absolute=True, min_wins=True)
    search_out_of_time = Attribute('search_out_of_time', absolute=True, min_wins=True)
    perfect_heuristic = Attribute('perfect_heuristic', absolute=True, min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability', absolute=True, min_wins=False)

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time', absolute=False, min_wins=True, functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed', absolute=True, min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory', absolute=True, min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    ms_memory_delta = Attribute('ms_memory_delta', absolute=False, min_wins=True)

    extra_attributes = [
        search_out_of_memory,
        search_out_of_time,
        perfect_heuristic,
        proved_unsolvability,

        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        ms_memory_delta,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_comparison_table_step()

    exp()
Beispiel #5
0
def main(revisions=None):
    suite = SUITE_SAT14

    configs = [
        IssueConfig("astar_goalcount", ["--search", "astar(goalcount)"]),
        IssueConfig("eager_greedy_ff", [
            "--heuristic", "h=ff()", "--search", "eager_greedy(h, preferred=h)"
        ]),
        IssueConfig("eager_greedy_add", [
            "--heuristic", "h=add()", "--search",
            "eager_greedy(h, preferred=h)"
        ]),
        IssueConfig("eager_greedy_cg", [
            "--heuristic", "h=cg()", "--search", "eager_greedy(h, preferred=h)"
        ]),
        IssueConfig("eager_greedy_cea", [
            "--heuristic", "h=cea()", "--search",
            "eager_greedy(h, preferred=h)"
        ]),
        IssueConfig("lazy_greedy_ff", [
            "--heuristic", "h=ff()", "--search", "lazy_greedy(h, preferred=h)"
        ]),
        IssueConfig("lazy_greedy_add", [
            "--heuristic", "h=add()", "--search", "lazy_greedy(h, preferred=h)"
        ]),
        IssueConfig("lazy_greedy_cg", [
            "--heuristic", "h=cg()", "--search", "lazy_greedy(h, preferred=h)"
        ]),
        IssueConfig("seq_sat_lama_2011", [],
                    driver_options=["--alias", "seq-sat-lama-2011"]),
        IssueConfig("seq_sat_fdss_1", [],
                    driver_options=["--alias", "seq-sat-fdss-1"]),
        IssueConfig("seq_sat_fdss_2", [],
                    driver_options=["--alias", "seq-sat-fdss-2"]),
    ]

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=[
            #'cavediving-sat14-adl:testing01_easy.pddl',
            #'childsnack-sat14-strips:child-snack_pfile05.pddl',
            #'citycar-sat14-adl:p3-2-2-0-1.pddl',
            #'ged-sat14-strips:d-3-6.pddl',
            'hiking-sat14-strips:ptesting-1-2-7.pddl',
            #'maintenance-sat14-adl:maintenance-1-3-060-180-5-000.pddl',
            #'tetris-sat14-strips:p020.pddl',
            #'thoughtful-sat14-strips:bootstrap-typed-01.pddl',
            #'transport-sat14-strips:p01.pddl',
        ],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_absolute_report_step()

    exp()
Beispiel #6
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/projects/downward/benchmarks')
    suite = [
        'assembly',
        'miconic-fulladl',
        'openstacks',
        'openstacks-sat08-adl',
        'optical-telegraphs',
        'philosophers',
        'psr-large',
        'psr-middle',
        'trucks',
    ]

    configs = {
        IssueConfig('lazy-greedy-ff', [
            '--heuristic', 'h=ff()', '--search', 'lazy_greedy(h, preferred=h)'
        ]),
        IssueConfig('lama-first', [], driver_options=['--alias',
                                                      'lama-first']),
        IssueConfig('eager_greedy_cg', [
            '--heuristic', 'h=cg()', '--search', 'eager_greedy(h, preferred=h)'
        ]),
        IssueConfig('eager_greedy_cea', [
            '--heuristic', 'h=cea()', '--search',
            'eager_greedy(h, preferred=h)'
        ]),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()

    if matplotlib:
        for attribute in ["memory", "total_time"]:
            for config in configs:
                exp.add_report(RelativeScatterPlotReport(
                    attributes=[attribute],
                    filter_config=[
                        "{}-{}".format(rev, config.nick) for rev in revisions
                    ],
                    get_category=lambda run1, run2: run1.get("domain"),
                ),
                               outfile="{}-{}-{}.png".format(
                                   exp.name, attribute, config.nick))

    exp()
Beispiel #7
0
def main(revisions=None):
    suite = suites.suite_optimal_with_ipc11()

    configs = {
        IssueConfig('astar-blind', ['--search', 'astar(blind())']),
        IssueConfig('astar-lmcut', ['--search', 'astar(lmcut())']),
        IssueConfig('astar-ipdb', ['--search', 'astar(ipdb())']),
        IssueConfig('astar-cegar-original',
                    ['--search', 'astar(cegar(subtasks=[original()]))']),
        IssueConfig(
            'astar-cegar-lm-goals',
            ['--search', 'astar(cegar(subtasks=[landmarks(),goals()]))']),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()

    for config in configs:
        exp.add_report(RelativeScatterPlotReport(
            attributes=["memory"],
            filter_config=[
                "issue627-base-%s" % config.nick,
                "issue627-v2-%s" % config.nick
            ],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
                       outfile='issue627_base_v2_memory_%s.png' % config.nick)

        exp.add_report(RelativeScatterPlotReport(
            attributes=["total_time"],
            filter_config=[
                "issue627-base-%s" % config.nick,
                "issue627-v2-%s" % config.nick
            ],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
                       outfile='issue627_base_v2_total_time_%s.png' %
                       config.nick)

    exp()
Beispiel #8
0
def main(revisions=None):
    suite = suites.suite_optimal_with_ipc11()

    configs = {
        IssueConfig('astar-lmcut', ['--search', 'astar(lmcut())']),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()
    
    exp.add_report(
        RelativeScatterPlotReport(
            attributes=["memory"],
            filter_config=["issue499-base-astar-lmcut", "issue499-v1-astar-lmcut"],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
        outfile='issue499_base_v1_memory.png'
    )

    exp.add_report(
        RelativeScatterPlotReport(
            attributes=["total_time"],
            filter_config=["issue499-base-astar-lmcut", "issue499-v1-astar-lmcut"],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
        outfile='issue499_base_v1_total_time.png'
    )

    exp.add_report(
        RelativeScatterPlotReport(
            attributes=["expansions_until_last_jump"],
            filter_config=["issue499-base-astar-lmcut", "issue499-v1-astar-lmcut"],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
        outfile='issue499_base_v1_expansions_until_last_jump.png'
    )
    
    exp()
Beispiel #9
0
def main(revisions=None):
    suite = suites.suite_optimal_with_ipc11()

    configs = {
        IssueConfig('astar-blind', ['--search', 'astar(blind())']),
        IssueConfig('astar-lmcut', ['--search', 'astar(lmcut())']),
        IssueConfig('astar-ipdb', ['--search', 'astar(ipdb())']),
        IssueConfig('astar-seq_opt_bjolp', [
            '--search',
            'astar(lmcount(lm_merged([lm_rhw(),lm_hm(m=1)]),admissible=true), mpd=true)'
        ]),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()

    for config in configs:
        nick = config.nick
        exp.add_report(RelativeScatterPlotReport(
            attributes=["memory"],
            filter_config=["issue416-base-%s" % nick,
                           "issue416-v1-%s" % nick],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
                       outfile='issue416_base_v1_memory_%s.png' % nick)

        exp.add_report(RelativeScatterPlotReport(
            attributes=["total_time"],
            filter_config=["issue416-base-%s" % nick,
                           "issue416-v1-%s" % nick],
            get_category=lambda run1, run2: run1.get("domain"),
        ),
                       outfile='issue416_base_v1_total_time_%s.png' % nick)

    exp()
Beispiel #10
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/repos/downward/benchmarks')
    suite = suites.suite_all()

    configs = {
        IssueConfig('blind', ['--search', 'astar(blind())'],
                    driver_options=['--search-time-limit', '60s']),
        IssueConfig('lama-first', [],
                    driver_options=[
                        '--alias', 'lama-first', '--search-time-limit', '60s'
                    ]),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl', 'gripper:prob01.pddl'],
        processes=4,
        email='*****@*****.**',
    )

    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.append('translator_*')

    exp.add_comparison_table_step()

    if matplotlib:
        for attribute in ["memory", "total_time"]:
            for config in configs:
                exp.add_report(RelativeScatterPlotReport(
                    attributes=[attribute],
                    filter_config=[
                        "{}-{}".format(rev, config.nick) for rev in revisions
                    ],
                    get_category=lambda run1, run2: run1.get("domain"),
                ),
                               outfile="{}-{}-{}.png".format(
                                   exp.name, attribute, config.nick))

    exp()
Beispiel #11
0
def main(revisions=None):
    suite = suites.suite_satisficing_with_ipc11()

    configs = {
        IssueConfig('seq_sat_lama_2011', [], driver_options=['--alias', 'seq-sat-lama-2011']),
        IssueConfig('lama_first', [], driver_options=['--alias', 'lama-first']),
        IssueConfig('ehc_lm_zhu', ['--search', 'ehc(lmcount(lm_zg()))']),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )

    exp.add_comparison_table_step()
    
    for config in configs:
        nick = config.nick
        exp.add_report(
            RelativeScatterPlotReport(
                attributes=["memory"],
                filter_config=["issue416-base-%s" % nick, "issue416-v1-%s" % nick],
                get_category=lambda run1, run2: run1.get("domain"),
            ),
            outfile='issue416_base_v1_memory_%s.png' % nick
        )
    
        exp.add_report(
            RelativeScatterPlotReport(
                attributes=["total_time"],
                filter_config=["issue416-base-%s" % nick, "issue416-v1-%s" % nick],
                get_category=lambda run1, run2: run1.get("domain"),
            ),
            outfile='issue416_base_v1_total_time_%s.png' % nick
        )

    exp()
Beispiel #12
0
def generate_experiments(configs):
    SUITE = [
        "gripper:prob01.pddl", "blocks:probBLOCKS-5-0.pddl",
        "visitall-sat11-strips:problem12.pddl", "airport:p01-airport1-p1.pddl"
    ]

    ENVIRONMENT = BaselSlurmEnvironment(email="*****@*****.**",
                                        export=EXPORTS)

    if common_setup.is_test_run():
        SUITE = IssueExperiment.DEFAULT_TEST_SUITE
        ENVIRONMENT = LocalEnvironment(processes=2)

    exp = IssueExperiment(
        revisions=REVISIONS,
        configs=configs,
        environment=ENVIRONMENT,
    )
    exp.add_suite(BENCHMARKS_DIR, SUITE)
    exp.add_absolute_report_step()
    exp.run_steps()
Beispiel #13
0
from common_setup import IssueConfig, IssueExperiment
from relativescatter import RelativeScatterPlotReport
import suites


configs = [
    IssueConfig(
        "cegar-10K-original",
        ["--search", "astar(cegar(subtasks=[original()],max_states=10000,max_time=infinity))"]),
]
revisions = ["issue632-base", "issue632-v1"]

exp = IssueExperiment(
    revisions=revisions,
    configs=configs,
    suite=suites.suite_optimal_with_ipc11(),
    test_suite=["depot:pfile1"],
    email="*****@*****.**",
)

exp.add_comparison_table_step()

for attribute in ["memory", "total_time"]:
    for config in configs:
        exp.add_report(
            RelativeScatterPlotReport(
                attributes=[attribute],
                filter_config=["{}-{}".format(rev, config.nick) for rev in revisions],
                get_category=lambda run1, run2: run1.get("domain"),
            ),
            outfile="{}-{}-{}.png".format(exp.name, attribute, config.nick)
Beispiel #14
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/repos/downward/benchmarks')
    suite = suites.suite_optimal_strips()

    configs = {
        IssueConfig('dfp-reg-otn-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=regular,product_ts_order=old_to_new,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-reg-nto-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=regular,product_ts_order=new_to_old,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-reg-rnd-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=regular,product_ts_order=random,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-inv-otn-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=inverse,product_ts_order=old_to_new,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-inv-nto-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=inverse,product_ts_order=new_to_old,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-inv-rnd-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=inverse,product_ts_order=random,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-rnd-otn-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=random,product_ts_order=old_to_new,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-rnd-nto-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=random,product_ts_order=new_to_old,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-rnd-rnd-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=random,product_ts_order=random,atomic_before_product=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-reg-otn-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=regular,product_ts_order=old_to_new,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-reg-nto-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=regular,product_ts_order=new_to_old,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-reg-rnd-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=regular,product_ts_order=random,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-inv-otn-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=inverse,product_ts_order=old_to_new,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-inv-nto-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=inverse,product_ts_order=new_to_old,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-inv-rnd-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=inverse,product_ts_order=random,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-rnd-otn-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=random,product_ts_order=old_to_new,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-rnd-nto-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=random,product_ts_order=new_to_old,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-rnd-rnd-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(atomic_ts_order=random,product_ts_order=random,atomic_before_product=false),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
        IssueConfig('dfp-allrnd-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp(randomized_order=true),shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))'
        ]),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    perfect_heuristic = Attribute('perfect_heuristic',
                                  absolute=True,
                                  min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability',
                                     absolute=True,
                                     min_wins=False)
    actual_search_time = Attribute('actual_search_time',
                                   absolute=False,
                                   min_wins=True,
                                   functions=[gm])

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time',
                                     absolute=False,
                                     min_wins=True,
                                     functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed',
                                           absolute=True,
                                           min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory',
                                 absolute=True,
                                 min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    search_out_of_memory = Attribute('search_out_of_memory',
                                     absolute=True,
                                     min_wins=True)
    search_out_of_time = Attribute('search_out_of_time',
                                   absolute=True,
                                   min_wins=True)

    extra_attributes = [
        perfect_heuristic,
        proved_unsolvability,
        actual_search_time,
        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        search_out_of_memory,
        search_out_of_time,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_absolute_report_step()

    exp()
Beispiel #15
0
import common_setup
from common_setup import IssueConfig, IssueExperiment

DIR = os.path.dirname(os.path.abspath(__file__))
BENCHMARKS_DIR = os.environ["DOWNWARD_BENCHMARKS"]

SUITE = common_setup.DEFAULT_SATISFICING_SUITE
ENVIRONMENT = MaiaEnvironment(priority=0, email="*****@*****.**")

if common_setup.is_test_run():
    SUITE = IssueExperiment.DEFAULT_TEST_SUITE
    ENVIRONMENT = LocalEnvironment(processes=1)

exp = IssueExperiment(
    revisions=[],
    configs=[],
    environment=ENVIRONMENT,
)

compared_algorithms = []
for search in ["eager_greedy", "lazy_greedy"]:
    for h1, h2 in itertools.permutations(["cea", "cg", "ff"], 2):
        rev = "issue714-base"
        config_nick = "-".join([search, h1, h2])
        algo1 = common_setup.get_algo_nick(rev, config_nick)
        exp.add_algorithm(
            algo1,
            common_setup.get_repo_base(),
            rev, [
                "--heuristic", "h{h1}={h1}".format(**locals()), "--heuristic",
                "h{h2}={h2}".format(**locals()), "--search",
Beispiel #16
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

from downward import suites

from common_setup import IssueConfig, IssueExperiment

REVS = ["issue592-base", "issue592-v1"]
SUITE = suites.suite_satisficing()

CONFIGS = [
    IssueConfig("seq-sat-lama-2011", [],
                driver_options=["--alias", "seq-sat-lama-2011"]),
    IssueConfig("lama-first", [], driver_options=["--alias", "lama-first"]),
]

exp = IssueExperiment(revisions=REVS,
                      configs=CONFIGS,
                      suite=SUITE,
                      email="*****@*****.**")

exp.add_comparison_table_step()

exp()
Beispiel #17
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/repos/downward/benchmarks')
    suite = suites.suite_optimal_strips()

    configs = {
        IssueConfig('sbf-miasm-rl-otn-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=reverse_level,product_ts_order=old_to_new,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rl-nto-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=reverse_level,product_ts_order=new_to_old,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rl-rnd-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=reverse_level,product_ts_order=random,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-l-otn-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=level,product_ts_order=old_to_new,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-l-nto-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=level,product_ts_order=new_to_old,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-l-rnd-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=level,product_ts_order=random,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rnd-otn-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=random,product_ts_order=old_to_new,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rnd-nto-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=random,product_ts_order=new_to_old,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rnd-rnd-abp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=random,product_ts_order=random,atomic_before_product=true)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rl-otn-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=reverse_level,product_ts_order=old_to_new,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rl-nto-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=reverse_level,product_ts_order=new_to_old,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rl-rnd-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=reverse_level,product_ts_order=random,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-l-otn-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=level,product_ts_order=old_to_new,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-l-nto-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=level,product_ts_order=new_to_old,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-l-rnd-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=level,product_ts_order=random,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rnd-otn-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=random,product_ts_order=old_to_new,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rnd-nto-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=random,product_ts_order=new_to_old,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-rnd-rnd-pba-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),total_order(atomic_ts_order=random,product_ts_order=random,atomic_before_product=false)])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('sbf-miasm-allrnd-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_stateless(merge_selector=score_based_filtering(scoring_functions=[miasm(shrink_strategy=shrink_bisimulation(greedy=false),max_states=50000,threshold_before_merge=1),single_random])),shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    perfect_heuristic = Attribute('perfect_heuristic',
                                  absolute=True,
                                  min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability',
                                     absolute=True,
                                     min_wins=False)
    actual_search_time = Attribute('actual_search_time',
                                   absolute=False,
                                   min_wins=True,
                                   functions=[gm])

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time',
                                     absolute=False,
                                     min_wins=True,
                                     functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed',
                                           absolute=True,
                                           min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory',
                                 absolute=True,
                                 min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    search_out_of_memory = Attribute('search_out_of_memory',
                                     absolute=True,
                                     min_wins=True)
    search_out_of_time = Attribute('search_out_of_time',
                                   absolute=True,
                                   min_wins=True)

    extra_attributes = [
        perfect_heuristic,
        proved_unsolvability,
        actual_search_time,
        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        search_out_of_memory,
        search_out_of_time,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_absolute_report_step(
        name='issue668-v1-abp',
        filter_config=[
            '%s-sbf-miasm-rl-otn-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rl-nto-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rl-rnd-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-otn-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-nto-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-rnd-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-otn-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-nto-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-rnd-abp-b50k' % 'issue668-v1',
        ])
    exp.add_absolute_report_step(
        name='issue668-v1-pba',
        filter_config=[
            '%s-sbf-miasm-rl-otn-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rl-nto-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rl-rnd-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-otn-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-nto-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-rnd-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-otn-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-nto-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-rnd-pba-b50k' % 'issue668-v1',
        ])
    exp.add_absolute_report_step(
        name='issue668-v1-paper',
        filter_config=[
            '%s-sbf-miasm-rl-nto-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-nto-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-nto-abp-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rl-nto-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-l-nto-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-rnd-nto-pba-b50k' % 'issue668-v1',
            '%s-sbf-miasm-allrnd-b50k' % 'issue668-v1',
        ])

    #if matplotlib:
    #for attribute in ["memory", "total_time"]:
    #for config in configs:
    #exp.add_report(
    #RelativeScatterPlotReport(
    #attributes=[attribute],
    #filter_config=["{}-{}".format(rev, config.nick) for rev in revisions],
    #get_category=lambda run1, run2: run1.get("domain"),
    #),
    #outfile="{}-{}-{}.png".format(exp.name, attribute, config.nick)
    #)

    exp()
Beispiel #18
0
heuristics = [
    "{}(cache_estimates=false)".format(h)
    for h in ("pdb", "cpdbs", "diverse_potentials", "all_states_potential",
              "initial_state_potential", "sample_based_potentials")
]

max_eval = "max([{}])".format(",".join(heuristics))
ipc_max = "ipc_max([{}],cache_estimates=false)".format(",".join(heuristics))

configs = [
    IssueConfig(name, ["--search", "astar({})".format(eval_)])
    for name, eval_ in [("max", max_eval), ("ipc_max", ipc_max)]
]
revision = "1e84d77e4e37"

exp = IssueExperiment(
    revisions=[revision],
    configs=configs,
    suite=suites.suite_optimal_strips(),
    test_suite=["depot:pfile1"],
    email="*****@*****.**",
)

exp.add_absolute_report_step()
exp.add_report(common_setup.CompareConfigsReport(
    [(revision + "-" + "ipc_max", revision + "-" + "max")],
    attributes=IssueExperiment.DEFAULT_TABLE_ATTRIBUTES),
               name=common_setup.get_experiment_name() + "-compare")

exp()
Beispiel #19
0
    # Test sampling
    IssueConfig('ipdb', ['--search', 'astar(ipdb)']),
    # Test genetic pattern generation
    IssueConfig('genetic', ['--search', 'astar(zopdbs(patterns=genetic))']),
    # Test cegar
    IssueConfig(
        "cegar-10K-goals-randomorder",
        ["--search", "astar(cegar(subtasks=[goals(order=random)],max_states=10000,max_time=infinity))"]),
    IssueConfig(
        "cegar-10K-original-randomorder",
        ["--search", "astar(cegar(subtasks=[original],max_states=10000,max_time=infinity,pick=random))"]),
]

exp = IssueExperiment(
    revisions=REVS,
    configs=CONFIGS,
    suite=SUITE,
    email="*****@*****.**"
)

exp.add_fetcher('data/issue648-v1-opt-test', parsers=['parser.py'])

# planner outcome attributes
perfect_heuristic = Attribute('perfect_heuristic', absolute=True, min_wins=False)
proved_unsolvability = Attribute('proved_unsolvability', absolute=True, min_wins=False)
out_of_memory = Attribute('out_of_memory', absolute=True, min_wins=True)
out_of_time = Attribute('out_of_time', absolute=True, min_wins=True)

extra_attributes = [
    perfect_heuristic,
    proved_unsolvability,
    out_of_memory,
Beispiel #20
0
def main(revisions=None):
    benchmarks_dir = os.environ["DOWNWARD_BENCHMARKS"]
    suite = [
        "agricola-sat18-strips", "airport", "barman-sat11-strips",
        "barman-sat14-strips", "blocks", "childsnack-sat14-strips",
        "data-network-sat18-strips", "depot", "driverlog",
        "elevators-sat08-strips", "elevators-sat11-strips",
        "floortile-sat11-strips", "floortile-sat14-strips", "freecell",
        "ged-sat14-strips", "grid", "gripper", "hiking-sat14-strips",
        "logistics00", "logistics98", "miconic", "movie", "mprime", "mystery",
        "nomystery-sat11-strips", "openstacks-sat08-strips",
        "openstacks-sat11-strips", "openstacks-sat14-strips",
        "openstacks-strips", "organic-synthesis-sat18-strips",
        "organic-synthesis-split-sat18-strips", "parcprinter-08-strips",
        "parcprinter-sat11-strips", "parking-sat11-strips",
        "parking-sat14-strips", "pathways", "pegsol-08-strips",
        "pegsol-sat11-strips", "pipesworld-notankage", "pipesworld-tankage",
        "psr-small", "rovers", "satellite", "scanalyzer-08-strips",
        "scanalyzer-sat11-strips", "snake-sat18-strips",
        "sokoban-sat08-strips", "sokoban-sat11-strips", "spider-sat18-strips",
        "storage", "termes-sat18-strips", "tetris-sat14-strips",
        "thoughtful-sat14-strips", "tidybot-sat11-strips", "tpp",
        "transport-sat08-strips", "transport-sat11-strips",
        "transport-sat14-strips", "trucks-strips", "visitall-sat11-strips",
        "visitall-sat14-strips", "woodworking-sat08-strips",
        "woodworking-sat11-strips", "zenotravel"
    ]
    # suite = ["elevators-sat08-strips:p01.pddl"]
    environment = LocalEnvironment(processes=48)

    BUILD_OPTIONS = ["--build", "release64"]
    DRIVER_OPTIONS = [
        "--transform-task", "builds/h2-mutexes/bin/preprocess",
        "--overall-time-limit", "30m", "--overall-memory-limit", "4096M",
        "--alias", "seq-sat-fdss-2018"
    ]

    configs = {
        IssueConfig("fdss", [],
                    build_options=BUILD_OPTIONS,
                    driver_options=DRIVER_OPTIONS)
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        environment=environment,
    )
    exp.add_suite(benchmarks_dir, suite)

    #exp.add_parser(exp.LAB_STATIC_PROPERTIES_PARSER)
    #exp.add_parser(exp.LAB_DRIVER_PARSER)
    #exp.add_parser(exp.EXITCODE_PARSER)
    #exp.add_parser(exp.TRANSLATOR_PARSER)
    exp.add_parser(exp.SINGLE_SEARCH_PARSER)
    #exp.add_parser(exp.PLANNER_PARSER)

    attributes = exp.DEFAULT_TABLE_ATTRIBUTES

    exp.add_step('build', exp.build)
    exp.add_step('start', exp.start_runs)
    exp.add_fetcher(name='fetch')

    # exp.add_comparison_table_step(attributes=attributes)

    exp.add_absolute_report_step(attributes=attributes)

    exp.run_steps()
Beispiel #21
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/repos/downward/benchmarks')
    suite = suites.suite_optimal_strips()

    configs = {
        IssueConfig('dfp-b50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=50000,threshold_before_merge=1))'
        ]),
        IssueConfig('dfp-ginf', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(greedy=true),label_reduction=exact(before_shrinking=true,before_merging=false),max_states=infinity,threshold_before_merge=1))'
        ]),
        IssueConfig('dfp-f50k', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_fh(),label_reduction=exact(before_shrinking=false,before_merging=true),max_states=50000))'
        ]),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    perfect_heuristic = Attribute('perfect_heuristic',
                                  absolute=True,
                                  min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability',
                                     absolute=True,
                                     min_wins=False)
    actual_search_time = Attribute('actual_search_time',
                                   absolute=False,
                                   min_wins=True,
                                   functions=[gm])

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time',
                                     absolute=False,
                                     min_wins=True,
                                     functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed',
                                           absolute=True,
                                           min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory',
                                 absolute=True,
                                 min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    search_out_of_memory = Attribute('search_out_of_memory',
                                     absolute=True,
                                     min_wins=True)
    search_out_of_time = Attribute('search_out_of_time',
                                   absolute=True,
                                   min_wins=True)

    extra_attributes = [
        perfect_heuristic,
        proved_unsolvability,
        actual_search_time,
        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        search_out_of_memory,
        search_out_of_time,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_comparison_table_step()

    if matplotlib:
        for attribute in ["memory", "total_time"]:
            for config in configs:
                exp.add_report(RelativeScatterPlotReport(
                    attributes=[attribute],
                    filter_config=[
                        "{}-{}".format(rev, config.nick) for rev in revisions
                    ],
                    get_category=lambda run1, run2: run1.get("domain"),
                ),
                               outfile="{}-{}-{}.png".format(
                                   exp.name, attribute, config.nick))

    exp()
Beispiel #22
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/projects/downward/benchmarks')
    suite = suites.suite_optimal()

    configs = []

    for osi in ['103', '107']:
        for cplex in ['1251', '1263']:
            if osi == '107' and cplex == '1251':
                # incompatible versions
                continue
            configs += [
                IssueConfig('astar_initial_state_potential_OSI%s_CPLEX%s' %
                            (osi, cplex),
                            ['--search', 'astar(initial_state_potential())'],
                            build_options=[
                                'issue680_OSI%s_CPLEX%s' % (osi, cplex)
                            ],
                            driver_options=[
                                '--build=issue680_OSI%s_CPLEX%s' % (osi, cplex)
                            ]),
                IssueConfig('astar_sample_based_potentials_OSI%s_CPLEX%s' %
                            (osi, cplex),
                            ['--search', 'astar(sample_based_potentials())'],
                            build_options=[
                                'issue680_OSI%s_CPLEX%s' % (osi, cplex)
                            ],
                            driver_options=[
                                '--build=issue680_OSI%s_CPLEX%s' % (osi, cplex)
                            ]),
                IssueConfig(
                    'astar_all_states_potential_OSI%s_CPLEX%s' % (osi, cplex),
                    ['--search', 'astar(all_states_potential())'],
                    build_options=['issue680_OSI%s_CPLEX%s' % (osi, cplex)],
                    driver_options=[
                        '--build=issue680_OSI%s_CPLEX%s' % (osi, cplex)
                    ]),
            ]

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl', 'gripper:prob01.pddl'],
        processes=4,
        email='*****@*****.**',
    )

    attributes = exp.DEFAULT_TABLE_ATTRIBUTES

    domains = suites.suite_optimal_strips()

    exp.add_absolute_report_step(filter_domain=domains)

    for attribute in ["memory", "total_time"]:
        for config in [
                'astar_initial_state_potential',
                'astar_sample_based_potentials', 'astar_all_states_potential'
        ]:
            exp.add_report(RelativeScatterPlotReport(
                attributes=[attribute],
                filter_config=[
                    "{}-{}_OSI{}_CPLEX1263".format(revisions[0], config, osi)
                    for osi in ['103', '107']
                ],
                filter_domain=domains,
                get_category=lambda run1, run2: run1.get("domain"),
            ),
                           outfile="{}-{}-{}_CPLEX1263.png".format(
                               exp.name, attribute, config))
            exp.add_report(RelativeScatterPlotReport(
                attributes=[attribute],
                filter_config=[
                    "{}-{}_OSI103_CPLEX{}".format(revisions[0], config, cplex)
                    for cplex in ['1251', '1263']
                ],
                filter_domain=domains,
                get_category=lambda run1, run2: run1.get("domain"),
            ),
                           outfile="{}-{}-{}_OSI103.png".format(
                               exp.name, attribute, config))

    exp()
Beispiel #23
0
            "hlm,hff=lm_ff_syn(lm_rhw(reasonable_orders=true,lm_cost_type=one,cost_type=one))",
        "--search",
            "lazy(alt([single(hff),single(hff, pref_only=true), single(hlm), single(hlm, pref_only=true)]),"
            "preferred=[hff,hlm],cost_type=one)"
        ]),
    IssueConfig("lama-first-types-ff-g", [
        "--heuristic",
            "hlm,hff=lm_ff_syn(lm_rhw(reasonable_orders=true,lm_cost_type=one,cost_type=one))",
        "--search",
            "lazy(alt([single(hff),single(hff, pref_only=true), single(hlm), single(hlm, pref_only=true), type_based([hff, g()])]),"
            "preferred=[hff,hlm],cost_type=one)"
        ]),

]

exp = IssueExperiment(
    revisions=REVS,
    configs=CONFIGS,
    suite=SUITE,
    email="*****@*****.**"
)

# Absolute report commented out because a comparison table is more useful for this issue.
# (It's still in this file because someone might want to use it as a basis.)
# Scatter plots commented out for now because I have no usable matplotlib available.
# exp.add_absolute_report_step()
exp.add_comparison_table_step()
# exp.add_scatter_plot_step()

exp()
Beispiel #24
0
def main(revisions=None):
    suite = suites.suite_optimal_strips()
    suite.extend(suites.suite_ipc14_opt_strips())

    # only DFP configs
    configs = {
        # label reduction with seed 2016
        IssueConfig('dfp-b50k-lrs2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false,random_seed=2016)))'
        ]),
        IssueConfig('dfp-ginf-lrs2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(max_states=infinity,threshold=1,greedy=true),label_reduction=exact(before_shrinking=true,before_merging=false,random_seed=2016)))'
        ]),
        IssueConfig('dfp-f50k-lrs2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_fh(max_states=50000),label_reduction=exact(before_shrinking=false,before_merging=true,random_seed=2016)))'
        ]),

        # shrink fh/rnd with seed 2016
        IssueConfig('dfp-f50ks2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_fh(max_states=50000,random_seed=2016),label_reduction=exact(before_shrinking=false,before_merging=true)))'
        ]),
        IssueConfig('dfp-rnd50ks2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_random(max_states=50000,random_seed=2016),label_reduction=exact(before_shrinking=false,before_merging=true)))'
        ]),

        # shrink fh/rnd with seed 2016 and with label reduction with seed 2016
        IssueConfig('dfp-f50ks2016-lrs2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_fh(max_states=50000,random_seed=2016),label_reduction=exact(before_shrinking=false,before_merging=true,random_seed=2016)))'
        ]),
        IssueConfig('dfp-rnd50ks2016-lrs2016', [
            '--search',
            'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_random(max_states=50000,random_seed=2016),label_reduction=exact(before_shrinking=false,before_merging=true,random_seed=2016)))'
        ]),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    perfect_heuristic = Attribute('perfect_heuristic',
                                  absolute=True,
                                  min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability',
                                     absolute=True,
                                     min_wins=False)
    actual_search_time = Attribute('actual_search_time',
                                   absolute=False,
                                   min_wins=True,
                                   functions=[gm])

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time',
                                     absolute=False,
                                     min_wins=True,
                                     functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed',
                                           absolute=True,
                                           min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory',
                                 absolute=True,
                                 min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    search_out_of_memory = Attribute('search_out_of_memory',
                                     absolute=True,
                                     min_wins=True)
    search_out_of_time = Attribute('search_out_of_time',
                                   absolute=True,
                                   min_wins=True)

    extra_attributes = [
        perfect_heuristic,
        proved_unsolvability,
        actual_search_time,
        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        search_out_of_memory,
        search_out_of_time,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_absolute_report_step()

    exp()
def main(revisions=None):
    benchmarks_dir = os.environ["DOWNWARD_BENCHMARKS_IPC2018"]
    # optimal union satisficing
    suite = []
    #suite.extend(['briefcaseworld', 'cavediving-14-adl', 'citycar-sat14-adl', 'fsc-blocks', 'fsc-grid-a1', 'fsc-grid-a2', 'fsc-grid-r', 'fsc-hall', 'fsc-visualmarker', 'gedp-ds2ndp', 'miconic-simpleadl', 't0-adder', 't0-coins', 't0-comm', 't0-grid-dispose', 't0-grid-push', 't0-grid-trash', 't0-sortnet', 't0-sortnet-alt', 't0-uts'])
    suite.extend([
        "agricola-sat18", "caldera-sat18", "caldera-split-sat18",
        "data-network-sat18", "flashfill-sat18", "nurikabe-sat18",
        "organic-synthesis-sat18", "organic-synthesis-split-sat18",
        "settlers-sat18", "snake-sat18", "spider-sat18", "termes-sat18"
    ])

    environment = OracleGridEngineEnvironment(queue='all.q')

    BUILD_OPTIONS = ["release64"]
    DRIVER_OPTIONS = [
        "--build", "release64", "--overall-time-limit", "30m",
        "--overall-memory-limit", "4096M"
    ]

    configs = {
        IssueConfig('rb-ce-cerberus', [
            '--heuristic', 'hrb=RB(dag=from_coloring, extract_plan=true)',
            '--search', 'lazy_greedy([hrb],reopen_closed=false)'
        ],
                    build_options=BUILD_OPTIONS,
                    driver_options=DRIVER_OPTIONS),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        environment=environment,
    )
    exp.add_suite(benchmarks_dir, suite)

    exp.add_parser(exp.LAB_STATIC_PROPERTIES_PARSER)
    exp.add_parser(exp.LAB_DRIVER_PARSER)
    exp.add_parser(exp.EXITCODE_PARSER)
    exp.add_parser(exp.TRANSLATOR_PARSER)
    exp.add_parser(exp.SINGLE_SEARCH_PARSER)
    #exp.add_parser(exp.PLANNER_PARSER)

    attributes = exp.DEFAULT_TABLE_ATTRIBUTES

    exp.add_step('build', exp.build)
    exp.add_step('start', exp.start_runs)
    exp.add_fetcher(name='fetch')

    exp.add_absolute_report_step(attributes=attributes)
    report_name = os.path.basename(exp.path.rstrip('/'))
    exp.add_step('copy_report', subprocess.call, [
        'cp',
        os.path.join(exp.eval_dir, '%s.html' % report_name),
        '/storage/US1J6721/EXTERNAL'
    ])

    exp.add_step('print_dest', subprocess.call, [
        'echo',
        os.path.join("https://syss063.pok.stglabs.ibm.com/users/mkatz/storage",
                     '%s.html' % report_name)
    ])

    algorithm_nicks = ['translate-symm-stabgoal-stabinit']

    OTHER_REV = ''
    exp.add_fetcher('data/2018-06-22-lifted-stabinit-stabgoal-order-mk-eval',
                    filter_algorithm=[
                        '{}-{}'.format(OTHER_REV, x) for x in algorithm_nicks
                    ])

    exp.add_report(
        ComparativeReport(
            algorithm_pairs=[('{}-{}'.format(OTHER_REV,
                                             x), '{}-{}'.format(REVISION, x))
                             for x in algorithm_nicks],
            attributes=attributes,
        ),
        outfile=os.path.join(exp.eval_dir, 'a' + exp.name + '-compare.html'),
    )

    exp.run_steps()
Beispiel #26
0
def main(revisions=None):
    suite=suites.suite_optimal_strips()
    suite.extend(suites.suite_ipc14_opt_strips())

    configs = {
        IssueConfig('dfp-b50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(max_states=50000,threshold=1,greedy=false),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('dfp-ginf', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_bisimulation(max_states=infinity,threshold=1,greedy=true),label_reduction=exact(before_shrinking=true,before_merging=false)))']),
        IssueConfig('dfp-f50k', ['--search', 'astar(merge_and_shrink(merge_strategy=merge_dfp,shrink_strategy=shrink_fh(max_states=50000),label_reduction=exact(before_shrinking=false,before_merging=true)))']),
    }

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    perfect_heuristic = Attribute('perfect_heuristic', absolute=True, min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability', absolute=True, min_wins=False)
    actual_search_time = Attribute('actual_search_time', absolute=False, min_wins=True, functions=[gm])

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time', absolute=False, min_wins=True, functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed', absolute=True, min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory', absolute=True, min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    search_out_of_memory = Attribute('search_out_of_memory', absolute=True, min_wins=True)
    search_out_of_time = Attribute('search_out_of_time', absolute=True, min_wins=True)
    ms_dfp_nogoalrelevantpair_counter = Attribute('ms_dfp_nogoalrelevantpair_counter', absolute=True, min_wins=True)

    extra_attributes = [
        perfect_heuristic,
        proved_unsolvability,
        actual_search_time,

        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        search_out_of_memory,
        search_out_of_time,
        ms_dfp_nogoalrelevantpair_counter,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_comparison_table_step()

    #for attribute in ["memory", "total_time"]:
        #for config in configs:
            #exp.add_report(
                #RelativeScatterPlotReport(
                    #attributes=[attribute],
                    #filter_config=["{}-{}".format(rev, config.nick) for rev in revisions],
                    #get_category=lambda run1, run2: run1.get("domain"),
                #),
                #outfile="{}-{}-{}.png".format(exp.name, attribute, config.nick)
            #)

    exp()
Beispiel #27
0
CONFIGS = [
    IssueConfig("lama-first", [], driver_options=["--alias", "lama-first"]),
    IssueConfig("lm_hm", [
        "--landmarks", "lm=lm_hm(2)", "--heuristic", "hlm=lmcount(lm)",
        "--search", "lazy_greedy(hlm)"
    ]),
    IssueConfig("lm_exhaust", [
        "--landmarks", "lm=lm_exhaust()", "--heuristic", "hlm=lmcount(lm)",
        "--search", "lazy_greedy(hlm)"
    ]),
    IssueConfig("lm_rhw", [
        "--landmarks", "lm=lm_rhw()", "--heuristic", "hlm=lmcount(lm)",
        "--search", "lazy_greedy(hlm)"
    ]),
    IssueConfig("lm_zg", [
        "--landmarks", "lm=lm_zg()", "--heuristic", "hlm=lmcount(lm)",
        "--search", "lazy_greedy(hlm)"
    ]),
]

exp = IssueExperiment(revisions=REVS,
                      benchmarks_dir=BENCHMARKS,
                      suite=SUITE,
                      configs=CONFIGS,
                      processes=4,
                      email="*****@*****.**")

exp.add_comparison_table_step()

exp()
Beispiel #28
0
def main(revisions=None):
    benchmarks_dir = os.path.expanduser('~/repos/downward/benchmarks')
    suite = suites.suite_optimal_strips()

    # dummy configs with correct names so that comparison report works
    configs = {
        IssueConfig('rl-b50k', []),
        IssueConfig('cggl-b50k', []),
        IssueConfig('dfp-b50k', []),
        IssueConfig('rl-ginf', []),
        IssueConfig('cggl-ginf', []),
        IssueConfig('dfp-ginf', []),
        IssueConfig('rl-f50k', []),
        IssueConfig('cggl-f50k', []),
        IssueConfig('dfp-f50k', []),
    }

    exp = IssueExperiment(
        benchmarks_dir=benchmarks_dir,
        suite=suite,
        revisions=revisions,
        configs=configs,
        test_suite=['depot:p01.pddl'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    perfect_heuristic = Attribute('perfect_heuristic',
                                  absolute=True,
                                  min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability',
                                     absolute=True,
                                     min_wins=False)
    actual_search_time = Attribute('actual_search_time',
                                   absolute=False,
                                   min_wins=True,
                                   functions=[gm])

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time',
                                     absolute=False,
                                     min_wins=True,
                                     functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed',
                                           absolute=True,
                                           min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory',
                                 absolute=True,
                                 min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    search_out_of_memory = Attribute('search_out_of_memory',
                                     absolute=True,
                                     min_wins=True)
    search_out_of_time = Attribute('search_out_of_time',
                                   absolute=True,
                                   min_wins=True)

    extra_attributes = [
        perfect_heuristic,
        proved_unsolvability,
        actual_search_time,
        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        search_out_of_memory,
        search_out_of_time,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_fetcher('data/issue655-base-eval')
    exp.add_fetcher('data/issue655-v1-eval')

    exp.add_comparison_table_step()

    if matplotlib:
        for attribute in ["memory", "total_time"]:
            for config in configs:
                exp.add_report(RelativeScatterPlotReport(
                    attributes=[attribute],
                    filter_config=[
                        "{}-{}".format(rev, config.nick) for rev in revisions
                    ],
                    get_category=lambda run1, run2: run1.get("domain"),
                ),
                               outfile="{}-{}-{}.png".format(
                                   exp.name, attribute, config.nick))

    exp()
                driver_options=["--build", build]) for rev in REVISIONS
    for build in BUILDS for config_nick, config in CONFIG_NICKS
]

SUITE = common_setup.DEFAULT_SATISFICING_SUITE
ENVIRONMENT = BaselSlurmEnvironment(partition="infai_2",
                                    email="*****@*****.**",
                                    export=["PATH", "DOWNWARD_BENCHMARKS"])

if common_setup.is_test_run():
    SUITE = IssueExperiment.DEFAULT_TEST_SUITE
    ENVIRONMENT = LocalEnvironment(processes=1)

exp = IssueExperiment(
    revisions=REVISIONS,
    configs=CONFIGS,
    environment=ENVIRONMENT,
)
exp.add_suite(BENCHMARKS_DIR, SUITE)

exp.add_parser(exp.EXITCODE_PARSER)
exp.add_parser(exp.SINGLE_SEARCH_PARSER)
exp.add_parser(exp.PLANNER_PARSER)

exp.add_step('build', exp.build)
exp.add_step('start', exp.start_runs)
exp.add_fetcher(name='fetch')

exp.add_absolute_report_step()
#exp.add_comparison_table_step()
Beispiel #30
0
def main(revisions=[]):
    suite = suites.suite_optimal_with_ipc11()

    configs = {}

    exp = IssueExperiment(
        revisions=revisions,
        configs=configs,
        suite=suite,
        test_suite=['depot:pfile1'],
        processes=4,
        email='*****@*****.**',
    )
    exp.add_resource('ms_parser', 'ms-parser.py', dest='ms-parser.py')
    exp.add_command('ms-parser', ['ms_parser'])

    # planner outcome attributes
    search_out_of_memory = Attribute('search_out_of_memory',
                                     absolute=True,
                                     min_wins=True)
    search_out_of_time = Attribute('search_out_of_time',
                                   absolute=True,
                                   min_wins=True)
    perfect_heuristic = Attribute('perfect_heuristic',
                                  absolute=True,
                                  min_wins=False)
    proved_unsolvability = Attribute('proved_unsolvability',
                                     absolute=True,
                                     min_wins=False)

    # m&s attributes
    ms_construction_time = Attribute('ms_construction_time',
                                     absolute=False,
                                     min_wins=True,
                                     functions=[gm])
    ms_abstraction_constructed = Attribute('ms_abstraction_constructed',
                                           absolute=True,
                                           min_wins=False)
    ms_final_size = Attribute('ms_final_size', absolute=False, min_wins=True)
    ms_out_of_memory = Attribute('ms_out_of_memory',
                                 absolute=True,
                                 min_wins=True)
    ms_out_of_time = Attribute('ms_out_of_time', absolute=True, min_wins=True)
    ms_memory_delta = Attribute('ms_memory_delta',
                                absolute=False,
                                min_wins=True)

    extra_attributes = [
        search_out_of_memory,
        search_out_of_time,
        perfect_heuristic,
        proved_unsolvability,
        ms_construction_time,
        ms_abstraction_constructed,
        ms_final_size,
        ms_out_of_memory,
        ms_out_of_time,
        ms_memory_delta,
    ]
    attributes = exp.DEFAULT_TABLE_ATTRIBUTES
    attributes.extend(extra_attributes)

    exp.add_fetcher('data/issue604-v1-eval',
                    filter_config=[
                        'issue604-base-rl-b50k',
                        'issue604-base-cggl-b50k',
                        'issue604-base-dfp-b50k',
                        'issue604-base-rl-ginf',
                        'issue604-base-cggl-ginf',
                        'issue604-base-dfp-ginf',
                        'issue604-base-rl-f50k',
                        'issue604-base-cggl-f50k',
                        'issue604-base-dfp-f50k',
                    ])

    exp.add_fetcher('data/issue604-v7-eval',
                    filter_config=[
                        'issue604-v7-rl-b50k',
                        'issue604-v7-cggl-b50k',
                        'issue604-v7-dfp-b50k',
                        'issue604-v7-rl-ginf',
                        'issue604-v7-cggl-ginf',
                        'issue604-v7-dfp-ginf',
                        'issue604-v7-rl-f50k',
                        'issue604-v7-cggl-f50k',
                        'issue604-v7-dfp-f50k',
                    ])

    exp.add_fetcher('data/issue604-v7-rest-eval',
                    filter_config=[
                        'issue604-v7-rl-b50k',
                        'issue604-v7-cggl-b50k',
                        'issue604-v7-dfp-b50k',
                        'issue604-v7-rl-ginf',
                        'issue604-v7-cggl-ginf',
                        'issue604-v7-dfp-ginf',
                        'issue604-v7-rl-f50k',
                        'issue604-v7-cggl-f50k',
                        'issue604-v7-dfp-f50k',
                    ])

    exp.add_report(CompareConfigsReport(compared_configs=[
        ('issue604-base-rl-b50k', 'issue604-v7-rl-b50k'),
        ('issue604-base-cggl-b50k', 'issue604-v7-cggl-b50k'),
        ('issue604-base-dfp-b50k', 'issue604-v7-dfp-b50k'),
        ('issue604-base-rl-ginf', 'issue604-v7-rl-ginf'),
        ('issue604-base-cggl-ginf', 'issue604-v7-cggl-ginf'),
        ('issue604-base-dfp-ginf', 'issue604-v7-dfp-ginf'),
        ('issue604-base-rl-f50k', 'issue604-v7-rl-f50k'),
        ('issue604-base-cggl-f50k', 'issue604-v7-cggl-f50k'),
        ('issue604-base-dfp-f50k', 'issue604-v7-dfp-f50k'),
    ],
                                        attributes=attributes),
                   outfile=os.path.join(exp.eval_dir,
                                        'issue604-base-v7-comparison.html'))

    exp()