{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/asnets-deep-learning-for-generalised-planning","title":"ASNets: Deep Learning for Generalised Planning","arxiv_id":"1908.01362","date":"2019-08-04","proceeding":null,"authors":["Sam Toyer","Felipe Trevizan","Sylvie Thiébaux","Lexing Xie"],"abstract":"In this paper, we discuss the learning of generalised policies for probabilistic and classical planning problems using Action Schema Networks (ASNets). The ASNet is a neural network architecture that exploits the relational structure of (P)PDDL planning problems to learn a common set of weights that can be applied to any problem in a domain. By mimicking the actions chosen by a traditional, non-learning planner on a handful of small problems in a domain, ASNets are able to learn a generalised reactive policy that can quickly solve much larger instances from the domain. This work extends the ASNet architecture to make it more expressive, while still remaining invariant to a range of symmetries that exist in PPDDL problems. We also present a thorough experimental evaluation of ASNets, including a comparison with heuristic search planners on seven probabilistic and deterministic domains, an extended evaluation on over 18,000 Blocksworld instances, and an ablation study. Finally, we show that sparsity-inducing regularisation can produce ASNets that are compact enough for humans to understand, yielding insights into how the structure of ASNets allows them to generalise across a domain.","url_abs":"https://arxiv.org/abs/1908.01362v2","url_pdf":"https://arxiv.org/pdf/1908.01362v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"asnets-deep-learning-for-generalised-planning","repo_url":"https://github.com/qxcv/asnets","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deep-learning","task_name":"Deep Learning"},{"task_slug":"heuristic-search","task_name":"Heuristic Search"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1908.01362","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1908.01362"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/qxcv/asnets","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":18},"by_repo_kind":{"official":{"samples":18,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"f3b50583da62f483","entry":"can_profile","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/prof_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/prof_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f3b50583da62f483"}},{"code_sha256_prefix":"1d44813d2c760247","entry":"extract_all_domains_problems","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/pddl_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/pddl_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1d44813d2c760247"}},{"code_sha256_prefix":"01894c8c99a5c3bc","entry":"find_tail_cycle","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/py_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/py_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"01894c8c99a5c3bc"}},{"code_sha256_prefix":"ca7dfed8da5f2147","entry":"format_state_for_ssipp","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/ssipp_interface.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/ssipp_interface.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ca7dfed8da5f2147"}},{"code_sha256_prefix":"d92b7dc4a1776ba4","entry":"get_plan_file_path","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/fd_interface.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/fd_interface.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d92b7dc4a1776ba4"}},{"code_sha256_prefix":"4460d2adcc6338aa","entry":"hlist_to_sexprs","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/pddl_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/pddl_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4460d2adcc6338aa"}},{"code_sha256_prefix":"8db9068b171ab385","entry":"make_bound_prop","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/prob_dom_meta.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/prob_dom_meta.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8db9068b171ab385"}},{"code_sha256_prefix":"facfe8f2ba36c6f5","entry":"make_unbound_action","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/prob_dom_meta.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/prob_dom_meta.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"facfe8f2ba36c6f5"}},{"code_sha256_prefix":"c70adc0ea5536072","entry":"make_unbound_prop","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/prob_dom_meta.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/prob_dom_meta.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c70adc0ea5536072"}},{"code_sha256_prefix":"fab473cbc462543e","entry":"parse_problem_args","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/mdpsim_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/mdpsim_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fab473cbc462543e"}},{"code_sha256_prefix":"eba72f2486b730d0","entry":"parse_sexprs","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/pddl_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/pddl_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"eba72f2486b730d0"}},{"code_sha256_prefix":"5ee146b62834fec7","entry":"run_fd_or_timeout","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/fd_interface.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/fd_interface.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ee146b62834fec7"}},{"code_sha256_prefix":"7434fe8e7707e998","entry":"run_fd_raw","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/fd_interface.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/fd_interface.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7434fe8e7707e998"}},{"code_sha256_prefix":"29bb436de3ba7e0b","entry":"set_up_ssipp","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/ssipp_interface.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/ssipp_interface.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"29bb436de3ba7e0b"}},{"code_sha256_prefix":"2776f2994efc5176","entry":"strip_parens","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/py_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/py_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2776f2994efc5176"}},{"code_sha256_prefix":"211a1968113927a3","entry":"to_local","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/multiprob.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/multiprob.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"211a1968113927a3"}},{"code_sha256_prefix":"004f8baf6f764d3b","entry":"wait_exists_polling","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/multiprob.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/multiprob.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"004f8baf6f764d3b"}},{"code_sha256_prefix":"ef639be154fac681","entry":"weak_ref_to","repo":"qxcv/asnets","repo_kind":"official","path":"asnets/asnets/py_utils.py","file_url":"https://github.com/qxcv/asnets/blob/HEAD/asnets/asnets/py_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ef639be154fac681"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}