Download A Genetic Algorithm for Linear Programming With Fuzzy Constraints*

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Bra–ket notation wikipedia , lookup

Mathematics of radio engineering wikipedia , lookup

Elementary mathematics wikipedia , lookup

Transcript
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.