ssardina-research / paladinus Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ramonpereira/paladinus
:mechanical_arm: :zap: Paladinus: An Iterative Depth-First Search FOND Planner.
License: GNU General Public License v3.0
This project forked from ramonpereira/paladinus
:mechanical_arm: :zap: Paladinus: An Iterative Depth-First Search FOND Planner.
License: GNU General Public License v3.0
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
:
A solution is to pass args
to it in line 192!
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
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:
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.
The current system uses args4j
Is it worth changing to something like argparse4j?
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
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":
So the disproven part should be the correct one, as it is obviously unsolvable:
But why is it reporting "not so far" here:
I think the ground truth may just be whether INITIAL is DISPROVEN (proved does not exist) or UNPROVEN (we cannot say)
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.