In this section, the definition of the partial order indicator (POI) and the implementation of the POs is first introduced. The detailed theory and a proof of the general partial order (GPO) are presented in Section 3.2. Then, indirect relationships after applying POs and GPO are discussed in Section 3.3. The optimal choice of the parameter nu<n, on which the GPO works, is discussed in 3.4. At last, a top-level algorithm of the proposed general partial order (GPO) is provided.
Given the three sets defined in Section 2.4, the following proposition can be used to determine whether a bit channel should be in \(\mathcal {I}, \mathcal {F}\), or \(\mathcal {U}\).
Proposition 1
If a bit channel i is stochastically upgraded with respect to at least N−K bit channels, then \(i \in \mathcal {I}\). If a bit channel j is stochastically degraded with respect to at least K bit channels, then \(j \in \mathcal {F}\). All other bit channels are in the undetermined set \(\mathcal {U}\).
Because the proof of this proposition is straightforward, it is omitted here.
Definition of POI matrix and implementation of POs
The matrix O is defined as an N×N matrix whose element (i,j) is the partial order indicator (POI) between bit channel i and bit channel j (i>j). The matrix O is a lower triangular matrix (excluding the diagonal), and the POIs of O can be written as:
$$ O_{ij} = \left\{ \begin{array}{cl} 1, & \text{if } i > j \text{ and } W_{N}^{(i)} \succ W_{N}^{(j)} \\ -1, & \text{if } i > j \text{ and } W_{N}^{(i)} \prec W_{N}^{(j)} \\ 0, & \text{if } i > j \text{ but } W_{N}^{(i)} \text{ and } W_{N}^{(j)} \\ & \qquad \text{ is unknown}\\ 0, & \text{if } i \le j \end{array} \right. $$
(10)
In practical implementations, the unused part of O (the upper triangular part) can be saved. Algorithm 1 finds the POIs when applying PO ≼1 and PO ≼2.
To explain Algorithm 1, the following lemma is introduced first.
Lemma 1
For a polar code with the code length N, consider two bit channels 1≤i,j≤N with j<i. Then, purely from PO ≼1 and PO ≼2, it is impossible for bit channel j to be stochastically upgraded with respect to bit channel i.
Proof
The proof is straightforward. The binary expansions of the two bit channels are i−1=(in,in−1,...,i1)b and j−1=(jn,jn−1,...,j1)b. With i>j, there must be a position k (1≤k≤n) at which (1) ik=1 but jk=0; (2) for positions larger than k, (in,in−1,...,ik+1)=(jn,jn−1,...,jk+1). There is no requirement for positions smaller than k. These two conditions are the basic requirements for i>j. With these two conditions, PO ≼1 cannot be applied to j−1=(jn,jn−1,...,j1)b to reach any intermediate channel v equal or upgraded with respect to bit channel i: with (in,in−1,...,ik+1)=(jn,jn−1,...,jk+1), there is not a larger position k′>k so that \(\phantom {\dot {i}\!}i_{k'} = 1\) and \(\phantom {\dot {i}\!}j_{k'} = 0\) to switch with position k in order to make jk=1. With ik=1 and jk=0 and PO ≼1 not applicable, PO ≼2 naturally is not valid: jk<ik. Therefore, for j<i, with PO ≼1 and PO ≼2, it is impossible for bit channel j to be stochastically upgraded with respect to bit channel i. □
Remark 1
Lemma 1 does not mean that bit channel j cannot be stochastically upgraded with respect to bit channel i when j<i. Lemma 1 has a condition: from the POs point of view, bit channel j cannot be stochastically upgraded with respect to bit channel i, indicating that Oi,j≠−1 according to the definition of (
10
). POs are channel independent. When it comes to any specific channel, the relationship between bit channel j and bit channel i with j<i can be evaluated using an existing sorting procedure. For example, with N=16, consider the two bit channels i−1=10−1=(1001)b and j−1=8−1=(0111)b. From the two POs, bit channel i is not stochastically upgraded with respect to bit channel j and bit channel j cannot be stochastically upgraded to bit channel i either from Lemma 1. However, consider an AWGN channel with a SNR of 1 dB, bit channel j is found to be stochastically upgraded with respect to bit channel i.
For any two bit channels i−1=(in,in−1,...,i1)b and j−1=(jn,jn−1,...,j1)b, denote the following two sets:
$$\begin{array}{*{20}l} \mathcal{P}=\{ 1 \le k \le n ~|~ i_{k} = 1 {~\text{and}~} j_{k} = 0\} \end{array} $$
(11)
$$\begin{array}{*{20}l} \mathcal{M}=\{ 1 \le k \le n ~|~ i_{k} = 0 {~\text{and}~} j_{k} = 1\} \end{array} $$
(12)
Let \(p=|\mathcal {P}|\) and \(m=|\mathcal {M}|\). At all the other positions except those specified by \(\mathcal {P}\) and \(\mathcal {M}\), the binary expansions of i−1 and j−1 share the same values zeros or ones. Assume the sets \(\mathcal {P}\) and \(\mathcal {M}\) are in descending order.
The following two lemmas state the conditions when PO ≼1 and PO ≼2 can (or cannot) be applied.
Lemma 2
For a polar code with the block length N=2n, consider two bit channels i−1=(in,in−1,...,i1)b and j−1=(jn,jn−1,...,j1)b with i>j. The sets \(\mathcal {P}\) and \(\mathcal {M}\) are defined in (
11
) and (
12
), respectively. When \(m=|\mathcal {M}| = 0\), then from PO ≼2, bit channel j is stochastically degraded with respect to bit channel i.
Proof
When \(m=|\mathcal {M}| = 0\), it means there is no position k (1≤k≤n) at which jk=1 and ik=0. In other words, all values of the binary expansion of j−1=(jn,jn−1,...,j1)b are equal or smaller than that of i−1. With i>j, invoking the definition of PO ≼2, it can be concluded that bit channel j is stochastically degraded with respect to bit channel i. □
Before introducing the following lemma, let us define that \(\mathcal {P}_{1}^{m}\) contains element one to element m of the set \(\mathcal {P}\). Also, the expression \(\mathcal {P}_{1}^{m} > \mathcal {M}_{1}^{m}\) indicates the element-wise comparison between \(\mathcal {P}_{1}^{m}\) and \(\mathcal {M}_{1}^{m}\).
Lemma 3
For a polar code with the block length N=2n, consider two bit channels i−1=(in,in−1,...,i1)b and j−1=(jn,jn−1,...,j1)b with i>j. The sets \(\mathcal {P}\) and \(\mathcal {M}\) are defined in (
11
) and (
12
), respectively, and are in descending order. If \(p=|\mathcal {P}| \ge m=|\mathcal {M}|\) (m>0) and \(\mathcal {P}_{1}^{m} > \mathcal {M}_{1}^{m}\), then PO ≼1 can be applied to achieve that bit channel j is stochastically degraded with respect to bit channel i.
Proof
It can be first observed that when p<m, PO ≼1 cannot be applied to i−1=(in,in−1,...,i1)b to obtain any intermediate channel equal or stochastically upgraded with respect to j−1=(jn,jn−1,...,j1)b: there are not enough positions with values ones in i−1=(in,in−1,...,i1)b (denoted by the set \(\mathcal {P}\)) to switch to positions in \(\mathcal {M}\) because p<m. Therefore, to apply PO ≼1,p≥m is necessary. Consider the definition of PO ≼1: for a bit channel i, switching a higher position with value one with a lower position with value zero resulting in a channel which is degraded with respect to bit channel i. Therefore, with the descending sets \(\mathcal {P}\) and \(\mathcal {M}\), when \(\mathcal {P}_{1}^{m} > \mathcal {M}_{1}^{m}\), PO ≼1 can be performed to i−1=(in,in−1,...,i1)b: for each element in \(\mathcal {M}\), there is a larger element in \(\mathcal {P}\) to switch with. Bit channel j is therefore stochastically degraded with respect to bit channel i. □
Remark 2
Lemma 3 is actually a combination of PO ≼1 and PO ≼2. There is an inherent PO ≼2 in Lemma 3 as explained below. Let the intermediate channel after switching \(\mathcal {P}_{1}^{m}\) with \(\mathcal {M}_{1}^{m}\) of bit channel i as bit channel v. Then, bit channel j is stochastically degraded with respect to bit channel v. If p=m, then v=j, which is the case of PO ≽1. If p>m, there are remaining elements in \(\mathcal {P}\) after switching with elements in \(\mathcal {M}\). Comparing bit channel j and bit channel v, the new set \(\mathcal {M} = \emptyset \) (m=0). From Lemma 2, bit channel v is stochastically upgraded with respect to bit channel j by invoking PO ≼2. But for our purpose of determining the relationship between bit channel i and bit channel j, the proof of Lemma 3 is sufficient.
Algorithm 1 implements Lemmas 1 to 3. For any given bit channel i, bit channel j<i is compared with it (line 6 in Algorithm 1). In Algorithm 1, −1s do not exist in O seen from Lemma 1. After running Algorithm 1, bit channels can be assigned to sets \(\mathcal {I}, \mathcal {F}\), and \(\mathcal {U}\) according to Proposition 1. As discussed in Section 2.4, the smaller is the size of \(\mathcal {U}\), the smaller the number of remaining computations is.
General partial order (GPO)
The relationship between some bit channels cannot be determined from POs ≼1,≼2, or their combinations. Here is an example: For N=28, consider bit channel i−1=(10011110)b and j−1=(01101011)b. Applying the two POs and their combinations yields no decision regarding whether \(W_{N}^{(i)}\) is stochastically upgraded or degraded with respect to \(W_{N}^{(j)}\). For general BMS channels, the relationship between bit channel i and bit channel j cannot be determined: \(W_{N}^{(i)} \preceq W_{N}^{(j)}\) holds for one given underlying channel W; however, this relationship may not hold for another underlying channel W′. For a specific channel BMS channel W, we can further reduce the size of \(\mathcal {U}\). Let us consider the two bit channels in the previous example. Let \(\mathcal {Z}_{u}\) denote the upper part of the descending set \(\mathcal {Z}_{n}=\{n,n-1,\dots, 1\}\) with \(n_{u} = |\mathcal {Z}_{u}|\). Then, \(\mathcal {Z}_{u}\) is \(\mathcal {Z}_{u}=\{n,n-1,\dots, n-n_{u}+1\}\). Similarly, \(\mathcal {Z}_{l}\) represents the lower parts of \(\mathcal {Z}_{n}\) with \(n_{l} = |\mathcal {Z}_{l}|\), and \(\mathcal {Z}_{l}=\{n_{l},n_{l}-1,\dots, 1\}\). The sizes satisfy 0≤nu,nl≤n and nu+nl=n. Divide the binary expansion of i−1 into two consecutive parts: \(i-1=(i_{\mathcal {Z}_{u}}, i_{\mathcal {Z}_{l}})_{b}\). The upper part \(i_{\mathcal {Z}_{u}}\) defines a new bit channel at the block length \(\phantom {\dot {i}\!}N_{u} = 2^{n_{u}} \le N=2^{n}\): \(\phantom {\dot {i}\!}W_{N_{u}}^{(i_{u})}\) (here, iu−1 = \(\phantom {\dot {i}\!}(i_{\mathcal {Z}_{u}})_{b}\)). For the lower part, there is similarly a new bit channel. For this specific example, nu=5 and nl=3. One of the two new bit channels can be determined: \(W_{N_{l}}^{(j_{l})} \preceq _{1} W_{N_{l}}^{(i_{l})}\). Only the relationship between the two upper channels cannot be determined.
For a given BMS channel W, if the upper bit channels are \(W_{N_{u}}^{(j_{u})} \preceq W_{N_{u}}^{(i_{u})}\) by any sorting algorithm, then the following proposition of general partial order (GPO) can be used to determine more intrinsic relationships among bit channels.
Proposition 2
General partial order (GPO): For a given underlying channel W, consider bit channels i and j (1≤i,j≤N) with i−1=(in,in−1,...,i1)b and j−1=(jn,jn−1,...,j1)b. Divide the binary expansions of i−1 and j−1 into two parts: \(i-1=(i_{\mathcal {Z}_{u}}, i_{\mathcal {Z}_{l}})_{b}\) and \(j-1=(j_{\mathcal {Z}_{u}}, j_{\mathcal {Z}_{l}})_{b}\). If the relationship between \(W_{N_{u}}^{(i_{u})}\) and \(W_{N_{u}}^{(j_{u})}\) is obtained for the given underlying channel W and the relationship between \(W_{N_{l}}^{(i_{l})}\) and \(W_{N_{l}}^{(j_{l})}\) is channel independent, then
$$ W_{N_{u}}^{(i_{u})} \succeq W_{N_{u}}^{(j_{u})} ~\text{and}~ W_{N_{l}}^{(i_{l})} \succeq W_{N_{l}}^{(j_{l})} \Rightarrow W_{N}^{(i)} \succeq W_{N}^{(j)} $$
(13)
Proof
From [23] (Lemma 4.7), the following is proven:
$$ W^{(i)}_{N} \succeq {W'}^{(i)}_{N} {~\text{when}~} W \succeq W' $$
(14)
First, let us prove that when il=jl, the following statement is true:
$$ W_{N_{u}}^{(i_{u})} \succeq W_{N_{u}}^{(j_{u})} \Rightarrow W_{N}^{(i)} \succeq W_{N}^{(j)} $$
(15)
For notational convenience, denote \(Q = W_{N_{u}}^{(i_{u})}\) and \(Z=W_{N_{u}}^{(j_{u})}\). Then, the left-hand side of (15) means that channel Z is stochastically degraded with respect to channel Q. From the channel polarization process in [1], it is known that each bit channel goes through n levels of one-step transformation defined in (1) and (2). The two channels Q and Z are the output channel of the first nu levels of bit channel i and bit channel j, respectively. These two channels are the input to the remaining levels denoted by il and jl. Then, \(W_{N}^{(i)}=Q_{N_{l}}^{(i_{l})}\) and \(W_{N}^{(j)}=Z_{N_{l}}^{(j_{l})}\). Since Z is stochastically degraded with respect to channel Q, then invoking (14), channel \(Z_{N_{l}}^{(j_{l})}\) is stochastically degraded with respect to channel \(Q_{N_{l}}^{(i_{l})}\). This proves (15).
Now, we prove that when iu=ju, the following statement holds:
$$ W_{N_{l}}^{(i_{l})} \succeq W_{N_{l}}^{(j_{l})} \Rightarrow W_{N}^{(i)} \succeq W_{N}^{(j)} $$
(16)
In this case, \(Q=W_{N_{u}}^{(i_{u})}=W_{N_{u}}^{(j_{u})}\). The final bit channels i and j are obtained as \(W_{N}^{(i)}=Q_{N_{l}}^{(i_{l})}\) and \(W_{N}^{(j)}=Q_{N_{l}}^{(j_{l})}\). Because \(W_{N_{l}}^{(i_{l})} \succeq W_{N_{l}}^{(j_{l})}\) and the relationship between \(W_{N_{l}}^{(i_{l})}\) and \(W_{N_{l}}^{(j_{l})}\) is channel independent (the condition of this proposition), we can conclude that no matter what the condition of Q is, \(W_{N}^{(i)} \succeq W_{N}^{(j)}\) holds.
Finally, we prove that
\(W_{N_{u}}^{(i_{u})} \succeq W_{N_{u}}^{(j_{u})}\) and \(W_{N_{l}}^{(i_{l})} \succeq W_{N_{l}}^{(j_{l})} \Rightarrow W_{N}^{(i)} \succeq W_{N}^{(j)}\)
To prove this statement, let us define an intermediate channel k: \(k-1=(k_{\mathcal {Z}_{u}}, k_{\mathcal {Z}_{l}})_{b}=(i_{\mathcal {Z}_{u}}, j_{\mathcal {Z}_{l}})_{b}\). From (16), we have \(W_{N}^{(i)} \succeq W_{N}^{(k)}\). From (15), we have \(W_{N}^{(k)} \succeq W_{N}^{(j)}\). From the transitivity of the degradation relationship [13], it can be concluded that \(W_{N}^{(i)} \succeq W_{N}^{(j)}\). □
The procedure to implement GPO is provided in Algorithm 2. From the definition of the matrix O in (10), POIs are stored in the lower triangular part (excluding the diagonal). Therefore, in line 12 of Algorithm 2, POI Oij=1 if condition (13) holds and if i>j. When condition (13) holds and i<j,Oij cannot set to be one as line 12 does, because only the lower triangular part of O is defined. Instead, we put Oji=−1 in line 15 to express the same thing: bit channel j is stochastically degraded with respect to bit channel i.
Remark 3
The GPO obtained from Proposition 2 works for a given underlying channel W and can be used to order the bit channels constructed from W. Any existing construction procedure (Tal-Vardy’s [13], GA [14–16], or density evolution [12]) can be called to order the bit channels at level nu≤n. For example, if the underlying channel W is a binary symmetric channel (BSC), GPO works by first obtaining the relationships determined from POs (Algorithm 1). Then, n is divided as n=nu+nl. Any sorting algorithm can be applied at level nu to sort the bit channels in the range of \(\phantom {\dot {i}\!}[1,~N_{u}=2^{n_{u}}]\). In this case, Tal-Vardy’s merging procedure can be applied. The channel-dependent sorting at the level nu is combined with the PO ordering at level nl to produce more relationships among bit channels at level n. In this case, GA does not work since the underlying channel is not an AWGN channel.
Remark 4
The procedures of the GPO are not channel dependent: they are universal for all supported channel types. But the ordering obtained from the GPO is dependent on W; therefore, the resulted ordering obtained from the GPO is not universal, such as that of the POs. For any given channel W, GPO can be used to reduce the construction complexity of polar codes because of the operation at a smaller level nu instead of level n. It can be easily shown that the relationship obtained from Proposition 2 is also transitive. The final K best bit channels that are selected when applying GPO are the same as calling any sorting algorithm [12–16]: In a GPO, the upper bit channels are determined from the given sorting algorithm, and the lower part is channel independent.
Indirect relationships
For the given underlying channel W, the direct use of GPO and POs sometimes cannot determine the relationship between two bit channels. Instead, some relationships can be obtained from several intermediate channels. Here, is an example. For N=29, consider the bit channels i−1=(100110000)b and j−1=(000111001)b. Applying the two POs and GPO yields no decision regarding whether \(W_{N}^{(i)}\) is stochastically upgraded or degraded with respect to \(W_{N}^{(j)}\). Let us take a look at a bit channel k−1=(011000001)b. We can determine that bit channel i is stochastically upgraded with respect to bit channel k for an AWGN channel with SNR = 1 dB because bit channel “1001” is stochastically upgraded with respect to bit channel “0110” from the Tal-Vardy algorithm and bit channel “10000” is statistically upgraded with respect to bit channel “00001” from the POs. We can determine that bit channel k is stochastically upgraded with respect to bit channel j because bit channel “011000” is stochastically upgraded with respect to bit channel “000111” from the Tal-Vardy algorithm for the same AWGN channel and bit channel “001” is the same as bit channel “001.” Therefore, we have \(W_{N}^{(i)} \succeq W_{N}^{(k)}\) and \(W_{N}^{(k)} \succeq W_{N}^{(j)}\), resulting in \(W_{N}^{(i)} \succeq W_{N}^{(j)}\).
If the relationship between bit channel i and bit channel j can be obtained from one intermediate bit channel, we must be able to obtain the relationship between bit channel i and bit channel j. There can be several intermediate bit channels between bit channel i and j before we can obtain the relationship between bit channel i and bit channel j. Let us refer to these POIs as indirect relationships. Proposition 3 can identify all indirect relationships in the matrix O after applying the POs and GPO.
Proposition 3
For a bit channel k (1≤k≤N), if there are bit channels i and j (whose relationship is undetermined from POs and GPO) such that \(W_{N}^{(i)} \succeq W_{N}^{(k)}\) and \(W_{N}^{(k)} \succeq W_{N}^{(j)}\), then \(W_{N}^{(i)} \succeq W_{N}^{(j)}\) is newly identified. When k is searched from 1 to N and i and j is also looped from 1 to N under the loop of k, then ALL indirect relationships between ALL bit channels can be identified.
Proof
The first half of this proposition is the direct use of the transitive property of the POs and GPO. According to the second half of the proposition, when the intermediate channel k goes from 1 to N and the bit channels i and j are also looped from 1 to N (within the loop of k), all indirect relationships among all bit channels can be identified. In the following, the second part of this proposition is proven.
For the existing POIs determined from the POs and GPO (stored in O), pick any two bit channels i and j (1≤i,j≤N) whose relationship is undetermined: Oij=0 and Oji=0. However, from the relationship matrix O, the following relationships can be determined:
$$ W_{N}^{(i)} \succeq W_{N}^{(k_{1})} \succeq W_{N}^{(k_{2})} \succeq \cdots \succeq W_{N}^{(k_{m})} \succeq W_{N}^{(j)} $$
(17)
where 1≤k1,k2,...,km≤N. Let \(\mathcal {K} = \{k_{1},k_{2},...,k_{m}\}\). Define \(k_{l} = \min ({\mathcal {K}})\). When k goes from 1 to N, the first transitive relationship \(W_{N}^{(k_{l-1})} \succeq W_{N}^{(k_{l})} \succeq W_{N}^{(k_{l+1})}\) is encountered. Then, the POI between bit channel kl−1 and kl+1 can be updated in the matrix O. The remaining set of \(\mathcal {K}\) becomes \(\mathcal {K} = \{1,2,...,k_{l-1},k_{l+1},...,k_{m}\}\) with the corresponding relationship
$$ W_{N}^{(i)} \succeq \cdots \succeq W_{N}^{(k_{l-1})} \succeq W_{N}^{(k_{l+1})} \succeq \cdots \succeq W_{N}^{(j)} $$
(18)
Compared with the relationship in (17), the relationship in (18) has one less bit channel \(W_{N}^{(k_{l})}\). The transitive relationship \(W_{N}^{(k_{l-1})} \succeq W_{N}^{(k_{l})} \succeq W_{N}^{(k_{l+1})}\) is replaced by the direct relationship \(W_{N}^{(k_{l-1})} \succeq W_{N}^{(k_{l+1})}\). This process continues with one new direct POI updated in each step until the last step, where \(W_{N}^{(i)} \succeq W_{N}^{(j)}\) is reached. As the intermediate channel k goes from 1 to N and i and j also goes from 1 to N within the loop of k, any indirect relationship between bit channel i and j (1≤i,j≤N) can be identified during the three loops. □
GPO parameter optimization
For the GPO, a parameter to be determined is the upper level nu. In this paper, the sorting algorithm in [13] is employed. The parameter nu is estimated based on this sorting algorithm. In the lth (1≤l≤n) approximation stage, different calculations are called according to “0” or “1” of the lth bit of the binary expansion of a bit channel. Denote t0 and t1 as the calculation time that corresponds to 0 and 1. Then, the calculating time for any channel is x×t0+y×t1 (x, y is the number of 0s and 1s of the binary expansion of this channel). Assume that the average Hamming weight of the channels in \(\mathcal {U}\) is wu. From the two POs, we can easily show that the three bit channels with the smallest indices are the worst, and the three bit channels with the largest indices are the best. Therefore, the ordering of these six bit channels can be saved for all sorting algorithms. The approximate calculation time to sort the bit channels at level nu and to sort the bit channels at \(\mathcal {U}\) is:
$$ T_{n_{u}}=\frac{(N_{u}-6)n_{u}}{2}(t_{0}+t_{1})+K_{u}(n-w_{u})t_{0}+K_{u}w_{u}t_{1} $$
(19)
where \(K_{u} = |\mathcal {U}|\) is cardinality of the set \(\mathcal {U}\).
From (19), the calculation time of GPO is dependent on the size of the set \(\mathcal {U}, K_{u}\), and the average Hamming weight of the binary expansion of the elements in \(\mathcal {U}\). Therefore, a theoretical estimation of the optimal selection of nu is unavailable. However, any selection of 3≤nu≤N−1 can achieve an advantage in terms of the construction time given the nature of the GPO. In Section 4, a quasi-analytical estimation of nu for n up to 10, which produces the most efficient construction of polar codes, is performed. Estimation of nu with larger block lengths is readily achievable.
Outline of the overall GPO algorithm
Algorithm 3 is a top-level algorithm that implements PO ≼1, PO ≼2, GPO, and the indirect relationships presented in Proposition 3.
The original POI matrix O is obtained from Algorithm 1 (PO ≼1, PO ≼2). Then, the POI matrix O is updated by Algorithm 2 (GPO). As stated in Proposition 3, some intrinsic relationships exist between bit channels that cannot be obtained from POs and GPO, but can be obtained from several intermediate channels. This type of intrinsic relationship is obtained from Proposition 3, whose algorithm is clear; therefore, it is omitted here.
Once the POI matrix O is updated by Proposition 3 (line 7 of Algorithm 3), we can obtain the two vectors \(v_{1}^{N}\) and \(w_{1}^{N}\): the entry vi of \(v_{1}^{N}\) corresponds to the number of bit channels that are stochastically degraded with respect to bit channel i, and the entry wj of \(w_{1}^{N}\) corresponds to the number of bit channels that are stochastically upgraded with respect to bit channel j (line 11 of Algorithm 3). Then, Proposition 1 can be applied to assign elements to the sets \(\mathcal {I}, \mathcal {F}\), and \(\mathcal {U}\) (line 12-13 of Algorithm 3).