What VCA is viewed as a sequential version of PPI is exactly what SGA is considered as a sequential version of N-FINDR in the sense that SGA finds one endmember at a time when it grows a series of simplexes with maximal volumes. Similarly, SGA can also be extended to its random version, called RSGA, in the same way as both RSQ N-FINDR and RSC N-FINDR are extended with SGA used in each run.
Random SGA (RSGA)
1. Initialization
a. Assume that the number of endmembers required to be generated is p.
b. Let ε be the given tolerance value of spectral similarity.
c. Set E(1) = 0 and .
2. Randomly generate two data sample vectors as two initial endmembers, .
3. Apply SGA to generate p endmembers, denoted by .
4. If , let and go to step 2. Otherwise, continue.
5. Find the intersection of . In this case, a spectral measure such as SAM is used to measure spectral similarity. If , then ei and ej are considered to represent the same endmember class.
6. Stopping rule
If , then let and go to step 2. Otherwise, the algorithm is terminated and the endmembers in E(k) is the desired set of endmembers.
It should be noted that two initial endmembers instead of one initial endmember are randomly generated in step 2 of RSGA due to the fact that the smallest dimensionality of a simplex is 2.