1 Introduction
With the progress of mobile technologies, iPADs, portable computers, and smart phones have been widely used in our life and work. People always hope that they can get easily information and access quickly to the Internet in anytime and anywhere, the momentum will be stronger in the future, it needs higher transmission data rate and better quality of service (QoS) of communication networks. The traditional mobile system installed single antenna at the transmitterreceiver, which is defined as SISO, has been far from meeting the actual needs. For the purpose, we erect multiple transmitting antennas and multiple receiving ones at both transmitter and receiver of mobile systems. Compared with SISO mobile communications, we need not increase signals bandwidth and their transmitting power, the channel capacity and QoS performance of the transmission links can be greatly enhanced by using antennas array at the transmitting side and receiving side [1,2,3]. In the past few years, the theoretical and applied investigation on MIMO technology has attracted the attention of experts, scholars and operators all over the world in the past 20 years. The 3rd Generation Partnership Project (3GPP) working group initially introduced MIMO technology to 3G, and the current 4G, 5G and the future 6G are full of application examples of largescale MIMO technology [4].
From the perspective of the manufacturing cost of MIMO systems, antenna is usually composed of small or discrete monopole antenna and bipolar antenna, which has low cost and can be widely used. The transmitting and receiving radio frequency (RF) links are complex in structure, each channel including modulation and demodulation, amplifying circuit, digital to analog to digital conversion circuit (D/A/D), filter and other components. Therefore, the manufacture cost of multiantenna wireless systems are high and the energy expenditure are large. The AS application is undoubtedly the first technology to comprehensively consideration both the high manufacturing complexity and good performance for the mobile MIMO systems [5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]. In terms of average capacity and bit error rate (BER), both theory and experiment have showed that the performance with AS system is much higher than one without AS under the same RF channels.
Although there is a good performance of the AS MIMO systems, but they are still a big conundrum, how to quickly select a set of antenna subsets from multiple antennas array, its computational complexity (CC) is very high. In the past two decades, many researchers have extensively studied how to reduce the CC of AS algorithm at the transmitter or receiver, a lot of relevant research literatures have been published [5,6,7,8,9,10,11,12,13,14]. Antenna selection is a milestone on the application of MIMO technologies, the early studies on the AS mainly focus on the transmitting side or the receiving side. There are a few research literatures on simultaneous joint AS at both transmitter and receiver (JTRAS). Especially under the background of largescale MIMO technology application becoming development trend in the future, it will be a challenging task to study JTRAS algorithm. Research difficulties on JTRAS mainly have two aspects, first, considering the working band of millimeter wave, and the current RF channels of transmitter and receiver can achieve 4 or 8. When antenna array is large scale, no matter how many antennas are selected, if the optimal exhaustive search AS algorithm (ESAS) [15] is adopted, its CC is too high to have practical value. Second, the wireless mobile channel is rapidly changing, if the AS algorithm cannot quickly select the optimal antenna combination during the transmission of a symbol or a group of symbols, the communication system will be in a chaotic state. In the last decade, due to the above two reasons, the literatures on the research of JTRAS suboptimal algorithm are relatively scattered. More research is how to apply MIMO technology to communication systems and how to combine it with other communication enhancement technologies. At present, the research direction of AS is to find the suboptimal scheme as an alternative algorithm, which makes some performance concessions in exchange for the reduction of computational complexity [15,16,17,18,19]. The research on JTRAS suboptimal algorithm mainly starts from two aspects, one is based on the simplification of matrix characteristics, the other is the parallel computing capability of evolutionary algorithm. Their common characteristic is to reduce the CC. The suboptimal scheme studied in this paper is a decreasing algorithm based on matrix characteristics. Gorokhov A et al. [15] proposed for the first time a joint AS method for transmitting and receiving antennas (JTRAS) of MIMO mobile systems, which is called exhaustive search AS (ESAS) in this paper. The ESAS algorithm requires to compute
To reduce the CC of the optimal ESAS algorithm and retain its capacity, some JTRAS algorithms were proposed in [17,18,19,20]. Blum R. S. et al. [17] proposed a greedy algorithm to combine AS at the transmitter and receiver. The algorithm starts with an empty selection matrix (SM), in each iterative step, we choose a pair of antennas with maximum capacity increment to add to the rows and columns of the SM until all antennas are selected. Therefore, the algorithm is also called the incremental JTRAS (IJTRAS). The capacity performance based on IJTRAS is very close to the optimal ESAS scheme and exceeds the other suboptimal AS schemes. By channel capacity formula derivation and resorting to the matrix inversion lemma, an efficient JTRAS (EJTRAS) algorithm was proposed [18]. On the basis of IJTRAS algorithm, assuming that L represents the number of selected antennas, the EJTRAS scheme can reduce the CC of the IJTRAS in the factor L and retain its capacity. Based on the thinking of literature [17] and [18], Chen C. E. [20] proposed a new calculable efficient JTRAS algorithm, which can effectively decrease the CC of the algorithm by modifying the AS's judgment criterion, and at the same time, there is no overhead in the statistical capacity. Developing the theory of the matrix partition, a concise joint AS judgment formula (CJAS) was presented [19], which reduces the AS's CC by a factor of 2L, where L is same definition in literature [18], and keeping the average capacity is near to the ESAS method. The authors in literature [21,22] believe that it is an inevitable development of mobile communication to have massive antennas on the base station. It is assumed that the mobile terminal of the cell is still equipped to a single antenna, that is, the pointtopoint transmission between the base station and the mobile terminal is a MISO system or a SIMO system. This paper integrates all the mobile terminals in the service cell into a multiantenna system and proposes an AS system with the largest transmitting and receiving capacity of the base station. AS always takes place at the base station side, and the selection criterion is the capacity optimization of the whole cell, rather than the capacity maximization of a single user. In order to choose quickly antenna subset, the concepts of square maximum volume and rectangular maximum volume are introduced to simplify the capacity calculation of MIMO system, which greatly reduces the computational complexity of the AS algorithm. However, the system is equivalent to MIMO singleended AS and is not a JTRAS. Two JTRASs based on genetic algorithm (GA) have been presented in MIMO systems [23, 24]. Similar to GA, Particle swarm optimization (PSO) is an important evolutionary algorithm. By changing the position and speed of the particle population, the adaptive function is calculated to search the antenna subset. The average capacity obtained from the simulation experiment shows that PSO algorithm is a suboptimal selection. Based on the maximum capacity selection criteria, several AS algorithms using binary PSO (BPSO) are presented in literature [25,26,27,28]. The simulating experiments show that these AS algorithms can get high capacity. They are especially suitable for massive MIMO system.
In the wireless mobile environment, to satisfy the different service requirements of various customers, it is necessary to ensure that the mobile communication equipments can transmit data stream at high speed at all times. Therefore, it is necessary to study the fast AS algorithm matching the random and rapid changes of the mobile environment. Especially when the NSA is large, such as more than half of the TNA, the CC of the several AS schemes analyzed above have no obvious advantages [15,16,17,18,19,20]. From what has been discussed above, applying the block theory of matrix, we propose a novel decreasing JTRAS (DJTRAS) algorithm to choose quickly antenna subset. The novel algorithm starts from a full MIMO channel matrix. Based on a simplified channel capacity formula, in every iterative period we delete repeatedly a row and a column of the equivalent decrement CHM with minimal capacity loss. The simulation results show that the new DJTRAS is better than NBS and CJAS. In terms of the CC, the numerical result curves show that it is better than CJAS. The proposed AS scheme achieves a good balance in both capacity performance and computational overhead.
In addition to part 1, the manuscript has five parts. We will explain MIMO channel model and capacity formula, discuss AS criteria in part 2. Part 3 presents a AS scheme with integrating transmitter antennas and receiver antennas. Part 4 analyses the complexity of the proposed selection algorithm. Part 5 presents the capacity performance curves calculated by computer simulation using the proposed AS algorithm, and some discussions and analyses on the results are given. Finally, some conclusions are generalized in Part 6. Several notations are often appeared in the following part of the paper: matrices and vectors are typed in boldface and italic, their difference is that uppercase letter is matrix and lower case letter denotes vector. I_{k} and det(·) represent a k × k unit matrix and a k × k determinant, respectively. A complex conjugate transpose is defined by the superscript (·)^{H}.
2 MIMO Selection Channel and Its Capacity
MIMO system channel is modeled as a flat and slow Rayleigh fading, it will remain constant when every frame or block of signals is sent. But it will change from one frame cycle to the next, so the AS operation must be completed in a frame period. Therefore, the key of AS research is to find an efficient and fast AS algorithm, they comprehensively consider the speed, performance and complexity of the AS algorithm, which will be explored in this paper.
3 A New Decreasing JTRAS Algorithm
3.1 A Novel low complexity JTRAS algorithms
There are two ways to reduce the AS algorithm complexity (AC). One is to simplify the calculation formula of capacity adaptability function to reduce the computational complexity (CC). Second, fast AS algorithm based on maximum capacity is studied. Generally, two aspects are considered at the same time. Some common AS algorithms, such as exhaustive AS algorithm (ESAS), random AS algorithm (RAS), normbased selection (NBS) algorithm, concise joint AS criterion (CJAS) [15], and so on. ESAS is a method with the best performance and the slowest search, it must calculate all the antenna combinations and select the optimal antenna subset. RAS algorithm is the fastest, but the performance is very poor. The NBS algorithm is also fast, but still loses a lot of capacity performance. CJAS algorithm is one of the better performance techniques based on matrix feature search, but its CC has not been reduced to an acceptable degree. When the NSA is more than half of the total number of antennas (TNA), the AC is still large. Next, the paper will focus on an AS algorithm with lower CC than CJAS algorithm When the NSA is larger. The new decreasing JTRAS scheme can gain Nearquasi median capacity of the ESAS scheme, which the remaining part of the paper is also called the optimal algorithm. Iteration starting, the selected channel matrix composed of receive and transmit antennas will be set to full, each iteration will remove a pair of transmitting and receiving antenna of the smallest contribution to the channel capacity from the latest iterative equivalent matrix. At the transmit and receive terminal end, we repeat antenna selection by the above iteration step, and constantly delete pairs of transmitting and receiving antenna, keep L_{t} columns and L_{r} rows of the selected channel capacity to end iteration operation.
3.2 Analysis of the JTRAS system capacity
Where
By jointly updating g_{xy} and h_{x}, we can remove a pair of transceiver antennas with the smallest capacity contribution of the IECM at the (n + 1)th iteration.
Finally, the novel joint transmit/receive AS scheme is described in pseudocode as follows:
Step 1: Initialization, to set ρ, Γ_{NT}, Γ_{NR}, N_{R}, N_{T}, L_{t}, L_{r}, H, and the iterative index n = 0, to assign operation H_{0} = H.
Step 2: To compute
Step 3: Select a column vector h_{x} from the set of transmit antenna Γ_{NT − n}, h_{x} ∈ Γ_{NT − n}, which meets
The pseudocode algorithm of Step 3
1: fori = 1 : N_{T} − ndo 
2:

3: end for 
4: J_{n} = arg min J_{n, j} 
5: Γ_{NT − (n+1)} = Γ_{NT − n} − h_{x} 
Step 4: Completing the operation of TAS, the updated IECM is
Step 5: Compute
Step 6: To select a row vector g_{xy}, from the set of RA Γ_{NR − n}, g_{xy} ∈ Γ_{NR − n}, which meets
The pseudocode algorithm of Step 6
1: forj = 1 : N_{R} − ndo 
2:

3: end for 
4: λ_{n} = arg min λ_{n, j} 
5: Γ_{NR − (n+1)} = Γ_{NR − n} − g_{xy} 
Step 7: Finishing the operation of RA selection, the IECM can be replaced to H_{n+1} = Γ_{NR − (n+1)}.
Step 8: if n ≤ min{N_{R} − L_{r}, N_{T} − L_{t}}, go to step 2, if n > min{N_{R} − L_{r}, N_{T} − L_{t}}, stop one of the transmit and receive terminal with the minimum value (min{N_{R} − L_{r}, N_{T} − L_{t}}) for AS, and the other terminal will still execute AS algorithm until n = max{N_{R} − L_{r}, N_{T} − L_{t}}.
3.3 The interpretation of the novel JTRAS scheme
In the subsection, this manuscript expounds the physical meaning of the new JTRAS algorithm and explains the reason why the new AS scheme is better than the NBS algorithm [5] in capacity performance.
Obviously, to minimize the value of formula (13), both
4 The Analysis of Complexity
For a matrix and a vector, the superscript “H” represents their complex conjugate transpose, the superscript “*” denotes complex conjugate operation. Suppose that the symmetric element of the complex matrix P satisfies
The derivation process of the last equation in the equation (19) can be found on the Appendix.
Fig. 2 and Fig. 3 show the curves of the complexity of AS algorithms as a function of the NSA L for 8 × 8 and 12 × 12 MIMO systems, respectively. It is convenient to comparison of the CC, we also have drawn curves of the complexity of both CJAS [19] and the optimal AS (OAS) algorithm. When the NSA L takes one, the complexity of the proposed decreasing JTRAS (DJTRAS) scheme is larger than OAS scheme. It is because that the novel DJTRAS algorithm needs to compute (N_{T} − 1) × (N_{R} − 1) times of the equation (12). While the OAS algorithm only need to do N_{T} × N_{R} times of the vector norm. With the increase of the NSA L, we can observe that the CC of our DJTRA scheme is far less than OAS method. The complexity burden of the proposed DJTRAS is larger than that of the CJAS when the NSA L is less than half of the TNA. While the NSA L more than half of the TNA, the complexity of the proposed algorithm is less than CJAS. For example, if N_{T} = N_{R} = N = 8, L_{t} = L_{r} = L = 6, the CJAS needs iterate 6 steps to obtain the set number of selected antennas, and the proposed DJTRAS scheme only needs do two iterative periods to obtain it. In this situation the proposed DJTRAS scheme only needs operate two times of matrix multiplication, while CJAS has to perform six times of matrix multiplication. Therefore, under the conditions of L_{r} = L_{t} = L and L > max(N_{T}, N_{R})/2, the CC of the novel DJTRAS will be less than that of CJAS. It can be seen that our DJTRAS scheme has obvious advantages when the NSA L is larger.
5 Simulation Results and Analysis
If the transmitting end is configured with N_{T} antennas, we choose L_{t}, and the receiving end is configured with N_{R} antennas and choose L_{r} on a MIMO system, which defined as {N_{T}, L_{t};N_{R}, L_{r}}. It is assumed that the wireless channels between the transmitting and receiving antennas of the MIMO system are mutually independent, and their amplitudes of the channel gain coefficient obey the Rayleigh fading, and their angles is uniformly distributed from 0 to 2π. In this part, we use the method of Monte Carlo simulation experiment to calculate the average capacity and its probability based on decreasing JTRAS (DJTRAS). In order to reflect the advantages of the new AS scheme, the capacity of four common AS algorithms are simulated in the capacity curve, such as rand, ESAS (here defined as the optimal selection algorithm, OS), NBS and CTAS, etc. [19]. According to the capacity comparison of these five different antenna selection algorithms, the paper gives two groups of curves of the {N_{T}, L_{t};N_{R}, L_{r}} system under various antennas and RF channels. One group is the curve of the average channel capacity changing with the receiving SignaltoNoise Ratio (SNR). The other is to use the cumulative distribution function (CDF) of capacity to calculate the statistical capacity. Regardless of which set of curves, these graphs reveal the capacity of the various AS algorithms and how their performance compares. All the simulating curves in this section are obtained from 1000 Monte Carlo simulation experiments as statistical data.
When doing the Monte Carlo experimental simulation, we assume that the SNR range of the receiver is 8dB to 20dB, and an experimental result is simulated every 1dB. From Fig. 4 to Fig. 7, the average capacity curves of {5,2;5,2}, {5,3;5,3}, {7,2;7,2} and {7,3;7,3} AS systems are drawn. In order to contrast the statistical capacity of the novel DJTRAS method, simulation results of other four AS schemes are presented in these figures. The simulation results of the four graphs all show that IEAS algorithm (marked AS “optimal” in the graphs) has the best average capacity, while random AS algorithm (marked AS “rand” in the graphs) has the worst performance. It is important that the statistical capacity of the new decreasing JTRAS is very close to that of the IEAS scheme. Similarly, compared with CJAS algorithm, the new DJTRAS has the advantage of low CC and slightly better average capacity. In addition, when the total antenna number (TAN) both N_{T} and N_{R} take 5 and 7, it can be viewed from Fig. 4, Fig. 5 to Fig. 6, Fig. 7 that the larger the number of selected antennas (NSA) L is, the better the median capacity will be. SNR=20dB, it can be observed that the median capacity of the proposed DJTRAS scheme is approximately 12bits/s/Hz and 18bits/s/Hz in figure 4 and figure 5, and approximately 12.5bits/s/Hz and 18.5bits/s/Hz in Fig. 6 and Fig. 7. It can be seen that when L increases from 2 to 3, the capacity will increase by 6bits/s/Hz. When we increase the TAN N_{T} and N_{R}, the NSA L is constant, as shown in Fig. 4 and Fig 6, L=2, N_{T} = N_{R} = 5 and 7, SNR=20dB, the increment of average capacity is less than 1bit/s/Hz. As shown in Fig. 5 and Fig. 7, L=3, N_{T} and N_{R} were 5 and 7 respectively, SNR=20dB, and the average capacity was also increased by less than 1bit/s/Hz. After the above discussion, we come to the conclusion that when the NSA L increases, the improvement degree of the average channel capacity of the AS system is much better than that of the TNA.
When the receiving SNR remains unchanged, the comparison curves of capacity CDF of various AS algorithms are given in Fig. 8 to Fig. 11. For {5,3;5,3} system, Fig. 8 and Fig. 9 draw the simulation curves of capacity CDF of various AS algorithms with SNR=8dB and SNR=20dB, respectively. In the case of {7,3;7,3} system, Fig. 10 and Fig. 11 also are respectively simulated to calculate the capacity CDF curves with SNR=8dB and SNR=20dB. From the four capacity CDF curves, we can calculate the median channel capacity of various AS algorithms by CDF=0.5. From this set of graphs, we can also get the same conclusions as Fig. 4 to Fig. 7. In short, the larger SNR is, the more the median capacity of AS system is. When L is constant, the more TNA there are, the greater the capacity will be. When the TNA is unchanged, the larger the NSA L is, the greater the median capacity is.
6 Conclusions
AS scheme is an effective method to decrease complex structure of the MIMO systems. In order to find a good compromise both the capacity and the CC for AS scheme, a decreasing joint transmitting and receiving AS (JTRAS) technique project is designed in this manuscript, this novel AS strategy is based on achieving maximum capacity for the MIMO systems. The curves of computer simulations on capacity’s indicator have revealed that the new JTRAS scheme can obtain suboptimal performance. However, its complexity is far less than that of ESAS algorithm. The new JTRAS scheme is suited to large selected number. In addition, the spatial multiplexing of multiantenna system can also provide a certain diversity gain, so as to it has great advantages in bit error rate (BER).
7 Appendix
The manuscript is sponsored by the Technology Research and Development Projects of Quanzhou city (2018Z011), Fujian Provincial Academic Engineering Research Centre in Industrial Intellectual Technique and System, Huaqiao University.
References
 [1]↑
Bjornson E. et al., (2016), “Massive MIMO: Ten Myths and One Critical Question,” IEEE Trans. CM, 54(2): 114–123.
 [2]↑
Mollen C. et al., (2017), “Uplink Performance of Wideband Massive MIMO With Onebit ADCs,” IEEE Trans. WC, 16(1): 87–100.
 [3]↑
Basar E. et al., (2016), “Index Modulation Techniques For 5G Wireless Networks,” IEEE Trans. CM, 54(7): 168–175.
 [5]↑
Gorokhov A et al., (2003), “Receive Antenna Selection for MIMO Flatfading Channels: Theory and Algorithms,” IEEE Trans. IT, 49(10): 2687–2696.
 [6]↑
Molisch A F et al., (2005), “Capacity of MIMO Systems with Antenna Selection,” IEEE Trans. WC, 4(4): 1759–1772.
 [7]↑
Bu H W et al., (2010), “Global and Fast Receiver Antenna Selection for MIMO Systems, Communications,” IEEE Trans. on Commun., 58(9): 2505–2510.
 [8]↑
Gkizeli M. et al., (2014), “MaximumSNR Antenna Selection Among A Large Number of Transmit Antennas,” IEEE J. Sel. Topics SP, 8(5): 891–901.
 [9]↑
Fang B. et al., (2015), “RAISE: A New Fast Transmit Antenna Selection Algorithm for Massive MIMO Systems,” Wireless Pers. Commun., 80(3): 1147–1157.
 [10]↑
Gao X. et al., (2015), “Massive MIMO in Real Propagation Environments: Do All Antennas Contribute Equally?” IEEE Trans. Commun., 63(11): 3917–3928.
 [11]↑
Sangchoon K., (2017), “Performance of Decremental Antenna Selection Algorithms for Spatial Multiplexing MIMO Systems with Linear Receiver Over Correlated Fading Channels,” IET Commun., 11(6): 855–863.
 [12]↑
Yuan G. et al., (2018), “Massive MIMO Antenna Selection: Switching Architectures, Capacity Bounds, and Optimal Antenna Selection Algorithms,” IEEE Trans. SP, 66(5): 1346–1360.
 [13]↑
Hua T. et al., (2018), “Massive MIMO Antenna Selection Algorithms Based on Iterative Swapping,” Electronics Letter, 54(4): 190–192.
 [14]↑
Hongyuan Gao et al., (2019), “Antenna Selection and Power Allocation Design for 5G Massive MIMO Uplink Networks,” China Commun., 16(4), 1–15.
 [15]↑
Gorokhov A. et al., (2004), “Transmit/Receive MIMO Antenna Subset Selection,” inProc. IEEE Int. Conf. on ASSP, 13–16.
 [16]↑
Sanayei S. et al., (2004), “Capacity Maximizing Algorithms for Joint TransmitReceive Antenna Selection,” in Proc.38th Asilomar Conf. on SSC, 2, 1773–1776.
 [17]↑
Blum R. S. et al., (2009), “A NearOptimal Joint Transmit and Receive Antenna Selection Algorithm for MIMO Systems,” IEEE RWS ’09., 554–557.
 [18]↑
Lan P. et al., (2009), “Joint Transmit and Receive Antenna Selection in MIMO Systems for Maximize Channel Capacity,” Journal on Commun., 30(7):7–12.
 [19]↑
Wang J. L. et al., (2013), “A Concise Joint Transmit/Receive Antenna Selection Algorithm,” Digital Commun., 10(3): 91–99.
 [20]↑
Chen C. E. et al., (2010), “A Computationally Efficient NearOptimal Algorithm for CapacityMaximization Based Joint Transmit and Receive Antenna Selection,” IEEE Tran. CL, 14(5): 402–404.
 [21]↑
Tang H. and Nie Z. P., (2018), “RMV Antenna Selection Algorithm for Massive MIMO,” IEEE Tran. SP, 25(2): 239–242.
 [22]↑
H. Tang et al., (2018), “GlobalSearchingBased Iterative Swapping Antenna Selection for Massive MIMO Systems,” IEEE Access, 6(11): 66557–66564.
 [23]↑
Li J. K. et al. (2011), “Joint Transmit/Receive Antenna Selection for MIMO Systems: A RealValued Genetic Approach,” IEEE Tran. CL, 15(1): 58–60.
 [24]↑
Lu H. Y. et al., (2007), “Joint Transmit/Receive Antenna Selection in MIMO Systems Based on the PriorityBased Genetic Algorithm,” IEEE Tran. AWPL, 6(6): 588–591.
 [25]↑
Naeem M. et al., (2011), “LowComplexity Joint Transmit and Receive Antenna Selection for MIMO Systems,” Engineering Applications of Artificial Intelligence, 24(6): 1046–1051.
 [26]↑
Lu H. Y. et al., (2012), “Particle Swarm Optimization Assisted Joint Transmit/Receive Antenna Combining for Multiple Relays in Cooperative MIMO Systems,” Applied Soft Computin., 1865–1874.
 [27]↑
Masumeh S. T. et al., (2014), “LowComplexity ThroughputBased Antenna Selection Method”, Wireless Pers. Commun., 75(1), 385–395.
 [28]↑
Yongqiang, H. et al., (2013), “Particle Swarm Optimization for Antenna Selection in MIMO System,” Wireless Pers. Commun., 68(3), 1013–1029.
 [29]↑
Eri G. K. et al., (2001), “The ShermanMorrison formula for the Determinant and Its Application for Optimizing Quadratic Functions on Condition Sets Given by Extreme Generators,” in Optimization Theory, Boston, MA: Kluwer.
 [30]↑
Harville D A. et al., (2008), “Matrix Algebra from a Statistician’s Perspective,” Springer, New York, NY, USA.
 [31]↑
Thomas H. et al., (1999), “Introduction to Algorithms,” the MIT Press Cambridge, Massachusetts London, England.