Understanding the perceptron algorithm in the book "A Course in Machine Learning"
Y is the desired output of the perceptron (often referred to as target) , for the given set of input vectors.

Rationale behind Y.a&lt;=0 :

Prerequisite knowledge :


A=A-B : Moves vector A away from direction of vector B
A=A+B : Moves A in the direction of B
A (.) B >0 ; A vector is directed acutely (&lt;90 deg.) towards B vector
A (.) B &lt;0 ; A vector is directed away from (>90 deg.) from B vector [(.) denotes dot (scalar) product and bold letters indicate vectors]
W is augmented vector (includes threshold as another weight along with normal input weights)
X is augmented input (includes -1 as extra input (corresponding to threshold) along with other normal inputs
a(activation) = W (.) X
a >=0 ; Perceptron output 1
a&lt;0 ; Perceptron output -1 (Not zero as implicit in the given algorithm I think)


Now Rationale :

(Y.a&lt;0) 

This means 
Either of the following :


Y=-1 and a>0 ; in this case the target output is -1 but as a>0 so the Perceptron outputs 1. So we must move the weight vector away from this set of input vector, so that angle between them increases and the dot product (a) becomes &lt; 0 so that we can get the target output.
Hence : W=W-X


Or ,W=W + (-1)*X
Or, W=W+YX


Y=1 and a&lt;0


This means the target output is 1 but as the activation is &lt;0 so Perceptron is outputting -1. So we must move the weight vector close to this set of input vector so that the activation can become >0 (angle decreases) and the Perceptron can output the desired output.
So :
W = W+X
Or W=W + YX

Again , Y.a=0 is a boundary case.
By now I think you can understand the rationale behind Y.a=0. If any doubt , comment to this answer , I will explain it.

Sorry for so much long answer though. :) :)