Suppose that I have some set S of size n, a dataset D of tuples (s1, s2, magnitude_s1s2) where s1 and s2 are both elements of S and magnitude_s1s2 is some non-negative integer, and I want to learn a function f that takes each element of S into two-dimensional space. For each s1, s2, and s3 in S, the distance between f(s1) and f(s2) should be less than f(s1) and f(s3) if in D there exist (s1, s2, magnitude_s1s2) and (s1, s3, magnitude_s1s3) such that magnitude_s1s2 > magnitude_s1s3. Is this an example of manifold learning? If not what is it? What algorithms might help solve this problem?