transport op• Datenarten: signal × signal → transport_plan
• Aufruf: import fullseye as fs; fs.ledger.transport_plan_1d(u_values, v_values) (die Implementierung direkt: import colortransport; colortransport.transport_plan_1d(u_values, v_values); aus dem Register: opscolortransport.get("transport_plan_1d"))
Der exakte 1-D-Transportplan (Nordwest-Ecken-Regel). Liefert eine (n, m)-Massenmatrix.
Zeilensummen sind 1/n, Spaltensummen 1/m -- das ist konstruktionsbedingt exakt, und es weicht außer durch numerische Fehler nie ab (per Test festgenagelt).
Ablauf: u (n Werte) und v (m Werte) jeweils aufsteigend sortieren und vom kleinsten an der Reihe nach die Masse min(Rest u, Rest v) zuweisen (monotone Kopplung). Die Masse jeder Stichprobe ist gleichmäßig 1/n bzw. 1/m (gewichtete werden nicht angenommen). In 1 Dimension ist, solange eine konvexe Funktion des Abstands die Kosten bildet, diese monotone Kopplung optimal, daher erhält man denselben Transport wie wasserstein_1d als Matrix "welche Stichprobe wohin geht".
• u_values, v_values: auf 1 Dimension abgeflacht (ravel). Die Längen dürfen verschieden sein. Leer ergibt MetricContractError. Endlichkeit wird nicht geprüft (NaN landet beim Sortieren am Ende und wird stillschweigend gekoppelt).
• Rückgabewert: float64 der Form (n, m) (Typ transport_plan). plan[i, j] ist die Masse, die in der ursprünglichen Eingabereihenfolge von u[i] nach v[j] transportiert wird. Höchstens n + m - 1 Elemente ungleich null. Bei n == m eine Permutationsmatrix / n (eins-zu-eins-Zuordnung).
• Der Aufwand ist eine O((n + m) log)-Sortierung + ein O(n + m)-Durchlauf, aber die zurückgegebene Matrix ist eine dichte n × m-Matrix, daher ungeeignet für Stichproben in der Größenordnung von Pixelzahlen (dann histogram_match oder sinkhorn).
apply_transport(plan, v) liefert den Zielwert (Schwerpunkt) jeder Stichprobe auf der u-Seite, transport_cost(plan, cost) die Gesamtkosten.
• colorimetry — Farbmetrik und Spektren — Farbe ist nur durch Spektrum × Lichtart × Beobachter bestimmt
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• color_transport — py -3.11 examples/color_transport.py
transport_plan als Eingabe)transport_cost · apply_transport
transport)wasserstein_1d · sinkhorn · sinkhorn_distance · sinkhorn_divergence
*Provenance: colortransport.py — COLORTRANSPORT Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.