Adaptive and dynamic RFID tag anti-collision based on secant iteration

Radio frequency identification (RFID) has recently experienced unprecedented development. Among many other areas, it has been widely applied in blood station management, automatic supermarket checkout, and logistics. In the application of RFID for large-scale passive tags, tag collision is inevitable owing to the non-cooperation mechanism among tags. Therefore, a tag anti-collision method is a key factor affecting the identification efficiency. In this paper, we propose a tag anti-collision method based on Aloha technology for RFID. It estimates the number of remaining tags using the secant iteration method. To achieve optimal identification efficiency, it adaptively and dynamically adjusts the lengths of the subsequent frames according to the principle that the length of a frame should be the same as the number of tags to be identified. For pseudo-solutions of tag population estimation while using secant iteration, we present an elimination method by two probing frames. The simulation results show that the estimation precision of our method can reach above 97%. Thus, it can meet the requirement of the tag anti-collision estimation accuracy. Its global throughput is obviously superior to the Q algorithm adopted by the current international standard, and it is close to the ideal system. It consequently outperforms existing schemes.


Introduction
Radio frequency identification (RFID) technologies are widely applied in logistics, product tracing, blood management, and many other areas of our daily life [1]. An RFID system consists of readers, electronic tags, and data processing systems [2]. Passive tags are usually attached to the objects to be identified [3]. The data processing systems exchange information through a wireless channel between readers and tags. They then perform the identification, location, and intelligent control of the objects. The quantities of the objects to be identified are usually large. Thus, many tags must often be simultaneously identified. Owing to the cost of that endeavor, tags usually work in passive mode. Consequently, they have neither channel a1111111111 a1111111111 a1111111111 a1111111111 a1111111111 sensing capabilities nor the ability to communicate with each other. Tag collisions may thus occur during batch identification. Tag collisions will result in a decreased identification efficiency and increased time delay, thereby increasing the leakage probability in mobile environments. Therefore, developing a means to reduce the impacts of tag collisions on RFID system identification efficiency is the focus of numerous studies [4][5][6][7][8].
The two types of anti-collision algorithms proposed in the literature are binary-tree-based algorithms [4,5] and Aloha-protocol-based algorithms [6][7][8]. In most RFID applications, the tag population size is large. The delay of the binary tree algorithm is too long to meet the requirements of real-time identification in mobile environments. Hence, the Aloha algorithm is widely adopted. It is a random anti-collision algorithm [9,10] driven by readers, by which each tag randomly transmits in a selected slot according to the reader's command. This algorithm is simple, and its usage cost is low. The Aloha algorithm is divided into pure Aloha (PA), slot Aloha (SA), frame slot Aloha (FSA), and dynamic FSA (DFSA) [11][12][13]. The DFSA algorithm was proposed to improve the Aloha performance and is now widely used.
ISO18000 and EPCglobal are the two most influential international standards for RFID. The type C of ISO18000-6 (known as ISO18000-6C) and EPCglobal_C1 G2 (known as EPC_C1 G2) use the same technical system drafted by the EPCglobal organization. The ISO18000-6C standard uses an anti-collision algorithm based on DFSA, and it adopts the Q algorithm to dynamically adjust the frame length, frame by frame [6]. The reader sends a command with the frame length Q to the tags. Each tag then randomly selects one of the available slots to reply to the reader. This algorithm improves identification efficiency more effectively compared to the fixed frame length method [7][8].
In the Q algorithm, on the other hand, adjustable step C only spans from 0.1 to 0.5, and rules of value selection are not provided. In practice, if the value of C is too high, the frame lengths must be frequently adjusted and the system will be unstable. On the contrary, if the value of C is too low, the adjustment will be sluggish. To address this problem, many improved anti-collision algorithms have been proposed. A method of obtaining high identification efficiency by dynamically adjusting the frame length according to the number of tags was proposed in [14]. In [15], a closed form solution for the analytical calculation of the optimum frame length was presented. Zhang et al. presented in [16] an adaptive assigned tree slotted Aloha protocol that uses a binary query method to solve the unknown tag problem. Kim et al. proposed in [17] a DFSA algorithm that adjusts the frame length based on the number of collision slots and idle slots that engender higher estimation efficiency. The authors of [18] proposed an anti-collision protocol using the reservation mechanism. In this mechanism, the tag identification process is divided into two stages, which reduces the collision slots and eliminates idle slots, greatly enhancing the identification efficiency.
Meanwhile, Bartlett et al. proved that the identification efficiency is the highest when the number of tags is the same as the frame length [19]. The authors of [20] presented a tag anticollision algorithm based on grouping the self-adaptive allocation slot. Accordingly, the system identification efficiency is significantly improved. Shakiba et al. [21] applied the birthday paradox theory to estimate the number of tags. Vogt [22] applied the maximum likelihood estimation method to estimate the number of tags. This approach increases the tag estimation accuracy. Vogt also used the Markov process to describe the dynamic framed ALOHA reading of passive tag. [23] Chen et al. [24] proposed an adaptive algorithm to minimize the total time slots required for identifying the tags within the RFID reader's interrogation zone. Arjona et al. [25] integrated fuzzy logic with RFID anti-collision protocols, which decreases the identification time by updating the transmission frame size in a dynamic and adaptive way.
For measuring the performance of RFID, global throughput is a commonly used index. It is defined as the ratio of the time consumed by the transmission of information to the time consumed by the whole identification process. Lee et al. [26] presented an algorithm that adaptively updates the frame size based on estimating the number of tags by counting the respective numbers of idle, success, and collision slots. This approach significantly improves the global throughput.
Taking the optimization of global throughput performance as the target, we herein present a FSA-based anti-collision method that can adaptively and dynamically adjust the frame length. It estimates the number of tags to be identified according to the number of tags successfully identified after only the first frame. According to the estimation result and the successfully identified tags in the first frame, the reader adjusts the length of subsequent frames to perform optimal identification. The estimation algorithm adopts the secant iteration. Herein, it is referred to as the secant-iteration-based adaptive and dynamic frame slotted Aloha method (SIADA). The simulation results show that, compared with the Q algorithm adopted by the ISO18000-6C standard, the global throughput of the proposed algorithm is improved by more than 2 times. Thus, the proposed method has superior performance.
The remainder of the paper is organized as follows. Section 2 presents the system model and outlines the SIADA algorithm flow. In section 3, we derive a new estimation method of the initial tag population. In section 4, the global throughput of SIADA is presented and compared to the ISO18000-6C Q algorithm, the Vogt algorithm, and the ideal system. Finally, concluding remarks are provided in section 5.

i. Basic definition
It is assumed that there are multiple passive tags within the reader coverage. The process of completing the identification of all the tags within the reader coverage is called the identification period. One identification period is comprised of multiple identification frames, and each frame is composed of several slots. Within one identification period, each tag only needs to be successfully identified once. When a tag is correctly identified by the reader, it will enter a silent state and will no longer respond to the reader during this identification period.
In addition, it is assumed that there are no new tags entering the reader coverage during one identification period. Suppose there are n passive tags within the reader coverage and the identification process is controlled by the reader.
Query(Q) command: The Query(Q) command starts a general frame (not including the probing frame). The reader broadcasts the Query (Q) command to all tags, as the first command to initiate an identification period. It requires the parameter Q, whose value is set by the user in advance, and then it is adjusted adaptively and dynamically, according to the number of remaining tags. That is, Q refers to the initial value in the first frame, and then iterates from the second frame. All tags enter the active state after receiving this command.
ReadN command: A command reads the next slot. 1 is subtracted from S i , S li or S ui after the tags receive the ReadN command; S i , S li and S ui are defined in the next section.
QueryT (Q) command: The QueryT (Q) command starts a probing frame. We use two probing frames to eliminate the Pseudo-solution. The details are described in the next section.

ii. Processing flow
Firstly, the reader sends the Query (Q) command, indicating that the frame includes Q slots. After receiving the command, each tag randomly produces an integer S i (i = 1, 2. . .n), which is no greater than Q. This means that the ith tag aims to respond to the reader in slot S i . After that point, the reader sends the command ReadN. After receiving ReadN, the ith tag reduces S i by 1. If the result is 0, the ith tag responds to the reader at this slot; otherwise, it waits for the next ReadN command. Accordingly, the reader sends the ReadN command for Q times to complete the reading of all the Q slots in the first frame. For the reader, it does not know the initial number of tags n. To enhance the global throughput performance of the overall identification period, it must estimate n. In this paper, we propose that, after the successful identification of N s tags in the first frame, the reader estimates the number of initial tagsn using secant iteration. Firstly, we set the length of the second frame as (n À N s ) to enable the optimal identification efficiency. Then, the subsequent frames use a similar process until all tags are correctly identified. The algorithm processing flow of SIADA is shown in Fig 1. As shown in Fig 1, each tag randomly selects one slot to respond to the reader. Slot S i may be selected by multiple tags, by one tag, or by no tag. If a slot is selected by multiple tags, then there will be more than one tag simultaneously sending its 16-bit random number (RN16) in this slot. The random numbers are different; thus, the reader utilizes the Manchester encoding character to perceive the tag collision. In this case, the slot is marked as a collision slot. If a slot is selected by only one tag, then the slot is an effective slot and N s is increased by 1. If a slot is selected by no tag, then the slot is an idle slot. Also shown in Fig 1, CTI uses the proposed frame length multiplication algorithm, which is proposed in subsection iii in the next section.
The initial tag population size estimation algorithm is located between the first frame and the second frame, which includes two steps: i.e., initial tag population size estimation based on SIADA, and the removal of the "pseudo solution." From the second frame, by subtracting the tags that have been successfully identified before, from the initial tags estimated, we can obtain the remaining tags, according to which the length of the current frame will be determined optimally. In this way, the following frames are carried out until all tags are identified successfully. The estimation method consists of solving a transcendental equation, which usually produces two solutions: one of which is a pseudo solution needing to be removed by a special method. The resolvent is given in subsection ii in the next section.

Estimation of initial tag population
In estimation of the initial tag population, the first frame length is Q, and the number of tags to be identified is n. Then, each tag randomly generates an integer S i = m (i = 1, 2. . .n). The probability that m is less than Q is P = 1/Q, and the probability that the r tags will simultaneously select one slot is P(Q, n, r). Then, [18] PðQ; n; rÞ Obviously, in accordance with r being 1, 0, or greater than 1, the probability of successful, empty, and collision slots can be obtained. When r = 1, the probability of successful slots is [18] PðQ; n; Therefore, the expected value of the number of successful slots in one frame is The left side of (3) is the expected value of the number of tags successfully identified. After the first frame, it can be replaced with N s . We can obtain estimatedn through solving the equation. Eq (3) is a transcendental equation; we use herein the secant iteration method to solve it.
The Monte Carlo method is used to simulate the global throughput. The Monte Carlo process is outlined as follows. When n is given, each tag generates a random number, S i (i = 1, 2, 3, . . .,n) 2 [1, Q], representing the ith tag expecting to respond to the reader in slot S i . If S i = S j (i 6 ¼ j), then S i is a collision slot. For any j 2 [1, n], if j 6 ¼ i, then S i 6 ¼ S j . Hence, S i is recorded as a successful slot.

i. Estimation algorithm based on secant iteration
In (3), let E[P(Q, n, 1)] = N s , and let By solving the equation f(x) = 0 and obtaining root x, we can then obtainn ¼ ½x�. The secant method is a root-finding algorithm that uses a succession of roots of secant lines to better approximate a root of a function, f(x). The secant method can be interpreted as a method in which the derivative is replaced by an approximation and is thus a quasi-Newton method. However, Newton's method requires the evaluation of both f(x) and its derivative at every step, whereas the secant method only requires the evaluation of f(x). Therefore, the secant method may be faster in practice. The secant iteration method is based on using the line tangent to the curve of y = f(x), with the point of tangency (ξ, f(ξ)), where ξ is the root. Assume that the two initial estimates of the root are x 0 and x 1 . Then, the tangent function is This line is called the secant line. Its equation is derived as and is linear in x. Solve the equation g(x) = 0, and denote the root by x 2 . This yields The same process is repeated. Use x 1 and x 2 to produce another secant line, and then use its root to approximate ξ. This yields the general iteration formula To start the secant iteration, three parameters, namely x 0 , x 1 , and N, must be specified, where N is the maximum number of iterations. Assume that ε is the error tolerance. The stopping criterion is that |f(x n+1 )| � ε, |x n+1 − x n | � ε, or the iteration times � N. The secant iteration algorithm is shown in Table 1.

ii. Pseudo-solution removal
Calculate the first-order derivative of Eq (4). Then, we can obtain In a real application system, Q >> 1; thus, (1 − 1/Q) x−1 > 0. Using the Taylor series expansion equation, we can obtain Let Eq (10) be equal to 0. We can obtain the extreme point, x opt �Q. That is, when the number of tags to be identified is equal to Q, the identification efficiency reaches the maximum. Theoretically, N s should not be greater than x opt ð1 À 1=QÞ x opt À 1 . When N s ¼ x opt ð1 À 1=QÞ x opt À 1 , Eq (4) has the sole solution. According to Eq (10), it can be observed that, when x<Q, then f '(x) > 0; thus f(x) monotonically increases. When x>Q, then f'(x) < 0, and f(x) monotonically decreases. Therefore, when N s < x opt ð1 À 1=QÞ x opt À 1 , there are two solutions to Eq (4), which Table 1. Secant iteration algorithm.
Step 2: Step 3: if |f(x n+1 )| � ε, |x n+1 − x n | � ε, or k � N, go to step 1, else stop. are respectively located at each side of x opt . One of them must be a pseudo-solution and should be eliminated.
Two initial values, x 0 and x 1 , should be set to solve Eq (4) when the secant iteration is adopted. Q is known. Therefore, in the case of double solutions, the solution position can be controlled through the initial value setting. By setting x 0 and x 1 to be smaller than Q, the solution x l will be smaller than x opt . Otherwise, if setting x 0 and x 1 to be greater than Q, then the solution x u will be greater than x opt .
Setting Q l ¼n l À N s and Q u ¼n u À N s respectively, the reader sends two probing commands QueryT(Q l ) and QueryT(Q u ) in two identification probing frames. Where, n l ¼ roundðx l Þ andn u ¼ roundðx u Þ. The effectively identified tag numbers, N sl (corresponding to Q l ¼n l À N s ) and N su (corresponding to Q u ¼n u À N s ), are recorded. Those tags that are successfully identified during the statistical stage will not enter silent states. The reader determines the one that is a pseudo-solution according to the identification efficiency. If N sl =ðn l À N s Þ � N su =ðn u À N s Þ, thenn ¼ ½x l �; otherwise,n ¼ ½x u �. After eliminating the pseudo-solution, the following frames will continue until all tags are effectively identified. Then, the identification period will be finished. Table 2 gives the experimental results of the estimation algorithm based on the secant iteration. The experimental parameters are n = 900, Q = 1200, ε = 0.001; x 0 = 0.3Q = 360 and x 1 = 0.6Q = 720 for estimation of x l , and x 0 = 1.3Q = 1560 and x 1 = 1.6Q = 1920 for estimation of x u . Table 2 shows that the number of iterations of solving x l and x u is four. By utilizing the experimental results of Table 2, the reader sends two probing commands QueryT(495) and QueryT(1200) based on the parameters Q l = 923−428 = 495 and Q u = 1620-420 = 1200. Through the experiment, we obtain N sl = 189, with 189/495 = 0.3816, and N su = 315, with 315/ 1200 = 0.2624. Owing to 0.3816>0.2624, we can obtainn ¼ 923 and the estimated error is |923-900|/900 = 2.5%. Such estimation accuracy can meet the requirement of the frame length adjustment. If utilizing the theoretical value E[P(Q, n, 1)] = 425.4 for estimation, the experiment result is x l = 897 and x u = 1563. Therefore, N sl = 172, with 172/472 = 0.3640, and N su = 312, with 312/1138 = 0.2739. After eliminating the pseudo-solution by utilizing the same method, we can obtainn ¼ 897, and the estimated error is |897-900|/900 = 0.3%. It can be observed that the estimation error is mainly derived from the deviation between N s and the theoretical value E[P(Q, n, 1)]. If these two values are equal, the estimation error of the initial number of tags will be quite small.

iii. Criteria of terminating identification
According to the definition in this paper, the identification period is the complete identification of all tags in the reader's coverage. It is therefore necessary to determine whether all tags have been successfully identified in order to determine whether to terminate the identification period. Furthermore, the DFSA protocol suffers the well-known tag-starvation problem; that is, a tag may not be correctly read during a reading cycle. Thus, the criteria of terminating identification play a key role in the identification cycle.  The SIADA method proposed in this paper does not require counting the empty slots and collision slots. In theory, it can decide whether to terminate the identification period only according to the successfully identified tags within the frame. If the number of successfully identified tags is 0, we can assume that all tags have been successfully identified. However, through the simulation experiment, it is found that this method is likely to be wrong. In the Query(Q) command, parameter Q is equal to the value that the initial tag number estimated after the first frame minus the number of all tags successfully identified before this frame. Accordingly, the first frame estimation error will pass to the last frame. The estimation accuracy of the SIADA algorithm is higher than 97%. When the remaining tag population is large, it is effective to adaptively adjust the frame length according to the estimated number of the remaining tags. However, when the population is small, such as less than ten, if the number of initial tags is approximately thousands, the estimated error will be greater than a few dozen, which is greater than the number of remaining tags. It is possible that the estimated number of remaining tags will be 0. Nevertheless, the actual number of tags is not 0. To solve this problem, the following frame length multiplication algorithm is proposed.
Assuming that Rep is a natural number, which is the upper-bound of cycles, then the termination judgment is as follows.
Step 2: If Q i = 0 and the number of cycles is less than Rep, then Q i = 2 � (Q i +1), broadcast the Query(Q i ) command, and proceed to Step 1. If Q i = 0 and the number of cycles is equal to Rep, then proceed to Step 4. Otherwise, proceed to Step 3.
Step 3: Start a new identification frame.
Step 4: End the identification period.
If the parameters are properly configured, the frame length multiplication algorithm can solve the tag starvation problem.
The procedure of SIADA, where n is equal to 200, 400, 800 and 2000, is simulated, and the results are shown in Table 3. The other parameters: Rep = 3; Ε = 0.001; x 0 = 0.3Q and x 1 = 0.6Q for estimation of x l ; x 0 = 1.3Q and x 1 = 1.6Q for estimation of x u . Table 3 shows that, when n = 200 and Q = 300, 10 frames are required to identify all tags; when n = 400 and Q = 600, 12 frames are required; when n = 800 and Q = 1200, 7 frames are necessary; when n = 800 and Q = 500, the requirement is 16 frames; when n = 2000 and Q = 3000, 16 frames are necessary; when n = 2000 and Q = 1400, 14 frames are needed. Table 3 also shows that when (n, Q) = (200,300), (800,1200) and (2000,1400), with the numbers of estimated-remaining tags being more than the numbers of actual-remaining tags, the "multiplication frame length algorithm" is not enabled. In the other three cases, the numbers of estimated-remaining tags are less than those of actual-remaining tags, so the "multiplication frame length algorithm" is enabled.

i. Estimation performance of SIADA
We compare the estimation performance with two estimators that have been proposed in references [23] and [27], respectively. They are widely used in applications. Zhen et al. propose in [27] that the number of initial tags can be approximately estimated as follows: where, Nc denotes the number of collision slots. Vogt et al. propose in [23] that a lower bound on the value of n can be obtained by the simple estimation function ε lb , which is defined as ε lb = N s + 2N c . We use Matlab to simulate the SIADA-based estimation of the number of initial tags and compare it with Zhen algorithm and Vogt algorithm. The simulation results are shown in Fig  2. The simulation parameters are Q = 1000, ε = 0.01, n is from 10 to 2000, the sampling interval is 10, and the number of performed trials is 100. Fig 2 demonstrates the absolute error and relative error of SIADA, Zhen, and Vogt algorithm. We can see that SIADA outperforms Zhen and Vogt algorithm. Fig 2 also shows that when n is less than 700 or more than 1300 the relative error of SIADA is less than the relative error of Zhen and Vogt algorithm. When n is close to Q, i.e., it is approximately between 800 and 1200, the relative error of SIADA is slightly larger. This finding shows that, when the number of tags to be identified is close to Q, which is near the optimal value of identification, the method of pseudo-solution removal is prone to error. In this case, the error of pseudo-solution removal will engender a certain degree of influence on the tag identification performance. Nonetheless, owing to the difference between the two roots, x l and x u , being insignificant, it will not cause the algorithm to fail. On the other hand, when n is far from Q, the estimation error is quite small. This is because, when n is close to Q, the two solutions, x l and x u , located at each side of x opt , are close to each other. Owing to the inherent randomness of N s , some errors will inevitably occur during the elimination of the pseudo-solution. Fortunately, in this case, the difference between solutions x l and x u is small. Thus, the false elimination of pseudosolutions will not significantly increase the estimation error, and it will not have a fatal impact on the SIADA identification performance.  NA  NE  NA  NE  NA  NE  NA  NE  NA  NE  NA  NE   1  97  98  196  187  388  394  638  635  974  968  1521  1525   2  63  64  133  124  234  240  393  390  625  619  933  937   3  40  41  80  71  138  144  251  248  405  399  607  611   4  25  26  57  48  79  85  153  150  257  251  363

ii. Global throughput comparison
The global throughput is a commonly used index for measuring the performance of RFID. Specifically, it is defined as:

consumed by transmission information time consumed by the identification period : ð12Þ
The time consumed by the identification period is the sum of the transmission time for all commands, interval time between commands, state switching time, time associated with successful, idle and collision slots, and estimation time. It is assumed that the length of each slot is the same.
Assume the command codes of Query(Q), QueryT(Q), and ReadN as in Table 4. RT cal is defined as Reader-to-Tag calibration symbol and TR cal as Tag-to-Reader calibration symbol. According to the EPCglobal_C1 G2 standard, the TRcal and RTcal must meet the constraints in Eq (13):  Table 4. Command Codes.

QueryT(Q) 11 XXXXXXXXXXXX
ReadN 01 --------- The length of information sent to the reader by the tags is defined as L bits. R-to-T (Reader to Tag) data rate R rt is assumed to be equal to 26.7 kbps, L is equal to 16, and TR cal = 1.2 × RT cal . T-to-R (Reader to Tag) data rate R tr is equal to R rt /1.2 = 22.25 kbps. A Reader shall set RT cal equal to the length of a data-0 symbol plus the length of a data-1 symbol (RT cal = 0 length +1 length ). Thus, RT cal = 74.9μs (assuming equiprobable data) and TR cal = 89.9 μs (assuming equiprobable data). The divide ratio is defined as DR. A DR is assumed equal to 64/3(EPC standard). Backscatter-link pulse-repetition interval is defined as T pri . T pri = TR cal /DR = 4.2μs.
In Table 3 For simplicity, only the numbers of successful, idle, collision, and estimation slots, are counted in our simulation. The state switching time highly depends on the device performance in applications. As it is difficult to measure the state switching time, we ignored it in the simulation of this paper.
To objectively and accurately evaluate the performance of our proposed anti-collision algorithm, we provide the simulation results of global throughput. We employ our estimator, a Zhen estimator, and an ideal system respectively in our procedure. In the ideal system, the number of initial tags is known in advance. We also give the throughput of the classic DFSA algorithm used in ISO18000-6C.
In the ith frame, [27] proposes that the a posteriori probability distribution of k tags choosing the slot is In other words, the a posteriori expected value of the number of tags is respectively, 0 for an empty slot, 1 for a success slot, and X n k¼2 kp 0 k ðiÞ tags for a collision slot. Therefore, the estimated tag sets in the current frame is p 1 ðiÞ þ X n k¼2 kp 0 k ðiÞ. The number of initial tags can be approximately estimated with Eq (11).
The parameter Q of SIADA, ideal system and Zhen system, is the frame length, however, in ISO18000-6C, the frame length is expressed by 2 Q , Q here is the base 2 logarithm of frame length.
The results are shown in Figs 3, 4 and 5. The simulation parameters are ε = 0.01, n is from 40 to 2400, the sampling interval is 40, Rep = 3, and 100 trials are conducted.
In the ideal system, the initial number of tags (n) is known in advance, so the number of remaining tags is also known. The initial frame size is still Q (512, 1024 or 2048 in the experiments), but from the second frame, the frame size (Q) is adjusted accurately to be equal to the number of remaining tags. Then, it adaptively and dynamically adjusts the frame length to strictly comply with the optimal identification standard, that is, the frame length should be equal to the number of remaining tags. ISO18000-6C adopts the Q algorithm given in appendix D of [6] to adjust the frame length. Here, step C = 0.2, 0.3 and 0.4 respectively. The other main simulation parameters are Q = 512, 1024, and 2048, respectively. (In the ISO18000-6C standard, the frame length is expressed by 2 Q ; thus, Q is actually the base 2 logarithm of the frame length. Hence, Q = 9, 10, and 11, respectively). In addition, ε = 0.01, and n is from 40 to 2400 with the step 40.
From Figs 3, 4 and 5, when the number of tags to be identified is about greater than 100, the SIADA global throughput performance is significantly better than that of the Q algorithm. When the number of tags to be identified is near Q (such as when Q = 1024, n varying from 700 to 1300), the global throughput performance of SIADA decreases. The lowest value is 0.26, which is approximately twice that of ISO18000-6C and 75% of the ideal system. When n is far from Q, the performance approximates the ideal system, which is about twice more than that of ISO18000-6C.
The throughput is not very stable when n is near Q. This is because, when the number of tags to be identified is close to the initial frame length, the two solutions, x l and x u , located at each side of x opt , are close to each other, which causes the pseudo-solution removal algorithm to tend to fail more frequently. This results in adjusting the Q-value at a non-optimal frame length, and it has a certain impact on the global throughput performance. Nevertheless, even if the global throughput of SIADA decreases to the lowest point 0.17 when the tag number is 800, it is still far greater than the Q-algorithm of the standard EPC_C1 G2. For the Q-algorithm, the throughput is always between 0.1 and 0.14, even if the initial Qvalue is not perfectly matched to the actual population size. This is because the Q-algorithm adjusts the frame length by multiplying by 2 or dividing by 2, so that the convergence rate is very fast. Thus, the initial Q-value has no obvious effect on the global throughput performance. This conclusion is consistent with the results of existing literature which hold that the number of tags has a minimal impact on the performance. We additionally find that parameter C has no significant impact on the throughput performance.

iii. Comparison of delay
Given the initial number of tags n, by defining the time required to successfully identify all n tags as delay(n), we can obtain According to the EPCglobal_C1 G2 standard, assume the R-to-T data rate R rt is equal to 26.7 kbps, the T-to-R data rate R tr is equal to 22.25 kbps and L is equal to 16. The delay results are shown in Fig 6. It can be observed in Fig 6 that the delay of the SIADA algorithm is the smallest, the ISO1800-6C delays are the largest, and the Vogt algorithm delay is somewhere between them. When n>500, the SIADA delay is approximately 50% less than that of ISO1800-6C, and approximately 20% less than that of Vogt.

Conclusion
Compared with the traditional DFSA, the new anti-collision algorithm proposed in this paper provides a significant improvement in the global throughput performance, which is very close to the ideal system. Owing to a paper length constraint, we herein did not address the balance between the processing delay and identification efficiency in the case of a large number of tags. In real applications, it can be solved by appropriate grouping of tags.