Car painting process scheduling with harmony search algorithm

Automotive painting program in the process of painting the car body by using robot power, making efficiency in the production system. Production system will be more efficient if pay attention to scheduling of car order which will be done by considering painting body shape of car. Flow shop scheduling is a scheduling model in which the job-job to be processed entirely flows in the same product direction / path. Scheduling problems often arise if there are n jobs to be processed on the machine, which must be specified which must be done first and how to allocate jobs on the machine to obtain a scheduled production process. Harmony Search Algorithm is a metaheuristic optimization algorithm based on music. The algorithm is inspired by observations that lead to music in search of perfect harmony. This musical harmony is in line to find optimal in the optimization process. Based on the tests that have been done, obtained the optimal car sequence with minimum makespan value.


Introduction
Developments in the industrial world increasingly experienced an increase in terms of quality and quantity of production. Starting from using skilled human labor to use the machine in conducting production activities so that the possibility of errors caused by human error (human error). In developed countries almost all industries do production activities using the power of the engine, so that humans only operate the machine in its production activities.
Although already using the power of machinery in conducting its production activities, every industrial company keep trying to make its production activities produce an optimum result. Scheduling is one of the efforts of industrial companies to produce optimum results. Production scheduling is attempted to obtain an effective job assignment at each work station, so that no job stacking occurs so as to reduce idle time or waiting time for subsequent processing [1].
Car industry factories in developed countries already use the machine in the process of painting the car body. In the painting process has not done scheduling optimally, where in this case there is still waiting time in the process of painting the next stage, if the painting process is done more than one variation of the form of the car in the same painting machine.
Flow shop scheduling is a scheduling model where the job to be processed entirely flows in the same product direction / path. In other words, jobs have routing work together. Scheduling problems 2 1234567890''"" often arise if there are n jobs that will be processed on the machine m, which must be specified which must be done first and how to allocate jobs on the machine so that a scheduled production process is obtained [2].

Problem identification
In the process of painting cars with different car shape variations in the same painting machine, there are still a problem in waiting time. Therefore, an optimal solution is required to achieve the effective and efficient scheduling of car sequences in the painting process. How to get effective and efficient car order in the painting process, thus obtaining minimum makepan value in solving flow shop scheduling problems.

Previous Research
Scheduling flow shop in the search for the best optimization, has been a lot to solve various kinds of problems in everyday life. From small problems to complex problems with various methods in the settlement.
In solving the flow shop scheduling problem about the time of movement of a job that sometimes still has a free time when moving from one machine to another machine [3]. In this case [3] uses ant colony algorithm to solve the problem in finding the smallest makespan time.
Soukhal [4] in his research solve the problem of flow shop scheduling by using polynomial-time algorithm. Problems examined by Soukhal is about the truck carrying goods that will be delivered to the customer by considering the capacity of truck and transport time.
Boukef [5] conducts research on the flow shop scheduling problem in terms of minimizing the amount of prices for the production process and the delivery process undertaken on pharmaceutical drugs and the food industry. Boukef uses the genetic algorithm method to solve the problem.
Aulia [6] researches the problem of flow shop scheduling with permutation constraints on harmony search algorithm. The result of this algorithm can solve the problem well compared with the lower bound.

Methodology
HSA is a metaheuristic optimization algorithm based on music. The algorithm is inspired by observations that lead to music in search of perfect harmony. This musical harmony is in line to find opitmal in the optimization process. The search optimization process can be compared to the process of improvising jazz music. On the one hand, the perfection of harmony is determined by aesthetic sound standards. A musician always expects to produce a song with perfect harmony. On the other hand, an optimal solution for an optimization problem will be the best solution for objective and limited issues. Both of these processes will produce the best or optimum solution [7].

Figure 1. Improvisasion of Music Analogy
The analogy between musical improvisation and optimization techniques can be illustrated in figure 1: Each music player (saxophonist, double bassist and guitarist) can be analogous to the variables (x1, x2, x3) and the tone levels of each musical instrument (saxophone = {Do, Re, Mi}; double bass = {Mi, Fa, Sol}; And guitar = {Sol, La, Si}) are analogous to the variables (x1 = {100, 200, 300}; x2 = {300, 400, 500}; and x3 = {500, 600, 700}). If the saxophonist produces a Re sound, the double bassist emits a sound of the Mi and the guitarist emits a Si sound, so all three will simultaneously create a new harmony (Re, Mi, Si). If this new harmony is better than the previous harmony, then the new harmony will be used. Likewise a new vector solution (200mm, 300mm, 700mm) will be used as well if it is better than the previous one for objective function value conditions [8].
In accordance with the above concept, HSA consists of five stages, namely:

c) Pitch Adjustment Rate (PAR)
PAR is a continuous value used as a harmonized improvisation parameter after the HMCR criteria are met. The value of this parameter is 0 ≤ PAR ≤ 1.

d) Stop Criteria
Stop Criteria is the value used to stop the repetition of the new harmony improvisation.

B. Harmony Memory Initialization
In the initialization phase of Harmony Memory, solution vectors will fill the memory harmony according to the number of HMS. The solution vector is generated from randomly generated decision variables. The solution vector that is randomly generated is a sequence of jobs in the flow shop. Then each vector solution will be calculated its mask value. So it will produce the solution vector with the value makespannya respectively. An example of data that will be solved based on flow shop problems is shown in table 1.  The use of memory consideration is very important, this is the same as choosing the best individual in the genetic algorithms. Memory consideration will ensure the best harmony that will be brought to the last new harmony memory.

B) Pitch Adjustment
The pitch adjustment is fixed by a pitch band-width brange and a pitch adjusting rate rpa. Although in music, pitch adjustment is a tool to change the frequency, it is suitable for connecting a slight difference solution inside the HSA. In theory, patterns can be arranged linearly or nonlinear, but in practice linear adjustment is used. So it can be concluded xnew = xold + brange * Є where xold is the lifestyle or solution of harmony memory and xnew is a new pattern after pitch adjusting action.

C) Random Selection
Random selection is useful for expanding the diversity of solutions. Although pitch adjustment has the same role, but pitch adjustment is limited to certain local pitch adjustments and so is local search. Random selection can run on a more advanced system to examine a variety of solutions to find the optimal global. In this research, the improvisation process is described as follows: The random number generated is a1 = 0,432. Then the random number is adjusted to HMCR = 0.9. Because a1 <HMCR, then the decision variable is chosen randomly. Suppose the selected x1 '= 2. Next generate a random number to be adjusted with PAR = 0.3. Suppose that the random number generated is a2 = 0.512. Because a2> PAR, then the decision variable x1 '= 2 is retained.

Iteration 2
The random number generated is a1 = 0.925. Then the random number is adjusted to HMCR = 0.9. Because a1> HMCR, then the decision variable is chosen randomly from X1. Suppose the selected x1 '= 5.

Iteration 3
The randomized number generated from the previous iteration, e.g. a1 = 0.276, will be compared with the value of HMCR = 0.9 . Because the condition a1 < HMCR is fulfilled, the decision variable will be selected randomly, e.g. x1' = 3. The next step is generating random value to be adjusted by comparing the value with PAR = 0.3 . For example, if the value, defined by variable a2, is 0.114, and the rule a2 < PAR is fulfilled, then the decision variable x1' = 3 will be adjusted to the next variable, which is x2' = 4.

Iteration 4
The random number generated is a1 = 0.456. Then the random number is adjusted to HMCR = 0.9. Because a1 < HMCR, then the decision variable is chosen randomly. Suppose the selected x1 '= 6. Next generate a random number to be adjusted with PAR = 0.3. Suppose the random number generated is a2 = 0.212. Since a2 <PAR, then the decision variable x1 '= 6 is adjusted to the adjacent variable, ie x2' = 7.

Iteration 5
The random number generated is a1 = 0.941. Then the random number is adjusted to HMCR = 0.9. Because a1> HMCR, then the decision variable is chosen randomly from X1. Suppose the selected x1 '= 6.

Iteration 6
The random number generated is a1 = 0.672. Then the random number is adjusted to HMCR = 0.9. Because a1 <HMCR, then the decision variable is chosen randomly. Suppose the selected x1 '= 1. Next generate a random number to be adjusted with PAR = 0.3. Suppose the random number generated is a2 = 0.322. Because a2> PAR, then the decision variable x1 '= 1 is retained.

Iteration 7
The random number generated is a1 = 0,731. Then the random number is adjusted to HMCR = 0.9. Because a1 <HMCR, then the decision variable is chosen randomly. Suppose the selected x1 '= 3. Next generate a random number which will be adjusted with PAR = 0.3. Suppose that the random number generated is a2 = 0.843. Because a2> PAR, then the decision variable x1 '= 3 is retained.
From the above improvisation process obtained a new vector solution, namely: X = [2 5 4 7 6 1 3] Furthermore from the sequence of the car, it will be calculated its objective function to know the time.

D. Harmony Memory Update
After the improvisation process is completed it will get a new car sequence. Then from the sequence the car is calculated makespan. Having obtained the value of makespan, then the value of makespan is compared with the value of makespan contained in HM. If the makespan obtained at the improvisation stage is smaller than the makespan contained in HM, then the sequence of car and the makespan value in HM will be replaced by the sequence of the car and the new makespan. However, if the makespan obtained at the improvisation stage is not smaller than the makespan contained in HM, the sequence of cars and makespan in HM will be maintained.

E. Stop Criteria
Criteria for quitting is a condition in which the improvisation process stops if it meets the stipulation of the stop criteria. However, if the determination of the stop criteria has not been met, then the improvisation process continues to be done repeatedly until it meets the stop criteria.

F. Objective Functions
The objective function of this research is using makespan, which is the time period of completion of a job which is the sum of all the processing time of a machine. The smallest makespan is the best use of machine and job combinations and ensures the job from start to finish is completed. Makespan is calculated using the following equation: The calculation method of make span value is described in table 2.