maumagnaguagno / hypertension Goto Github PK
View Code? Open in Web Editor NEW:trident: HTN planning in Ruby
:trident: HTN planning in Ruby
This repository, and also HyperTensioN_U, has no license, which by default actually means that all rights are reserved. Could you please add a license if you intend that the code be open-source? I would suggest the Apache license like Pyhop, or the MIT or BSD licenses. Thank you!
If the subtasks are chained together in a method, then the parser doesn't save the state of those actions that were chained. For ex:
(:method test_method
:parameters (?from ?to ?destination - object)
:task
(goto ?test ?destination)
:precondition (and (loc ?test ?from) (adj ?from ?to))
:ordered-subtasks
(and (action_1 ?hero ?from ?to) (action_2 ?hero ?from ?to) (goto ?hero ?destination))
)
The state changes in action_1 are not reflected for action_2.
Hi,
I was investigating porting HyperTensioN to c++ / GDScript in the Godot Engine for games.
What license is this? Godot Engine is MIT licensed. As MIT license HyperTensioN would benefit many.
Hello,
I tried to verify the plans from HyperTensioN with the pandaPIparser (https://github.com/panda-planner-dev/pandaPIparser) and noticed that I need to set the FAST_OUTPUT attribute to false in order to get the full plans. However, there seems so be an issue if the domain contains actions with a dash in their name. The dash appears to be replaced with an underscore.
I tested it with the domain Barman-BDI, pfile01.hddl (from https://github.com/panda-planner-dev/ipc2020-domains/blob/master/total-order/Barman-BDI/) which contains the action fill-shot. In the plan I got it is called fill_shot (see plan attached) and therefore the plan is rejected by pandaPIparser (e.g. "Task with id=31 and task name "fill_shot" is not declared in the domain.")
I am using Ubuntu 20.04.2 LTS on the WSL 1 (Windows version: 10.0.19041.1083) in case this helps to track the error down. Unfortunately, I have no access to a native Ubuntu system running ruby.
Best regards
Hi,
I was wondering if the enhancements you've made to your toolchain would be applicable to game development? Would your toolchain be able to be extended to output another language such as C++, C# or Haxe?
Cheers,
Ryan.
Hi,
While playing with different planners in my work, I noticed that the pullup
extension sometimes leads to invalid plans.
Implementing something similar to the approach presented in Compiling HTN Plan Verification Problems into HTN Planning Problems (Höller et al.), I was able to generate some couples of domains and instance, for which no solution plan should exist, but HyperTensioN finds one if the pullup
extension is enabled (the behaviour is correct if it is not activated).
I tried to simplify such a domain, which you can find attached, and it appears that branch removal allows pulling up the predicates too high in the hierarchy.
In this domain, the goal is to be able to reproduce a sequence of 3 observations, obsact_0
, obsact_1
, obsact_2
,
We use the obsidx_X
predicate to keep track of where we are in the sequence, and we have an impossible
predicate that is used to block some decompositions.
The primitive plan should therefore be exactly the sequence obsact_0 -> obsact_1 -> obsact_2
, but when using HyperTensioN (both on the latest master (d644be5) and tag v2.2), the sequence is obsact_0 -> obsact_1 -> obsact_2 -> obsact_0
.
I have also converted the domain and instance to dot using your tools, and annotated it to show what appears to be the issue (dom_annotated.pdf
shows the base domain, dom_pullup_annotated.pdf
the domain using the pullup predicate).
I admit that the structure of this domain is quite a bit different from usual HTN domains, but I hope this information will help you improve your planner.
Let me know if you require more details.
Attached files:
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.