transport_plan_1d — COLORTRANSPORT transport op

• 資料種類:signal × signal → transport_plan

• 呼叫: import fullseye as fs; fs.ledger.transport_plan_1d(u_values, v_values)(要直接呼叫實作,import colortransport; colortransport.transport_plan_1d(u_values, v_values);從台帳取用則 opscolortransport.get("transport_plan_1d"))

用法

一維精確輸運計畫(西北角法則)。回傳 (n, m) 質量矩陣。

列和為 1/n、欄和為 1/m —— 這是由建構嚴格保證的, 除數值誤差外不會偏離(已用測試固定)。

步驟:把 u(n 個)和 v(m 個)分別升序排列,從小到大依次分配質量 min(剩餘 u, 剩餘 v)(單調耦合)。各樣本的質量均為 1/n、1/m(不接受加權)。在 1 維中,只要以距離的凸函數 作為成本,這種單調耦合就是最佳解,所以能以「哪個樣本去哪裡」的矩陣形式得到與 wasserstein_1d 相同的傳輸。

• u_values、v_values:壓平為 1 維(ravel)。長度可以不同。為空則 MetricContractError。不檢查有限性(NaN 排序後在末尾, 被默默耦合)。

• 回傳值:(n, m) 的 float64(transport_plan 型別)。plan[i, j] 是按輸入的原始順序從 u[i] 運往 v[j] 的質量。非零元素至多 n + m - 1 個。n == m 時為置換矩陣 / n(一一對應)。

• 計算量為 O((n + m) log) 的排序 + O(n + m) 的掃描,但回傳的矩陣是 n × m 的稠密矩陣,不適合像素數規模的樣本(此時用 histogram_match 或 sinkhorn)。

用 apply_transport(plan, v) 取 u 側各樣本去向的值(質心), 用 transport_cost(plan, cost) 取總成本。

背景知識指南(該運算子背後的物理與規範)

• colorimetry — 測色與光譜知識 —— 顏色只由「光譜 × 光源 × 觀察者」決定

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• color_transport — py -3.11 examples/color_transport.py

型別可銜接的下一個運算子(可接受 transport_plan 作為輸入)

transport_cost · apply_transport

同類別(transport)

wasserstein_1d · sinkhorn · sinkhorn_distance · sinkhorn_divergence


*Provenance: colortransport.py — COLORTRANSPORT 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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