pith:JVME5N5J
Learning Unbiased Permutations via Flow Matching
A flow matching model learns multimodal permutations by projecting trajectories onto the space of unit row and column sum matrices.
arxiv:2605.16755 v1 · 2026-05-16 · cs.LG · cs.AI
Add to your LaTeX paper
\usepackage{pith}
\pithnumber{JVME5N5JR53QA5BEYA3FRTHYZN}
Prints a linked badge after your title and injects PDF metadata. Compiles on arXiv. Learn more · Embed verified badge
Record completeness
Claims
A conditional flow matching framework that operates directly on the affine subspace of matrices with unit row and column sums. A closed-form tangent-space projector preserves these constraints exactly along every trajectory by construction rather than through iterative correction, and a nearest-target coupling routes distinct noisy initializations toward distinct valid permutations, enabling the model to capture multimodal permutation distributions rather than collapsing them to a single mode.
That the closed-form tangent-space projector can be computed efficiently and remains numerically stable for the chosen flow schedules, and that the nearest-target coupling strategy is sufficient to train the model to distinguish and recover distinct modes without requiring extra regularization or assumptions on the underlying data distribution.
PermFlow applies conditional flow matching on the affine subspace of doubly stochastic matrices with a closed-form tangent projector and nearest-target coupling to capture multimodal permutation distributions.
References
Receipt and verification
| First computed | 2026-05-20T00:03:20.036117Z |
|---|---|
| Builder | pith-number-builder-2026-05-17-v1 |
| Signature | Pith Ed25519
(pith-v1-2026-05) · public key |
| Schema | pith-number/v1.0 |
Canonical hash
4d584eb7a98f77007424c03658ccf8cb61a860fd138161dd63c5cdb357b9dd51
Aliases
· · · · ·Agent API
Verify this Pith Number yourself
curl -sH 'Accept: application/ld+json' https://pith.science/pith/JVME5N5JR53QA5BEYA3FRTHYZN \
| jq -c '.canonical_record' \
| python3 -c "import sys,json,hashlib; b=json.dumps(json.loads(sys.stdin.read()), sort_keys=True, separators=(',',':'), ensure_ascii=False).encode(); print(hashlib.sha256(b).hexdigest())"
# expect: 4d584eb7a98f77007424c03658ccf8cb61a860fd138161dd63c5cdb357b9dd51
Canonical record JSON
{
"metadata": {
"abstract_canon_sha256": "f86fa8730b9abab7b96099a40b6aa681b906422392ec63f99c1556c615bbad7b",
"cross_cats_sorted": [
"cs.AI"
],
"license": "http://creativecommons.org/licenses/by/4.0/",
"primary_cat": "cs.LG",
"submitted_at": "2026-05-16T02:10:35Z",
"title_canon_sha256": "259a5c80fc8e7ebd88d68461cd211e64b45009e04335da96a0105a6e1bcb9ad0"
},
"schema_version": "1.0",
"source": {
"id": "2605.16755",
"kind": "arxiv",
"version": 1
}
}