# Objective function: linear # Constraint functions: second-order cone # Feasible set: convex # Computes the median of m numbers by minimizing # the sum of the distances. When m is odd, median # lies at the middle data point. The corresponding # second-order cone constraint becomes almost "singular" # but doesn't cause any problems. var eps >= 1.0e-7; param m; param a {1..m}; var x; var t {1..m}; minimize lin: eps + sum {i in 1..m} t[i]; subject to dist {i in 1..m}: sqrt(eps^2+(x-a[i])^2) <= t[i]; data; param m := 3; let eps := 1; let {i in 1..m} a[i] := Uniform01(); solve; let eps := 0; display lin;