With radio frequency identification (RFID) becoming a popular wireless technology, more and more relevant applications are emerging. Therefore, anti-collision algorithms, which determine the time to tag identification and the accuracy of identification, have become very important in RFID systems. This paper presents the algorithms of ALOHA for randomness, the binary tree algorithm for determinism, and a hybrid anti-collision algorithm that combines these two algorithms. To compensate for the low throughput of traditional algorithms, RFID anti-collision algorithms based on blind source separation (BSS) are described, as the tag signals of RFID systems conform to the basic assumptions of the independent component analysis (ICA) algorithm. In the determined case, the ICA algorithm-based RFID anti-collision method is described. In the under-determined case, a combination of tag grouping with a blind separation algorithm and constrained non-negative matrix factorization (NMF) is used to separate the multi-tag mixing problem. Since the estimation of tag or frame length is the main step to solve the RFID anti-collision problem, this paper introduces an anti-collision algorithm based on machine learning to estimate the number of tags.