A Genetic Algorithm for Linear Programming With ... - Semantic Scholar

Report 3 Downloads 249 Views
JOURNAL OF INFORMATION SCIENCE AND ENGINEERING 24, 801-817 (2008)

A Genetic Algorithm for Linear Programming With Fuzzy Constraints* FENG-TSE LIN Department of Applied Mathematics Chinese Culture University Taipei, 111 Taiwan E-mail: [email protected] We examine a linear programming problem formulation in which the constraint coefficients are not precisely given in the work. We investigate the possibility of applying GAs to solve this kind of fuzzy linear programming problem without defining membership functions for fuzzy numbers, using the extension principle, interval arithmetic, and α-cut operations for fuzzy computations, and using a penalty method for constraint violations. The proposed approach simulates every fuzzy number by distributing it into certain partition points. GAs are then used to evolve the values in each partition point. As a result, the final values represent the membership grade of that fuzzy number. After calculating the estimated values of each uncertain coefficient, we obtain a defuzzified linear programming problem. The crisp problem can then be solved using the following GA stage. The empirical results show that the proposed approach can obtain very good solutions within the given bounds for each fuzzy coefficient, thereby accomplishing flexible linear programming. Keywords: genetic algorithms, fuzzy linear programming problem, fuzzy numbers, fuzzy constraints, flexible linear programming

1. INTRODUCTION A linear programming problem is a mathematical program in which the objective function is linear in the unknowns and the constraints consist of linear equalities and linear inequalities [12]. Linear programming has long proved its merit as a significant model for numerous allocation, operations research, economic problems, and so forth. However, in many practical applications, the exact values of the coefficients are either vague or ambiguous due to the subjective viewpoint of a decision-maker. To deal with this kind of uncertain coefficients, fuzzy sets provide a powerful tool to model the problem. The coefficients of the original problem will be replaced by using fuzzy numbers that produce the fuzzy linear programming problem to be solved. The main advantage, compared to the crisp problem formulation, is the fact that the decision-maker is not forced into a precise formulation because of mathematical reasons even though he might only be able to describe the problem in fuzzy terms. The first method for solving fuzzy linear programming problems was proposed by Zimmermann [22]. Over the past decades, solving fuzzy linear programming has become one of the fundamental research subjects in the field of fuzzy sets and systems. Fuzzy linear programming applications in Received June 14, 2006; revised August 30 & October 18, 2006; accepted October 26, 2006. Communicated by Pau-Choo Chung. * Small part of contents has been presented at the 10th Conference on Artificial Intelligence and Applications, Dec. 2-3, 2005.

801

802

FENG-TSE LIN

real-world situations are numerous and diverse. For example, water supply planning [17] and farm structure optimization problem in agricultural economics [4], aggregate production planning problem [20] and machine optimization problems in manufacturing and production [18], capital asset pricing model in banking and finance [13]. So far, the methods for converting fuzzy linear programming into conventional mathematical programming are dominated by solving fuzzy linear programming problems. For example, Jamison and Lodwick [9] proposed the penalty method to characterize the constraint violations to formulate the problem as an unconstrained fuzzy optimization problem. The objective is then redefined as optimizing the expected midpoint of the image of the fuzzy functions. Wang and Wang [21] transformed the fuzzy linear programming problem into a multiple objective problem with parametrically interval-valued multiple objective linear programming problem. Chiang [3] used statistical data to formulate statistical confidence interval and to derive interval-valued fuzzy numbers. After that, the estimated coefficient value is generated to form a flexible linear programming problem. Other approaches for solving fuzzy linear programming problems include using simulated annealing, neural networks, and evolutionary algorithms. Ribeiro and Pires [14] proposed a simulated annealing algorithm for solving fuzzy linear optimization problems without requiring mathematical reductions or transformations. Buckley et al. [1] showed that it is possible to train a layered, feed-forward, neural net, with certain sign restrictions on its weights, to approximate solutions to fuzzy linear programming problems. Buckley and Feuring [2] applied the evolutionary algorithm to two classical fully fuzzified linear programs to show that it can produce good approximate solutions. GAs can be used to compute the membership functions of fuzzy sets in the literature [8, 10]. Given some functional mapping for a system, some membership functions and their shapes are assumed for the various fuzzy variables defined for a problem. The membership functions are coded as bit strings that are then concatenated. An evaluation function is used to evaluate the fitness of each set of membership functions. There are two possible ways to integrate fuzzy logic and GAs [6]. One involves the application of GAs for solving optimization and search problems relevant to fuzzy systems [7, 15]. The other involves the use of fuzzy tools and fuzzy logic-based techniques for modeling different GA components and adapting GA control parameters, with the goal of improving performance [6, 11, 16, 19]. In this paper, however, we propose a different approach for solving linear programming with fuzzy constraints. We investigate the possibility of applying GAs to solve this kind of fuzzy linear programming problem without defining membership functions for fuzzy numbers, using the extension principle, interval arithmetic, and α-cut operations for fuzzy computations, and using a penalty method for constraint violations. The proposed approach uses only the usual evolutionary processes. Using the proposed GA approach, we simulate every fuzzy number by distributing it into some partition points and then use GAs to evolve the values in each partition point. As a result, the final values in partition points represent the membership grade of the fuzzy number. After calculating the estimated values of each uncertain coefficient, we obtain a defuzzified linear programming problem. The crisp problem can be easily solved by the following GA stage. The empirical results show that the proposed approach can obtain very good solution within the given bounds of each fuzzy coefficient.

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

803

2. PROBLEM FORMULATION Mathematically, linear programming deals with nonnegative solutions to linear equation systems. The classical linear programming problem is to find a vector (x1, x2, …, xn) which maximizes the linear form (i.e. the objective function) c1 x1 + c2 x2 + … + cn xn

(1)

subject to the linear constraints a11x1 + a12x2 + … + a1nxn ≤ b1 a21x1 + a22x2 + … + a2nxn ≤ b2 ………………………………… am1x1 + am2x2 + … + amnxn ≤ bm

(2)

and xj ≥ 0, j = 1, 2, …, n

(3)

where the aij, bij and cj are given constants. We can rewrite the above equations as the following linear programming problem. n

Maximize Z =

∑cjxj

(4)

j =1

n

Subject to

∑ akj x j ≤ bk ,

k = 1, 2, …, m

(5)

j =1

xj ≥ 0, j = 1, 2, …, n

(6)

The simplex method can be used to obtain the optimal solution for the linear programming problem defined in Eqs. (4)-(6) if cj, akj and bk are known, for j = 1, 2, …, n and k = 1, 2, …, m. In real situations, however, the information available in the environment under practical consideration is not of an exact nature. In other words, the coefficients aij and bij are uncertain or lack of precision. Therefore the uncertainties can be represented using fuzzy numbers and hence the equations in Eqs. (4)-(6) can be formulated as the following fuzzy linear programming problem, which can be solved by using several fuzzy approaches proposed in [1, 2, 9, 21]. n

Maximize Z =

∑cjxj

(7)

j =1

n

Subject to

∑ a%kj x j 1 b%k ,

k = 1, 2, …, m

(8)

j =1

xj ≥ 0, j = 1, 2, …, n

(9)

FENG-TSE LIN

804

The symbol 1 denotes the fuzzified version of ≤. This means that some constraints can be violated for the accomplishment of the constraints in Eq. (8). The decision-maker accepts small constraint violations but attaches different degrees of importance to violations of different constraints. Thus, the fuzzy constraints are defined by membership functions

μk: ℜn → [0, 1], k = 1, 2, …, m.

(10)

Each μk gives the degree of lack of precision in the coefficient values expressed by the decision-maker. For every x ∈ ℜn, the degree of the fuzzy number a%k1 x1 + a%k 2 x2 + K + a%kn xn , k = 1, 2, …, m

(11)

with respect to the kth constraint is the adequacy between the fuzzy number and the corresponding bk with respect to the kth constraint. The decision-maker should define the thresholds for the degree of acceptance of deviations in satisfying the constraints. Fuzzy linear programming offers several ways to allow for all types of vagueness.

3. FUZZY LINEAR PROGRAMMING BASED ON FUZZY NUMBER Without loss of the generality, we assume A% is a triangular fuzzy number denoted by A% = (a, b, c). The membership function of A% is defined by

⎧x−a ⎪b − a , a ≤ x ≤ b ⎪ μ A% ( x) = ⎨ c − x ⎪ c − b , b ≤ x ≤ c, a < b < c. ⎪ otherwise ⎩0,

(12)

1

μ A~ (x)

α 0

a AL (α ) b

AR (α )

c

Fig. 1. A α-cut of fuzzy number A% .

From Fig. 1, we can see that a α-cut of the fuzzy number A% = (a, b, c) is an interval [AL(α), AR(α)], 0 ≤ α ≤ 1, where AL(α) and AR(α) are the left endpoint and the right endpoint of the α-cut, respectively. From Eq. (12) we have that AL(α) = a + (b − a)α and AR(α) = c − (c − b)α, where AL(α) and AR(α) are the distances measuring from the origin. Let the signed distance of b be defined by d(b, 0) = b, where b, 0 ∈ R. When b < 0 means that b lies to the left of the

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

805

origin and the distance between b and 0 is denoted by − b = − d(b, 0). Thus we have d(AL(α), 0) = AL(α) and d(AR(α), 0) = AR(α), 0 ≤ α ≤ 1, which are the signed distances measuring from the origin. Hence, the signed distance of the interval [AL(α), AR(α)] is defined by d([AL(α), AR(α)], 0) = [d(AL(α), 0) + d(AR(α), 0)] = [AL(α) + AR(α)] = [a + c + (2b − a − c)α]. Since the function α is continuous over the interval, we use the in1

1

tegration to obtain the mean of the distances, ∫ d ([ AL (α ), AR(α)], 0)dα =  ∫ [a + c + 0 0

(2b − a − c)α]dα = (2b + a + c). Let FN = {(a, b, c) | ∀a < b < c, a, b, c ∈ R} be the family of all triangular fuzzy numbers. Let FL = {(a, b, b) | ∀a < b, a, b ∈ R} be the family of all left triangular fuzzy numbers and let FR = {(b, b, c) | ∀b < c, b, c ∈ R} be the family of all right triangular fuzzy numbers. Note that FL and FR are special cases of FN. We obtain F = FN ∪ FL ∪ FR = {(a, b, c) | ∀a ≤ b ≤ c, a, b, c ∈ R}. Let D% = (a, b, c) and E% = (p, q, r) ∈ F. The ranking of fuzzy numbers based on the signed distance defined on % < d ( E% , 0) % and (2) D% ≈ E% iff d ( D% , 0) % = d ( E% , 0). % F are (1) D% p E% iff d ( D% , 0) In the fuzzy linear programming problem defined in Eqs. (7)-(9), the constraints in Eq. (8) are all fuzzy numbers. Let a%k represents a fuzzy constraint in linear programming problem, where a%k = (ak − Δk1, ak, ak + Δk2), 0 ≤ Δk1 ≤ ak, 0 ≤ Δk2 ≤ ak, 1≤ k ≤ n. The membership function of a%k is given as

⎧ x − ak + Δ k1 , ak − Δ k1 ≤ x ≤ ak ⎪ Δ k1 ⎪⎪ . μa%k ( x)= ⎨ ak + Δ k 2 − x , ak ≤ x ≤ ak + Δ k 2 ⎪ Δk 2 ⎪ otherwise ⎪⎩0,

(13)

After defuzzifying the fuzzy number a%k , we obtain an estimate of the value from the interval [ak − Δk1, ak + Δk2], i.e., ak∗ = d (a%k , 0) = ak + (Δk2 − Δk1). If 0 < Δk1 < ak and Δk2 > 0, then a%k ∈ {(a, b, c) | ∀a < b < c, a, b, c ∈ R}. Obviously, if 0 < Δk1 < ak and Δk2 = 0, then a%k ∈ {(a, b, b) | ∀a < b, a, b ∈ R} is the family of all left triangular fuzzy numbers. On the other hand, if Δk1 = 0 and Δk2 > 0, then a%k ∈ {(b, b, c) | ∀b < c, b, c ∈ R} is the family of all right triangular fuzzy numbers. Let B% = (a, b, b). Then we have BL(α) = a + (b − a)α and BR(α) = b. Thus, the signed distance of B% measured from the origin is defined by d ( B% , 0) = (3b + a). Similarly, let C% = (b, b, c). The signed distance of C% measured from the origin is defined by d (C% , 0) = (3b + c). As a result, we can use these defuzzification equations to solving the linear programming with fuzzy constraints problem. n

Let K1 = {(x1, x2, …, xn) | ∑ akj x j ≤ bk , k = 1, 2, …, m, xj ≥ 0, j = 1, 2, …, n}. Let K2 n

= {(x1, x2, …, xn) |

j =1

∑ akj∗ x j ≤ bk , k = 1, 2, …, m, xj ≥ 0, j = 1, 2, …, n}, where akj∗ = j =1

d (a%kj , 0) = akj + (Δk2 − Δk1). When Δk2 > Δk1, the triangle in Fig. 1 is skewed to the righthand side obtaining akj∗ > akj and K2 ⊂ K1. It follows that

n

max

( x1 ,..., xn )∈K 2

∑ c j x j ≤ ( x ,...,max x )∈K j =1

1

n

1

FENG-TSE LIN

806

n

∑ c j x j . When Δk2 ≤ Δk1, the triangle is skewed to the left-hand side obtaining j =1 n n Since K1 ⊂ K2, we then have max ∑ c j x j ≤ max ∑ c j x j . ( x ,..., x )∈K ( x ,..., x )∈K 1

n

1

j =1

1

n

2

akj∗ < akj.

j =1

Finally, a straightforward approach to allow some violations of the fuzzy constraints is the penalty method proposed in [9]. The penalty method seems to be realistic since it characterizes the constraint violations by penalizing the objective function to formulate the original problem as an unconstrained fuzzy optimization problem. However, the penalty cost associated with the constraint violation is just an estimated value, which may lead to reduction in the problem solution quality.

4. GENETIC ALGORITHMS FOR SOLVING FUZZY LINEAR PROGRAMMING In our study, however, we did not use membership functions to define fuzzy numbers a%kj and b%k in Eq. (8), j = 1, 2, …, n and k = 1, 2, …, m, nor did we use penalty costs for the constraint violations. Instead, we used the GA to approximate fuzzy numbers for each fuzzy coefficient in the linear programming constraints. The proposed GAs approach to solving fuzzy linear programming is depicted below. Let the triangular fuzzy number w% = (w − Δ1, w, w + Δ2) be replaced by an arbitrary fuzzy set W% in a given interval [a, b]. We divide the interval [a, b] into t partitions, pi = a + i b −t a , i = 0, 1, …, t, and call pi the partition point. Let the membership grade of W% at pi be W% ( pi ) = μi , i = 0, 1, …, t and μi ∈ [0, 1]. Then, a discrete fuzzy set is obtained as follows:

μ μ μ W% = ( μ0 , μ1 , K , μt ) = 0 + 1 + K + t . p0 p1 pt

(14)

For each coefficient in Eq. (8), the decision-maker can provide some leeway in the constraints in order to perform flexible linear programming. Assume that w% is a triangular fuzzy number or triangular shaped fuzzy number defined on the interval [w – Δ, w + Δ]. This interval is further equally divided into t partitions. Let pi = w – Δ + i × 2tΔ , i = 0, 1, …, t be the partition points and let W% ( pi ) = μi ∈ [0, 1], i = 0, 1, …, t, be the membership grade of pi in an arbitrary fuzzy set W% . Thus, we obtain a discrete fuzzy set W% = (μ0, μ1, …, μt), each μi, i = 0, 1, …, t, is a random number in [0, 1]. We wish to find an estimated value of w in [w – Δ, w + Δ] via GAs. After computing the centroid of the fuzzy number w% which is defined on the discrete fuzzy set W% = (μ0, μ1, …, μt), we obtain the estimated value w*. That is, t

*

w =

∑ pi × μi i =0

t

∑ μi

.

(15)

i =0

Consider a given function N(x) = y. For each N(xi), i = 0, 1, …, t, is different, the fuzzy function can then be defined by

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

N ( X% ) = N ( μ0 , μ1 , K , μt ) =

μ0 N ( x0 )

+

μ1 N ( x1 )

+K+

μt N ( xt )

,

807

(16)

and the centroid can be defined by t

θ ( N ( X% )) =

∑ N ( xi )μi i =0

t

∑ μi

(17)

.

i =0

Following this concept, we can rewrite Eq. (8) as follows: n

∑ akj∗ x j ≤ bk∗ , k = 1, 2, …, m.

(18)

j =1

From Eq. (18), we can see that each akj∗ is an estimated value obtained from the computation of the centroid of a%kj . Similarly, each bk∗ in Eq. (18) is also an estimated value obtained from the computation of the centroid of b%k Finally, we convert the fuzzy linear programming in Eqs. (7)-(9) into the following form n

Maximize Z =

∑cjxj

(19)

j =1

n

Subject to

∑ akj∗ x j ≤ bk∗ , k = 1, 2, …, m

(20)

j =1

xj ≥ 0, j = 1, 2, …, n.

(21)

Note that Z will be used as the fitness of each chromosome in the population of GAs. GAs are stochastic search techniques based on the principles and mechanisms of natural genetics and selection [5]. The basic concept of genetic algorithms is that they start with a population of randomly generated candidates and evolve towards better solutions by applying genetic operators, such as crossover and mutation, modeled on natural genetic inheritance and Darwinian survival-of-the-fittest [5]. The proposed GA for solving the fuzzy linear programming problem is stated below. Step1: Generate an initial population An initial population of size n is randomly generated from [0, 1]t+1 according to the uniform distribution in the closed interval [0, 1]. Let the population be W%h = ( μh0 , μht , K , μht ) =

μh0 p0

+

μh1 p1

+K+

μht pt

,

where h = 1, 2, …, n; μhi is a real number in [0, 1] and pi is a regular partition point in a given interval, i = 0, 1, 2, …, t. Each individual W%h , h = 1, 2, …, n, in a population is a chromosome.

808

FENG-TSE LIN

Step 2: Calculate the fitness value for each chromosome Each chromosome W%h , h = 1, 2, …, n, in the population is evaluated, according to Eq. (13), by creating the estimated value for each coefficient in Eq. (18). The fitness value of each chromosome is then obtained from Eq. (17). The chromosomes in the population can be rated in terms of their fitness values. Let the total fitness value of the population be T. The cumulative fitness value (partial sum) for each chromosome Sh, h = 1, 2, …, n, is calculated. The intervals, I1 = [0, S1], Ij = [Sj-1, Sj], j = 2, 3, …, n − 1, and In = [Sn-1, Sn] are constructed for the purpose of selection. Step 3: Selection and reproduction Reproduction is a process in which each chromosome is copied according to the selection process. The selection process begins with spinning of the roulette wheel n times. Each time, a single chromosome is selected from the current generation to create a new generation. The selection process is as follows. Each time, a random number r from the range [0, T] is generated. If r ∈ I1, then chromosome W%1 is selected; otherwise, the kth chromosome W%k , 2 ≤ k ≤ n, is selected if r ∈ Ik. This selection process is continued until the new population has been created. Finally, the new population is renamed Y%1 , Y%2 , Y%3 , … in the order they were picked. This procedure tends to choose more W%h , h = 1, 2, …, n, with higher fitness to go on into the next population. Step 4: Perform crossover Crossover is the key to genetic algorithms power. The purpose of crossover is to generate rearrangements of co-adapted groups of information from high performance structures. The crossover method used here is the one-point method, which randomly selects one cut-point and exchanges the right parts of two parents to generate offspring. Let p be the probability of a crossover, 0 ≤ p ≤ 1. Usually, p is set to 0.8, so we expect that on the average 80% of the chromosomes will undergo crossover. Step 5: Perform mutation Mutation is a background operator that produces random changes in various chromosomes. Mutation resets a selected position in a chromosome to a randomly generated real number in [0, 1]. The number of selected positions for mutation in the population is relevant to the mutation rate. Let q be the probability of a mutation, 0 ≤ q ≤ 1. Usually q is a very small value, around 0.003, so we expect that, on average, 0.3% of the total population will undergo mutation. After this step, an iteration of the genetic algorithm has been completed. Steps 2 through 5 is done K times, where K is the maximum number of iterations.

Finally, the algorithm is terminated after K generations are produced. Let the last population be W%1∗ , W%2∗ , K , W%n∗ . The maximum fitness value is the best chromosome in the population. The best chromosome represents the optimal solution for the problem.

μ∗ μ∗ μ∗ ∗ ) = h 0 + h1 + K + ht , 1 ≤ h ≤ n. Let the best chromosome be W%h∗ = ( μh∗0 , μh∗1 , K , μht p0 p1 pt ⎛ t The estimated value of each fuzzy coefficient a%kj in Eq. (8) is calculated as akj∗ = ⎜ ∑ pi ⎝ i =0

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

∗ ⎞ × μhi ⎟ ⎠

t

∑ μhi∗ , where pi = akj – Δ + i × i =0

809

2Δ , i = 0, 1, …, t, which is defined on the t

⎛ t ⎞ ⎛ t ∗ ⎞ ∗ interval [akj – Δ, akj + Δ]. Similarly, bk∗ = ⎜ ∑ pi × μhi ⎟ ⎜ ∑ μhi ⎟ , where pi = bk – Δ + i i =0 ⎝ ⎠ ⎝ i =0 ⎠ 2Δ , i = 0, 1, …, t, which is de-fined on the interval [bk – Δ, bk + Δ]. × t

5. EMPIRICAL RESULTS An empirical example is given below to illustrate the effectiveness and the robustness of the GA approach when applied to solve the fuzzy linear programming problem. The significance of the effectiveness and the robustness of a GA are stated at the end of this section. Example: Consider the following fuzzy linear programming problem [3]. (Note that 12 denote the fuzzy number 12.)

Maximize Z = 28x1 + 50x2 Subject to 12x1 + 25x2 20x1 + 5x2

1

1

46000,

25000,

22x1 + 12x2 1 30000, x1 ≥ 0, x2 ≥ 0.

5000 20x1 + 5x2 = 25000

2500

22x1 + 12x2 = 30000

1840 12x1 + 25x2 = 46000 1250

2833.3

Fig. 2. The problem’s convex feasible region in the Cartesian plane.

For the crisp case, the optimal solution can be found at one of the extreme points of the bounded convex feasible region as shown in Fig. 2. The optimal solution obtained from the simplex method for the crisp case is x1 = 487.68, x2 = 1605.91 and Z = 93950.54. For the fuzzy case, consider the fuzzy solutions stated in section 3. The coefficients in the constraints are fuzzy numbers, which are defined in Eq. (13). After defuzzifying the fuzzy constraints given in this example, we obtain estimates of the maximum Z value. According to different membership functions given to fuzzy numbers, we obtain different solution sets of this fuzzy linear programming example. We list three of them as

810

FENG-TSE LIN

shown below. The first solution set is x1 = 486.08, x2 = 1603.19 and Z = 93770.3. The second set is x1 = 486.53, x2 = 1603.91 and Z = 93818.34. The third set is x1 = 493.22, x2 = 1615.45 and Z = 94582.66. The percentage of relative differences in the best values obtained compared with that from the crisp case are − 0.14071%, − 0.19184%, and 0.67282%, respectively. Note that the fuzzy equation computations are very complicated as we stated in section 3. Next, we discuss the proposed GA approach. The proposed approach first simulates each fuzzy number by distributing it into certain partition points. Then a GA is applied to evolve the values in each partition point. After a number of generations, the final values in each partition point represent the membership grade of the fuzzy number, which can be used to solve the linear programming with fuzzy constraints defined in Eqs. (7)-(9). In the beginning, we let t = 10 and Δ = 0.5. The partition points are defined by pi = w – 0.5 + i × 0.1, i = 0, 1, …, 10. This means that each imprecise constraint coefficient w (i.e. akj) is divided into 11 partition points by the GA to simulate the fuzzy number w% = (w − Δ1, w, w + Δ2). In the first run, we obtain μ0 = 0.16, μ1 = 0.61, μ2 =0.34, μ3 = 0.40, μ4 = 0.58, μ5 = 0.55, μ6 = 0.39, μ7 = 0.94, μ8 = 0.25, μ9 = 0.06, and μ10 = 0.80 for coefficient a11. The other coefficients are omitted. The estimated coefficient values are calculated according to Eq. (15), given as follows: a11∗ = 12.032248, a12∗ = 25.032251, b1∗ = ∗ ∗ ∗ 46003.230469, a21 = 20.032249, a22 = 5.032248, b2∗ = 25003.228516, a31 = 22.032246, ∗ ∗ a32 = 12.032248 and b3 = 30003.226563. Thus we obtain a defuzzified linear programming problem, which is defined in Eqs. (19)-(21). The best solution obtained from the subsequent GA stage is x1 = 485.630, x2 = 1604.331 and Z = 93814.180. The comparison of the result obtained with that of the crisp optimal value is

93814.180 − 93950.540 93950.540

= − 0.1454%. In the second run, we have μ0 = 0.45, μ1 = 0.94, μ2 = 0.83, μ3 = 0.68, μ4 = 0.35, μ5 = 0.01, μ6 = 0.39, μ7 = 0.92, μ8 = 0.03, μ9 = 0.15, and μ10 = 0.09 for a11. Again, the other coefficients are omitted. The estimated values of coefficient obtained are a11∗ = ∗ ∗ = 19.857409, a22 = 4.857409, b2∗ = 11.857409, a12∗ = 24.857407, b1∗ = 45985.738281, a21 ∗ ∗ ∗ 24985.736328, a31 = 21.857407, a32 = 11.857409 and b3 = 29985.736328. The best solution for the defuzzified problem obtained from the subsequent GA stage is x1 = 496.861, x2 = 1612.970 and Z = 94560.609. A comparison of the result obtained from the crisp case is

94560.609 − 93950.540 = + 0.6493%. The parameters used in the GA ap93950.540

proach are (1) the population size is 100, (2) the probability of a crossover is 0.8, and (3) the probability of a mutation is 0.003. Fig. 3 shows another 20 runs of the same GA problem to obtain 20 different best values. The average value of these 20 runs is 94189.82. The ratio of the average value compared to the crisp optimal value is + 0.25468%. Two different methods were considered in this study for the purpose of analyzing the effectiveness and robustness of the proposed GA approach. The first method was based on using the same number of generations but with different population sizes. The second method was based on using the same population size but with different numbers of generations. Each method had five or six runs. In the first method, the number of generations was 5000 and the population size for each run was 100, 200, 300, 400, and 500, respectively. The best results of Z obtained in five runs are 93946.367, 94267.781,

optimal value

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

811

95000 94500 94000 93500 93000 92500 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 runs

Fig. 3. The curve of the best values obtained from 20 runs.

95000 0.8421

The value of Z

94800 94600 94400

0.778

0.7377

run#3

run#4

0.3375

94200 −0.0047

94000 93800 93600 93400 crisp

run#1

run#2

run#5

Fig. 4. The best value obtained from the first method in five runs. The number of generation is 5000, and the population size in each run is 100, 200, 300, 400, and 500, respectively.

94681.695, 94643.844 and 94741.883, respectively, which are shown in Fig. 4. The percentage of relative difference in each run compared to the crisp optimal value is – 0.0047, 0.3375, 0.7780, 0.7377 and 0.8421, respectively. As for the second method, the population size was 100 in all six runs. The number of generations in each run was 2,000, 4,000, 6,000, 8,000, 10,000, and 12,000, respectively. The best results for Z obtained in six runs were 93608.836, 93815.336, 93928.320, 94215.359, 94243.766 and 94224.781, respectively, which are shown in Fig. 5. The percentage of relative difference in each run compared to the crisp optimal value are – 0.3639, – 0.1441, – 0.0259, 0.2817, 0.3119 and 0.2917, respectively. Next, three shapes of triangular fuzzy numbers were considered for analyzing the effectiveness and robustness of the proposed GA approach, as shown in Fig. 6. Type 1: The symmetrical shape of fuzzy number. Consider a set of the values for Δk1 and Δk2 for the symmetrical triangular fuzzy numbers, which are shown in Table 1. Obviously, the symmetrical shape of fuzzy number is an isosceles triangle. We can see that the range of each imprecise coefficient are a11 = [11.8, 12.2], a12 = [24.7, 25.3], b1 = [45994, 46006], a21 = [19.6, 20.4], a22 = [4.8, 5.2], b2 = [24992, 25008], a31 = [21.7, 22.3], a32 = [11.4, 12.6], and b3 = [29996, 30004]. The estimated coefficients for the first run are a11∗ = 11.989241, a12∗ = 24.983858, b1∗ =

FENG-TSE LIN

812

94400

0.2817 0.3119 0.2917

The value of Z

94200

−0.0259

94000 −0.1441

93800 −0.3639

93600 93400 93200 crisp

run#1

run#2

run#3

run#4

run#5

run#6

Fig. 5. The best value obtained from the second method in six runs. The population size is 100 and the number of generation in each run is 2000, 4000, 6000, 8000, 10000 and 12000, respectively.

wi − Δk

wi

wi + Δk

(a) Symmetrical.

wi − Δk1 wi

wi + Δk2

wi − Δk1

wi wi + Δk2

(b) Asymmetrical, right-skewed. (c) Asymmetrical, left-skewed. Fig. 6. Three shapes of triangular fuzzy number.

Table 1. The values of Δ1 and Δ2 used for symmetrical fuzzy number shape.

Maximum values

k 1 2 3

ak1 (0.2, 0.2) (0.4, 0.4) (0.3, 0.3)

ak2 (0.3, 0.3) (0.2, 0.2) (0.6, 0.6)

bk (6.0, 6.0) (8.0, 8.0) (4.0, 4.0)

94400 94300 94200 94100 94000 93900 93800 93700 93600

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Runs

Fig. 7. The curve of the best values obtained in 20 runs for the symmetrical fuzzy number shape. The dotted line represents the crisp optimal value.

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

813

∗ ∗ ∗ = 19.978479, a22 = 4.989241, b2∗ = 24999.566406, a31 = 21.983860, 45999.675781, a21 ∗ ∗ a32 = 11.967723 and b3 = 29999.781250. The best solution obtained from the defuzzified problem is x1 = 490.438, x2 = 1605.825 and Z = 94023.492. The percentage of relative difference in this run compared with that of the crisp optimal value is 0.0774%. Furthermore, we ran this symmetrical type GA program 20 times to obtain 20 different best values, which are shown in Fig. 7. Note that the dotted line in Fig. 7 represents the crisp optimal value, 93950.54. The average value of these 20 runs is 94037.58. The ratio of the average value compared to the crisp optimal value is + 0.09264%.

Type 2: The asymmetrical right-skewed shape of fuzzy number Table 2 shows the coefficients of the asymmetrical right-skewed shape of fuzzy number, where Δk1 < Δk2. In our implementation, we use Δk2 = 3Δk1. The estimated coeffi∗ = cients for the first run are a11∗ = 12.228661, a12∗ = 25.342991, b1∗ = 46003.425781, a21 ∗ ∗ ∗ ∗ 20.11433, a22 = 5.228661, b2 = 25002.287109, a31 = 22.228659, a32 = 12.114330 and b3∗ = 30004.568359. The best solution obtained from the defuzzified problem is x1 = 489.175, x2 = 1579.193 and Z = 92656.539. The percentage of relative difference in this run compared with that of the crisp optimal value is − 1.3775%. We execute the asymmetrical right-skewed shape GA program 20 times to obtain 20 different best values, which are shown in Fig. 8. Again, the dotted line in Fig. 8 represents the crisp optimal value, 93950.54. The average value obtained from these 20 runs is 95291.38. The ratio of the average value compared to the crisp optimal value is + 1.42717%. Table 2. The values of Δk1 and Δk2 used for the asymmetrical right-skewed type. ak1 (0.2, 0.6) (0.1, 0.3) (0.2, 0.6)

Maximum values

k 1 2 3

ak2 (0.3, 0.9) (0.2, 0.6) (0.1, 0.3)

bk (3.0, 9.0) (2.0, 6.0) (4.0, 12.0)

Table 3. The values of Δk1 and Δk2 used for the asymmetrical left-skewed type. k 1 2 3

ak1 (0.6, 0.2) (0.3, 0.1) (0.6, 0.2)

ak2 (0.9, 0.3) (0.6, 0.2) (0.3, 0.1)

bk (9.0, 3.0) (6.0, 2.0) (12.0, 4.0)

97000 96000 95000 94000 93000 92000 91000

right-skewed left-skewed

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Runs

Fig. 8. The curves of the best value obtained in 20 runs for the asymmetrical fuzzy number shapes. The dotted line represents the crisp optimal value.

814

FENG-TSE LIN

Type 3: The asymmetrical left-skewed shape of fuzzy number. Table 3 shows the coefficients of the asymmetrical left-skewed shape of fuzzy number, where Δk2 < Δk1. In our implementation, we use Δk1 = 3Δk2. The estimated coeffi∗ = cients for the first run are a11∗ = 11.803051, a12∗ = 24.704578, b1∗ = 45997.042969, a21 ∗ ∗ ∗ ∗ 19.901527, a22 = 4.803053, b2 = 24998.029297, a31 = 21.803053, a32 = 11.901526 and b3∗ = 29996.064453. The best solution obtained from the defuzzified problem is x1 = 486.248, x2 = 1629.569 and Z = 95093.430. The percentage of relative difference in this run compared with that of the crisp optimal value is 1.2163%. We execute the asymmetrical right-skewed shape GA program 20 times to obtain 20 different best values, which are also shown in Fig. 8. The average value of these 20 runs is 93061.64. The ratio of the average value compared to the crisp optimal value is − 0.94613%. Remark: The effectiveness and robustness of the proposed approach depend on the results of simulating fuzzy numbers in each partition point for uncertain coefficients of linear programming. The parameters settings of GAs, i.e. the crossover rate, the mutation rate, and the number of generations, are crucial to these issues. The significance of effectiveness is to apply GAs for solving fuzzy equations without defining membership functions for fuzzy numbers and using the extension principle, interval arithmetic, and α-cut operations for fuzzy computations. On the other hand, the significance of robustness is to find out some rules for determining the necessary parameters for solving any larger scale linear programming problems. Among these parameters, however, the crossover rate is the most important factor. Here we only discuss the determination of the crossover rate rc. Clearly, if we choose an appropriate rc, the GA will approximately obtain a bell-shaped like discrete fuzzy set for triangular fuzzy number. If not, the GA will not be able to obtain a good approximate triangular fuzzy number. Thus, a bell-shaped curve represents a guideline for choosing an appropriate rc. If we use other type of fuzzy numbers, e.g. trapezoidal, we do not need to observe whether a bell-shaped curve occurred or not. However, we only consider the triangular fuzzy number in this study. Therefore, we need to determine an adequate range of crossover rate. We use a11 = 12 and Δ = Δi1 = Δi2 = 0.5 as an instance to illustrate the choose of rc. In this case, we create 11 partition points, ranging from 11.5 to 12.5. Fig. 9 shows the messy curves generated by using nine different rc, starting from 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, to 0.5, respectively, in the GA program. Obviously, none of the curves are look like bell-shaped type. The parameters used in this program are the number of generations 5000, the population size 100, and the probability of mutation 0.003. However, when we use the crossover rate, starting from 0.7 0.75, 0.8, 0.85 to 0.9, the GA creates five approximate bell-shaped curves. Fig. 10 shows these bell-shaped like curves. Therefore, we conclude that the adequate range of the crossover rate for creating bell-shaped curve is [7.0, 9.0]. In this example, we choose rc = 0.8. The crossover rate for other shapes of asymmetrical fuzzy numbers can be determined as the same way.

6. CONCLUSION This study has investigated the GA approach, via the simulation of fuzzy number in some partition points, to solve fuzzy linear programming problem with fuzzy constraints.

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

815

membership

1 0.8 0.6 0.4 0.2 0 11.5

11.6

11.7

11.8

11.9 12 12.1 partition points

12.2

12.3

12.4

12.5

Fig. 9. The messy curves generated using nine different rc, starting from 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, to 0.5, respectively.

membership

1 0.8 0.6 0.4 0.2 0 11.5

11.6

11.7

11.8

11.9 12 12.1 partition points

12.2

12.3

12.4

12.5

Fig. 10. The bell-shaped like curves obtained from using rc = 0.7, 0.75, 0.8, 0.85, and 0.9.

When GAs are applied to solve fuzzy constraints, the computation needs not to define membership function of the fuzzy numbers, and neither to use the extension principle nor interval arithmetic and α-cuts. Instead, the proposed GA approach uses only the usual evolutionary process. A GA program evolves the values in each partition point so that the final values represent the membership grade of that fuzzy number. After calculating the estimated value of each fuzzy coefficient, the defuzzified linear programming problem can be solved by the following GA stage. Thus, the fuzzy linear programming computations in the GA are much easier than those in the traditional fuzzy approach. Three triangular fuzzy number shapes were considered in this study. The empirical results show that the proposed approach can obtain very good solutions within the given bounds for each fuzzy coefficient so that it accomplishes flexible linear programming. We conclude that the GA fuzzy concept approach is different but gives better results than the traditional fuzzy methods. The results of this study may lead to the development of effective GAs for solving other modes of fuzzy linear programming or fully fuzzified linear programming.

ACKNOWLEDGEMENT The authors are grateful to anonymous referees whose valuable comments helped to improve the content of this paper.

816

FENG-TSE LIN

REFERENCES 1. J. J. Buckley, T. Feuring, and Y. Hayashi, “Neural net solutions to fuzzy linear programming,” Fuzzy Sets and Systems, Vol. 106, 1999, pp. 99-111. 2. J. J. Buckley and T. Feuring, “Evolutionary algorithm solution to fuzzy problems: Fuzzy linear programming,” Fuzzy Sets and Systems, Vol. 109, 2000, pp. 35-53. 3. J. Chiang, “Fuzzy linear programming based on statistical confidence interval and interval-valued fuzzy set,” European Journal of Operational Research, Vol. 129, 2001, pp. 65-86. 4. P. Czyzak, “Application of the FLIP method to farm structure optimization under uncertainty” in R. Slowinski and J. Teghem, eds., Stochastic Versus Fuzzy Approaches to Multiobjective Mathematical Programming under Uncertainty, Reidel, Dordrecht, 1990, pp. 263-278. 5. D. E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, Addison-Wesley, Reading, MA, 1989. 6. F. Herrera and M. Lozano, “Fuzzy genetic algorithms: issues and models,” Technical Report No. 18071, Department of Science and A.I., University of Granada, Granada, Spain, 1999. 7. F. Herrera and M. Lozano, “Fuzzy genetic algorithms: issues and models,” Technical Report No. 18071, Department of Science and A.I., University of Granada, Granada, Spain, 1999. 8. A. Homaifar and E. McCormick, “Simultaneous design of membership functions and rule sets for fuzzy controllers using genetic algorithms,” IEEE Transactions on Fuzzy Systems, Vol. 3, 1995, pp. 129-139. 9. K. D. Jamison and W. A. Lodwick, “Fuzzy linear programming using a penalty method,” Fuzzy Sets and Systems, Vol. 119, 2001, pp. 97-110. 10. C. L. Karr and E. J. Gentry, “Fuzzy control of pH using genetic algorithms,” IEEE Transactions on Fuzzy Systems, Vol. 1, 1993, pp. 46-53. 11. M. A. Lee and H. Takagi, “Dynamic control of genetic algorithms using fuzzy logic techniques,” in Proceedings of the 5th International Conference on Genetic Algorithms, 1993, pp. 76-83. 12. D. G. Luenberger, Introduction to Linear and Nonlinear Programming, 2nd ed., Addision-Wesley, Reading, MA., 1984. 13. R. Ostermark, “Fuzzy linear constraints in the capital asset pricing model,” Fuzzy Sets and Systems, Vol. 30, 1989, pp. 93-102. 14. R. A. Ribeiro and F. M. Pires, “Fuzzy linear programming via simulated annealing,” Kybernetika, Vol. 35, 1999, pp. 57-67. 15. M. Sakawa, K. Kato, H. Sunada, and T. Shibano, “Fuzzy programming for multiobjective 0-1 programming problems through revised genetic algorithms,” European Journal of Operational Research, Vol. 97, 1997, pp. 149-158. 16. E. Sanchez, T. Shibata, and L. A. Zadeh, Genetic Algorithms and Fuzzy Logic Systems: Soft Computing Perspectives, World Scientific, 1996. 17. R. Slowinski, “A multicriteria fuzzy linear programming method for water supply system development planning,” Fuzzy Sets and Systems, Vol. 19, 1986, pp. 217-237. 18. J. F. C. Trappey, C. R. Liu, and T. C. Chang, “Fuzzy non-linear programming: the-

A GENETIC ALGORITHM FOR LINEAR PROGRAMMING

19. 20. 21. 22.

817

ory and application in manufacturing,” International Journal of Production Research, Vol. 26, 1988, pp. 957-985. Y. Tsujimura, M. Gen, and E. Kubota, “Solving fuzzy assembly-line balancing problem with genetic algorithms,” in Proceedings of the 17th International Conference on Computers and Industrial Engineering, Vol. 29, 1995, pp. 543-547. J. L. Verdegay, “Application of fuzzy optimization in operational research,” Control and Cybernetics, Vol. 13, 1984, pp. 229-239. H. F. Wang and M. L. Wang, “A fuzzy multiobjective linear programming,” Fuzzy Sets and Systems, Vol. 86, 1997, pp. 61-72. H. J. Zimmermann, “Fuzzy programming and linear programming with several objective functions,” Fuzzy Sets and Systems, Vol. 1, 1978, pp. 45-55.

Feng-Tse Lin (林豐澤) was born in Taipei, Taiwan. He received the M.S. degree in Computer Engineering from the National Chiao Tung University, Hsinchu, Taiwan, in 1984, and the Ph.D. degree in Computer Science and Information Engineering from the National Taiwan University, Taipei, Taiwan, in 1992. From 1984 to 1987, he was a research assistant at Telecommunication Laboratories, Chungli, Taiwan. Currently, he is Professor and Chair of the Department of Applied Mathematics, Chinese Culture University, Yangminshan, Taipei, Taiwan. His current research interests include fuzzy logic and its applications, genetic algorithms, quantum-inspired evolutionary algorithm and quantum computing. Dr. Lin is a member of Taiwanese Association for Artificial Intelligence (TAAI), Association for Computing Machinery, IEEE Systems, Man, and Cybernetics Society, and IEEE Computational Intelligence Society.