Professional Documents
Culture Documents
Zhu 2017
Zhu 2017
Feng Zhu∗† , Bin Xiao† , Jia Liu∗ , Yanyan Wang∗ , Li-jun Chen∗
∗ Department of Computer Science and Technology, Nanjing University, Nanjing, China
† Department of Computing, The Hong Kong Polytechnic University, Hong Kong
0 1 0 1
Code for Slot Type
Encoded Vector Length Type-2 Type-1 Type-3
Type-1 Slot Type-2 Slot Type-3 Slot
0 1
01 10 11 001110111110 12 Type-2 Type-1
0 11 10 01011101011 11
Fig. 3. The basic principle of constructing a Huffman tree.
10 0 11 1011011110 10
11 10 0 110100010 9
Here, we adopt Huffman coding to efficiently encode a
vector to make separation for set M. Huffman coding is a
from the set 𝐴 select, such as the first slot. The second type of compression technique used to reduce the number of bits
slot is which only the tags from the set 𝐵 select, such as the needed to send or store a message [22]. The output from
third and sixth slots. The third type of slot is which the tags Huffman coding can be viewed as a variable-length code
from both the set 𝐴 and the set 𝐵 select, such as the forth table for encoding each type of slot. Thus we can use the
and fifth slots. The forth type of slot is which no tag selects, coding algorithm to derive the code table from the estimated
such as the second slot. frequency for each type of slot.
If we let the reader broadcast a vector to notify each tag Given the inputs, which are the set of slot type 𝑆 = {Type-1,
which types of slot it selects, we should use two bits (log2 4 = Type-2, Type-3}, and the set of the weights of each type 𝑊 =
2) to encode the four kinds of slot. Here, we denote the first {𝑤1 , 𝑤2 , 𝑤3 }. The weights of each slot type are calculated as
type of slot as Type-1 slot, the second type of slot as Type-2 the frequency for each type. Therefore, we can have
slot, the third type of slot as mixed slot and the forth type of
slot as empty slot. But note the mixed slot and the empty slot 𝑤1 + 𝑤2 + 𝑤3 = 1. (1)
are useless to separate the set A tags from the set B tags. Thus The target is to find a binary prefix code 𝐶(𝑆, 𝑊 ) =
we combine the mixed slot and the empty slot as Type-3 slot. (𝑐1 , 𝑐2 , 𝑐3 ), where 𝑐𝑖 is the codeword for each type of slot,
After the reader broadcasts the encoded vector, the tags from that minimizes the number of bits as follows:
the set M can know whether they belong to set A or set B. As 3
∑
illustrated in Fig. 2, after receiving the vector from the reader, 𝐿(𝐶) = 𝑤𝑖 × 𝐿(𝑐𝑖 ), (2)
𝑡1 and 𝑡3 will know they are from set A, 𝑡4 , 𝑡5 , 𝑡6 and 𝑡9 will 𝑖=1
know they are from set B. But note the tags (i.e., 𝑡2 , 𝑡7 , 𝑡8
where 𝐿(𝑐𝑖 ) represents the length of 𝑐𝑖 .
and 𝑡10 ) from Type-3 slots are still unconscious about which
Here we take an example for encoding the vector in Fig.2.
set they belong to. Therefore, they cannot decide whether they
We can easily calculate the weight for each type of slot as
are from set A or from set B.
𝑤1 = 1/6, 𝑤2 = 1/3 and 𝑤3 = 1/2. Sort these slots by
Then the reader will reconstruct another vector based on
frequency and make the two-lowest elements into leaves, then
the un-separated tags and head to the next round. Only these
we can create a parent node with a frequency that is the sum of
un-separated tags participate in the next round, and repeat the
the two lower element’s frequencies. As shown in Fig.3, we
operation as described above. Until all the tags know which set
combine the Type-2 and Type-1 slots to a new parent node
they belong to, the reader stops and tags from A are completely
with a frequency 𝑤2 + 𝑤1 = 1/2. The Type-2 and Type-1
separated from tags from B.
slots are removed and the new node with frequency 1/2 is
B. Vector Encoding added to be sorted with Type-3 slot. To generate a Huffman
code, we can traverse the tree to the type of slot, selecting a
To encode the three types of slot, we can still use two
0 every time we take a lefthand branch, and a 1 every time
bits, such as the first encoded vector shown in Table I. We
we take a righthand branch. Then we can obtain an encoding
take ’01’⇒Type-1, ’10’⇒Type-2 and ’11’⇒Type-3. There-
strategy, that is ’11’⇒Type-1, ’10’⇒Type-2 and ’0’⇒Type-3
fore, the reader can broadcast vector ’011110111110’ to make
as the same with Table I.
separation for set 𝑀 . The length of the vector will be 12-
bit long. But it will cost redundancy space to transmit the C. Parameter Setting
vector. As we know, variable-length codes can allow sources We define the efficiency of separation (𝜃), as the ratio of
to be compressed and decompressed with zero error. We then the total expected number of tags from Type-1 and Type-2 slot
list three possible variable-length coding strategies to encode (𝜈) to the total expected vector length (𝜑):
the three types of slots. As shown in Table I, the most
𝜈 𝜈1 + 𝜈2
efficient encoding strategy is the last one, when ’11’⇒Type- 𝜃= = , (3)
1, ’10’⇒Type-2 and ’0’⇒Type-3. The length of this vector 𝜑 𝜏1 𝐿(𝑐1 ) + 𝜏2 𝐿(𝑐2 ) + 𝜏3 𝐿(𝑐3 )
is 9-bit long, which decreases 25% bits needed to encode a Where 𝜈1 represents the number of tags select the Type-1 slot,
vector. 𝜈2 represents the number of tags select the Type-2 slot, 𝜏1
TABLE II
T HE VALUE OF 𝛼, 𝛽 AND 𝛾, WHEN GIVEN L(𝑐1 ), L(𝑐2 ) AND L(𝑐3 ) 1.6
1.4
θ1
θ2
L(𝑐1 ) L(𝑐2 ) L(𝑐3 ) 𝛼 𝛽 𝛾 1.2
θ3
𝜃1 2 2 1 1 1 1 1
𝜃2 0.8
θ
2 1 2 0 -1 2
𝜃3 1 2 2 -1 0 2 0.6
0.4
0.2
represents the total number of Type-1 slots, 𝜏2 represents the
total number of Type-2 slots and 𝜏3 represents the total number 0
0 1000 2000 3000 4000 5000
of Type-3 slots. l
Obviously, the larger the value of 𝜃 is, the more the tags
will be separated each unit of vector size. As presented below, Fig. 4. Efficiency of separation 𝜃 with respect to different parameters.
both 𝜈 and 𝜑 are related to 𝑙. Note 𝑙 represents the length of
an array, not the length of a vector (𝜑). Thus, we should find
the optimal 𝑙 that maximizes 𝜃. According to the definition of Type-1 slot, no tag from 𝐵
We first consider the total expected number of Type-1 slots. selects the same slot, that is (1 − 1𝑙 )𝑦 . The probability that the
Given fixed 𝑖 tags, the probability that a slot is mapped by slot is Type-1 is (1 − (1 − 1𝑙 )𝑥 )(1 − 1𝑙 )𝑦 . As we know, there
these tags in 𝐴 is are 𝑙 slots, the expected number of Type-1 slots is:
( )𝑖 ( )𝑥−𝑖 ( )𝑦 ( ( )𝑥 ) ( )𝑦
1 1 ( 𝑥) 𝑦
1 1 1 𝜏1 = 𝑙 1 − 1 − 1− ≈ 𝑙 1 − 𝑒− 𝑙 𝑒− 𝑙 .
1− 1− , (4) 𝑙 𝑙
𝑙 𝑙 𝑙 (11)
where ( 1𝑙 )𝑖 (1 − 1𝑙 )𝑥−𝑖 means the probability that 𝑖 tags from As the same, we can also have the expected number of Type-2
A select this slot, and (1 − 1𝑙 )𝑦 means the probability that 𝑦 slots is:
𝑦 𝑥
tags from B do ( )not select this slot. 𝜏2 = 𝑙(1 − 𝑒− 𝑙 )𝑒− 𝑙 . (12)
There are 𝑥𝑖 kinds of possible combinations for 𝑖 tags,
therefore the probability that a slot is mapped by 𝑖 tags is Therefore, we obtain the expected number of Type-3 slots is:
( ) ( )𝑖 ( )𝑥−𝑖 ( )𝑦 𝑥 𝑦
𝜏3 = 𝑙(1 − (1 − 𝑒− 𝑙 )𝑒− 𝑙 − (1 − 𝑒− 𝑙 )𝑒− 𝑙 ).
𝑦 𝑥
(13)
𝑥 1 1 1
1− 1− . (5)
𝑖 𝑙 𝑙 𝑙 Substituting 𝜈 and 𝜑, we have the efficiency of separation:
When 𝑖 ranges from 0 to 𝑥, the expected number of tags in 𝑦 𝑥
(𝑥𝑒− 𝑙 + 𝑦𝑒− 𝑙 )𝑙−1
𝐴 select this slot is 𝜃= 𝑥 𝑦 𝑦 𝑥 , (14)
𝑥 ( ) ( )𝑖 ( )𝑥−𝑖 ( )𝑦 ( )𝑦 𝛼(1 − 𝑒− 𝑙 )𝑒− 𝑙 + 𝛽(1 − 𝑒− 𝑙 )𝑒− 𝑙 + 𝛾
∑ 𝑥 1 1 1 𝑥 1
𝑖 1− 1− = 1− . where 𝛼 = 𝐿(𝑐1 ) − 𝐿(𝑐3 ), 𝛽 = 𝐿(𝑐2 ) − 𝐿(𝑐3 ) and 𝛾 = 𝐿(𝑐3 ).
𝑖 𝑙 𝑙 𝑙 𝑙 𝑙
𝑖=0 With fixed 𝛼, 𝛽 and 𝛾, to compute the maximum value of 𝜃,
(6)
we let the first derivative of 𝜃 be zero ∂𝜃 ∂𝑙 = 0. Solving the
Due to the length of the array is 𝑙, we can easily obtain the
equation numerically, we can find the optimal 𝑙 maximizes 𝜃.
expected number of tags from Type-1 slot as
( )𝑦 Because the length of the vector is not foreknown,
𝑥 1 𝑦 we cannot calculate the weights for each slot types. But
𝜈1 = 𝑙 × 1− ≈ 𝑥𝑒− 𝑙 . (7)
𝑙 𝑙 {𝐿(𝑐1 ), (𝑐2 ), 𝐿(𝑐3 )} has three possible values, which are
As the same method of calculation, we can also know the {2, 2, 1}, {2, 1, 2} or {1, 2, 2}. As shown in Table II, the
expected number of tags from Type-2 slot is parameters 𝛼, 𝛽 and 𝛾 have only three possible values with
𝑥
respect to the values of 𝐿(𝑐1 ), 𝐿(𝑐2 ) and 𝐿(𝑐3 ). We define the
𝜈2 = 𝑦𝑒− 𝑙 . (8) three outcomes as 𝜃1 , 𝜃2 and 𝜃3 respectively. Therefore, we
Therefore, we obtain the expected number of tags from can compute the optimal length 𝑙 for each 𝜃. On comparing the
Type-1 and Type-2 slot: maximum value among 𝜃1 , 𝜃2 and 𝜃3 , we can decide which
𝑦 𝑥
encoding strategy is supposed to select and the optimal length
𝜈 = 𝑥𝑒− 𝑙 + 𝑦𝑒− 𝑙 . (9) 𝑙 for the specified encoding strategy.
Here we take an example to illustrate the process, as shown
We then calculate 𝜏1 . Consider the tags from set A. The
in Fig. 4. Consider ∣𝐴∣ = 2, 500 and ∣𝐵∣ = 500, we can
probability that 𝑥 tags from set A do not select a slot is (1 −
1 𝑥 calculate three 𝜃s with respect to different 𝛼, 𝛽 and 𝛾. The
𝑙 ) . Therefore, the probability that at least one tag in 𝐴 selects maximum values for 𝜃1 , 𝜃2 and 𝜃3 are 1.39, 0.93, 1.17.
this slot is ( )𝑥
1 Therefore, we can select the length 𝑙 = 390 to obtain the
1− 1− . (10) maximum value of 𝜃1 .
𝑙
TABLE III in Table III. In the table, ’𝐺𝐼𝐷10 ’ is short for decimal group
S IMPLE CASE OF GROUPING PROCESS ID, ’𝐺𝐼𝐷2 ’ is short for binary group ID and ’Diff’ is short
for difference. The set of total tags in the system is 𝑇 =
Orignial Original Target Target
Bit index {𝑡1 , 𝑡2 , 𝑡3 , ..., 𝑡11 , 𝑡12 }. Each tag has already been assigned a
𝑇 𝐼𝐷 Diff needed group ID, which is called as the original group ID. Then the
𝐺𝐼𝐷10 𝐺𝐼𝐷2 𝐺𝐼𝐷10 𝐺𝐼𝐷2
to change reader wants to assign a new group ID for each tag. The target
of our protocols is to fast assign the target group ID to each
𝑡1 6 0110 2 0010 0100 3
tag. If the tag is newly added in the system, we can treat the
𝑡2 13 1101 15 1111 0010 2 original group ID as 0. The reader can still adopt our protocols
𝑡3 5 0101 2 0010 0111 1,2,3 to assign the target group ID to the new tag.
𝑡4 15 1111 12 1100 0011 1,2 We denote the identifier of an arbitrary group 𝑃𝑖 as (𝑃𝑖 )𝑋 ,
𝑡5 3 0011 9 1001 1010 2,4 where the subscript 𝑋 is 10 or 2. If 𝑋 = 10, the identifier of a
𝑡6 9 1001 4 0100 1101 1,3,4 group will be presented in decimal mode. Otherwise, if 𝑋 = 2,
𝑡7 6 0110 1 0001 0111 1,2,3 the identifier of a group will be presented in binary mode. For
example, if the decimal ID of group 𝑃𝑖 is 192, the binary ID
𝑡8 4 0100 14 1110 1010 2,4
of group 𝑃𝑖 is 11000000, which is (192)10 = (11000000)2 .
𝑡9 7 0111 8 1000 1111 1,2,3,4
For an arbitrary tag 𝑡𝑎 , it belongs to an original group 𝑃𝑖 . If
𝑡10 13 1101 14 1110 0011 1,2 the system wants to change its group to 𝑄𝑗 , we can easily
𝑡11 7 0111 4 0100 0011 1,2 calculate which bits are needed to change. For example, the
𝑡12 14 1110 9 1001 0111 1,2,3 original group ID of 𝑃𝑖 is (11000000)2 , and the new group
ID of 𝑄𝑗 is (10010100)2 . The differences between 𝑃𝑖 and 𝑄𝑗
can be calculated as follows:
Since we calculate the optimal length 𝑙 based on probability, (11000000)2 (decimal 192)
when fixing 𝑙 and varying the random number for each hash
XOR (10010100)2 (decimal 148) (15)
function, the actual weights 𝑤1 , 𝑤2 and 𝑤3 will fluctuate
around its expected value. Therefore, the case that the calcu- =(01010100)2 ,
lated encoding strategy based on the actual weights is different where XOR is bitwise operation which takes two bit patterns of
from the selected encoding strategy based on optimal length 𝑙 equal length and performs the logical exclusive OR operation
exists. In this case, we select the encoding strategy based on on each pair of corresponding bits. The result in each position
the actual weights. is 1 if only the first bit is 1 or only the second bit is 1, but
will be 0 if both are 0 or both are 1. In this we perform the
IV. BIG: B INARY G ROUPING P ROTOCOL
comparison of two bits, being 1 if the two bits are different,
In this section, we first use a simple case to present a and 0 if they are the same. Therefore, only the 3rd, 5th and
high level overview of the proposed BInary Grouping (BIG) 7th bits are needed to change from the original group 𝑃𝑖 to
protocol, and then we explain its operations in detail. the new group 𝑄𝑗 .
For example in Table III, the original group ID of 𝑡8 is 4.
A. Basic Idea
If the reader wants to assign the target group ID 14 to 𝑡8 , the
Binary grouping protocol (BIG) follows three guidelines to tag 𝑡8 only needs to change the 2𝑛𝑑 and 4𝑡ℎ bits.
achieve high time efficiency. First, BIG only re-groups the
tags when these tags need to change their group ID. BIG B. Phase 1: Initialization
filters any tag which does not need to change their group Before broadcasting the request to all tags, the reader
ID in its bit-based execution, so that no tedious group ID initializes BIG with the parameters which are needed in the
transmission is needed, improving the grouping efficiency. following phases. The reader first precalculates what grouping
Second, BIG only reverses the bit of tag group ID, which operations each tag needs to execute, and then determines the
needs to be changed, instead of changing all bits of a tag order of the grouping operations.
group ID. Each tag has already been assigned with a group 1) Calculating required grouping operations: In our sys-
ID. If the reader needs to assign a new group ID for the tags, tem, the reader adopts two kinds of operations to assign the
BIG can only reverse few bits instead of all bits to change the target group ID to each tag. The first kind of operations is
original group ID to the target group ID. Third, we adopt the ROBn (reversal of one bit), which means the tag will reverse
Separation Technique with Huffman coding (STH), which can the n-th bit of the group ID. For example, the group ID of 𝑡6
efficiently separate one set of tags from the other set of tags. is (1001)2 . If the tag executes ROB2 operation on its group
The above mechanisms greatly reduce transmission overhead ID (1001)2 , which is
during the grouping process and overcome the drawbacks of
ROB2[(1001)2 ] = (1011)2 . (16)
existing solutions.
For ease of presentation, we present a high level overview The second kind of operation is RAB (reversal of all bits),
of BIG based on a toy example. Consider the system provided which means the tag will reverse all the bits of the group ID.
Original Target to execute ROB1, ROB3 and ROB4 on the original group ID,
Group ID
Group ID
ROB4 ROB3 ROB1 and 𝑠 = 3. The differences between the reversal value of
1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0
(1001)2 and (0100)2 can be calculated as follows:
Original Target (NOT (1001)2 ) XOR (0100)2
Group ID Group ID
ROB2 RAB =(0110)2 XOR (0100)2 (21)
1 0 0 1 1 0 1 1 0 1 0 0
=(0010)2 .
Fig. 5. Two approaches to change the group ID of 𝑡6 . Therefore, only the 2nd bit is needed to change from the
original group ID to the target group ID. The reader needs to
execute ROB2 and RAB on the original group ID, and 𝑘 = 2.
For example, the group ID of 𝑡9 is (0111)2 . If the tag executes Comparing 𝑠 with 𝑘, we can easily obtain the operations,
RAB operation on its group ID (0111)2 , which is which are needed to be executed for the tag, are ROB2 and
RAB[(0111)2 ] = (1000)2 . (17) RAB.
2) Sorting the order of grouping operations: The order
Fig. 5 shows two approaches to change the group ID of 𝑡6 of each grouping operation will have impact on the total
from (1001)2 to (0100)2 . The first approach is that the tag can execution time. The less number of tags participate in the
only use ROBn operations on the original group ID, which are following phase, the less time grouping operations execute.
ROB4, ROB3 and ROB1. But the tag needs to execute three We denote the function that gets the number of tags which
operations on the original group ID. The second approach is needs a specific grouping operation (e.g. ROBn or RAB) as
that the tag uses both ROBn and RAB operations on the original LEN[⋅]. As shown in Table IV, three tags (𝑡4 , 𝑡10 and 𝑡11 ) need
group ID, which are ROB2 and RAB. In this way, the tag only ROB1 operation, which is LEN[ROB1] = 3. If the maximum
needs to execute two operations on the original group ID, length of the group ID is 𝑚, the set of grouping operations will
which is one round less than the first approach. be {ROB1, ROB2, ..., ROBm, RAB}. The reader then calculates
The reader will decide what the the operations are needed the number of tags which needs each grouping operation. For
for each tag. Here we denote the original group ID string example in Table IV, we have
as 𝑆𝑂 and the target group ID string as 𝑆𝑇 . The reader first
LEN[ROB1] = 3, LEN[ROB2] = 7,
calculates the differences between the binary original group ID
and the binary target group ID, as 𝑆𝑂 XOR 𝑆𝑇 . We denote LEN[ROB3] = 1, LEN[ROB4] = 5, (22)
the difference string as 𝑆𝐷 , that is LEN[RAB] = 5.
𝑆𝐷 = 𝑆𝑂 XOR 𝑆𝑇 . (18) To determine which grouping operation will be executed, the
reader sorts above result. Therefore, we can easily have two
The index 𝑖 of ’1’ in 𝑆𝐷 indicates the operation ROBi will execution orders, which are
be executed on this original group ID. If the reader count the
ROB2 → RAB → ROB4 → ROB1 → ROB3
number of ’1’ in the differences, it will also know the total (23)
number of execution operations. We denoted the total number ROB2 → ROB4 → RAB → ROB1 → ROB3.
as 𝑠. Then the reader calculates the differences (denoted as C. Phase 2: Registration
′
𝑆𝐷 ) between the reversal value of the binary original group
In this registration phase, the reader will acknowledge each
ID and the binary target group ID, which is as follows:
tag with its execution round number. The tag will take this
′
𝑆𝐷 = (NOT 𝑆𝑂 ) XOR 𝑆𝑇 , (19) execution round number into the next phase (Grouping Phase).
In grouping phase, after the assigned execution round number,
where NOT is bitwise operation let 0 become 1, and 1 become the tag will exactly know it finishes grouping and then stop
0. The index 𝑖 of ’1’ in the differences also indicates the executing the following grouping operations, such as ROBn
operation ROBi will be executed on this original group ID. and RAB.
Upon adding one round execution of the operation RAB, the To initialize the registration phase, the counter in each tag
reader will also know the total number of needed execution will be set to 0. In an arbitrary round 𝑖 of the registration
operations. We denoted the total number as 𝑘. Comparing phase, the reader adopts STH to separate tags into two sets,
𝑠 with 𝑘, we can easily obtain the operations needed to be which determine whether tags from each set will continue to
executed for a tag. add the counter or not. We denote the two set as 𝐴𝑖 and 𝐵𝑖
For example, the original group ID of 𝑡6 is (1001)2 , and the respectively. If the counter of the tag still needs to add ’1’,
target group ID is (0100)2 . The differences between (1001)2 the reader will pick it into set 𝐴𝑖 . Otherwise, If the counter
and (0100)2 can be calculated as follows: of a tag does not need to add ’1’, the reader will pick it into
(1001)2 XOR (0100)2 = (1101)2 . (20) set 𝐵𝑖 . The tags from 𝐴𝑖 will participate in the next round
of separation. In the meantime, the tags from 𝐵𝑖 will not
Therefore, the 1st, 3rd and 4th bits are needed to change from participate in the next round of separation. Until no tag needs
the original group ID to the target group ID. The reader needs to add ’1’, the registration phase ends and each tag is assigned
Counter = 0 Counter = 1 Counter = 2 TABLE IV
+0 +0 +0 E XECUTION OF BIG P ROTOCOL
Original
Initial Counter = 0 Counter = 3
𝑇 𝐼𝐷 ROB2 RAB ROB4 ROB1 ROB3
𝐺𝐼𝐷2
+1 +1 +1
𝑡1 01101 ∗1 ∗1 ∗1 ∗1 00100
𝑡2 11011 11110
Fig. 6. Example of registration phase. 𝑡3 01012 ∗2 10101 00100
𝑡4 11112 11011 ∗1 ∗1 11000
with a execution round number. After the registration phase, 𝑡5 00112 00011 ∗1 10010
tags in the system will know the exact total number of rounds 𝑡6 10012 10111 01000
they will participate in the grouping phase. 𝑡7 01102 ∗2 10011 00010
As shown in Fig. 6, The initial counter of each tag is set 𝑡8 01002 01101 ∗1 11100
to 0. After the first round, some tags stop participating in 𝑡9 01111 ∗1 10000
the following rounds with counter number 0. The other tags
𝑡10 11012 11111 ∗1 ∗1 11100
participate in the second round with the counter number 1.
𝑡11 01112 01011 ∗1 ∗1 01000
After 3 rounds, 4 sets of tags are generated. Each tag knows
the total number of operations they will participate in the next 𝑡12 11102 ∗2 00011 10010
phase.
D. Phase 3: Grouping these tags still need to participate in the following rounds. For
In this grouping phase, the reader let the tags execute the example, after the second round, the counter of 𝑡8 equals ’1’.
grouping operations in the order which is precalculated in the The tag 𝑡8 will participate the third round. Only after the third
initilization phase. When following the precalculated order, round, 𝑡8 will not participate the next round.
the reader executes the order one round by one round. If the 2) Executing the grouping operation: In each round, the
maximum length of the group ID is 𝑚, the set of grouping selected tags execute the grouping operation. As shown in
operations will be {ROB1, ROB2, ..., ROBm, RAB}. Therefore, Table III, the reader executes the grouping operations follows
we can easily know the number of total rounds is 𝑚 + 1. the order ROB2 → RAB → ROB4 → ROB1 → ROB3. The
Before letting the tags execute each grouping operation, the blank cell means this tag will not participate the current round.
reader will adopt STH protocol to pick the tags which will For example, 𝑡1 finishes the grouping operations in the last
execute the grouping operation from the tags which will not round. 𝑡3 finishes the grouping operations in the third round.
execute the grouping operation. After executing all the grouping operations, the reader is
1) Picking up the tags execute the operation: Consider an able to assign all the tags with the target grouping ID.
arbitrary round, the reader utilizes STH protocol to separate
the tags which need to be executed the grouping operation V. E VALUATION
from the tags which do not need to be executed the grouping In this section, we evaluate the performance of BIG by
operation. Therefore, after executing the STH protocol, the simulations. We first verify the efficiency of our protocol BIG
tags fall into two parts. The one part of tags would execute and the derived execution time of BIG. We then compare the
the grouping operation. The other part of tags would not execution time of our protocols with FIG, CCG.
execute the grouping operation. As shown in Table IV, all tags
participate in the first round. But these tags fall into two sets. A. Simulation Settings
The set of tags, which would execute the grouping operation, We implement a simulator with Python to evaluate the per-
include 𝑡2 , 𝑡4 , 𝑡5 , 𝑡6 , 𝑡8 , 𝑡10 and 𝑡11 . The other set of tags, formance of our protocol in large-scale systems. Our protocol
which would not execute the grouping operation, include 𝑡1 , is compared with the state-of-the-art protocols FIG and CCG
𝑡3 , 𝑡7 , 𝑡9 and 𝑡12 . [13]. For fair comparison, we adopt the timing scheme defined
If the tag is in the set of tags which will execute the grouping in the EPCglobal C1G2 UHF tags [16] as the unit of the
operation, it minuses the counter with ’1’. Otherwise, the tag execution time for all protocols. The transmission rate of the
keeps the counter unchanged. If the counter of a tag equals to tag is 53𝐾𝑏/𝑠. It takes 18.88𝜇𝑠 to transmit a bit from a tag
’0’, this tag will not participate in the following rounds. As to a reader, i.e. 𝑡𝑏 = 18.88𝜇𝑠. The transmission rate of the
shown in Table IV, the superscript of each bit string means the reader is 26.5𝐾𝑏/𝑠. Any two consecutive transmissions are
counter of each tag in each round. For example, in the second separated by a time interval of 302𝜇𝑠. Based on this we can
round, 𝑡6 executes RAB operation, and minuses its counter calculate that the time for the reader to transmit an ID or a
with ’1’. After this second round, the counter of this tag is segment of allocation vectors is 3, 927𝜇𝑠. The group ID in
’0’, and this tag will not participate in the following round. our simulation is set to the corresponding index 𝑖, which is
But there are also some counters of tags is not equal to ’0’, ⌈log2 𝑘⌉ bits long. Each simulation experiment was conducted
20 20 6
8 β=1
β=2 5
β=3
Exectution Time (s)
Fig. 7. Performance comparison. (a) Total execution time to label all tags, Fig. 8. Performance investigation. (a) Total execution time to label all tags,
when varying the portion (𝛼) of tags which remains the same group ID from when varying group ID length from 24 to 210 . (b) Total execution time to
0% to 90%. (b) Total execution time to label all tags, when varying the total label all tags, when varying the total number of tags from 1,000 to 10,000.
number (𝛽) of ’1’ in the calculated difference from 1 bit to 9 bits.
R EFERENCES
[1] L. Xie, Q. Li, X. Chen, S. Lu, and D. Chen, “Continuous scanning
with mobile reader in rfid systems: an experimental study,” in Proc. of
MOBIHOC, 2013.
[2] J. Liu, B. Xiao, K. Bu, and L. Chen, “Efficient distributed query
processing in large rfid-enabled supply chains,” in Proc. of IEEE
INFOCOM, 2014.
[3] C. Wang, L. Xie, W. Wang, and S. Lu, “Moving tag detection via
physical layer analysis for large-scale rfid systems,” Proc. of IEEE
INFOCOM, 2016.