Giter VIP home page Giter VIP logo

machetli's People

Contributors

abcorrea avatar clemensbuechner avatar florianpommerening avatar galerykaeser avatar phoeft670 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

machetli's Issues

Parser.add_pattern() not working

The implementation of the Parser class provides the function add_pattern passes on its input to the constructor of _Pattern. However, said constructor breaks upon call as it does not expect these inputs.

clean up visitors

probably easiest by using tarski instead of doing our own stuff
related to #60

The visitor pattern should do the recursion so that it doesn't need to be re-implemented in every inherited class.

write function for PDDL visitor body that takes a visitor and a name to replace

Grid Integration

  • Research available signals and ways of communication between processes
  • Research MPI/Open MPI
  • Idea: Single grid node that is dedicated only for search
  • Idea: Write state of search to disk instead of keeping it as an active job
  • Idea: monitoring process that checks whether certain files have been written
  • Idea: Evaluate batches of 100 successors

Use script for evaluator

Instead of passing the evaluator as a Python object to the search, we want to require it as a stand-alone script and pass the file path to this script to the search. This works more cleanly in the grid environment, where the compute nodes don't have direct access to the classes defined in the main file.

Replace search functions for local and grid search with a single function

This would reduce code redundancy. The passed environment object would then control whether the grid functions are invoked.
It might also be a good idea to rename the function from first_choice_hill_climbing to search, because this is simpler and currently, first-choice hill-climbing is the only implemented search algorithm for the Minimizer.

Make Search Generic

  • Abstract search state represented by a dictionary
  • Successor generator
  • Evaluation function
  • Write search code skeleton with abstract classes
  • Store task internally instead of in the form of PDDL or SAS+ files

refactor error handling

  • Error reporting should not be part of error classes. Implement like standard errors in python and use the message member.
  • abort should always lead to logging.critical
  • There's too much logic in the exceptions.

Remove cmd_name from the Parser's add_pattern method and add parser argument to the Run's constructor

Currently, the add_pattern method of the parser class has an argument cmd_names, which accepts one or multiple run object names (as, e.g., defined and used here). Storing the names of the runs inside a parser object creates an unnecessary coupling between a parser and the run(s). The parser does not need to know anything about the run(s) it should be used for.

Improvement suggestion: Remove the cmd_names argument from add_pattern and add a parsers argument to the constructor of the run class. This way, each run has an internal list containing the parser(s) to be applied to its output.

Additional Fast Downward run class derived from the run class

A specialized option of the Run class (e.g., FastDownwardRun) could make life easier for the user when defining a FD run by providing an interface where the planner, the PDDL files, etc. could be provided as constructor arguments instead of passing the actual entire call string to the constructor.

Missing files when installing

The installation of minimizer in the virtual environment as described in the documentation does not copy the file minimizer/grid/slurm-array-job.template. This leads to the provided example grid job (issue335_PDDL/grid_test.py) to yield an error.

Error handling on the grid

Level Error(s) Approach
evaluate function in main Python script OOT, OOM If the order of successors is not important, set the result variable to False and output error information to the main script's log file. Else, output error information to main script's log file and abort search.
SBATCH commands Invalid data filled into template (error during array job submission) Output error information to main script's log file and abort search.
Bash script of array job Invalid ulimit input, space in path Output error information to main script's log file and abort search.
Main Python script interacting with Slurm Array job randomly killed or not responding after defined amount of time If the order of successors is not important, set the result variable to False and output error information to the main script's log file. Else, output error information to main script's log file and abort search.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.