Input: getting a current scheduling
Output: the best neighbor of a scheduling
Step  1- Compute the total number of neighbors for current scheduling using Eq. (22), and determine the threshold t. This
threshold determines how many percents of the current scheduling neighbors must be assessed to find the next scheduling.
 (22)
Step 2- Searching for the best neighbor for current scheduling:
   - In the NAHC: algorithm generates a random neighbor scheduling for a selected gene and examine it. If the quality of
    the neighbor scheduling is lower than the current scheduling, another neighbor scheduling is generated for the
    current scheduling, and it repeats this action until a higher-quality neighbor is found.
   - In the SAHC: algorithm generates all neighbors for a selected gene and examine all of them, then, the best neighbor
    scheduling is returned.
Algorithm 6: Next Ascent and Steepest Ascent Algorithms.