Skip to content

Ground Metrics ​

SDOT transports with the cost c(x,y)=|x−y|2. Three independent choices change it, each in its own place:

what changeswhere it is stated
The spaceRd, or its quotient by a group G of isometries: a torus, a Klein bottle, a cone, a crystal... The cost becomes $\min_{g \in G}x - g( y )
The cost of a distanceφ(|x−y|), for all the diracs or per dirac ( radial functions around the diracs )roadmap
The mass balanceequal masses, or not: what is not transported goes to a global sink ( partial transport, cells capped by balls of radius wi )target_mass of the distributions: see Partial Transport

They compose: each one is stated on its own, and they apply together. A partial transport on a torus, where 30 diracs share half of the unit square:

python
f = sdot.SumOfDiracs( positions, target_mass = 0.5 )        # the mass balance: half of the square is transported
g = sdot.Box()

p = sdot.plan( f, g, periodicity = True )                   # the space: a torus
p.add_to_viz( viz )

Each dirac takes the part of its cell that lies in a ball around it, in full color; the rest of the cell, faded, goes to the sink. The space is a torus, so the cells are drawn whole around their diracs, and again, fainter, moved by the translations of the torus: a ball that crosses a side of the square ( dashed ) comes back on the other one.

Open in a separate page ↗

Page
Periodicityquotients of Rd by a group of isometries: how to give the group, where the cells are, how to look at them
Partial Transporta source lighter than the target: how to state it, what each dirac takes, how to use the result

Reproducing the pages ​

The figures of these pages are written by the scripts next to them, in docs/guide/ground-metrics/:

bash
python docs/guide/ground-metrics/index_figures.py
python docs/guide/ground-metrics/periodicity_figures.py                 # all of them
python docs/guide/ground-metrics/partial_figures.py power masses        # or some of them

SDOT — H. Leclerc, Q. Mérigot, T. Gallouët · LMO / INRIA PARMA