{"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/dags-with-no-tears-continuous-optimization","title":"DAGs with NO TEARS: Continuous Optimization for Structure Learning","arxiv_id":"1803.01422","date":"2018-03-04","proceeding":"NeurIPS 2018 12","authors":["Xun Zheng","Bryon Aragam","Pradeep Ravikumar","Eric P. Xing"],"abstract":"Estimating the structure of directed acyclic graphs (DAGs, also known as\nBayesian networks) is a challenging problem since the search space of DAGs is\ncombinatorial and scales superexponentially with the number of nodes. Existing\napproaches rely on various local heuristics for enforcing the acyclicity\nconstraint. In this paper, we introduce a fundamentally different strategy: We\nformulate the structure learning problem as a purely \\emph{continuous}\noptimization problem over real matrices that avoids this combinatorial\nconstraint entirely. This is achieved by a novel characterization of acyclicity\nthat is not only smooth but also exact. The resulting problem can be\nefficiently solved by standard numerical algorithms, which also makes\nimplementation effortless. The proposed method outperforms existing ones,\nwithout imposing any structural assumptions on the graph such as bounded\ntreewidth or in-degree. Code implementing the proposed algorithm is open-source\nand publicly available at https://github.com/xunzheng/notears.","url_abs":"http://arxiv.org/abs/1803.01422v2","url_pdf":"http://arxiv.org/pdf/1803.01422v2.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":"dags-with-no-tears-continuous-optimization","repo_url":"https://github.com/xunzheng/notears","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"dags-with-no-tears-continuous-optimization","repo_url":"https://github.com/duntrain/topo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"dags-with-no-tears-continuous-optimization","repo_url":"https://github.com/gcastle-hub/dataset","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"dags-with-no-tears-continuous-optimization","repo_url":"https://github.com/isvy08/otm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"dags-with-no-tears-continuous-optimization","repo_url":"https://github.com/jmoss20/notears","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"dags-with-no-tears-continuous-optimization","repo_url":"https://github.com/kevinsbello/dagma","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"causal-discovery","task_name":"Causal Discovery"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1803.01422","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1803.01422"}},"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/xunzheng/notears","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kevinsbello/dagma","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/duntrain/topo","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/isvy08/otm","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jmoss20/notears","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/gcastle-hub/dataset","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":1,"unverified":1},"by_repo_kind":{"listed":{"samples":1,"ran":1,"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":2,"samples":[{"code_sha256_prefix":"2a4605e98eb5ad15","entry":"simulate_parameter","repo":"duntrain/topo","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/duntrain/topo/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2a4605e98eb5ad15"}},{"code_sha256_prefix":"8121d0e3bc3faff7","entry":"notears_linear","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"unverified","verification_level":0,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"8121d0e3bc3faff7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}