Abstract
Genetic Algorithm (GA) has emerged as a powerful method for solving a wide range of combinatorial optimisation problems in many fields. This paper presents a hybrid heuristic approach named Guided Genetic Algorithm (GGA) for solving the Multidimensional Knapsack Problem (MKP). GGA is a two-step memetic algorithm composed of a data pre-analysis and a modified GA. The pre-analysis of the problem data is performed using an efficiency-based method to extract useful information. This prior knowledge is integrated as a guide in a GA at two stages: to generate the initial population and to evaluate the produced offspring by the fitness function. Extensive experimentation was carried out to examine GGA on the MKP. The main GGA parameters were tuned and a comparative study with other methods was conducted on well-known MKP data. The real impact of GGA was checked by a statistical analysis using ANOVA, t-test and Welch’s t-test. The obtained results showed that the proposed approach largely improved standard GA and was highly competitive with other optimisation methods.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
1 Introduction
Genetic Algorithm (GA) was first introduced more than four decades ago and it is still widely used in several research applications. GA is mainly used as a stochastic method for solving combinatorial optimisation problems, especially NP-hard problems. In many real-world problems, exact methods fail to find good solutions in a reasonable time. GA has been applied successfully in many real applications as well as various traditional combinatorial problems [3, 20, 30]. Originally, GA was inspired by the biological evolution of living species. Starting with a randomly generated initial population of a set of individuals, GA aims to improve the quality of the successive generations by applying several genetic operators, e.g. crossover and mutation. It is known that GA is relatively simple to implement compared to several other methods, but, is it really able to provide the best solutions? In reality, GA is a stochastic process, so there is no guarantee of optimality, only a large number of generations and individuals can increase the confidence in the obtained solution [28].
Several variants of GA have been proposed during the past few decades, the main aim of many of these variations is to improve the performance of GA and accelerate its convergence in finding an optimal solution. The vast majority of these ideas are either articulated on changing the GA operators such as: crossover and mutation (e.g. one-point, two-point, cut and splice, three parents, uniform, flip bit, Boundary, non-uniform, uniform, etc.), or based on modifying the GA’s evolutionary behaviour, such as: Hybrid GA [14, 26], Parallel GA [29], Genetic Programming [4, 5, 22], etc. An extensive survey of the different variations of GA is available in [8]. The focus here is only on the methods that are related to the guided GA concept.
This paper presents a memetic algorithm—named Guided GA (GGA)— for the Multidimensional Knapsack Problem (MKP). GGA is a memetic algorithm that exploits prior knowledge about the problem data as an intensification strategy to drive the GA evolutionary process of optimisation toward promising areas of the solutions space.
GGA is inspired by two main concepts: the first is the Proximate Optimality concept which assumes that in most cases, the best solutions have a similar structure, in other words, part of the solution may appear in all the best individuals; the second is the Core Concept for the Multidimensional Knapsack Problem CCMKP [23, 27] that provides a mathematical model for ordering the items in MKP based on a compromise between their weights (costs) and their values. GGA uses the output of the CCMKP model as an additional guide for the GA’s evolutionary process. The CCMKP output is used at two stages of the evolutionary process the initialisation and evaluation (fitness function) stages.
The paper is structured as follows: Sect. 2 provides a definition of MKP and the Core concept for MKP (CCMKP). Section 3 gives an overview of the literature review related to the GGA. The proposed algorithm GGA is introduced in Sect. 4. The experimental setup and the parameters tuning are given in Sect. 5. Section 6 presents the conducted experiments and the obtained results. Conclusions and final remarks are drawn in Sect. 7.
2 The multidimensional knapsack problem
This section presents the MKP mathematical model adopted in this work and provides a quick overview on the Core concept for MKP [23].
2.1 Problem definition
The MKP is composed of n items and a knapsack with m different capacities \(c_i\) (\(i \in \lbrace 1,\ldots , m\rbrace \)). Each item j (\(j \in \lbrace 1,\ldots , n\rbrace \)) has a weight \(w_{ij}\) on each capacity i of the knapsack and a value \(p_j\). The goal is to pack the items in the knapsack so as to maximise the overall value without exceeding the capacities of the knapsack. The MKP model can be represented by the following integer program:
A feasible solution X for MKP represents the selected items to be packed. A decision variable \(x_j\) represent the item j and is binary where \(x_j = 1\) means that item j is packed, and \(x_j = 0\) means that item j is not packed in the knapsack. \(w_{ij}\) represents the weight of item j on dimension i.
2.2 The core concept for MKP
The Core concept for solving combinatorial and linear programming problems was specifically applied for the knapsack problems by Balas and Zemel [6] and later it was extended to the MKP by Puchinger et al. [23]. The CCMKP calculates an efficiency (score) for each variable (item) in the MKP, the efficiency reflects the expected added value of a variable to the final solution; a high efficiency indicates that the variable is likely to appear in the optimal solution, low efficiency indicates that the variable is unlikely to appear in the optimal or near-optimal solutions, while average efficiency indicate that there is uncertainty about the variable’s added value. Therefore, after being sorted decreasingly according to CCMKP efficiency, the variables are divided into three sets. The variables with high efficiency are fixed to 1 whereas those with low efficiency are fixed to 0 and those with close efficiency represent the Core. Consequently, the Core concept allows reducing the original problem into only the Core problem.
The Core concept is based on an efficiency measure function. The aim is to assign an efficiency value to each variable, according to its significance in producing the optimal solution, in such a way to promote those having the high values and low weights. Several efficiency measures have been used as approximations of the efficiency function, for example, simple efficiency \( (e_{j}^{simple})\) [12], scaled efficiency \((e_{j}^{scaled})\), Senju & Toyoda \( (e_{j}^{st})\) [27] and general efficiency \((e_{j}^{general})\) [18] as shown in Eqs. 4, 5, 6 and 7–8 respectively.
Where \(e_j\) : efficiency of item j; \(p_j\) : value of item j; \(w_{ij}\) : weight of item j on dimension i; \(c_i\) : capacity of knapsack on dimension i and \(r_i\) : coefficient.
3 Related works
There are several methods related to the guided GA concept in literature, that have been applied to a wide range of applications. For solving the Course Timetabling Problem, Yang and Jat [33] used a memory denoted MEM to record useful information to guide the GA process and improve its performance. MEM is a list of limited size, in which a list of room and time slot pairs is recorded. This information is integrated into the crossover operator of the proposed guided GA. Other researchers used an external structure to guide GA such as [1]. Another approach for guiding the GA is through the use of approximate probabilistic models. In [9] GA is augmented with an approximate probabilistic model to guide the crossover and mutation operators. The probabilistic model is used to estimate the quality of candidate solutions generated by the traditional crossover and mutation operators. It also evaluates the quality of candidate solutions. This estimation enables the crossover and mutation operators to generate more promising solutions.
Specific characteristics of the addressed problem are used to guide the GA search process. The Process Discovery through a Genetic algorithm ProDiGen [31] is a GA that adopts three characteristics of the Process Discovery. The method calculates the precision, simplicity and completeness values of the treated model (i.e. log files of the information system process). These values are integrated into the expression of the GA fitness function to guide the optimisation process. A slowdown-guided GA for the Job Scheduling Problem is proposed in [15]. The proposed model is based on the estimation of the execution slowdown of the tasks which is used to guide the GA search process, the slowdown estimation is used to express the fitness function.
In other versions, a subset of genetic operators is guided. The proximate optimality principle assumes that good solutions have a similar structure. Based on this principle, the guided mutation proposed in [34] uses a probability model inspired by Estimation of Distribution Algorithms (EDA) mutation operator. The generated offspring by this operator is constructed using three components, the best solution found so far, a dynamic probabilistic model and a probability \(\beta \). This allows conducting the searching process in promising areas. A guided crossover operator has been proposed in [24]. The crossover operator works by using guidance from all members of the GA population to select a direction for exploration. The first parent is selected by the selection operator. To select the second parent, a metric named \(Mutual\_fitness\) is calculated for all the other chromosomes. The chromosome which has the maximum value is selected. One offspring is generated by crossing the parents in a point chosen randomly such that the offspring resulting is the best.
The guidance methods in these GA variants are specific to the addressed problems, they do not propose a formal way to extract the guidance information or are integrated to the optimisation process. Some approaches incorporate a partial guidance using genetic operators.
4 The guided genetic algorithm GGA
The algorithm in this paper is motivated by the observation that in many optimisation real-world problems, some prior information about the components/patterns that are likely to appear in the good solutions could be known. For example, in MKP, it is possible using linear relaxation or the optimal fractional solution [11], to predict some of the items that are likely or unlikely to appear in the good solutions. This study proposes a method for using such prior information as an additional guide for the GA evolutionary process for the MKP problem. By guide, we mean any structure external to GA, which maintains its original composition and is used to drive its search process. This can be through a subset of operators, in order to accelerate the search process and improve the speed of convergence. This section aims to describe the GGA components.
4.1 Chromosome design
The population is composed of a finite number of chromosomes. A chromosome represents a feasible solution to the problem (MKP). As mentioned before, the target in the MKP is to define the subset of items that maximises the total profit. The GGA chromosome consists in the set of items to be added to the knapsack. GGA uses the integer representation, where each gene presents an item ID. The items are coded as integer numbers. A chromosome is formed only by the number of items that it contains. This representation allows reducing the size of the processed data (Fig. 1).
4.2 Guiding information
The guiding information is based on the work by [23]. The items are sorted decreasingly according to their statistical efficiencies \(e_j\) based on the value and the weight (\(e_{j}^{simple}, e_{j}^{scaled}, e_{j}^{st}\) or \(e_{j}^{general}\)). In simple words, the items are sorted based on how likely each item is to appear in high performing individuals, the items at the top of this list are likely to be selected while the items at the bottom are unlikely to appear in good solutions. However, it is important to note here that this list is just an estimate and not a predefined part of the solution. It should also be noted that the greedy heuristic [27], as it is only based on the efficiency sorting, is not an effective solution for the strongly correlated problem instances of MKP [17].
The sorting operation allows favouring items that have a good compromise (i.e. efficiency) between the average value and the overall weight. The efficiency of an item is high if its value is high while its required global capacity is low. The sorted items are split into three sets (Fig. 2) where the value of each variable is assigned as follows:
-
\(X_1: x_j = 1\) The variables have the best efficiency \(e_j\). These variables are most likely to build the best solutions even the optimal solution.
-
\(Core: x_j =?\) The efficiency values \(e_j\) of these items are medium, therefore, it is difficult to predict with confidence whether or not some may appear in the optimal solutions.
-
\(X_0: x_j = 0\) The variables have a very low efficiency \(e_j\), in other words, the value is low or the weight is large or both.
The guide is represented by the variables of \(X_1 \cup Core \cup X_0\). The sizes of \(X_1\), Core and \(X_0\) are determined as follows: Construct a feasible solution by adding the items in order. The item that makes the solution infeasible represents the centre of Core. The size of each part of the guide depends on the size of Core. Setting the size of Core defines the size of the other parts.
4.3 Initial population
The GGA algorithm uses a special initialisation process which allows the GA to make use of the prior information available about the items, and in the same time generates a diverse initial population to ensure exploration of the search space. A chromosome is generated from the items of \(X_1\) completed by items generated randomly. In each chromosome, \(X_1\) is integrated with a probability \(\alpha \). If \(\alpha \) is set to zero this means that all the items in each individual are selected randomly, while \(\alpha = 1\) means that each individual in the initial population contains all the items of \(X_1\). This method allows having an initial population of good quality by integrating \(X_1\) and ensures the diversification by adding the rest randomly.
4.4 Fitness evaluation
In GGA, the objective function is different than the fitness function f(j). The first is the value of a solution relative to MKP problem. It is evaluated according to Eq. 1, while the fitness function is defined in a way to guide the search process of GGA. Different formulations of the fitness function are examined by introducing the efficiency \(e_j\), \(X_1\) and \(X_0\).
-
A)
The fitness function is calculated in the same way as the objective function (Eq. 9):
$$\begin{aligned} f(j) = \sum _{j = 0}^n p_j x_j \end{aligned}$$(9) -
B)
The efficiency \(e_j\) is introduced in its evaluation according to Eq. 10. Every generation, the fitness value of each chromosome is calculated. The fitness formula allows giving more chance to the chromosome that has a high efficiency to be selected more than the others.
$$\begin{aligned} f(j) = \sum _{j = 0}^n e_j p_j x_j \end{aligned}$$(10) -
C)
\(X_1\) and \(X_0\) are introduced in the fitness measuring; the first as a reward and the second as a penalty (Eq. 11). The aim is to reward (respectively penalise) each chromosome according to its similarity with \(X_1\) (respectively \(X_0\)). Thus allows, at the same time, increasing the chance for the good chromosome to be selected and decreasing it for the bad one.
$$\begin{aligned} f(j) = \sum _{j = 0}^n p_j x_j + reward - penalty \end{aligned}$$(11)Where \(reward = s_1 * p_z\), \(penalty = s_0 * p_z\), \(s_1\) and \(s_0\) represent the similarity rate with \(X_1\) and \(X_0\) respectively, and \(p_z\) is a significant percentage of the average objective function of the generation (in the experiments \(p_z = 0.1\) is used).
-
D)
The fitness uses the similarity of the chromosome with \(X_1\) as follows:
$$\begin{aligned} f(j) = (1 + s_1) \sum _{j = 0}^n p_j x_j \end{aligned}$$(12)
4.5 Genetic operators
GGA uses standard genetic crossover and mutation operators. Tournament selection of size 5 is used as the selection method, the random single point method is applied with a probability \(p_c\). For mutation, the mutation by random multiple point bit flip is applied with the probability \(p_m\). And finally, a reproduction operator copies a subset of individuals with the probability \(p_r\) such as \(p_c + p_m + p_r = 1\). The pseudo-code of the GGA is illustrated in Fig. 3.
5 Experimental setup and parameters tuning
This section explains the experimental setup and presents the parameter tuning analysis for the GGA algorithm. It is important to note that the concept of guide can be applied to any problem if an effective method for sorting the problem variables exists. For an experimental purpose, and because the chosen sorting method concerns MKP, it is natural to use data from this problem. The test platform is a Toshiba laptop with 4GB RAM capacity and an Intel Core (TM) i5-4200 M 2.5 Ghz CPU. The Java language is used to implement the approach. As for the test data, the well-known Chu&Beasley benchmarks from the OR-LibraryFootnote 1 are used.
Due to the lack of standard methods, trial-and-error is the most common used method for parameter tuning in most heuristic-based optimisation algorithms. We conducted several experiments in order to analyse the performance of the GGA algorithm under different parameter values. For this task the subset of instances OR5 \(\times \) 100-0.25 is used. All parameter values are set as shown in Table 1; only the parameter to be measured is changed.
The optimum values are known for almost all the instances composing the Chu&Beasley dataset. In this work, the Distance From the Optimum D.F.O and the Average Distance From the Optimum A.D.F.O are measured according to the best-known solutions.
Figure 4a, displays how \(\alpha \) may affect the GGA D.F.O by changing its value. Based on the value of \(\alpha \), the D.F.O ranged from 0.0 to 0.9.
Better results were achieved when the value of \(\alpha \) was equal to 0.9. This indicates that using more items of \(X_1\) in the initial population individuals improves significantly the quality of the obtained solutions. However, the integration of the whole group (i.e. \(\alpha = 1\)) reduces the diversity of individuals.
The Average Distance From the Optimum A.D.F.O of the GGA application on the OR5 \(\times \) 100-0.25 instances with different values of ng is given in Fig. 4b. The results indicated that when ng was high A.D.F.O decreased and in some cases GGA found the optimal solution. In the next experiments it is considered that \(ng = 500\).
The impact of the population size parameter ps on the GGA performance is given in Fig. 4c. The results show that large number of individuals (ps between 100 and 1000) discovered better solutions with A.D.F.O close to the optimum. \(ps > 1000\) gave a low value because a large population requires more time to reach high-quality solutions.
The performance of GGA was tested using eight couple values of crossover and mutation probabilities \((p_c, p_m)\). The OR5 \(\times \) 100_0.25 instances were executed 30 times and the A.D.F.O results are shown in Fig. 4d. The A.D.F.O significantly improved with increase of the crossover rate and decrease of the mutation rate (Fig. 4d). The first couple gave the best A.D.F.O.
Different functions to measure the efficiency of items are presented in Sect. 2.2. They have been compared as methods for performing the pre-analysis in GGA. For that, the OR5 \(\times \) 100-0.25; OR5 \(\times \) 250-0.25 and OR5 \(\times \) 500-0.25 have been used. The results are illustrated by Fig. 5. From the charts, no significant difference between the functions was observed.
Four formulations of the fitness function are presented in Sect. 4.4. To decide which one gives better results, a comparison has been carried out by applying GGA on the OR5 \(\times \) 100-0.25 instances, Table 2 summaries the results. It is shown that GGA with Eq. 10 as fitness function gives the best D.F.O for all the instances.
6 Experimental results
In order to provide a comprehensive analysis of the proposed GGA algorithm, this section provides two sets of experiments. The first set evaluates the gain in terms of performance from adding the guiding component to the standard GA. The results are supported with a statistical analysis. This is achieved by comparing the GGA with GA using the same evolutionary parameters (Sect. 6.1). The second set aims to compare the proposed GGA with the state-of-art results reported in the literature (Sect. 6.2).
6.1 Analysis of the GGA performance
A comparison between GA and GGA was conducted to measure the contribution of the data pre-analysis information on the convergence of GA. GGA and GA both were executed 30 times, each run given 200 generations on the OR5 \(\times \) 100-0.25_1. The obtained objective function value of each generation was recorded. The average objective function of both approaches is compared in Fig. 6. The curves indicated two search steps: diversification (0-35) and intensification (36-200) in both experiments, GGA outperformed standard GA throughout the evolutionary process. GGA kept a large gap on GA and maintained it throughout the process.
An extended investigation is done using the first and the last instances of each class of the Chu&Beasley benchmarks (i.e. \(m\times n-\alpha \_01\), \(m\times n-\alpha \_10\), for example: 5 \(\times \) 100-0.25_01, 5 \(\times \) 100-0.25_10). Table 3 shows a comparison between the performance of GGA against GA. The table shows the Average D.F.O, Best D.F.O, Worst D.F.O and the average processing Time for each algorithm. The results show that GGA outperformed GA on many instances. Also, GGA with high \(\alpha \) value performed better than GGA with small \(\alpha \) value, the lower and upper whiskers show the worst and best results achieved from 30 independent run times. Figure 7 compares GGA to GA in terms A.D.F.O range. Both methods were applied 30 times on the first instance of each class. Many values were recorded. Figure 7 shows lower, upper and median values obtained by GGA and GA.
6.1.1 Performance on large benchmarks
GGA is evaluated on the Chu&Beasley dataset and compared to: Harmony Search (HS), Self-adaptive Global best Harmony Search (SGHS), Self-Adaptive Hybrid Harmony Search-Stochastic Local Search (SAHS-SLS) [25], GA and greedy sorting (i.e. the feasible solution of adding the items in the sorting order as long as the constraints are verified). Table 4 shows the A.D.F.O and the execution time for all the above algorithms on 270 instances.
Closer inspection of the results shows that for 60% of the data, GGA was able to give better solutions than almost all the other approaches. In addition, the gap improvement from the greedy method after the application of GGA varied from 2% up to 40%. Furthermore, on many instances, GGA results were very close to the optimum. In terms of time, the approach was faster than the other approaches except the GA.
6.1.2 Statistical analysis
Simple statistical analysis was used to investigate whether or not the guidance has a real effect on the GA, hence, ANalysis Of the Variance (ANOVA) pairwise comparison was conducted. It has been supposed that the null hypothesis \(H_0\) is: “GGA has not a significant improvement on GA”. The first comparison includes only one instance (Tables 5 and 6) while the second includes all the instances (Tables 7 and 8). The first comparison indicated a \(F =152.72\) largely greater than F \(crit = 3.99\), and a P-\(value = 2.23\times 10^{-18}\) largely lower than \(\alpha = 0.05\). The second comparison including all the instances showed a \(F = 9.58\) greater than F \(crit = 4.03\), and a P-\(value = 0.003\) lower than \(\alpha = 0.05\). Both results confirm that GA is significantly improved by adding the guidance to its search process. Consequently, the null hypothesis can be rejected.
The statistical pairwise comparison of GGA with greedy, GA, SAHS-SLS, SGHS and HS approaches is reported in Table 9. The comparison is performed with t-test, ANOVA and \(Welch's\) t-test (also known as t-test with two-sample assuming unequal variances) and using the same data. The obtained t-test values were less than P-\(value = 0.05\) except with SAHS-SLS. Also, ANOVA comparison results indicated a P-value less than \(\alpha = 0.05\) and F largely greater than F crit except when compared with SAHS-SLS. \(Welch's\) t-test obtained a negative t-Stat and a P-value less than \(\alpha = 0.05\) except for SAHS-SLS. From all this statistical analysis it may be concluded that the null hypothesis \(H_0\) is rejected. Therefore, GGA performs significantly better than the other approaches and is comparative to the SAHS-SLS.
6.2 Comparison with the literature
Heuristics could be classified into two groups: constructive heuristics that aim to construct a solution for the treated problem and improvement heuristics which improve a given initial solution. GGA is compared with a set of constructive and improvement heuristics. A brief description of each heuristic is given bellow.
-
Constructive heuristics:
-
PECH (Primal Effective Capacity Heuristic) [2] is a simple greedy heuristic which incorporates a strategy based on the effective capacity for selecting and adding the items to the knapsack.
-
MAG [19] and VZ [32] are algorithms based on the Lagrange multipliers approach.
-
PIR [21] is a heuristic based on a dual surrogate relaxation of the MKP supported with a branch and bound method.
-
SCE (Shuffled Complex Evolution) [7] is an evolutionary heuristic that iteratively redistributes the population individuals into smaller structures (or complexes) according to their fitness.
-
Improvement heuristics:
-
CB [10] is a GA augmented with a feasibility and constraint operator which utilises problem-specific knowledge and repair operators which locally improves the offspring.
-
NR (P) (New Reduction (Pirkul)) [16], operates a lagrangian dual relaxation on MKP, and proposes a dynamic estimation of the Core size relative to the problem difficulty. The Core is then solved with a greedy heuristic combined with a local improvement phase.
-
MCF (Modified Choice Function - Late Acceptance Strategy) [13] is a hyper-heuristic based on heuristics selection function named Modified Choice Function.
The comparison illustrated in Table 10 and Fig. 8 revealed that GGA was competitive with both constructive and improvement methods and has managed to outperform both group of methods on a few instances.
7 Conclusion
The purpose of the current study was to introduce a memetic algorithm named Guided Genetic Algorithm (GGA) for solving the Multidimensional Knapsack Problem (MKP). GGA analyses the problem data based on a greedy algorithm. Useful information about the items of the MKP are extracted and integrated in the initialisation and evaluation operators of a GA. To validate the approach, several experiments were conducted on well-known MKP test data. The research has shown that adding the guidance has significantly improved the performance of the GA and accelerated its speed of convergence. These experiments confirmed that GGA has a real impact on GA performance. One of the more significant findings of this study is that prior-knowledge about the data of a combinatorial optimisation problem could be significantly helpful to accelerate its solving. The future work intends to extend and evaluate GGA on other combinatorial optimisation problems.
References
Acan A, Tekol Y (2003) Chromosome reuse in genetic algorithms. In: Genetic and evolutionary computation conference, Springer, pp 695–705
Akçay Y, Li H, Xu SH (2007) Greedy algorithm for the general multidimensional knapsack problem. Ann Oper Res 150(1):17
Bader-El-Den M, Gaber M (2012) Garf: towards self-optimised random forests. In: International conference on neural information processing, Springer, pp 506–515
Bader-El-Den M, Poli R (2007) Generating sat local-search heuristics using a gp hyper-heuristic framework. In: International conference on artificial evolution (Evolution Artificielle), Springer, pp 37–49
Bader-El-Den M, Poli R, Fatima S (2009) Evolving timetabling heuristics using a grammar-based genetic programming hyper-heuristic framework. Memet Comput 1(3):205–219
Balas E, Zemel E (1980) An algorithm for large zero-one knapsack problems. Oper Res 28(5):1130–1154
Baroni MDV, Varejão FM (2015) A shuffled complex evolution algorithm for the multidimensional knapsack problem. In: Iberoamerican congress on pattern recognition, Springer, pp 768–775
Castro F, Gelbukh A, González M (2013) Advances in Soft Computing and Its Applications. In: 12th Mexican international conference, MICAI 2013, Mexico City, Mexico, November 24-30, 2013, proceedings. No. pt. 2 in lecture notes in computer science, Springer Berlin Heidelberg, https://books.google.com.om/books?id=WgC6BQAAQBAJ
Chen SH, Chang PC, Cheng T, Zhang Q (2012) A self-guided genetic algorithm for permutation flowshop scheduling problems. Comput Oper Res 39(7):1450–1457
Chu PC, Beasley JE (1998) A genetic algorithm for the multidimensional knapsack problem. J Heuristics 4(1):63–86
Dantzig GB (1957) Discrete-variable extremum problems. Oper Res 5(2):266–288
Dobson G (1982) Worst-case analysis of greedy heuristics for integer programming with nonnegative data. Math Oper Res 7(4):515–531
Drake JH, Özcan E, Burke EK (2015) Modified choice function heuristic selection for the multidimensional knapsack problem. In: Genetic and evolutionary computing, Springer, pp 225–234
Fatima S, Bader-El-Den M (2010) Co-evolutionary hyper-heuristic method for auction based scheduling. In: Evolutionary computation (CEC), 2010 IEEE congress on, IEEE, pp 1–8
Gabaldon E, Lerida JL, Guirado F, Planes J (2014) Slowdown-guided genetic algorithm for job scheduling in federated environments. In: International conference on nature of computation and communication, Springer, pp 181–190
Hill RR, Cho YK, Moore JT (2012) Problem reduction heuristic for the 0–1 multidimensional knapsack problem. Comput Oper Res 39(1):19–26
Huston S, Puchinger J, Stuckey P (2008) The core concept for 0/1 integer programming. In: Proceedings of the fourteenth symposium on Computing: the Australasian theory-Volume 77, Australian Computer Society, Inc., pp 39–47
Kellerer H, Pferschy U, Pisinger D (2004) Introduction to NP-completeness of knapsack problems. Springer, Berlin, Heidelberg, pp 483–493
Magazine M, Oguz O (1984) A heuristic algorithm for the multidimensional zero-one knapsack problem. Eur J Oper Res 16(3):319–326
Perry T, Bader-El-Den M, Cooper S (2015) Imbalanced classification using genetically optimized cost sensitive classifiers. In: Evolutionary computation (CEC), 2015 IEEE congress on, IEEE, pp 680–687
Pirkul H (1987) A heuristic solution procedure for the multiconstraint zero? one knapsack problem. Naval Res Logist 34(2):161–172
Poli R, Koza J (2014) Genetic programming. In: Search methodologies, Springer, pp 143–185
Puchinger J, Raidl GR, Pferschy U (2006) The core concept for the multidimensional knapsack problem. Springer, Berlin
Rasheed K (1999) Guided crossover: a new operator for genetic algorithm based optimization. In: Evolutionary computation, 1999. CEC 99. Proceedings of the 1999 congress on, IEEE, vol 2, pp 1535–1541
Rezoug A, Boughaci D (2016) A self-adaptive harmony search combined with a stochastic local search for the 0–1 multidimensional knapsack problem. Int J Bio Inspired Comput 8(4):234–239
Rezoug A, Boughaci D, Bader-El-Den M (2015) Memetic algorithm for solving the 0-1 multidimensional knapsack problem. In: Portuguese conference on artificial intelligence, Springer, pp 298–304
Senju S, Toyoda Y (1968) An approach to linear programming with 0-1 variables. Management Science pp B196–B207
Snášel V, Dvorskỳ J, Ochodková E, Krömer P, Platoš J, Abraham A (2010) Evolving quasigroups by genetic algorithms. In: Proceedings of DATESO, Citeseer, pp 108–117
Sudholt D (2015) Parallel evolutionary algorithms. In: Springer handbook of computational intelligence, Springer, pp 929–959
Tang KS, Man KF, Kwong S, He Q (1996) Genetic algorithms and their applications. IEEE Signal Process Mag 13(6):22–37
Vázquez-Barreiros B, Mucientes M, Lama M (2014) A genetic algorithm for process discovery guided by completeness, precision and simplicity. In: International conference on business process management, Springer, pp 118–133
Volgenant A, Zoon J (1990) An improved heuristic for multidimensional 0–1 knapsack problems. J Oper Res Soc 41(10):963–970
Yang S, Jat SN (2011) Genetic algorithms with guided and local search strategies for university course timetabling. IEEE Trans Syst Man Cybern Part C (Appl Rev) 41(1):93–106
Zhang Q, Sun J, Tsang E (2005) An evolutionary algorithm with guided mutation for the maximum clique problem. IEEE Trans Evolut Comput 9(2):192–200
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Rezoug, A., Bader-El-Den, M. & Boughaci, D. Guided genetic algorithm for the multidimensional knapsack problem. Memetic Comp. 10, 29–42 (2018). https://doi.org/10.1007/s12293-017-0232-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12293-017-0232-7