{"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/a-computational-framework-for-solving","title":"A Computational Framework for Solving Wasserstein Lagrangian Flows","arxiv_id":"2310.10649","date":"2023-10-16","proceeding":null,"authors":["Kirill Neklyudov","Rob Brekelmans","Alexander Tong","Lazar Atanackovic","Qiang Liu","Alireza Makhzani"],"abstract":"The dynamical formulation of the optimal transport can be extended through various choices of the underlying geometry (kinetic energy), and the regularization of density paths (potential energy). These combinations yield different variational problems (Lagrangians), encompassing many variations of the optimal transport problem such as the Schr\\\"odinger bridge, unbalanced optimal transport, and optimal transport with physical constraints, among others. In general, the optimal density path is unknown, and solving these variational problems can be computationally challenging. We propose a novel deep learning based framework approaching all of these problems from a unified perspective. Leveraging the dual formulation of the Lagrangians, our method does not require simulating or backpropagating through the trajectories of the learned dynamics, and does not need access to optimal couplings. We showcase the versatility of the proposed framework by outperforming previous approaches for the single-cell trajectory inference, where incorporating prior knowledge into the dynamics is crucial for correct predictions.","url_abs":"https://arxiv.org/abs/2310.10649v3","url_pdf":"https://arxiv.org/pdf/2310.10649v3.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":"a-computational-framework-for-solving","repo_url":"https://github.com/necludov/wl-mechanics","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.10649","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.10649"}},"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/necludov/wl-mechanics","reach":{"status":"ok"}}],"summary":{"ran":7,"unverified":4},"by_repo_kind":{"official":{"samples":11,"ran":7,"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":11,"samples":[{"code_sha256_prefix":"c09d9962ec2ec7d8","entry":"get_act","repo":"necludov/wl-mechanics","repo_kind":"official","path":"models/layers.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c09d9962ec2ec7d8"}},{"code_sha256_prefix":"9ce56abcc35cb68f","entry":"get_optimizer","repo":"necludov/wl-mechanics","repo_kind":"official","path":"train_utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/train_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9ce56abcc35cb68f"}},{"code_sha256_prefix":"955079f87553bafe","entry":"get_step_fn","repo":"necludov/wl-mechanics","repo_kind":"official","path":"train_utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/train_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"955079f87553bafe"}},{"code_sha256_prefix":"b28358e9e147431e","entry":"get_time_sampler","repo":"necludov/wl-mechanics","repo_kind":"official","path":"train_utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/train_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b28358e9e147431e"}},{"code_sha256_prefix":"3c3467d43bb96ffc","entry":"get_timestep_embedding","repo":"necludov/wl-mechanics","repo_kind":"official","path":"models/layers.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3c3467d43bb96ffc"}},{"code_sha256_prefix":"d0d40341211550ce","entry":"get_w1","repo":"necludov/wl-mechanics","repo_kind":"official","path":"eval_utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d0d40341211550ce"}},{"code_sha256_prefix":"b94cd22138442ee3","entry":"scaled_dot_product","repo":"necludov/wl-mechanics","repo_kind":"official","path":"models/layers.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/models/layers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b94cd22138442ee3"}},{"code_sha256_prefix":"b3e18524b8df81a1","entry":"get_model","repo":"necludov/wl-mechanics","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/models/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b3e18524b8df81a1"}},{"code_sha256_prefix":"648204b366b674e8","entry":"init_model_s","repo":"necludov/wl-mechanics","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/models/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"648204b366b674e8"}},{"code_sha256_prefix":"63aaba5953758a00","entry":"mmd_distance","repo":"necludov/wl-mechanics","repo_kind":"official","path":"eval_utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"63aaba5953758a00"}},{"code_sha256_prefix":"e4b39361eb110388","entry":"register_model","repo":"necludov/wl-mechanics","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/necludov/wl-mechanics/blob/HEAD/models/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e4b39361eb110388"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}