Keywords

1 Introduction

Scheduling optimization problems are wide ranging and plentiful, which people always find in various fields of engineering, scientific, economic management and so on [1]. However, optimization problems are becoming more and more complicated with the development of science and technology, and traditional gradient-based methods are inefficient and inconvenient for such problems as they require substantial gradient information, depend on a well-define starting point, and need a large amount of enumeration memory. Meta-heuristics mimic nature biological systems to solve various kinds of optimization problems. For instance, Genetic Algorithms (GAs) [2], Particle Swarm Optimization (PSO) [3], Ant Colony Optimization (ACO) [4], Tabu Search [5] are popular with optimizers. In recent years, more and more novel algorithms have been proposed to tackle optimization problems, such as the Binary Differential Evolution algorithm (BDE) [6], the Binary Artificial Bee Colony Algorithm (BABCA) [7], the Binary Bat Algorithm (BBA) [8], the Binary Flower Pollination Algorithm (BFPA) [9], the Binary Gravitation Search Algorithm (BGSA) [10], the Binary Simulated Annealing Algorithm (BSAA) [11], and the Bi-Velocity Discrete Particle Swarm Optimization (BVDPSO) [12].

To solve hard optimization problems more effectively and efficiently, new powerful meta-heuristics inspired by nature, especially by biological systems, must be explored, which is a hot topic in evolutionary computation community [13]. As is known to all, human beings are the smartest creatures in the earth and invent numbers of machines and tools to make our lives convenient, which indicates human beings are gifted to tackle many complicated problems. People master and improve skills through repeatedly learning which is similar to iteratively searching for best solutions by optimal algorithms. The process can be considered as an optimization of iterative process. For the example of learning Sudoku, a person may learn randomly due to the lack of prior knowledge or exploring new strategies (random learning), learn from his or her previous experience (individual learning), and learn from his or her friends and books(social learning) [14, 15]. Inspired by human learning mechanisms, a new meta-heuristic algorithm called human learning optimization (HLO) algorithm is presented. The performance of HLO to solve the continuous optimization problems such as a suit of numerical benchmark functions, deceptive problems, 0–1 knapsack problems [16, 17] has been proved. HLO will be applied to an actual production scheduling problems in this work.

The rest of the paper is organized as follows. Section 2 introduces the presented HLO in detail. In Sect. 3, HLO is applied to an actual production scheduling problems in a dairy factory and the results are compared with those of other meta-heuristics collected from recent works to validate its performance. Finally, Sect. 4 gives a conclusion of the work in this paper.

2 Human Learning Optimization Algorithm

2.1 Initialization

HLO adopts the binary-coding framework in which each bit corresponds to a basic component of knowledge to solve problems. Therefore, an individual, i.e. a candidate solution, is represented by a binary string as Eq. (1) which is initialized as “0” or “1” randomly assuming that there is no prior-knowledge of problems,

$$ \begin{aligned} x_{i} = \left[ {\begin{array}{*{20}c} {x_{i11} } & {x_{i12} } & \cdots & {\begin{array}{*{20}c} {x_{i1j} } & \cdots & {x_{i1M} } \\ \end{array} } \\ {x_{i21} } & {x_{i22} } & \cdots & {\begin{array}{*{20}c} {x_{i2j} } & \cdots & {x_{i2M} } \\ \end{array} } \\ \vdots & \vdots & {} & {\begin{array}{*{20}c} \vdots & {} & {} & \vdots \\ \end{array} } \\ {\begin{array}{*{20}c} {x_{ip1} } \\ \vdots \\ {x_{iP1} } \\ \end{array} } & {\begin{array}{*{20}c} {x_{ip2} } \\ \vdots \\ {x_{iP2} } \\ \end{array} } & {\begin{array}{*{20}c} \cdots \\ {} \\ \cdots \\ \end{array} } & {\begin{array}{*{20}c} {\begin{array}{*{20}c} {x_{ipj} } \\ \vdots \\ {x_{iPj} } \\ \end{array} } & {\begin{array}{*{20}c} \cdots \\ {} \\ \cdots \\ \end{array} } & {\begin{array}{*{20}c} {x_{ipM} } \\ \vdots \\ {x_{iPM} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right] \hfill \\ \begin{array}{*{20}c} {x_{ipj} \in \left\{ {0,1} \right\},{ 1} \le p \le P,1 \le j \le M} \\ \end{array} \hfill \\ \end{aligned} $$
(1)

where xi is the ith individual, P is the number of product, and M is the number of machine i.e.

After all the individuals are initialized, the initial population of HLO is generated as Eq. (2). N is the number of individuals of the population.

$$ X = \left[ {\begin{array}{*{20}c} {x_{1} } & {x_{2} } & {\begin{array}{*{20}c} \cdots & {\begin{array}{*{20}c} {x_{i} } & \cdots \\ \end{array} } & {x_{N} } \\ \end{array} } \\ \end{array} } \right]^{T} ,1 \le i \le N $$
(2)

2.2 Learning Operators

Random Exploration Learning Operator.

While learning to solve unfamiliar problems, people usually learn randomly because of lacking or forgetting knowledge. Simulating these phenomena, HLO performs the random exploration learning with some probability as Eq. (3)

$$ x_{ij} = RE(0,1) = \left\{ {\begin{array}{*{20}c} {0,} & { 0\le rand() \le 0.5} \\ {1,} & {else} \\ \end{array} } \right. $$
(3)

Where \( RE(0,1) \) is a random number in [0, 1).

Individual Learning Operator.

Individual learning is defined as the ability to build knowledge through individual reflection about external stimuli and sources [18]. Every person learns in conscious or unconscious states, which is a fundamental requirement of existence. In HLO, an individual learns to solve problems by the individual learning operator based on its own experience which is stored in the Individual Knowledge Database (IKD) as Eqs. (4) and (5),

$$ x_{ipj} = ik_{ipj} $$
(4)
$$ IKD_{i} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {ikd_{i1} } \\ {ikd_{i2} } \\ \end{array} } \\ {\begin{array}{*{20}c} \vdots \\ {ikd_{ip} } \\ \end{array} } \\ {\begin{array}{*{20}c} \vdots \\ {ikd_{iP} } \\ \end{array} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {ik_{i11} } & {ik_{i12} } & \cdots & {\begin{array}{*{20}c} {ik_{i1j} } & \cdots & {ik_{i1M} } \\ \end{array} } \\ {ik_{i21} } & {ik_{i22} } & \cdots & {\begin{array}{*{20}c} {ik_{i2j} } & \cdots & {ik_{i2M} } \\ \end{array} } \\ \vdots & \vdots & {} & {\begin{array}{*{20}c} \vdots & {} & {} & \vdots \\ \end{array} } \\ {\begin{array}{*{20}c} {ik_{ip1} } \\ \vdots \\ {ik_{iP1} } \\ \end{array} } & {\begin{array}{*{20}c} {ik_{ip2} } \\ \vdots \\ {ik_{iP2} } \\ \end{array} } & {\begin{array}{*{20}c} \cdots \\ {} \\ \cdots \\ \end{array} } & {\begin{array}{*{20}c} {\begin{array}{*{20}c} {ik_{ipj} } \\ \vdots \\ {ik_{iPj} } \\ \end{array} } & {\begin{array}{*{20}c} \cdots \\ {} \\ \cdots \\ \end{array} } & {\begin{array}{*{20}c} {ik_{ipM} } \\ \vdots \\ {ik_{iPM} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right] $$
(5)
$$ \begin{array}{*{20}c} {IKD = \left[ {\begin{array}{*{20}c} {ikd_{1} } & {ikd_{2} } & {\begin{array}{*{20}c} \cdots & {\begin{array}{*{20}c} {ikd_{i} } & \cdots \\ \end{array} } & {ikd_{N} } \\ \end{array} } \\ \end{array} } \right]^{T} } \\ {1 \le i \le N, 1\le i \le N, 1\le p \le P,1 \le j \le M} \\ \end{array} $$

where \( IKD_{i} \) is the individual knowledge database of person i which stands for the ith best solution of person I and P denotes the size of the IKDs.

Social Learning Operator.

Social learning is a transmission of knowledge and skills through direct or indirect interactions among individuals. In the social context, people can learn from not only their own direct experience but also the experience of the other members, and therefore they can develop further their abilities and achieve the higher efficiency with an effective knowledge sharing. To possess the efficient search ability, the social learning mechanism is mimicked in HLO. Like human learning, each individual of HLO studies the social knowledge which is stored in the Social Knowledge Database (SKD) with some probability as Eqs. (6) and (7) when it yields a new solution,

$$ x_{ipj} = sk_{pj} $$
(6)
$$ \begin{aligned} & {\text{SKD = }}\left[ {\begin{array}{*{20}c} {sk_{11} } & {sk_{12} } & \cdots & {\begin{array}{*{20}c} {sk_{1j} } & \cdots & {sk_{1M} } \\ \end{array} } \\ {sk_{21} } & {sk_{22} } & \cdots & {\begin{array}{*{20}c} {sk_{2j} } & \cdots & {sk_{2M} } \\ \end{array} } \\ \vdots & \vdots & {} & {\begin{array}{*{20}c} \vdots & {} & {} & \vdots \\ \end{array} } \\ {\begin{array}{*{20}c} {sk_{p1} } \\ \vdots \\ {sk_{P1} } \\ \end{array} } & {\begin{array}{*{20}c} {sk_{p2} } \\ \vdots \\ {sk_{P2} } \\ \end{array} } & {\begin{array}{*{20}c} \cdots \\ {} \\ \cdots \\ \end{array} } & {\begin{array}{*{20}c} {\begin{array}{*{20}c} {sk_{pj} } \\ \vdots \\ {sk_{Pj} } \\ \end{array} } & {\begin{array}{*{20}c} \cdots \\ {} \\ \cdots \\ \end{array} } & {\begin{array}{*{20}c} {sk_{pN} } \\ \vdots \\ {sk_{PN} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right] \\ & \quad \quad \quad \quad \begin{array}{*{20}c} { 1\le p \le P,1 \le j \le M} \\ \end{array} \\ \end{aligned} $$
(7)

where the SKD is the best knowledge of the social collectivities. The S best individuals are selected as initial social knowledge database stored in the SKD. In the following iterated searching, the IKD and SKD will be updated if new knowledge is better than that in the IKD and SKD.

In summary, HLO yields a new solution by means of random exploration learning, individual learning and social learning with certain rates, which can be simplified and formulated as

$$ x_{ipj} = \left\{ {\begin{array}{*{20}l} {R{\text{E(0,1)}}} \hfill & {0 \le rand \le pr} \hfill \\ {ikd_{ipj} } \hfill & {pr \le rand \le pi} \hfill \\ {skd_{pj} } \hfill & {else} \hfill \\ \end{array} } \right. $$
(8)

where xipj is the productivity of the pth product on jth machine, pr is the probability of random exploration learning, (pi-pr) and (1-pi) represent the rates of individual learning and social learning, respectively.

2.3 Updating of the IKD and SKD

After individuals accomplish learning in each generation, the fitness values of new solutions that evaluated through the fitness function f(x) are obtained. If fitness values of new candidate solutions are better than the worst one in the IKD, or the dimension of individual knowledge which is stored in the IKD is less than N*P, the new candidate solutions will be saved in the IKD. In the same way, the SKD is updated. The SKD is updated by at least one solution every iteration in case of falling into local optimum.

3 Establishment of the Model and Experimental Results

3.1 Establishment of the Model

Scheduling problems have a major impact on the productivity of a manufacturing system, which can be described as follows. Given a number of tasks which must be carried out by some processors, it is required to find the best resource assignments and tasks sequencing, For example, the total completion time needs to be as small as possible. The study of production scheduling problem in this paper is based on actual production procedure in a dairy factory. The efficiency and capacity of each product on each machine are fixed and the demands for the output of dairy products in daily order are variant. The purpose of production scheduling is to distribute different kinds of dairy products to different kinds of equipment and minimize production time. The production scheduling model can be described as follows.

$$ \begin{aligned} \hbox{min} T & = \hbox{max} (t_{1} ,t_{2} , \cdots ,t_{i} , \cdots ,t_{m} ) \\ t_{i} & = \sum\limits_{j = 1}^{n} {(\frac{{c_{ij} }}{{\eta_{ij} v_{ij} }}} + b \times tc_{ij} ) \\ & s.t.\quad c_{i} = \sum\limits_{j = 1}^{n} {c_{ij} } \\ \end{aligned} $$
(9)

where \( t_{i} \) is one day runtime of the ith machine, \( c_{ij} \) is the amount of the ith product on the jth machine, ηij is the Productivity of the ith product on jth machine, vij is the capacity of the ith product on jth machine, b is 0 or 1, If it needs to switch to other milk after the ith product, b is equal to 1 and if not, b is equal to 0. The number of ith production on the jth machine \( c_{ij} \) is between \( \hbox{min} c_{ij} \) and \( \hbox{max} c_{ij} \) as Eq. (10)

$$ \hbox{min} \,c_{ij} \le c_{ij} \le \hbox{max} \,c_{ij} $$
(10)

In summary, the procedure of HLO for scheduling problems in a dairy factory can be concluded as follows:

figure a

3.2 Experimental Results and Discussions

Production scheduling based on HLO is carried out according to production plan of a certain day in a dairy factory to verify the effectiveness of HLO. 25 kinds of milk products need to be produced on the 10 machines. The efficiency and capacity of each product on each machine are show in Tables 1 and 2. Table 3 is orders of one day in a dairy factory.

Table 1. Capacity on each machine.
Table 2. Efficiency on each machine.
Table 3. Orders of each production.

The performance of HLO is compared with the BSO-PSO (Brain Storm Optimization with Discrete Particle Swarm Optimization) [19] and HGA (Hybrid Genetic Algorithms) [20]. All experimental tests were implemented on a PC of Intel Core CPU i7-2700 K @ 3.50 GHz with 8 GB RAMs. A set of fair parameters are chosen for all three algorithms in this paper. For example, population size is set to 20 and iteration times are 300. Other diverse parameters that are used in HLO, BSO-PSO, and HGA are listed in Table 4.

Table 4. Parameters settings of HLO, BSO-PSO, and HGA.

Histograms of task arrangement are given in Fig. 1 and histograms of runtime are given in Fig. 2 to display the task arrangement.

Fig. 1.
figure 1

Histogram of equipment production on each machine.

Fig. 2.
figure 2

Histogram of Runtime on each machine.

Figure 1 displays the task arrangement and illustrates that the task is evenly distributed to each machine. Figure 2 indicates that the run time of each machine is almost the same and no machine is idle. Therefore the utilization of machines are improved.

Table 5 shows that HLO, BSO-PSO and HGA find solutions respectively after running 30 times. Row “Best” denotes the best solution from each algorithm. Row “Mean” denotes the mean value of the total run solutions from each algorithm. Row “Worst” denotes the worst solution found from each algorithm. As we can see, all results from HLO in Table 5 are better than other two algorithms.

Table 5. Result of HLO, BSO-PSO, HGA.

Figure 3 illustrates the iteration curves of the optimal algorithms in this paper. It is no surprise that the convergence speed of HLO is faster than both BSO-PSO and HGA.

Fig. 3.
figure 3

The iteration curves of HLO, BSO-PSO and HGA.

4 Conclusion

In this paper, a novel human learning optimization algorithm (HLO) is presented which is inspired by the human learning process. In this method, three learning operations, i.e. the random learning operator, the individual learning operator, and the social learning operator, are developed by mimicking human learning behaviors to generate new solutions and search for the optimal solution of problems. The performance of this proposed method is validated by applying to an actual production scheduling problems in a dairy factory. The experimental results show that the performance of the proposed method is better than the performance of compared methods.