*3.1. Binary Representation*

The choice of the representation for individuals, also known as individual coding, is a crucial issue in evolutionary algorithms. The proposed QDGWO algorithm adopts the binary coding, which is the most appropriate way to indicate the selection or rejection of items. Each individual *X* is represented as a binary vector with length *m* (*m* is the item size): *X* = (*<sup>x</sup>*1, *x*2,... , *xm*), where *m* is the number of items.

$$\begin{cases} \mathbf{x}\_i = 1, & \text{if item } \mathbf{x}\_i \text{ is selected} \\ \mathbf{x}\_i = 0, & \text{if item } \mathbf{x}\_i \text{ is rejected} \end{cases} \tag{2}$$

The following example shows the binary representation for item selection: *x*1 and *x*3 from the item set *W* are selected: *W* = {*<sup>x</sup>*1, *x*2, *x*3, *x*4} → *X* = (1 0 1 0). 

The binary population *P*(*t*) = *Xt*1, *<sup>X</sup>t*2,..., *Xtn*is made up of the binary individuals at the *t*th generation, where *n* is the size of population.
