{"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/smooth-and-sparse-optimal-transport","title":"Smooth and Sparse Optimal Transport","arxiv_id":"1710.06276","date":"2017-10-17","proceeding":null,"authors":["Mathieu Blondel","Vivien Seguy","Antoine Rolet"],"abstract":"Entropic regularization is quickly emerging as a new standard in optimal\ntransport (OT). It enables to cast the OT computation as a differentiable and\nunconstrained convex optimization problem, which can be efficiently solved\nusing the Sinkhorn algorithm. However, entropy keeps the transportation plan\nstrictly positive and therefore completely dense, unlike unregularized OT. This\nlack of sparsity can be problematic in applications where the transportation\nplan itself is of interest. In this paper, we explore regularizing the primal\nand dual OT formulations with a strongly convex term, which corresponds to\nrelaxing the dual and primal constraints with smooth approximations. We show\nhow to incorporate squared $2$-norm and group lasso regularizations within that\nframework, leading to sparse and group-sparse transportation plans. On the\ntheoretical side, we bound the approximation error introduced by regularizing\nthe primal and dual formulations. Our results suggest that, for the regularized\nprimal, the approximation error can often be smaller with squared $2$-norm than\nwith entropic regularization. We showcase our proposed framework on the task of\ncolor transfer.","url_abs":"http://arxiv.org/abs/1710.06276v2","url_pdf":"http://arxiv.org/pdf/1710.06276v2.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":"smooth-and-sparse-optimal-transport","repo_url":"https://github.com/mblondel/smooth-ot","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1710.06276","atlas_url":"https://app.syntology.ai/?focus=1710.06276","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1710.06276"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/mblondel/smooth-ot","reach":null}],"summary":{"ran_draft_wrong":2,"ran_fixture":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":"25ac6d739afaa06d","entry":"dual_obj_grad","repo":"mblondel/smooth-ot","repo_kind":"official","path":"smoothot/dual_solvers.py","file_url":"https://github.com/mblondel/smooth-ot/blob/HEAD/smoothot/dual_solvers.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"25ac6d739afaa06d"}},{"code_sha256_prefix":"7671dfd253678d06","entry":"projection_simplex","repo":"mblondel/smooth-ot","repo_kind":"official","path":"smoothot/dual_solvers.py","file_url":"https://github.com/mblondel/smooth-ot/blob/HEAD/smoothot/dual_solvers.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"7671dfd253678d06"}},{"code_sha256_prefix":"cc69b6533f603128","entry":"solve_dual","repo":"mblondel/smooth-ot","repo_kind":"official","path":"smoothot/dual_solvers.py","file_url":"https://github.com/mblondel/smooth-ot/blob/HEAD/smoothot/dual_solvers.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"cc69b6533f603128"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}