| Algorithm 1 Multi-constraint Non-Negative Matrix Factorization |
| Step 1. Initialize non-negative matrices W and H randomly |
| Step 2. Calculate the initial value of the objective function according to Equation (9) |
| Step 3. Solve and update the matrices W and H alternately and iteratively based on Equation (10) |
| Step 4. If the objective function (Equation (9)) converges, the iteration process is stopped, and the matrices W and H are output; otherwise, steps (2) and (3) are performed once again |