transport_plan_1d — COLORTRANSPORT transport op

• Data kinds: signal × signal → transport_plan

• Call: import fullseye as fs; fs.ledger.transport_plan_1d(u_values, v_values) (implementation को सीधे call करना हो तो import colortransport; colortransport.transport_plan_1d(u_values, v_values), registry से लेना हो तो opscolortransport.get("transport_plan_1d"))

उपयोग

1-D का exact transport plan (north-west corner rule)। (n, m) का mass matrix लौटाता है।

row sums 1/n और column sums 1/m होते हैं -- यह construction से ही ठीक-ठीक है, और numerical error के अलावा कभी नहीं हटता (test से fix किया गया)।

प्रक्रिया: u (n मान) और v (m मान) को अलग-अलग आरोही क्रम में रखकर, छोटे से शुरू करके क्रम से mass min(बचा u, बचा v) assign किया जाता है (monotone coupling)। हर sample का mass बराबर 1/n और 1/m है (weighted स्वीकार नहीं)। 1 आयाम में जब तक cost दूरी का convex function हो, यह monotone coupling ही optimal solution है, इसलिए wasserstein_1d वाला ही transport "कौन सा sample कहाँ जाता है" के matrix के रूप में मिलता है।

• u_values, v_values: 1 आयाम में flatten (ravel)। लंबाई अलग हो सकती है। ख़ाली हो तो MetricContractError। finiteness जाँची नहीं जाती (NaN sort होकर अंत में जाता है और चुपचाप couple हो जाता है)।

• return value: (n, m) का float64 (transport_plan type)। plan[i, j] input के मूल क्रम में u[i] से v[j] तक ले जाया गया mass है। अधिकतम n + m - 1 non-zero तत्व। n == m हो तो permutation matrix / n (एक-से-एक संबंध)।

• गणना O((n + m) log) sort + O(n + m) scan है, लेकिन लौटाया गया matrix n × m का dense matrix है, इसलिए pixel संख्या जितने बड़े samples के लिए उपयुक्त नहीं (उस स्थिति में histogram_match या sinkhorn)।

apply_transport(plan, v) से u पक्ष के हर sample के गंतव्य का मान (centroid), और transport_cost(plan, cost) से कुल cost मिलती है।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• colorimetry — Colorimetry और spectra — रंग केवल spectrum × illuminant × observer से तय होता है

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• color_transport — py -3.11 examples/color_transport.py

वे अगले ops जिनसे type जुड़ता है (transport_plan को input के रूप में लेते हैं)

transport_cost · apply_transport

इसी category के (transport)

wasserstein_1d · sinkhorn · sinkhorn_distance · sinkhorn_divergence


*Provenance: colortransport.py — COLORTRANSPORT operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.