Exemple #1
0
#! /usr/bin/env python

"""
Example downward experiment that runs FF on a single problem.

Please adapt EXPPATH and REPO to be the path where the experiment shall be put
and the location of your Fast Downward repository.

The file planner-ext.py contains an "advanced" version of this basic experiment.
"""

from downward.experiment import DownwardExperiment
from downward.reports.absolute import AbsoluteReport


EXPPATH = 'exp-planner'
REPO = '/home/jendrik/projects/Downward/downward'

exp = DownwardExperiment(EXPPATH, REPO)

exp.add_suite('gripper:prob01.pddl')
exp.add_config('ff', ['--search', 'lazy(single(ff()))'])

exp.add_report(AbsoluteReport())

exp()
from downward.reports.hstar_2_h_stat import HstarToHRatioAndStatistics
from downward import suites
from downward.reports.MyPlot import ProblemPlotReport

EXPPATH = 'exp-lmcut-240514'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=8)

CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]
ATTRIBUTES = [
    'coverage', 'expansions', 'initial_h_value', 'cost', 'hstar_to_h',
    'statistics', 'commualtive_hstar_to_h'
]

exp = DownwardExperiment(path=EXPPATH,
                         repo=REPO,
                         environment=ENV,
                         limits={'search_time': 3000})
exp.add_suite(suites.suite_unit_costs())
for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
report = os.path.join(exp.eval_dir, 'report_test.html')
exp.add_report(HstarToHRatioAndStatistics(attributes=ATTRIBUTES),
               outfile=report)

# Test Plot - TODO
exp.add_step(
    Step('report-plot-cat', ProblemPlotReport(), exp.eval_dir,
         os.path.join(exp.eval_dir, 'plots')))
Exemple #3
0
import standard_exp


DIR = os.path.dirname(os.path.abspath(__file__))
EXPNAME = 'showcase-options'

EXPPATH = 'exp-lmcut-showcase'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=1)


ATTRIBUTES = ['coverage']
LIMITS = {'search_time': 100}
COMBINATIONS = [(Translator(repo=REPO), Preprocessor(repo=REPO), Planner(repo=REPO))]

exp = DownwardExperiment(EXPPATH, repo=REPO, environment=ENV, combinations=COMBINATIONS,
                         limits=LIMITS, cache_dir=standard_exp.CACHE_DIR)
exp.set_path_to_python(standard_exp.PYTHON)

exp.add_suite('gripper:prob01.pddl')
exp.add_suite('zenotravel:pfile1', benchmark_dir=os.path.join(REPO, 'benchmarks'))
exp.add_config('iter-hadd', [
    '--heuristic', 'hadd=add()',
    '--search', 'iterated([lazy_greedy([hadd]),lazy_wastar([hadd])],repeat_last=true)'])
exp.add_config('ipdb', ["--search", "astar(ipdb())"], timeout=10)
# Use original LAMA 2011 configuration
exp.add_config('lama11', ['ipc', 'seq-sat-lama-2011', '--plan-file', 'sas_plan'])
exp.add_config('fdss-1', ['ipc', 'seq-sat-fdss-1', '--plan-file', 'sas_plan'])
exp.add_portfolio(os.path.join(REPO, 'src', 'search', 'downward-seq-opt-fdss-1.py'))

# Before we fetch the new results, delete the old ones
exp.steps.insert(5, Step('delete-old-results', shutil.rmtree, exp.eval_dir, ignore_errors=True))
from downward import suites
from downward.reports.MyPlot import ProblemPlotReport
from lab.EnvHandler import BASE_REPO

EXPPATH = 'PAC_Preprocess_Output'
REPO = os.path.expanduser(BASE_REPO)
ENV = LocalEnvironment(processes=4)

CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]
ATTRIBUTES = [
    'coverage', 'expansions', 'initial_h_value', 'cost', 'hstar_to_h',
    'statistics', 'commualtive_hstar_to_h'
]

exp = DownwardExperiment(path=EXPPATH,
                         repo=REPO,
                         environment=ENV,
                         limits={'search_time': 600})
# exp.add_suite({'grid','ferry','logistics'})
exp.add_suite({'blocks:probBLOCKS-4-1.pddl'})
#exp.add_suite({'airport:p45-domain.pddl'})
#exp.add_suite({'blocks'})
#exp.add_suite({'blocks','tpp','storage',})
# exp.add_suite({'blocks','tpp','schedule','storage'})
#exp.add_suite({'blocks','tpp','storage','schedule','logistics00','rovers','satellite','trucks'})

#exp.add_suite({'blocks', 'tpp','storage', 'schedule','rovers'})
#exp.add_suite({'satellite','trucks',})
#exp.add_suite({'trucks','trucks-strips','visitall-opt11-strips','visitall-sat11-strips','woodworking-opt08-strips','woodworking-opt11-strips','woodworking-sat08-strips','woodworking-sat11-strips','zenotravel','tidybot-opt11-strips','tidybot-sat11-strips','miconic','miconic-fulladl','movie','mprime','mystery','no-mprime','no-mystery'})

# exp.add_suite({'blocks:probBLOCKS-8-0.pddl','blocks:probBLOCKS-8-1.pddl','blocks:probBLOCKS-4-0.pddl','blocks:probBLOCKS-5-1.pddl'})
#exp.add_suite({'gripper:prob02.pddl'})
    def __init__(self,
                 path=None,
                 repo=None,
                 environment=None,
                 combinations=None,
                 limits=None,
                 attributes=None,
                 derived_properties=None,
                 priority=0,
                 queue=None,
                 processes=2,
                 email=None,
                 cache_dir=CACHE_DIR,
                 **kwargs):
        if path is None:
            path = os.path.splitext(os.path.basename(sys.argv[0]))[0]

        expname = os.path.basename(path)

        remote_exppath = os.path.join(REMOTE_EXPS, path)
        local_exppath = os.path.join(LOCAL_EXPS, path)

        if REMOTE:
            exppath = remote_exppath
            repo = repo or REMOTE_REPO
            environment = environment or MaiaEnvironment(
                priority=priority, queue=queue, email=email)
        else:
            exppath = local_exppath
            repo = repo or LOCAL_REPO
            environment = environment or LocalEnvironment(processes=processes)

        DownwardExperiment.__init__(self,
                                    path=exppath,
                                    environment=environment,
                                    repo=repo,
                                    combinations=combinations,
                                    limits=limits,
                                    cache_dir=cache_dir,
                                    **kwargs)

        self.set_path_to_python(PYTHON)

        if attributes is None:
            attributes = ATTRIBUTES

        # Add report steps
        abs_report_file = os.path.join(self.eval_dir, '%s-abs.html' % expname)
        self.add_report(AbsoluteReport(attributes=attributes,
                                       colored=True,
                                       derived_properties=derived_properties),
                        name='report-abs',
                        outfile=abs_report_file)

        if REMOTE:
            # Compress the experiment directory
            self.add_step(Step.zip_exp_dir(self))
            self.add_step(
                Step('zip-eval-dir',
                     call, [
                         'tar', '-cjf', self.name + '-eval.tar.bz2',
                         self.name + '-eval'
                     ],
                     cwd=os.path.dirname(self.path)))

        self.add_step(Step.remove_exp_dir(self))
        self.add_step(
            Step('remove-eval-dir',
                 shutil.rmtree,
                 self.eval_dir,
                 ignore_errors=True))

        if not REMOTE:
            # Copy the results to local directory
            self.add_step(
                Step('scp-eval-dir', call, [
                    'scp', '-r',
                    '%s:%s-eval' % (SCP_LOGIN, remote_exppath),
                    '%s-eval' % local_exppath
                ]))

            # Copy the results to local directory
            self.add_step(
                Step('scp-zipped-eval-dir', call, [
                    'scp', '-r',
                    '%s:%s-eval.tar.bz2' % (SCP_LOGIN, remote_exppath),
                    '%s-eval.tar.bz2' % local_exppath
                ]))

            # Copy the zipped experiment directory to local directory
            self.add_step(
                Step('scp-exp-dir', call, [
                    'scp', '-r',
                    '%s:%s.tar.bz2' % (SCP_LOGIN, remote_exppath),
                    '%s.tar.bz2' % local_exppath
                ]))

        # Unzip the experiment directory
        self.add_step(Step.unzip_exp_dir(self))
        self.add_step(
            Step('unzip-eval-dir',
                 call, ['tar', '-xjf', self.name + '-eval.tar.bz2'],
                 cwd=os.path.dirname(self.path)))
Exemple #6
0
from downward.reports.suite import SuiteReport
from downward.reports.scatter import ScatterPlotReport
from lab.steps import Step
# from downward import suites
# from downward.checkouts import Translator, Preprocessor, Planner


EXPPATH = 'exp-planner'
REPO = '/home/jendrik/projects/Downward/downward'

# combos = [
#     (Translator(REPO, rev='WORK'), Preprocessor(REPO, rev=3097), Planner(REPO)),
#      (Translator(REPO, rev='WORK'), Preprocessor(REPO, rev=3097), Planner(MYOTHER_REPO)),
# ]

exp = DownwardExperiment(EXPPATH, REPO,  # combinations=combos,
                         limits={'search_time': 60})

exp.add_suite(['gripper:prob01.pddl'])
exp.add_suite('zenotravel:pfile2')
exp.add_config('ff', ['--search', 'lazy(single(ff()))'])
exp.add_config('add', ['--search', 'lazy(single(add()))'])
exp.add_portfolio(os.path.join(REPO, 'src', 'search', 'downward-seq-sat-fdss-1.py'))

exp.add_report(AbsoluteReport('problem'), name='make-report', outfile='report-abs-p.html')

def solved(run):
    return run['coverage'] == 1

exp.add_step(Step('suite', SuiteReport(filter=solved),
                  exp.eval_dir,
                  os.path.join(exp.eval_dir, 'suite.py')))
from downward.reports.suite import SuiteReport
from downward.reports.scatter import ScatterPlotReport
from lab.steps import Step
# from downward import suites
# from downward.checkouts import Translator, Preprocessor, Planner

EXPPATH = 'exp-planner'
REPO = '/home/jendrik/projects/Downward/downward'

# combos = [
#     (Translator(REPO, rev='WORK'), Preprocessor(REPO, rev=3097), Planner(REPO)),
#      (Translator(REPO, rev='WORK'), Preprocessor(REPO, rev=3097), Planner(MYOTHER_REPO)),
# ]

exp = DownwardExperiment(
    EXPPATH,
    REPO,  # combinations=combos,
    limits={'search_time': 60})

exp.add_suite(['gripper:prob01.pddl'])
exp.add_suite('zenotravel:pfile2')
exp.add_config('ff', ['--search', 'lazy(single(ff()))'])
exp.add_config('add', ['--search', 'lazy(single(add()))'])
exp.add_portfolio(
    os.path.join(REPO, 'src', 'search', 'downward-seq-sat-fdss-1.py'))

exp.add_report(AbsoluteReport('problem'),
               name='make-report',
               outfile='report-abs-p.html')


def solved(run):
Exemple #8
0
from downward.experiment import DownwardExperiment
from downward.reports.absolute import AbsoluteReport
from downward.reports.hstar_2_h_stat import HstarToHRatioAndStatistics
from downward import suites
from downward.reports.MyPlot import ProblemPlotReport


EXPPATH = 'PAC_Preprocess_Output_exp_freecell'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=6)

CONFIGS = [('lmcut', ['--search', 'astar(lmcut())']) ]
ATTRIBUTES = ['coverage', 'expansions','initial_h_value','cost','hstar_to_h','statistics','commualtive_hstar_to_h']


exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV, limits={'search_time': 300})
exp.add_suite({'freecell'})

for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
file_name_for_report = 'report_' + nick +'.html'
report = os.path.join(exp.eval_dir, file_name_for_report)
file_name_for_preprocess = os.path.join(exp.eval_dir, 'preprocess')
exp.add_report(HstarToHRatioAndStatistics(nick,file_name_for_preprocess,attributes=ATTRIBUTES), outfile=report)

# Plot 
sub_dir = 'plots_' + nick
exp.add_step(Step('report-plot-cat',
                  ProblemPlotReport(),
import subprocess

from lab.steps import Step
from lab.environments import LocalEnvironment
from downward.experiment import DownwardExperiment
from downward.reports.absolute import AbsoluteReport


EXPPATH = 'exp-lmcut'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=2)
SUITE = ['airport']
CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]
ATTRIBUTES = ['coverage', 'expansions']

exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV)
exp.add_suite(SUITE)
for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
report = os.path.join(exp.eval_dir, 'report.html')
exp.add_report(AbsoluteReport(attributes=ATTRIBUTES), outfile=report)

# "Publish" the results with "cat" for demonstration purposes.
exp.add_step(Step('publish-report', subprocess.call, ['cat', report]))

# Compress the experiment directory.
exp.add_step(Step.zip_exp_dir(exp))

# Parse the commandline and show or run experiment steps.
#! /usr/bin/env python
"""
Example downward experiment that runs FF on a single problem.

Please adapt EXPPATH and REPO to be the path where the experiment shall be put
and the location of your Fast Downward repository.

The file planner-ext.py contains an "advanced" version of this basic experiment.
"""

from downward.experiment import DownwardExperiment
from downward.reports.absolute import AbsoluteReport

EXPPATH = 'exp-planner'
REPO = '/home/jendrik/projects/Downward/downward'

exp = DownwardExperiment(EXPPATH, REPO)

exp.add_suite('gripper:prob01.pddl')
exp.add_config('ff', ['--search', 'lazy(single(ff()))'])

exp.add_report(AbsoluteReport())

exp()
Exemple #11
0
# os.environ["delta"]		='0'
# os.environ["weight"]	='0'

# print "anytime_test"
tmp = 'lazy_anytime_wastar(lmcut(), w={0}, delta={1}, epsilon={2}, rpac_lower_bound={3}, rpac_open_based={4})'.format(os.environ["weight"], os.environ["delta"], os.environ["epsilon"], os.environ["is_lower_bound_pac"], os.environ["is_open_based_pac"])
# print tmp

# print 'exiting...'
# sys.exit(0)
# print 'didnt succeed....'

CONFIGS = [('lmcut', ['--search', tmp]) ]
ATTRIBUTES = ['coverage', 'expansions','initial_h_value','cost','hstar_to_h','statistics','commualtive_hstar_to_h']


exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV, limits={'search_time': 300})
#exp.add_suite({'freecell:pfile5'})

#exp.add_suite({'grid:prob_grid_29982290.pddl','grid:prob_grid_58992290.pddl','grid:prob_grid_0101192290.pddl'})
#exp.add_suite({'grid:prob_grid_29982290.pddl'})
#exp.add_suite({'grid','ferry','logistics'})
# exp.add_suite({'blocks'})
# exp.add_suite({'blocks:probBLOCKS-8-0.pddl','blocks:probBLOCKS-8-1.pddl','blocks:probBLOCKS-9-0.pddl','blocks:probBLOCKS-9-1.pddl', 'blocks:probBLOCKS-11-1.pddl'})
exp.add_suite({'blocks:probBLOCKS-9-0.pddl'})
# exp.add_suite({'airport'})

for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
file_name_for_report = 'report_' + nick +'.html'
Exemple #12
0
DIR = os.path.dirname(os.path.abspath(__file__))
EXPNAME = 'showcase-options'

EXPPATH = 'exp-lmcut-showcase'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=1)

ATTRIBUTES = ['coverage']
LIMITS = {'search_time': 100}
COMBINATIONS = [(Translator(repo=REPO), Preprocessor(repo=REPO),
                 Planner(repo=REPO))]

exp = DownwardExperiment(EXPPATH,
                         repo=REPO,
                         environment=ENV,
                         combinations=COMBINATIONS,
                         limits=LIMITS,
                         cache_dir=standard_exp.CACHE_DIR)
exp.set_path_to_python(standard_exp.PYTHON)

exp.add_suite('gripper:prob01.pddl')
exp.add_suite('zenotravel:pfile1',
              benchmark_dir=os.path.join(REPO, 'benchmarks'))
exp.add_config('iter-hadd', [
    '--heuristic', 'hadd=add()', '--search',
    'iterated([lazy_greedy([hadd]),lazy_wastar([hadd])],repeat_last=true)'
])
exp.add_config('ipdb', ["--search", "astar(ipdb())"], timeout=10)
# Use original LAMA 2011 configuration
exp.add_config('lama11',
               ['ipc', 'seq-sat-lama-2011', '--plan-file', 'sas_plan'])
Exemple #13
0
from downward.reports.hstar_2_h import HstarToHRatio

EXPPATH = 'exp-lmcut-no-timeout'
REPO = os.path.expanduser('~/downward')
#Run with 6 processes
ENV = LocalEnvironment(processes=6)
CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]

ATTRIBUTES = ['coverage', 'expansions','initial_h_value','cost','hstar_to_h']

#All with timeout
#exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV, limits={'search_time': 100})
#exp.add_suite(suites.suite_all())

#Only lmcut domains without timeout
exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV)
exp.add_suite(suites.suite_lmcut_domains())

for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers with h*/h values.
report = os.path.join(exp.eval_dir, 'report.html')
exp.add_report(HstarToHRatio(attributes=ATTRIBUTES), outfile=report)

# "Publish" the results with "cat" for demonstration purposes.
exp.add_step(Step('publish-report', subprocess.call, ['cat', report]))

# Compress the experiment directory.
exp.add_step(Step.zip_exp_dir(exp))
Exemple #14
0
from downward.reports.hstar_2_h_stat import HstarToHRatioAndStatistics
from downward import suites
from downward.reports.MyPlot import ProblemPlotReport

EXPPATH = 'PAC_Preprocess_Output'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=4)

CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]
ATTRIBUTES = [
    'coverage', 'expansions', 'initial_h_value', 'cost', 'hstar_to_h',
    'statistics', 'commualtive_hstar_to_h'
]

exp = DownwardExperiment(path=EXPPATH,
                         repo=REPO,
                         environment=ENV,
                         limits={'search_time': 300})
exp.add_suite({'airport', 'blocks', 'freecell'})

for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
file_name_for_report = 'report_' + nick + '.html'
report = os.path.join(exp.eval_dir, file_name_for_report)
file_name_for_preprocess = os.path.join(exp.eval_dir, 'preprocess')
exp.add_report(HstarToHRatioAndStatistics(nick,
                                          file_name_for_preprocess,
                                          attributes=ATTRIBUTES),
               outfile=report)
Exemple #15
0
    def __init__(self, path=None, repo=None, environment=None,
                 combinations=None, limits=None, attributes=None,
                 derived_properties=None, priority=0, queue=None,
                 processes=2, email=None, cache_dir=CACHE_DIR, **kwargs):
        if path is None:
            path = os.path.splitext(os.path.basename(sys.argv[0]))[0]

        expname = os.path.basename(path)

        remote_exppath = os.path.join(REMOTE_EXPS, path)
        local_exppath = os.path.join(LOCAL_EXPS, path)

        if REMOTE:
            exppath = remote_exppath
            repo = repo or REMOTE_REPO
            environment = environment or MaiaEnvironment(priority=priority,
                                                         queue=queue,
                                                         email=email)
        else:
            exppath = local_exppath
            repo = repo or LOCAL_REPO
            environment = environment or LocalEnvironment(processes=processes)

        DownwardExperiment.__init__(self, path=exppath, environment=environment,
                                    repo=repo, combinations=combinations,
                                    limits=limits, cache_dir=cache_dir, **kwargs)

        self.set_path_to_python(PYTHON)

        if attributes is None:
            attributes = ATTRIBUTES

        # Add report steps
        abs_report_file = os.path.join(self.eval_dir, '%s-abs.html' % expname)
        self.add_report(AbsoluteReport(attributes=attributes, colored=True, derived_properties=derived_properties),
                        name='report-abs', outfile=abs_report_file)

        if REMOTE:
            # Compress the experiment directory
            self.add_step(Step.zip_exp_dir(self))
            self.add_step(Step('zip-eval-dir', call,
                               ['tar', '-cjf', self.name + '-eval.tar.bz2', self.name + '-eval'],
                          cwd=os.path.dirname(self.path)))

        self.add_step(Step.remove_exp_dir(self))
        self.add_step(Step('remove-eval-dir', shutil.rmtree, self.eval_dir, ignore_errors=True))

        if not REMOTE:
            # Copy the results to local directory
            self.add_step(Step('scp-eval-dir', call, [
                'scp', '-r',
                '%s:%s-eval' % (SCP_LOGIN, remote_exppath),
                '%s-eval' % local_exppath]))

            # Copy the results to local directory
            self.add_step(Step('scp-zipped-eval-dir', call, [
                'scp', '-r',
                '%s:%s-eval.tar.bz2' % (SCP_LOGIN, remote_exppath),
                '%s-eval.tar.bz2' % local_exppath]))

            # Copy the zipped experiment directory to local directory
            self.add_step(Step('scp-exp-dir', call, [
                'scp', '-r',
                '%s:%s.tar.bz2' % (SCP_LOGIN, remote_exppath),
                '%s.tar.bz2' % local_exppath]))

        # Unzip the experiment directory
        self.add_step(Step.unzip_exp_dir(self))
        self.add_step(Step('unzip-eval-dir', call,
                           ['tar', '-xjf', self.name + '-eval.tar.bz2'],
                      cwd=os.path.dirname(self.path)))
Exemple #16
0
from lab.environments import LocalEnvironment
from downward.experiment import DownwardExperiment
from downward.reports.absolute import AbsoluteReport
from downward.reports.hstar_2_h_stat import HstarToHRatioAndStatistics
from downward import suites
from downward.reports.MyPlot import ProblemPlotReport


EXPPATH = 'exp-lmcut-240514'
REPO = os.path.expanduser('~/downward')
ENV = LocalEnvironment(processes=8)

CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]
ATTRIBUTES = ['coverage', 'expansions','initial_h_value','cost','hstar_to_h','statistics','commualtive_hstar_to_h']

exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV, limits={'search_time': 3000})
exp.add_suite(suites.suite_unit_costs())
for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
report = os.path.join(exp.eval_dir, 'report_test.html')
exp.add_report(HstarToHRatioAndStatistics(attributes=ATTRIBUTES), outfile=report)

# Test Plot - TODO
exp.add_step(Step('report-plot-cat',
                  ProblemPlotReport(),
                  exp.eval_dir, os.path.join(exp.eval_dir, 'plots')))

# "Publish" the results with "cat" for demonstration purposes.
exp.add_step(Step('publish-report', subprocess.call, ['cat', report]))
Exemple #17
0
    os.environ["weight"], os.environ["delta"], os.environ["epsilon"],
    os.environ["is_lower_bound_pac"], os.environ["is_open_based_pac"])
# print tmp

# print 'exiting...'
# sys.exit(0)
# print 'didnt succeed....'

CONFIGS = [('lmcut', ['--search', tmp])]
ATTRIBUTES = [
    'coverage', 'expansions', 'initial_h_value', 'cost', 'hstar_to_h',
    'statistics', 'commualtive_hstar_to_h'
]

exp = DownwardExperiment(path=EXPPATH,
                         repo=REPO,
                         environment=ENV,
                         limits={'search_time': 300})
#exp.add_suite({'freecell:pfile5'})

#exp.add_suite({'grid:prob_grid_29982290.pddl','grid:prob_grid_58992290.pddl','grid:prob_grid_0101192290.pddl'})
#exp.add_suite({'grid:prob_grid_29982290.pddl'})
#exp.add_suite({'grid','ferry','logistics'})
# exp.add_suite({'blocks'})
# exp.add_suite({'blocks:probBLOCKS-8-0.pddl','blocks:probBLOCKS-8-1.pddl','blocks:probBLOCKS-9-0.pddl','blocks:probBLOCKS-9-1.pddl', 'blocks:probBLOCKS-11-1.pddl'})
exp.add_suite({'blocks:probBLOCKS-9-0.pddl'})
# exp.add_suite({'airport'})

for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers (this is the most common report).
Exemple #18
0
EXPPATH = 'exp-lmcut-no-timeout'
REPO = os.path.expanduser('~/downward')
#Run with 6 processes
ENV = LocalEnvironment(processes=6)
CONFIGS = [('lmcut', ['--search', 'astar(lmcut())'])]

ATTRIBUTES = [
    'coverage', 'expansions', 'initial_h_value', 'cost', 'hstar_to_h'
]

#All with timeout
#exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV, limits={'search_time': 100})
#exp.add_suite(suites.suite_all())

#Only lmcut domains without timeout
exp = DownwardExperiment(path=EXPPATH, repo=REPO, environment=ENV)
exp.add_suite(suites.suite_lmcut_domains())

for nick, config in CONFIGS:
    exp.add_config(nick, config)

# Make a report containing absolute numbers with h*/h values.
report = os.path.join(exp.eval_dir, 'report.html')
exp.add_report(HstarToHRatio(attributes=ATTRIBUTES), outfile=report)

# "Publish" the results with "cat" for demonstration purposes.
exp.add_step(Step('publish-report', subprocess.call, ['cat', report]))

# Compress the experiment directory.
exp.add_step(Step.zip_exp_dir(exp))
    def __init__(self, path, repo, opt_or_sat, rev, base_rev=None,
                 use_core_configs=True, use_ipc_configs=True, use_extended_configs=False,
                 **kwargs):
        """
        See :py:class:`DownwardExperiment <downward.experiments.DownwardExperiment>`
        for inherited parameters.

        The experiment will be built at *path*.

        *repo* must be the path to a Fast Downward repository. This repository
        is used to search for problem files.

        If *opt_or_sat* is 'opt', configurations for optimal planning will be
        tested on all domains suited for optimal planning. If it is 'sat',
        configurations for satisficing planning will be tested on the
        satisficing suite.

        *rev* determines the new revision to test.

        If *base_rev* is None (default), the latest revision on the branch default
        that is an ancestor of *rev* will be used.

        *use_core_configs* determines if the most common configurations are tested
        (default: True).

        *use_ipc_configs* determines if the configurations used in the IPCs are tested
        (default: True).

        *use_extended_configs* determines if some less common configurations are tested
        (default: False).

        """
        base_rev = checkouts.get_common_ancestor(repo, rev)
        combos = [(Translator(repo, rev=r),
                   Preprocessor(repo, rev=r),
                   Planner(repo, rev=r))
                  for r in (base_rev, rev)]
        DownwardExperiment.__init__(self, path, repo, combinations=combos, **kwargs)

        # ------ suites and configs ------------------------------------

        if opt_or_sat == 'opt':
            self.add_suite(suite_optimal_with_ipc11())
            configs = default_configs_optimal(use_core_configs,
                                              use_ipc_configs,
                                              use_extended_configs)
        elif opt_or_sat == 'sat':
            self.add_suite(suite_satisficing_with_ipc11())
            configs = default_configs_satisficing(use_core_configs,
                                                  use_ipc_configs,
                                                  use_extended_configs)
        else:
            logging.critical('Select to test either \'opt\' or \'sat\' configurations')

        for nick, command in configs.items():
            self.add_config(nick, command)

        # ------ reports -----------------------------------------------

        comparison = CompareRevisionsReport(base_rev,
                                            rev,
                                            attributes=COMPARED_ATTRIBUTES)
        self.add_report(comparison,
                        name='report-compare-scores',
                        outfile='report-compare-scores.html')

        for nick in configs.keys():
            config_before = '%s-%s' % (base_rev, nick)
            config_after = '%s-%s' % (rev, nick)
            for attribute in SCATTER_PLOT_ATTRIBUTES:
                name = 'scatter-%s-%s' % (attribute, nick)
                self.add_report(
                    ScatterPlotReport(
                        filter_config=[config_before, config_after],
                        attributes=[attribute],
                        get_category=lambda run1, run2: run1['domain']),
                    outfile=name)