Git Product home page Git Product logo

paladinus's People

Contributors

frederico-messa avatar ramonpereira avatar ssardina avatar

paladinus's Issues

CLI args failure

Just asking for help gives error as it does not recognise the -h option:

$ java -cp  target/classes/  paladinus.PaladinusPlanner -h
Paladinus: An Iterative Depth-First Search FOND Planner

Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "this.args" is null
	at paladinus.Options.parseArgs(Options.java:201)
	at paladinus.PaladinusPlanner.initialize(PaladinusPlanner.java:193)
	at paladinus.PaladinusPlanner.<init>(PaladinusPlanner.java:94)
	at paladinus.PaladinusPlanner.main(PaladinusPlanner.java:113)

The problem is that -h is indeed a good argument, so it is recognised by parser.parseArgument(args); (line 190), but not passed in line 192at all which gets an empty args:

image

image

A solution is to pass args to it in line 192!

Failing tests?

Some tests do not pass:

$ mvn clean package

....

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running heuristic.LMCutHeuristicTest
> LMCut Heuristic 
$> h-value = 4.0
> LMCut Heuristic 
$> h-value = 4.0
> LMCut Heuristic 
$> h-value = 9.0
> LMCut Heuristic 
$> h-value = 5.0
> LMCut Heuristic 
$> h-value = 13.0
> LMCut Heuristic 
$> h-value = 3.0
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.855 sec
Running search.dfs.pruning.IterativeDepthFirstSearchPruningTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.004 sec <<< FAILURE!
Running search.dfs.DepthFirstSearchTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.003 sec <<< FAILURE!
Running search.dfs.pruning.IterativeDepthFirstSearchTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.002 sec <<< FAILURE!
Running heuristic.FFHeuristicTest
> FF Heuristic 
$> h-value = 2.0
[goalRule, walk-right p0 p1, climb p0]
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec
Running heuristic.HMaxHeuristicTest
> MAX Heuristic 
$> h-value = 2.0
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.039 sec

Results :

Tests in error: 
  initializationError(search.dfs.pruning.IterativeDepthFirstSearchPruningTest)
  initializationError(search.dfs.DepthFirstSearchTest)
  initializationError(search.dfs.pruning.IterativeDepthFirstSearchTest)

Tests run: 11, Failures: 0, Errors: 3, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.464 s
[INFO] Finished at: 2022-10-28T07:16:00+11:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on project paladinus: There are test failures.
[ERROR] 
[ERROR] Please refer to /home/ssardina/git/planning/FOND/paladinus.git/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Missing/broken groups for arguments and extending args4j

The original paladinus re-used the args4j code from myND which included a copy of args4j's source code because they extended the @options with two more features:

image

That is why when we migrated for args4j to be obtained via Maven, we had to remove all groups as it is not accounted for. Maybe this should all be redundant if we move to a better args parser, see #3

Said so, just copying the source code is not the way to do it, but one can specialized the class Options from args4j and add whatever is needed.

Wrong probing of memory usage

Currently the memory usage is only checked at the end of the search, when most probably GC has run and freed most memory.

We need to probe every now and then to be able to get the peak usage

Test failures

When setting it as a maven project, there are 3 failing tests:

image

No policy "so far"?

Let's make problem benchmarks/tireworld-truck/p1.pddl obviously unsolvable:

(:goal (and (car-at ng) (car-at n0))))

Now I run:

$ ./paladinus  benchmarks/tireworld-truck/domain.pddl benchmarks/tireworld-truck/p1.pddl                                                    ─╯

Now planner reports that initial is disproven, but then says that policy found "so far":

image

So the disproven part should be the correct one, as it is obviously unsolvable:

image

But why is it reporting "not so far" here:

image

I think the ground truth may just be whether INITIAL is DISPROVEN (proved does not exist) or UNPROVEN (we cannot say)

Allow running planner from anywhere

Original system needs running it from the root of the planner, so that the Python translator-fond can be found.

Add an option -translatorPath that will allow to specify the translator location (when using PDDL input files) so that the planner can be called from anwyhere

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.