A numerical algorithm with linear complexity for Multi-marginal Optimal Transport with $L^1$ Cost
Chunhui Chen, Jing Chen, Baojia Luo, Shi Jin, Hao Wu

TL;DR
This paper introduces a novel recursive tensor-vector product algorithm that significantly reduces the computational complexity of solving multi-marginal optimal transport problems with L1 cost from exponential to linear, enabling faster solutions.
Contribution
The authors develop a recursive tensor-vector product method that drastically improves computational efficiency for MMOT with L1 cost, reducing complexity from exponential to linear.
Findings
The new algorithm achieves linear computational complexity $O(N)$ for MMOT with L1 cost.
Numerical experiments show the method is several orders of magnitude faster than traditional Sinkhorn algorithms.
The approach effectively handles moderate-scale MMOT problems with support sizes of $N \\geq 1000$.
Abstract
Numerically solving multi-marginal optimal transport (MMOT) problems is computationally prohibitive, even for moderate-scale instances involving marginals with support sizes of . The cost in MMOT is represented as a tensor with elements. Even accessing each element once incurs a significant computational burden. In fact, many algorithms require direct computation of tensor-vector products, leading to a computational complexity of or beyond. In this paper, inspired by our previous work [, 20 (2022), pp. 2053 - 2057], we observe that the costly tensor-vector products in the Sinkhorn Algorithm can be computed with a recursive process by separating summations and dynamic programming. Based on this idea, we propose a fast tensor-vector product algorithm to solve the MMOT problem with cost, achieving a miraculous reduction in the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
