This paper also covers a gentle introduction to some heuristic algorithms such as Genetic Algorithm, Random Algorithm and Greedy Algorithm. So I came across one of the many activities going on around the plant at a company called BorgWarner in Water Valley, Mississippi. Going into the nitty-gritty of the audit process, the audit process was spread across the entire plant and covered various layered/nested areas of the plant.
This was also inefficient, firstly because the planning was not 100% perfect and secondly because most employees were assigned the same audits every month. More details on the description of the problem and how I solved it will be discussed later in this article [Kroening and Strichman (2016)]. An evaluation of the variables is a function from a subset of variables to a given set of values in the corresponding subset of domains.
Monthly audits must be carried out every month and cover the largest area of the plant. Remaining audits (weekly and monthly) are displayed to show the entire audit process. Weekly audits and monthly audits have been included in the eligibility section to give a picture of the audit process.
A solution that maps the above values (Employees) to variables (Auditors) that meet all the constraints mentioned above.
INITIAL APPROACH
Once the structured space is created, the auditors must be assigned to the audits. 3.2.1 The Accommodation of Level 1 employees. To have a better visualization, the assignment of auditors and also to keep the solution compact, let Level 1 auditors be A1, A2, A3. As level 2 auditors have to share the responsibility of doing each audit once a week.
The original idea was to designate one day of the week for Level 2 to conduct audits. In the same way that level 2 auditors should perform daily audit once a week, level 3 auditors should perform it once a month. To accommodate the level 3s without changing the logic, the last day of the schedule was chosen to be the day when level 3 accountants will share the responsibility.
Since it would be the end of the month, the level 3s would have enough time to complete the audit. After running and testing the program a few times, I noticed that for days where the total number of days was even, for example if it was 20. To resolve this issue, the day for Level 3 auditors should be moved accordingly to avoid overwriting the Level 2 auditors.
To avoid this, for each schedule that has an even number of days in total, the schedule will assign the penultimate day instead of the last day of the schedule. For schedules with the total number of days being odd, the allocation will remain on the last day of the month. For example, if the total number of days was 20 (even), then the schedule would look like Figure 3.4.
When testing the solution for a small number of revisions, the program would reach a solution in a reasonable amount of time. But after replacing the actual number of revisions (eg 44 revisions), the probability of getting a conflict-free day decreased significantly. Not only is the schedule less evenly distributed and fair, but it also imposes a restriction that at least more than half of the total number of Level 2 and Level 3 employees is the total number of audits.
FINAL APPROACH
We know that the Level 3 auditors share the load of daily employees once a month and Level 2 auditors share the load once a week; setting it first made more sense because once they are assigned audits on certain days, the burden on those days for level 1 auditors is eliminated as the level 1 auditors do not have to conduct audits on those days. The assignment of each category of auditors one after the other was performed by finding a random day within days and finding the right auditor for that particular day. If he or she can accommodate an audit → make the assignment, If not, go back to step 2.
If the number of days has 20 more days after the first interval, we consider it as another interval from 20 to 40. After we find the place (the cell in the 2d array) and the accountant to be placed, we check if the employee has exceeded the workload of 2 audits for the day in question, or the employee is entitled to accommodate an audit. This is done by going vertically through the columns (since columns represent days) and counting the number of occurrences of that employee on that day.
If the auditor has more audits than the maximum number of audits (2 audits/day) that an auditor can do per day, the employee is not eligible for the audit on that day. If an auditor still cannot be assigned to that location, we go back to the step of choosing a location and start again. If an auditor can accommodate an audit on the randomly assigned day, he receives the audit and the assignment is final.
We use the same strategy of finding a random location within the range (0 to 4) and finding a random employee and assigning it to that particular location if he can accommodate a revision or starting over if he can't accommodate. Each slot is filled by a random L1 auditor, ensuring that the already assigned higher level auditors are not overridden. It is also checked whether the level 1 auditor can accommodate an auditor before he is assigned the audit on a particular day.
Because of this nature of our problem, the sequence of assigning level 3 first, followed by level 2, followed by level 1, made more sense, because that way the places where L3 and L2 are occupied, L1 will no longer be responsible for it. audit on this day. With the aim of finding the right day and the right auditor, the approach meets all the limitations. Checking the number of events per day, which is performed before an employee is assigned an audit, ensures that no employee performs more than the specified number of audits per day.
GENETIC ALGORITHM
Note the strongest individual here is the second Chromosome in the table with a fitness of 10. To maintain diversity and to avoid convergence, some variables or genes are reversed in the offspring [Mitchell. Usually a predetermined number of generations is specified which is used to truncate the search if the solution is not found within that range.
Because of the way genetic algorithm is structured in the book, a gene is represented as a 2-dimensional array. Regulating the number of each categories of employees to a certain number makes it easier for Genetic Algorithm to reach a solution. This is done for the same reason to maintain the count of each category of employee in the gene.
If it were allowed to mutate between categories, there might be a case where the number of each category would exceed the number of required individuals, making it harder for the algorithm to converge to a solution. Fitness works in terms of counting conflicts and calculating fitness based on the calculated conflicts. The number of total disputes was calculated based on the number of days and revisions.
Which means that the algorithm stops when the individual with the highest ability (without conflicts) is found. In addition to this stopping condition, I added another stopping condition that limits the number of generations to a certain number. To implement the greedy scheduling approach, memory space is allocated number of revisions time number of days.
The balance between the exploration of the search space and the exploitation of discoveries made in the search space is a recurring theme in GA theory [Coley (1999)]. The time elapsed to reach a solution and the percentage chance of obtaining a solution by varying the elite counts are considered in this section. The time elapsed to find a solution, and the percentage of obtaining a solution, averages 100 runs.
Please note that all the values of elitism have been measured and analyzed, but only a few noticeable values have been plotted in the above graph to make it look clean and readable. It was found that for the audit scheduling problem, optimum elitism score considering time and chances to get solution was 22 elite individuals out of the 100 population.
CONCLUSION