{"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/entropic-optimal-transport-between-unbalanced","title":"Entropic Optimal Transport between (Unbalanced) Gaussian Measures has a Closed Form","arxiv_id":"2006.02572","date":"2020-06-03","proceeding":null,"authors":["Hicham Janati","Boris Muzellec","Gabriel Peyré","Marco Cuturi"],"abstract":"Although optimal transport (OT) problems admit closed form solutions in a very few notable cases, e.g. in 1D or between Gaussians, these closed forms have proved extremely fecund for practitioners to define tools inspired from the OT geometry. On the other hand, the numerical resolution of OT problems using entropic regularization has given rise to many applications, but because there are no known closed-form solutions for entropic regularized OT problems, these approaches are mostly algorithmic, not informed by elegant closed forms. In this paper, we propose to fill the void at the intersection between these two schools of thought in OT by proving that the entropy-regularized optimal transport problem between two Gaussian measures admits a closed form. Contrary to the unregularized case, for which the explicit form is given by the Wasserstein-Bures distance, the closed form we obtain is differentiable everywhere, even for Gaussians with degenerate covariance matrices. We obtain this closed form solution by solving the fixed-point equation behind Sinkhorn's algorithm, the default method for computing entropic regularized OT. Remarkably, this approach extends to the generalized unbalanced case -- where Gaussian measures are scaled by positive constants. This extension leads to a closed form expression for unbalanced Gaussians as well, and highlights the mass transportation / destruction trade-off seen in unbalanced optimal transport. Moreover, in both settings, we show that the optimal transportation plans are (scaled) Gaussians and provide analytical formulas of their parameters. These formulas constitute the first non-trivial closed forms for entropy-regularized optimal transport, thus providing a ground truth for the analysis of entropic OT and Sinkhorn's algorithm.","url_abs":"https://arxiv.org/abs/2006.02572v1","url_pdf":"https://arxiv.org/pdf/2006.02572v1.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"entropic-optimal-transport-between-unbalanced","repo_url":"https://github.com/hichamjanati/Entropic-OT-gaussians","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.02572","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.02572"}},"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/hichamjanati/Entropic-OT-gaussians","reach":null}],"summary":{"ran_violates":1,"ran_fixture":2,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"listed":{"samples":5,"ran":4,"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":5,"samples":[{"code_sha256_prefix":"6188613d1a595abb","entry":"bures","repo":"hichamjanati/Entropic-OT-gaussians","repo_kind":"listed","path":"closed_forms.py","file_url":"https://github.com/hichamjanati/Entropic-OT-gaussians/blob/HEAD/closed_forms.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6188613d1a595abb"}},{"code_sha256_prefix":"7a0543381b56938f","entry":"closed_form_balanced","repo":"hichamjanati/Entropic-OT-gaussians","repo_kind":"listed","path":"closed_forms.py","file_url":"https://github.com/hichamjanati/Entropic-OT-gaussians/blob/HEAD/closed_forms.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7a0543381b56938f"}},{"code_sha256_prefix":"8f617f849734ff74","entry":"closed_form_unbalanced","repo":"hichamjanati/Entropic-OT-gaussians","repo_kind":"listed","path":"closed_forms.py","file_url":"https://github.com/hichamjanati/Entropic-OT-gaussians/blob/HEAD/closed_forms.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8f617f849734ff74"}},{"code_sha256_prefix":"fb4774483e3428e9","entry":"newton_schultz","repo":"hichamjanati/Entropic-OT-gaussians","repo_kind":"listed","path":"run_newton_schultz.py","file_url":"https://github.com/hichamjanati/Entropic-OT-gaussians/blob/HEAD/run_newton_schultz.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fb4774483e3428e9"}},{"code_sha256_prefix":"5d0caf9d13e05566","entry":"evd","repo":"hichamjanati/Entropic-OT-gaussians","repo_kind":"listed","path":"run_newton_schultz.py","file_url":"https://github.com/hichamjanati/Entropic-OT-gaussians/blob/HEAD/run_newton_schultz.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":"5d0caf9d13e05566"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}