gforce.certify {GFORCE} | R Documentation |
Given a proposed integer solution to the K-means SDP relaxation, this function attempts to construct a solution to the dual problem with matching objective value.
gforce.certify(sol, D, eps1 = 0.01, eps2 = 10^-7, Y_T_min = 0.01)
sol |
vector of length d. This contains the assignment of variables or points to clusters. |
D |
d x d matrix. |
eps1 |
a scalar. It controls the stopping condition for the dual solution search. |
eps2 |
a scalar. It controls the infeasibility tolerance for the dual solution to allow for numerical imprecision. |
Y_T_min |
a scalar. THe smallest Y_T that the function can return. Must be greater than 0. |
An object with the following components:
Y_T
a numeric. The value of the variable Y_T
in the dual solution found.
Y_a
a d dimensional numeric vector. The value of the variable Y_a
in the dual solution found.
feasible
an integer. 1 signifies that sol
is optimal, 0 otherwise.
C. Eisenach and H. Liu. Efficient, Certifiably Optimal High-Dimensional Clustering. arXiv:1806.00530, 2018.
K <- 5 n <- 50 d <- 50 dat <- gforce.generator(K,d,n,3,graph='scalefree') sig_hat <- (1/n)*t(dat$X)%*%dat$X gam_hat <- gforce.Gamma(dat$X) D <- diag(gam_hat) - sig_hat dual_cert <- gforce.certify(dat$group_assignments,D)