I. Introduction
The data collected in most modern applications are mostly structured in the form of matrices (for instance, in a recommendation system, the data is represented in the form of a matrix, where each row is a user, each column is an object and the corresponding entry represents the rating given by the particular user to that object). The problem of matrix completion, or reconstructing a matrix from a set of partially observed entries, is of immense practical importance. Missing values is a recurrent problem in applications like machine learning computer vision and graphics and recommendation systems among others. Missing data in any of these applications can bias results, reduce generalizibility and lead to erroneous conclusions. Several matrix completion algorithms have been proposed over the last couple of decades to address this practical and useful challenge [1], [2], [3].