INF580 – Large-scale Mathematical Programming
TD4 — Distance Geometry, Part I Leo Liberti
CNRS LIX, Ecole Polytechnique, France
200131
Leo Liberti (CNRS LIX) INF580 / TD4 200131 1 / 12
INF580 Large-scale Mathematical Programming TD4 Distance - - PowerPoint PPT Presentation
INF580 Large-scale Mathematical Programming TD4 Distance Geometry, Part I Leo Liberti CNRS LIX, Ecole Polytechnique, France 200131 Leo Liberti (CNRS LIX) INF580 / TD4 200131 1 / 12 Universal Isometric Embedding Given metric
CNRS LIX, Ecole Polytechnique, France
Leo Liberti (CNRS LIX) INF580 / TD4 200131 1 / 12
∞
Leo Liberti (CNRS LIX) INF580 / TD4 200131 2 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 3 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 4 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 5 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 6 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 7 / 12
import sys import numpy as np import math import types from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D myZero = 1e-9 K = 3 # can be 2 or 3 f = sys.argv[1] # read input filename from command line lines = [line.rstrip(’\n’).split()[2:] for line in open(f) if line[0] == ’x’] n = len(lines) # turn into float array X = np.array([[float(lines[i][j]) for j in range(n)] for i in range(n)]) G = dist2Gram(X) # if X produced by UIE, X = its own dist matrix x = PCA(G,K) if K == 2: plt.scatter(x[:,0], x[:,1]) elif K == 3: fig = plt.figure() ax = Axes3D(fig) ax.scatter(x[:,0], x[:,1], x[:,2]) plt.show()
Leo Liberti (CNRS LIX) INF580 / TD4 200131 8 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 9 / 12
2 = d2 uv
uv | ∀{u, v} ∈ E xu − xv2 2 = d2 uv + suv
2 − d2 uv)2
2 | ∀{u, v} ∈ E xu − xv2 2 ≤ d2 uv
Leo Liberti (CNRS LIX) INF580 / TD4 200131 10 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 11 / 12
Leo Liberti (CNRS LIX) INF580 / TD4 200131 12 / 12