Computing the First Betti Numberand Describing the Connected Components   of Semi-algebraic Sets
  In this paper we describe a singly exponential algorithm for computing the first Betti number of a given semi-algebraic set. Singly exponential algorithms for computing the zero-th Betti number, and the Euler-Poincar\'e characteristic, were known before. No singly exponential algorithm was known for computing any of the individual Betti numbers other than the zero-th one. We also give algorithms for obtaining semi-algebraic descriptions of the semi-algebraically connected components of any given real algebraic or semi-algebraic set in single-exponential time improving on previous results. 
Saugata Basu, Richard Pollack, Marie-Francoise Roy