Semi-Definite Programming by Perceptron Learning