# Solving Flexible Job-Shop Scheduling Problem Using Gravitational Search Algorithm and Colored Petri Net

Authors: Behnam Barzegar; Homayun Motameni; Hossein Bozorgi
Journal: Journal of Applied Mathematics
 (2012)

---

## Abstract

Scheduled production system leads to avoiding stock accumulations, losses reduction, decreasing or even eliminating idol machines, and effort to better benefitting from machines for on time responding customer orders and supplying requested materials in suitable time. In flexible job-shop scheduling production systems, we could reduce time and costs by transferring and delivering operations on existing machines, that is, among NP-hard problems. The scheduling objective minimizes the maximal completion time of all the operations, which is denoted by Makespan. Different methods and algorithms have been presented for solving this problem. Having a reasonable scheduled production system has significant influence on improving effectiveness and attaining to organization goals. In this paper, new algorithm were proposed for flexible job-shop scheduling problem systems (FJSSP-GSPN) that is based on gravitational search algorithm (GSA). In the proposed method, the flexible job-shop scheduling problem systems was modeled by color Petri net and CPN tool and then a scheduled job was programmed by GSA algorithm. The experimental results showed that the proposed method has reasonable performance in comparison with other algorithms.


---

## Body

## 1. Introduction

Classic job-shop scheduling problem systems containN independent job on M machines. Each job includes one or more operations that must be implemented sequentially. Each operation needs specific process time. Flexible job-shop scheduling problem system is specific type of classic job-shop scheduling production systems, in which one job could be implemented on a set of machines.Purpose of scheduling this problem is determining operation sequence for each machine, such that sequence order is kept and total time of operation (during implementing one job) be minimized.In this paper, FJSSP-GSPN algorithm based on gravitational local search and time Petri net is proposed for scheduling time optimization in FJSSP. The proposed algorithm comprised two stages: in the first stage, the system was modeled by timed Petri net and the simulation of results was done with Petri net method. In the second stage, a new algorithm based on gravitational local search algorithm was proposed which is called FJSSP-GSPN.In the simulation stage, in order to determine performance of the system, one job has been simulated by CPN tool with several suboperations. Also, in the second stage, gravitational searching algorithm and proposed solution have been presented to make suitable time for implementing several operations on one job, which in fact is assigning proper the machine to the related operation.The rest of the paper is as follows: In Section3, problem analyzing and in Section 4, its disjunctive graph model are presented. In Section 5, colored Petri Net and in Section 6 simulating phase with CPN tool is described. In Section 7, gravitational searching algorithm is explained and finally in section eight, we explain the proposed solution by using the gravitational searching algorithm.


## 2. Related Work

Flexible job-shop scheduling problem system is one of the most important combined optimization problems, and is kind of NP-hard problem.The job-shop scheduling problem (JSSP) has been studied for more than 50 years in both academic and industrial environments and also recently, many researchers have been done for the flexible job-shop scheduling problem system (FJSSP).Brucker and Schlie [1] who first considered Job-shop scheduling with multipurpose Multipurpose computing machines, offered a multilateral algorithm for solving flexible job-shop problem with two jobs. In real world, for solving a problem with more than two jobs, two perceptions have been used: hierarchical perception and integrated perception.In hierarchical perception, assigning any operation to the machines and determining operation sequences are performed individually. In other words, assignment and sequence determination are independent. But in integrated perception, sequence determination is based on this idea that in order to decrease complexity, the main problem should be decomposed into two problems called assignment and sequence determination. Frequent usage of this perception is due to decomposition it into two assignment problem and sequence determination problem. Brandimarte [2] was the first one who used this perception for FJSSP. He specified path determination with distribution rules and then focused on solving scheduling problem with tabu search algorithm.Jain and Meeran [3] provided a concise overview of JSPs over the last few decades and highlighted the main techniques. The JSP is the most difficult class of combinational optimization. Garey et al. [4] demonstrated that JSPs are nondeterministic polynomial-time hard (NP-hard), hence we cannot find an exact solution in a reasonable computation time. The single objective JSP has attracted wide research attention. Most studies of single-objective JSPs result in a schedule to minimize the time required to complete all jobs, that is, to minimize the makespan. Many approximate methods have been developed to overcome the limitations of exact enumeration techniques.These approximate approaches include simulated annealing (SA) (Lourenço [5]), tabu search (Sun et al. [6]; Nowicki and Smutnicki [7]; Pezzella and Merelli [8]), and genetic algorithms (GA) (Bean [9]; Kobayashi et al. [10]; Gonçalves et al. [11]; Wang and Zheng [12]).Fattahi et al. [13] have considered hierarchical and integrated perceptions in relation to scheduling job-shop production systems. They based on these perceptions two SA and TA heuristics, offered six combined algorithms and compared them.The concluded that combined algorithms from SA and TA along with hierarchical perception would provide better solutions than other algorithms. TE also offered in their article a new technique for introducing structure of solution in scheduling flexible job-shop production problems.I. C. Choi and D. S. Choi [14] have presented a local searching algorithm for scheduling job-shop production problems. They regarded that there is a possibility of a substitute operation for any operation. In this mode, a machine and a process time are assigned for all operations, and then for some other operations, alternative machines and process time are dedicated. Moreover, a run time has been considered for any operations, which is depended of the last operation.Xia and Wu [15] have presented a hybrid optimizing perception for scheduling multiobject flexible job-shop production system problems. In their study, combination of two methods SA and particle swarm optimization have been used for optimizing flexible job-shop production system problem. Dedicated PSO algorithm for either assignment problem or determining operations uses designated machine. Value of object function is calculated by SA algorithm and implemented for each particle in PSO algorithm once.Mastrolilli and Gambardella [16] proposed a tabu search procedure with effective neighborhood functions for the flexible job-shop problem. Many authors have proposed a method of assigning operations to machines and then determining sequence of operations on each machine. Pezzella et al. [17] and Gao et al. [18] proposed the hybrid genetic and variable neighborhood descent algorithm for this problem. There are only a few papers considering parallel algorithms for the FJSP. Yazdani et al. [19] propose a parallel variable neighborhood search (VNS) algorithm for the FJSP based on independent VNS runs. Defersha and Chen [20] describe a coarse grain version of the parallel genetic algorithm for the considered. FJSP basing on island model of parallelization focusing on genetic operators used and scalability of the parallel algorithm. Both papers are focused on the parallelization side of the programming methodology and they do not use any special properties of the FJSP.In this study, we first considered the problem with primary process and ignored substitute process; regarded flexibility and obtained construction duration have been used as upper boundary. Then, local searching procedure is looking for better a solution by using distribution rules. In this study, different distribution rules in local searching procedure have been considered.


## 3. Flexible Job-Shop Scheduling Problem Systems’ Analysis

In this section, mathematical model (combined of integer and linear programming) is presented for better understanding the problem and also applying it for solving small problems optimally.Flexible job-shop scheduling production system containsN job on M machines. Each job includes some operations and for each operation there is an opportunity to use a set of operational machines. As flexible job-shop scheduling systems have considerable importance in production centers, they have attracted attention of production unit managers.Furthermore, specific mathematical characteristics of this problem that have offered effective strategies for solving this problem are interested for researchers of this area of mathematics field. Simple form of flexible job-shop scheduling production systems is classic job-shop scheduling production system which schedulesn job of J1,J2,…,Jn on set of M machines of M1,M2,…,Mm.Each job hashj operation that must be implemented serially. Subscript j indicates job, subscript h indicates operation, and subscript i presents machines. The Purpose of scheduling this problem is determining the sequence of operations for each machine, such that a predefined object function like construction duration gets optimized.Each job has one sequence ofOj,h operations; h=1,…,hj,  whereOj,h presents hth operation of jth job, and hj presents number of required operations for j th job. Machines set is presented by M={M1,M2,…,Mm}. Subscript i presents machine and subscript j presents job and subscript h is applied for operation.To implement eachh operation on j job (presented as Oj,h), a set of jobs are assigned, which have the capacity of performing that operation. This set is presented as Mj,h⊂M. Each machine would have a specific process time for implementing operation. This specific process time for implementing each operation is presented with Pi,j,h.In this study, we defineMj,h set with variable ai,j,h with value one and zero. If variable ai,j,h has value 1, it means that machine j has capacity for implementing operation Oj,h. For assignment, we use variable yi,j,h with value one or zero. This variable is determined by model. If value of this variable be 1, then it means that machine j is selected among operational machines for implementing Oi,j operation.Eventually, the result solution from variableyi,j,h gives assignment-problem solution (i.e., each operation among the assignable machine is performed by which machine).For solving the sequence problem, we consider initial timetk,l and final time ftk,l for each operation. Value of those variables is determined by a model. Moreover, an assumed the job which the number of its operations is equal to number of machines is considered as the initial job.In this model, we use variablexi,j,h,k,l with value one or zero. If this variable has value 1, it means that operation Ok,l on machine j is implemented immediately after operation Oj,h.Also, sei,f,k presents the startup time of job k after a job from family f on machine i.(3.1)Ff,j={1ifk∈f0otherwiseai,j,h={1ifOj,hcanbeperformedon⁡machinei0otherwise.
Variables of this model include:(3.2)yi,j,h={1ifmachineiseclectforoperationOj,h0otherwisexi,j,h,k,l={1ifOj,hprocecedsOk,limmediatelyon⁡machinei0otherwise.Cmax: maximum time of constructing duration, m: a large number, tk,l: initial time for operation Ok,l, ftk,l: final time for operation Ok,l, Pi,k,l: process time for operation Ok,l on machine i, and Si,j,k: start up time for job k on machine j if the previous job is job j.By having parametersSi,f,k, Pi,j,h, ai,j,h, fa, m, and n problem FJSP is modeled as follows:(1)
minCmax;(2)
tk,l+yi,k,l·pi,k,l≤fik,lfori=1,…,m,k=1,…,n,l=1,…,hk;(3)
si,j,k=∑Ff,j·sei,f,kfori=1,…,m,k=1,…,n,j=1,…,n,f=1,…,fa;(4)
fik,l≤tk,l+1  for k=1,…,n,  l=1,…,hk-1;(5)
fik,l≤Cmax  for k=1,…,n,  l=1,…,hk;(6)
yi,k,l≤ai,k,l for i=1,…,m, k=1,…,n,  l=1,…,hk;(7)
tj,h+pi,j,h+si,j,k≤tk,j+(1-xi,j,h,k,l)M for j=0,…,n,k=1,…,n,h=1,…,hj,l=1,…,hk,i=1,…,m;(8)
fj,h+si,j,k≤tj,h+1+(1-xi,k,l,j,h+1)M for j=1,…,n,k=0,…,n,h=1,…,hj-1,l=1,…,hk,i=1,…,m;(9)
∑yi,j,h=1  for j=0,…,n,h=1,…,hj,i=1,…,m;(10)
∑∑xi,j,h,k,l=yi,k,l  for i=1,…,m,k=1,…,n,l=1,…,hk;(11)
∑∑xi,j,h,k,l=yi,k,l  for i=1,…,m,j=1,…,n,h=1,…,hj;(12)
xi,j,h,k,l≤yi,k,l for j=1,…,n,k=1,…,n,h=1,…,hj,l=1,…,hk,i=1,…,m;(13)
xi,j,h,k,l≤yi,k,l for j=1,…,n,k=1,…,n,h=1,…,hj,l=1,…,hk,i=1,…,m;(14)
xi,k,l,k,l=0  for i=1,…,m,k=1,…,n,l=1,…,hk;(15)
si,k,k,=0  for i=1,…,m,k=1,…,n;(16)
xi,j,h,k,l,yi,j,h∈{0,1}.Constraint 1 is the object function of a problem which minimizes maximum completion time. Constraint 2 presents startup time and finishing time of each operation. Constraint 3 introduces run time for each job. Constraints 4 and 8 cause that prerequirement limitations are respected. Constraint 5 definesCmax. Constraint 6 causes that required machines for each operation is selected among assignable machines for that operation. Constraint 7 guarantees that if operation l from job k is performed after operation h from job j on machine i, its startup time is after finishing operation h from job j and also after the process time of preparing machine i. Constraint 9 causes that among all assignable machines for a specific operation just one machine selected. Constraints 10 and 11 imply that only one operation is performed on machine i after and before other operations. Constraints 12 and 12 imply that each operation is just performed on its assignable machine after and before other operations. Constraint 14 guarantees that any operation is processed once.


## 4. The Disjunctive Graph Model

The JSSP can be described as a disjunctive graphG=(V;CUD), where (1)  V is a set of nodes representing operations of the jobs together with two special nodes, a source(0) and a sink, representing the beginning and end of the schedule, respectively.(2)  Cis a set of conjunctive arcs representing technological sequences of the operations. (3)  D is a set of disjunctive arcs representing pairs of operations that must be performed on the same machines. The processing time for each operation is the weighted value attached to the corresponding nodes.Figure2 shows this in a graph representation for the problem given in Table 1. The Gantt-Chart is a convenient way of visually representing a solution of the FJSSP. An example of a solution for the 3 * 3 problem in Table 1 is given in Figure 1.Table 1
Illustration of an example of 3 * 3 problem.
jobOperations routing (processing time)11(3)11(3)21(2)21(2)32(3)32(3)Figure 1
A Gantt chart representation of a solution for a 3 * 3 problem.Figure 2
A disjunctive graph of a 3 * 3 problem.Job-shop scheduling can also be viewed as defining the ordering between all operations that must be processed on the same machine, that is, to fix precedences between these operations. In the disjunctive graph model, this is done by turning all undirected (disjunctive) arcs into directed ones. Aselectionis a set of directed arcs selected from disjunctive arcs. By definition, a selection is completeif all the disjunctions are selected. It is consistentif the resulting directed graph is acyclic.


## 5. Colored Petri Nets

The Petri Nets theory was born from the thesis defended by Carl Adam Petri in the Faculty of Mathematics and Physics of the Technical University of Darmstadt (Germany) in 1962, entitled “Communication with autonomata.” At the end of the 60s and beginning of the 70s, researchers from MIT in the USA developed the foundations of the concept of the Petri nets as we know today.According to Murata [21], Petri nets are a type of bipartite, directed, and weighted graph, which can capture the dynamics of a discrete-event system. The Petri nets provide a compact representation of a system because they do not represent explicitly all the space of states from the modeled system.An ordinary Petri net is a 4-tuplePN =(P, T, Pre post), formed by a finite set of places P of dimension n, a finite set of transitions T of dimension m, an input condition Pre:P×T→N,and an output condition Post:P×T→N. To each place an integer nonnegative number denominated token is associated.Models with time restrictions can be developed via Petri nets, as shown for example, in [22]. Manufacturing, transportation, and telecommunication systems are some of the examples of application of that methodology.A limitation of the ordinary Petri nets, also calledplace/transition Petri nets, is the fact that they demand a large quantity of places and transitions to represent complex systems (as most real systems are). As the net expands, the general view of the modeled system starts to get compromised, and the analysis of the modeled system becomes difficult to do.Real systems often present similar processes which occur in parallel or concurrently, and they differ from each other only by their inputs and outputs. In the colored Petri nets, the quantity of places, transitions, and arcs is, generally, sensibly reduced via the addition of data to the structure of the net.According to Jensen [23] a more compact representation of a Petri net is obtained via the association of a data set (denominated token colors) to each token. The concept of color is analogous to the concept of type, common among the programming languages.Colored Petri net (CPN) is a tool by which validation of discrete-event systems are studied and modeled. CPNs are used to analyze and obtain significant and useful information from the structure and dynamic performance of the modeled system. Colored Petri nets mainly focus on synchronization, concurrency, and asynchronous events. The graphic features of CPNs specify the applicability and visualization of the modeled system. Furthermore, synchronous and asynchronous events present their prioritized relations and structural adaptive effects. The main difference between CPNs and Petri nets (PN) is that in CPNs the elements are separable but in PNs they are not. Colored indicates the elements specific feature. The relation between CPNs and ordinary PNs is analogous to high-level programming languages to an assembly code (Low-level programming language). Theoretically, CPNs have precise computational power but practically since high-level programming languages have better structural specifications, they have greater modeling power.CPN’s drawback is its nonadaptivity therefore it is not possible to access the previous information available in CPNs. If there is more than one transition activated then each transition can be considered as the next shot. This colored Petri net’s characteristic indicates that since several events occur concurrently and event incidences are not similar, then when events occur they do not change by time and this phenomenon is in contrast with the real and dynamic world. Simulation would be similar to execution of the main program. Our Purpose is to use the simulated model for analyzing the performance of the systems, as a result here the system problems and the weak points would be identified. However, classic CPN tools can do nothing to improve and solve problems and also it would not be possible to predict the next optimized situation.According to Jensen [23], a colored Petri net is  a 9 tuple:(5.1)CPN=(Γ,P,T,A,N,C,G,E,I),
where Γ is a finite, nonempty set of types, denominated colors set; P is a finite set of places of dimension n; T is a finite set of transitions of dimension m; A is a finite set of arcs so that P∩T=P∩A=T∩A=∅; N is a node function, defined from A by P×T∪T×P; C is a color function, defined from P on Γ; G is a guard function, defined from T; E is a function of expression of arcs, defined from A; I is an initiation function, defined from P.Thecolors setdetermines the types, operations and functions which can be associated to the expressions utilized on the net (arc functions, guards, colors, etc.) The sets P, T, Aand N have analogous significance to the vertexes and precedence functions sets defined for the ordinary Petri nets. Color functions map every place on the net, including them in a color set. Guard functions map all the transitions on the net, moderating the stream of tokens according to Boolean expressions. Arc functions map each arc on the net, associating them to a compatible expression with the possible color sets. Finally, initialization functions map the places on the net associating them to the existent multisets.There are four main components in Petri net.(1)
(●) Token: specify existence in system.(2)
() Place: temporary place for maintenance of Tokens.(3)
(→) Arc: show Token directions.(4)
() Transition: specify main operation in system. A system can be modeled just by using these four simple elements.


### 5.1. CPN Tool

CPN Tools is an industrial-strength computer tool for constructing and analysing CPN models. Using CPN Tools, it is possible to investigate the behaviour of the modelled system using simulation, to verify properties by means of state space methods and model checking, and to conduct simulation-based performance analysis. User interaction with CPN Tools is based on direct manipulation of the graphical representation of the CPN model using interaction techniques, such as tool palettes and marking menus. The functionality of the tool can be extended with user-defined Standard ML functions [24].


## 5.1. CPN Tool

CPN Tools is an industrial-strength computer tool for constructing and analysing CPN models. Using CPN Tools, it is possible to investigate the behaviour of the modelled system using simulation, to verify properties by means of state space methods and model checking, and to conduct simulation-based performance analysis. User interaction with CPN Tools is based on direct manipulation of the graphical representation of the CPN model using interaction techniques, such as tool palettes and marking menus. The functionality of the tool can be extended with user-defined Standard ML functions [24].


## 6. The First Stage (Simulating Problem with CPN Tool)

Regarding problem analyzing and offered comments, performance of scheduling operation system in a flexible production job-shop is simulated with CPN tool. This simulation which could be contains one or more operations for one job, is implemented on one machine. Also, this simulation is extension able on more operations or even more jobs. First, suppose (Figure3) that you have one job with one operation and a job-shop with several machines (up to 5 machines).Figure 3
Example model for one job with one operation on five machines.Next to each place, there is an inscription which determines the set of token colors (data values) that the tokens on the place are allowed to have. The set of possible token colors is specified by means of a type (as known from programming languages), and it is called the color set of the place. By convention the color set is written below the place. The places have the color set INT and STRING, color sets are defined using the CPN ML keyword colset.The color sets are defined as:colsetSTRING=string;colsetINT=int;The arc expressions are written in the CPN ML programming language and are built from typed variables, constants, operators, and functions. When all variables in an expression are bound to values (of the correct type) the expression can be evaluated. An arc expression evaluates to a multiset of token colors. As an example, consider the two arc expressionsi and st on the three arcs connected to the transition. They contain the variables i and st declared as follows:vari:INT;varst:STRING.According to problem analysis, this job could be implemented on each machine, but the ideal machine is the one that performs this job in less time, so each machine sends operational time for the related job to the comprising section. The comprising section recognizes minimum time among input values and displays it with the name of the related machine.Now suppose that we have one job with two operations, and according to problem definition, this operation should be implemented serially (Figure4). Thus, after that first operation is implemented, second operation would be allowed by sending a return signal.Figure 4
Example model for two jobs with one operation on five machines.As you can see, this simulation for one job that has up to 5 operations has been implemented on five machines (Figure5), but this simulation could be modeled on j job with N operation and M machines, too.Figure 5
Example model for five jobs with one operation on five machines.


## 7. Gravitational Search Algorithm

In GSA, optimization is done by using gravitational rules and movement rules in an artificial discrete-time system.System area is the same as problem definition area. According to the gravitational rule, act, and state of other masses are recognized through gravitational forces. So, this force could be used as a tool for transferring information. We can also use the proposed solution for solving any optimization problem which within it any answers of problem is definable as a state in space, and its degree of similarity with other answers of problem is mentioned as a distance. Value of masses in each problem is also mentioned in regards topurpose function. In the first step, system space is determined. Area includes a multidimensional coordinated system in problem definition space.Each point in space is one of the answers of a problem and search factors are also the series of masses.Each mass has three properties:(a) mass state, (b) gravitational mass, (c) inertia mass.Above mentioned masses are resulted fromactive gravitational mass and inertia mass concepts in physics.In physics, active gravitational mass is a criteria of degree of gravitational force around a body, and inertia mass is a criteria of body resistance against movement. These two properties could be not equal, and their amounts are determined based on suitability of each mass.Mass state is a point in space which is one of the problem answers. After forming a system, its rules are determined.We suppose that there is only the gravity rule and movement rule. Their general forms are similar to nature rules and have been defined as follows.Gravity Rule: Any mass in an artificial system attracts all other masses toward itself. The value of this force is proportional with the gravitational mass of the related mass and distance between two masses.Movement Rule: Recent speed of each mass is equal to the sum of the coefficient of the last speed of that mass and its variable speed. Also, acceleration or variable speed is equal to delivered force on mass, divide by the amount mass.In the following, we explain principals of this algorithm. Suppose that there is a system withS masses and within it, state of mass ith is defined as relation (7.1), where x denotes position of mass ith in dimension d, and n denotes number of dimensions in the search space.(7.1)Xi=(xi1,…,xid,…,xiD)Worst(t) and Best(t) are for the minimization problems and are calculated as follows. (for maximization problems it is just enough to consider the inverse of these two relations).(7.2)Best(t)=max⁡j∈{1,…,m}⁡fitj(t)worst(t)=min⁡j∈{1,…,m}⁡fitj(t).We can account fitness of recent population with relation (7.3), and obtain mass of factor ith in time t (i.e., with relation (7.4)), where M and fit are denoted mass and fitness of factor ith in time t, respectively.(7.3)qi(t)=fiti-worst(t)Best(t)-worst(t),(7.4)M(t)=qi(t)∑j=1s(t).In this system, forceF is delivered on mass ith from mass jth in time t in the direction of dimension d, the value of this force is obtained based on the following; G(t) is gravity constant in time t which is regulated in the beginning of the operating algorithm, and it is decreased by the time.(7.5)Fijd(t)=G(t)×Mj(t)Rij(t)+ε(xjd(t)-xid(t)).R is the ECLIDIAN distance between factor ith and factor jth that are defined as, “ε” is also a small value for avoiding denominator from becoming zero.(7.6)ij=(x2-x1)2+(y2-y1)2+(z2-z1)2+⋯+(n2-n1)2.The force delivered on massith in direction d at time t is equal to resultant of total force from k superior mass in population (k is better factor than recent factor). Kbest denote series of k superior masses in population. K value is not constant and is defined as a time-dependant value, such that all masses at the beginning influence on each other and deliver force, but by passing time, number of effective members in population is decreased linearly. And for accounting sum of delivered forces on mass ith in dimension d,we could write the following. In this relation, randis a random number with normal distribution in the interval [0,1].(7.7)Fid(t)=∑j∈Kbest,j≠irandj×G(t)Mj(t)×Mi(t)Rii(t)+ε(xjd(t)-xid(t)).According to Newton’s second movement rule, each mass takes acceleration in the direction of dimensiond, which is proportional with delivered force on that mass.(7.8)aid(t)=Fid(t)Mi(t)⟹aid(t)=∑j∈Kbest,j≠irandj×G(t)Mj(t)Rii(t)+ε(xjd(t)-xid(t)).Speed of each mass is equal to sum of coefficient of the mass’ recent speed and acceleration, and is explained as follows. In this relation,randis a random number with normal distribution in the interval [0,1], and its random property is resultant of keeping search in random mood.(7.9)Vid(t+1)=randi×Vid(t)+aid(t).Now, mass should move. It is obvious that more speed of the mass, causes more movement in that dimension. New state of factorith is mentioned by relation (7.10). 						(7.10)xid(t+1)=xid(t)+Vid(t+1).At the beginning of the forming system, each mass (factor) is randomly positioned in one point of space that is an answer of problem. In each moment, masses are evaluated and then changing in the position of each mass is calculated after solving relations 8 to 11. System parameters are updated in each stage(G,M).Stop condition could be determined after passing specified time. In Table2, semicode of this algorithm has been presented.Table 2
Semi-code of gravitational algorithm.
(1) Determining system area and initial valuing(2)  Initial positioning OF the masses(3) Evaluating THE masses(4) Updating parameters G, best, worst, and M(5) Calculating delivered force on each mass(6) Accounting acceleration and speed of each mass(7) Updating position of masses(8) If stop condition does not meet, go to phase 3


## 8. Proposed Method Based on Gravitational Search Algorithm (FJSSP-GSPN)

In regards to gravitational searching algorithm, each searching factor should contain information for solving problems. This information says that for example each factor in any time might be aware that in each point of searching space, which operation is implementing on which machine. According to problem definition (see Table3), each operation is implementable on set of machines. But in any time, only one job is implemented on each machine, and then next operation should be implemented.Table 3
Example of a job with 4 actions on 4 machines.
A1A2A3A4M1M2M3M4You could see with some attention that Table3 is similar to N-minister problem table that in each column is placed just one minister (one job for each machine). The only difference is that in the new table maybe several jobs are implemented on each machine. To brief this table we use one-dimensional array and we assign to each factor in the searching space one sample of it (Figure 6).Figure 6
Example of state array.It is obvious that each house of this array is assigned to one column of the table, and value of that house states the number of machines that the related job would be implemented by. For example, second house of array indicates that the second job (in second column) would be implemented on third machine.In gravitational searching algorithm, each factor in searching space includes a one-dimensional array which keeps summary of recent state of implemented operations on related machines. So, with having five masses, in fact five searching factors are applied for finding the purpose state (minimum time for performing operation).To indicate that bigger mass has better state, we should subtract total time of implementing an operation from a constant value (this value could be maximum required time for implementing a job which counts as a constraint). Result answer of this subtraction isqi, conforming with formula (7.3). Now if based on formula (7.4), we divide fitness of one factor on sum of factors fitness, mass factor is attained.Accounting delivered force, acceleration, speed, and position of each mass are depended on dimension of each mass, and they are independent of each other.Consider a two-dimensional space. If there are two masses in one column during the application calculations on dimensionX, calculations should be stopped, since second mass does not deliver force on first mass in direction of dimension X.For example, in Figure7, you see that two masses (A and B) are placed in one column, so they do not deliver force in direction of dimension X on each other.Figure 7
Two-dimensional space with 4 masses.And similarly, two massesC and D are placed in one line, and so do not deliver force on each other in direction of dimension Y. But pair masses (B, C), (B, D), (C, D), and (A, D) are delivered force on each other in both directions of dimensions X and Y, and so calculations are applied on them completely.Therefore, in first condition, we investigate unparallelism of two masses in interested dimension. Then in order to account sum of delivered forces on related mass, we need to determine forces delivered from those masses which are placed inKbest series (Algorithm 2).Kbest array is filled with initial value of (−1). According to gravitational algorithm, at the first moment of operating algorithm, all masses deliver force on each other. After assessing first condition, we add number of masses to Kbest series as it has shown in Algorithm 1.Algorithm 1:First condition: unparallelism of two masses.
For (bytej=0;j<j_num
−1
;j++)K _best[j]=-1;for (bytei=0; i <= mass_num − 1; i++){if (Loc_arr[0,i]>= n)Loc_arr[0,i]= n − 1;if (Loc_arr[1,i]>= n)Loc_arr[1,i]= n − 1;if (Loc_arr[0,k]!= Loc_arr[0,i]){for (byte j = 0; j < mass_num − 1; j++)if (K_best[j]== −1){K_best[j] = arr[Loc_arr[0,i], Loc_arr[1,i]];break;}}}Algorithm 2:Calculating for each mass.
while ((K_best[l] >= 0) && (number <= mass_num)){R = Math.Sqrt((Math.Pow((Loc_arr[0, k_best_T] −Loc_arr[0,k]), 2) + Math.Pow((Loc_arr[1, k_best_T] −Loc_arr[1,k]), 2)));F_arr[0,k]= F_arr[0,k]+ ((rand_obj.Next(100)/100.0)* G *(Math.Abs((hiu_mass[k_best_T] − hiu_mass[k])) /(R + E))*Math.Abs(Loc_arr[0,k_best_T] − Loc_arr[0,k]));}A_mass = F_arr[0,k]/hiu_mass[k];V_arr[0,k]= ((rand_obj.Next(100)/100.0)*V_arr[0,k]) + A_mass;x_temp = (Loc_arr[0,k]+ Math.Round(V_arr[0,k]));It is obvious that according to gravitational algorithm, in the next moment, we should add the condition of “being heavier masses” to the first condition, that is, in addition to condition of unparallelism of masses, those masses which are heavier than recent masses, should be added toKbest series.Now, we could write calculations based on Algorithm2.Based on applied force by each factor on respected mass, GSA should be calculated (sum of force and distance).We could use following pseudocode for these calculations (Algorithm3).Algorithm 3:Calculating R and force.
l = 0;while (k_Best[l] !=−1){if (k_Best[l] > 0)k_Best_Temp = k_Best[l]−1;elsek_Best_Temp = 0;R = (Math.Sqrt((Math.Pow((gls_Loc_Arr[k_Best_Temp]–gls_Loc_Arr[k]),2) +Math.Pow((gls_Loc_Arr[k_Best_Temp]−gls_Loc_Arr[k]),2))));f_Arr[k] = f_Arr[k] + ((rand_obj.Next(100)/100.0) * G *(Math.Abs((gls_Hiu[k_Best_Temp] – gls_Hiu[k])) /(R+E))*Math.Abs(gls_Loc_Arr[ k_Best_Temp]−gls_Loc_Arr[k]));}New positions of mass have been specified. And it is obvious that the researcher factor should have a new state and finally a new mass in a new position of search space. But how should these changes in state and mass be created?In proposed solution, we divide state array onN-dimensions of search space, that is, for each dimension, we assign some houses to state array.For example, we would have a state array with six houses and a three-dimensional search space, where we assign two houses for dimensionX and two houses for dimension Y and two houses for dimension Z (Figure 8).Figure 8
State array and dimensions.Attention that order of assigned dimensions to the houses are arbitrary, but with change in position of factor in search space, movement is determined in direction of the related dimension, and only corresponding cells with that dimension may be changed in state array, and other values remain constant. So factors could move in direction of their corresponding dimensions.Way of changing values is important, and is explained as follow.When a factor starts to move in one direction, we divide each corresponding value with related dimension on distance, then by calling neighborhood function, we specify that by replacing which value in state array total spent time would be decreased and corresponding mass found better state.If in searching space just one mass is remained, search would be finished, and by considering number of remained mass in array (best mass), list of machines is presented for processing remained operation of respected job, so that production time would be minimized.For instance, array (Figure9) shows that if the first job is implemented by the third machine, the second job is implemented by the fifth machine and so on, then we would have ideal time for producing or performing related job, such that required time for performing one job on specified machines with above mentioned operations and ignoring other times (such as supplying materials, path stops, delivering times).Figure 9
Result array.


## 9. Experimental Results

To illustrate the effectiveness and performance of the proposed algorithm in this paper, we consider 43 instances from two classes of standard JSP test problems: instances FT06, FT10, and FT20 designed by Fisher and Thompson and instances LA01–LA40 designed by Lawrence. All the test problems are taken from webftp://mscmga.ms.ic.ac.uk/pub/jobshop1.txt [30].All the runs were carried out on a Intel Pentium Core i5 Duo 2.4 GHz Processor and 4 GB RAM configuration system. The algorithm was coded in C# language under the operation system Windows XP. Numerical results are compared with those reported in some existing literature works using other approaches [25–30], including some heuristic and metaheuristic algorithms. Take the benchmark problem FT10 for instance.Table4 summarizes the results of the experiments on the 43 instances. The contents of the table include the name of each problem, the scale of the problem (size n×m), the value of the best-known solution for each problem (C*), the value of the best solution found by using the proposed algorithm (GSPN). From the table, it can be seen that the proposed algorithm is able to find the best known solution for 37 instances, and the deviation of the minimum found makespan from the best known solution is also very small. The proposed algorithm can yields good solution with respect to almost all other algorithms, The superior results indicate the successful incorporation of PSO and SA, which facilitates the escape from local minimum points and increases the possibility of finding a better solution. Therefore, it can conclude that the proposed GSPN solves the JSP efficiently.Table 4
Experimental results.
ProblemSize(n,m)C*Nowicki [25]TSSB [26]Sabuncuoglu [27]HIA [28]F&F [29]HPSO [30]Obtained Values from the proposed algorithm (GSPN)FT066,6555555—55555555FT1010,109309309301016930930930930FT2020,5116011651165—1165116511651160LA0110,5666666666666666666666666LA0210,5653655655704655655655653LA0310,5590597597650597597597590LA0410,5590590590620590590590590LA0510,5593593593593593593593594LA0615,5919926926926926926926919LA0715,5890890890890890890890890LA0815,5862863863863863863863862LA0915,5951951951951951951951951LA1015,5958958958958958958958958LA1120,512221222122212221222122212221222LA1220,510301039103910391039103910391030LA1320,511451150115011501150115011501145LA1420,512921292129212921292129212921292LA1520,512071207120712071207120712071207LA1610,10936945945988945945946936LA1710,10784784784827784784784790LA1810,10845848848881848848848845LA1910,10842842842882842842842842LA2010,10897902902948902907902897LA2115,1010231046104711541046105210571023LA2215,10927927927985927927927927LA2315,1010321032103210511032103210321043LA2415,10935935935992938941938938LA2515,109649779771073979982979964LA2620,1012031218121812691218121812181203LA2720,1012281235123613161235124212361228LA2820,1012031216121613731216122512251203LA2920,1011401152116011521168117611681140LA3020,1013551355135514351355135513551355LA3130,1017841784178417841784178417841784LA3230,1018501850185018501850185018501850LA3330,1017191719171917191719171917191725LA3430,1017211721172117801721172117211721LA3530,1018881888188818881888188818881888LA3615,1512681268126814011268128112791275LA3715,1513911397140715031411141814231391LA3815,1511961196119612971201121311961200LA3915,1512301233123313691240125012471230LA4015,1512121222122913471233122812361212


## 10. Conclusion

In this paper, gravitational search algorithm for solving the flexible job-shop scheduling problem is presented. Due to their special structure, our Gravitational search-based algorithm works faster and more efficiently than other known algorithms. Our primary objective is to show that the proposed exploiting gravity leads to an efficient heuristic for the FJSSP. We presented computational results derived by testing the algorithms which have been developed in this paper on a number of benchmark problems. The gravitational search algorithms yield excellent results for almost all problems. Finally, we believe that the methodology used in this paper can be extended to solve other scheduling problems.



---

*Source: 651310-2012-08-16.xml*