Adaptive Tumbling Bacterial Foraging Optimization PDF

You might also like

You are on page 1of 8

Recent Advances in Circuits, Systems and Automatic Control

Adaptive Tumbling Bacterial Foraging Optimization


For Sustainable Economic Load Dispatch
E.E. HASSAN1, T.K.A RAHMAN2, A.M. MAHROS3, M.M. THARWAT4, Z. ZAKARIA5
Electrical Engineering1, 5, Electrical and Computer Engineering2, 4, Physics3, Engineering Physics3
Universiti Teknologi Mara1, 5, King Abdulaziz University2, 3, 4, Alexandria University3
MALAYSIA1, 5, Jeddah, 21432 SAUDI ARABIA2, 3, 4, Alexandria, 21544 EGYPT3
amr.mahros@mena.vt.edu3, mmzahran1@kau.edu.sa4, titikkhawa@gmail.com2
Abstract: - A novel stochastic optimization technique named Adaptive Tumbling Bacterial Foraging
Optimization Algorithm (ATBFOA) is presented to solve sustainable economic load dispatch for a good power
system demand management. This approach introduced the application of Gaussian distribution in tumbling
strategy to uniform global optimum searching space. The major solution of this paper is to minimize the single
objective function, which is total fuel cost and also total losses departed from the IEEE 118 bus network
respectively. In addition, the evolutionary iteration technique called Evolutionary Programming (EP) and
original Bacterial Foraging Optimization Algorithm (BFOA) are compared in order to prove the effectiveness
of the proposed new ATBFOA on mentioned objective solution. As a result, the lowest objective functions
claimed to be the most efficient, low cost and reliable technique. As a proof, the results showed that ATBFOA
had fulfilled the requirement since getting lowest fitness for both single objective solutions.

Key-Words: - ATBFOA, Economic load dispatch, Stochastic optimization, Total fuel cost, IEEE 118 bus
network, Evolutionary programming, BFOA.
an Evolutionary Programming (EP) for solving their
ED in power system. The upgrading for EP was also
invented from study in [10] with a named of
quantum inspired evolutionary techniques. Then, an
alternative iteration computational approach was
also done through Particle Swarm Optimization
(PSO) technique [2, 11, 12] and combination on
Genetic Algorithm (GA) with Simulated Annealing
(SA) for the same purpose [13]. All these works are
to enhance the weaknesses of improper complex
solution and reduce the longer computational time
of looping process.
To date, as the optimum load demand is one of
significant elements in power system management,
there are still more efforts for robustness and
efficient iterative solution. Therefore, study in [3,
14] are concentrated on modification on recent
optimization method called Bacterial Foraging
Optimization Algorithm (BFOA) to solve their
complex economic demand.
This paper introduces a novel Adaptive
Tumbling
Bacterial
Foraging
Optimization
Algorithm (ATBFOA) to work out on two objective
known functions which are the total operational cost
and total losses minimization of the power network.
This technique is based upon original BFOA
invented by Kevin M. Passino in [15]. During the
deployment, some parameters were required to be

1 Introduction
Nowadays, Economic Dispatch (ED) has become a
crucial task in power system operation and planning
to provide smooth and sustainable load demand.
Even though, the primary objective of load dispatch
is to minimize the total fuel cost of generation but
restrictions on operational parameters should be
there [1]. Conventionally, fuel cost function is
mathematically being a single quadratic function.
Thus, the gradient based optimization is merely
appropriate to entirely solve the linear and
monotonically increasing cost function [2]. Further,
the piecewise quadratic cost function emerged in
multiple fuel option is accepted but throws in too
many local extreme points. Therefore, the
conventional optimization method is no longer
being a suitable solution due to the weaknesses to
place the optimal result. Throughout the years,
many efforts have been made to overcome the non
convex problem including different kinds of
constraints or multi objective solution by
introducing various mathematical programming and
optimization techniques [3]. Recent advance
intelligence computational methods such as
Artificial Neural Network (ANN) [4, 5] and fuzzy
logic approach [6] lead to solve a complex non
linear economic dispatch solution. As a
consequence, the researchers [7-9] have approached

ISBN: 978-960-474-349-0

224

Recent Advances in Circuits, Systems and Automatic Control

initialized and used in the optimization method. The


proposed technique was tested on IEEE 118 bus
system using MATLAB R2009b.

3 Background Studies
3.1 Evolutionary Programming (EP)

2 Economic
Formulation

Dispatch

Evolutionary Programming (EP) has been applied in


design issues and optimization comprehensively as
idea from David B. Fogel. In year 1960s, Lawrence
Fogel started his primary studies in prediction of
finite states machines [7]. Over the years, the EP
had undergone enhancement process in introduction
to self-adaptation parameters and different mutation
strategy. As mentioned earlier, this paper studies
both standard EP and Meta EP.
EP involves numerous iteration processes which
are simplified as the initialization process to
generate the random value for parameter to be
optimized (parent), fitness setting to determine the
fitness value, mutation process to produce offspring
from parents, selection process to rank the best
fitness among parents and offspring and
convergence process[16].

Problem

Normally, the objective of economic dispatch is to


determine the minimum total power generation cost.
For this paper some consideration to ease the total
system losses as possible is taken as another
objective function for optimum dispatch. In parallel
with that, all related operational constraint must be
satisfied.

2.1 Objective Functions


The first objective function is an operational fuel
cost of thermal generator generally presented as a
second order quadratic function [14]. Therefore, a
minimum cost function is to find low value of
mathematical expression as in (1)
Fi (Pgi) = ai + bi Pgi +ciPgi2

3.2 Bacterial Foraging Optimization (BFO)

(1)

The Bacterial Foraging Optimization (BFO) is an


optimization technique found by K.M. Passino
based on the foraging behavior of E.coli bacteria.
The BFO was created to defeat the non gradient
optimization problems and also to solve the
complex and non differentiable objective functions.
The optimization technique is inspired through the
natural selection of bacteria with victorious foraging
strategies while ridding those with poor foraging
strategies [2]. The E.coli foraging strategies involve
four processes, namely, chemotaxis, swarming,
reproduction and elimination and dispersal [15, 17,
18]. Chemotaxis process is conducted through the
swimming and tumbling of each bacterium, which
in turn, depends on the rotation of their flagella. The
decision making of each bacterium is whether it
should move in a predefined direction (swimming),
move in an undefined direction (tumble) or
alternates between these two modes for its whole
lifetime. The tumble mode will represent a unit
length in random direction, j . The generated unit
length will be utilized to define the direction of
movement after it is tumbled, as written in (5).

where Fi (Pgi) is fuel cost, Pgi is power generation


and ai , bi and ci are fuel cost coefficient for unit
i. In other word, the total fuel cost is the sum of cost
function for each generating units as (2) below.
(2)
where Ng is number of generating units.
The following objective function that has been
considered in this research minimizes possible total
losses that spread over the power system network.
Generally, the total system losses Tloss can be
expressed as (3)
(3)
where Pload is system demand.

2.2 Operational Constraints


In addition, some operational network constraints
must be satisfied in order to minimize the objective
function while delivery optimum demands to users.
The inequality constraints for the generating
capacity limits is mathematically described as (4)
below
(4)

i (j+1,k,l) = i(j,k,l)+C(i,j) j

In (6), the step size in random direction is


considered constant for every run length unit C(i).
Therefore, i(j,k,l) is the population of bacteria, the
location of the ith bacterium at the jth chemotatic

where Pmin and Pmax are minimum and maximum


real power generation of unit i.

ISBN: 978-960-474-349-0

(5)

225

Recent Advances in Circuits, Systems and Automatic Control

step, in kth reproduction step and lth elimination and


dispersal event. At this location, the cost function is
represented by J(i,j,k,l) which is also known as the
nutrient function. After tumbling, the new position
in (6) corresponds to new cost function J(i,j+1,k,l)
will be generated. When the new cost function is
better than before tumbling, another step size C(i,j)
will take place in the same direction. This process is
known as swimming and the operation will be
repeated as long as better cost is gained until the
number of swimming step, Ns is accomplished.
When the E. coli bacterium has searched the
nutrient rich environment, it will then attempt to
invite other bacteria to arrive at the place more
rapidly. In that case, the E. coli cells will release the
attractant aspirate so that they congregate into
groups and move as concentric patterns of group
with high bacterial density. The mathematical
expression for swarming effect is represented by

other influence. The events can kill or disperse all


the bacteria in a region occasionally. They have the
cause of possibly demolishing the chemotatic
progress but they might also assist in chemotaxis
when the dispersal place bacteria near good food
sources. Moreover, elimination and dispersal aids in
reducing the chance of being trapped in a premature
or local optima solution. The detailed mathematical
derivations regarding the theoretical aspect of this
new concept are represented in [15, 18].

(6)

Step 1: Initialization, the Following Parameters


are Chosen.
Number of parameters to be optimized, p is 18 for
number of generating units. Number of bacteria, S is
20 for the total region. Number of iterations during
the chemotatic loop, namely chemotaxis step, Nc is
100 steps as referred to [15]. Number of swimming
step which bacteria will go after tumbling in
chemotatic loop called Ns is selected equivalent to a
half number of Nc (reminder: Nc > Ns).
In order to get a better optimization, the
reproduction step, Nre also plays a role so that the
new population of healthiest bacteria will take place.
For this case, the bacteria will reproduce twice.
Then, each bacterium must go through two times of
elimination and dispersal events to select the
healthiest bacteria, Ned. The probability that is
strongly related to elimination and dispersal events,
Ped is chosen as 0.25. The run length unit, C(i) is
also initialized from 0.1 to 0.6 and is assumed to be
constant during the chemotatic iteration. Finally,
the initial values of j, k and l are set to be 0.

4 Methodology
In this paper, the biological aspect of E. coli
foraging strategy to improve the global searching
space is applied for a minimum two single objective
functions. Some modification on tumbling approach
of E. coli foraging strategy is made to improve
better global searching space. Similarly as in BFOA
several steps are involved except for swarming
effect of bacteria. The following steps are described
on the flow of optimization for ATBFOA working
occupied.

is the position of each member of the


population of S bacteria and defined as:
(7)
where Jcc (,P (j,k,l)) is the cost unction value to
be added to the actual cost to be minimized to
present a time varying cost function; S is the total
number of bacteria and p is the number of
parameter to be optimized which is present in each
bacterium. dattract, attract, hrepellent, and repellent are
different coefficients of attraction and repelling
effect that are to be determined appropriately. When
the swarming effect is considered then the cost
function is denoted by:
(8)
The reproduction process involves a selection of
the healthiest bacteria to live and the least healthy
will die. Further, the bacteria will split into two in
the same location. This will make the population of
bacteria remain consistent Sr =S/2.
It is possible that in local environment, the life
population of bacteria changes either gradually via
expenditure of nutrients or abruptly due to some

ISBN: 978-960-474-349-0

Step 2: Elimination and Dispersal Loop, l=l+1.


Step 3: Reproduction Loop, k=k+1.
Step 4: Chemotaxis Loop, j =j+1.
During the chemotaxis iteration, each bacterium
from i=1, 2,S will be undertaken through the
following process. First, assign the cost function

226

Recent Advances in Circuits, Systems and Automatic Control

J(i,j,k,l) which is the fuel cost to be minimized. Then,


let Jlast is equivalent to J(i,j,k,l) in order to get the
lower cost. Next, the adaptive tumbling process will
start. A random vector (i) p is generated with
m(i), m = 1, 2 p which is a random number in
the range [-1, 1]. Then (i) is computed using the
mathematical expression in (9). Then, move to the
new position of J by using the adaptive tumble
foraging strategy expression (13).

split and selected to be a new population. The


reproduction process will continue until the number
of reproduction step is reached, k = Nre.
Step 6: Elimination and Dispersal Loop
In elimination and dispersal loop, each bacterium
with probability, Ped eliminate and disperse. The
process is complete when a bacterium is eliminated
and dispersed to tumble process again around
random location on optimization domain.
All the above steps are clearly illustrated with
flow chart as in Fig.1 regarding to an optimization
iteration step taken in ATBFOA.

(9)
(10)
(11)

5 Results and Discussion

where P'i (j), Pi (j), 'i (j) and (j) is a ith component
of respective vector, Ni (0,1) is normally distributed
one dimensional random number with mean 0 and 1,
and Nj (0,1) is indicating the random number will be
new for each value of j
For the new location, the cost function J(i,j,k,l) named
Jtumble is computed. Then, the decision will take
place whether Jtumble is smaller or bigger than Jlast.
As a result, the lower cost will replace the Jlast value.
In the swimming process for each bacteria, the
initial counter for swim step is represented by m ,
where m<Ns. Similar to the tumbling process, if
J(i,j+1,k,l) < Jlast means lower cost function of Jswim
then keep Jlast= J(i,j+1,k,l) =Jlast = Jswim .
The next action is to compute new J(i,j+1,k,l) as in (12)
for another step size (assuming same step size) but
in the similar direction . The loop or while
statement is repeat until m=Ns. Further, go to the
next bacterium (i =i+1) then stop the iteration when
i = S. Then, continue the chemotaxis step for all
over the life of bacteria as long as j<Nc.

Initially, a proposed ATBFOA technique must set


some parameter such as the size of bacteria to 20
with the number of reproduction step, Nre and
elimination and dispersal events, Ned being 2,
correspondingly. While, the number of chemotactic
step, Nc is kept at 100 steps as referred to [15],
which is followed by the number of the swimming
step, Ns is taken for 4 steps. All these parameters
are kept unchanged for a different constant of swim
length, c from 0.1 to 0.6 systematically.
Consequently, the swim length, c for 0.3 results the
minimum value of operational cost function for all
situation parameters. In detail, the number of the
swimming step, Ns is altered to 50 steps which is
half steps from chemotactic step, N c sequentially to
find the best minimum value for fitness Jlast.
The improvement in results obtained using
different values of Nc and Ns are shown in Table I.
The minimum fitness that is the lowest total
operational fuel cost for a power network which is
around 113k USD/MWh gained from Nc =100 with
Ns that has changed to 50 steps.

(12)

TABLE I.
Chemotactic Swimming
steps, Nc
steps, Ns

Step 5: Reproduction Loop


The process calculates health of all bacterium
(i =1,2S) as (9) below for the given k and l. The
mathematical expression represents a measurement
of health of i bacterium that shows the nutrients
content. The highest cost means lower health.
(13)
i
The highest J health values in will be sorted in
ascending order. Then, the lowest half of unhealthy
bacteria is eliminated. While, another top half is

ISBN: 978-960-474-349-0

COMPARISON OF IMPROVEMENT
Fuel Cost
($/MWh)

Total Loss
(MW)

Average
Time (S)

100

50

113449

123.49

3022

100

117100

129.67

3992

Moreover, the total system loss has also. As a


result, all the setting parameters in ATBFOA are
confirmed as Nc =100, Ns = 50, Nre = 2, Ned =2 and
c=0.3 are to be used for next objective functions.

227

Recent Advances in Circuits, Systems and Automatic Control

Fig. 1. Flow chart of the improved Adaptive Tumbling Bacterial Foraging Optimization Algorthim.
205163106 dollar/MW for a whole year. As an
advantage from spending a lot of money in
operational cost but the system also causes reduced
total losses. A comparative is done for other
iteration computational methods known as
conventional evolutionary programming (EP) and
also Meta EP. The results obtained for all four
computational techniques are tabulated into Table II
after five times running.
Table II shows that the new ATBFOA has
developed lowest overall fuel cost function
compared to others. Additionally, this less fitness
value also produces the smallest quantity of total
system losses among all mentioned methods. In
terms of computational duration, the conventional
EP takes the shortest time to converge after 200000
iteration loop. In contrast, Meta- EP needs the

5.1 Single Objective Function of Total Fuel


Cost and Observation on Total System Loss
First assessment is between the proposed
ATBFOA with BFOA to prove the effectiveness
and low cost optimization solution. During iteration
process, all variables as in ATBFOA are used for
BFOA for comparison. After completed the five
times running phase aimed for consistent results
then outputs from both BFOA techniques are
recorded into Table II. Accordingly, the data in last
two rows of Table II describes the total loss of the
system for observation and fitness values selected to
be total fuel cost for both optimization Bacterial
Foraging. It is clearly seen that the ATBFOA
produces better fitness against to BFOA cost
function. Moreover, the difference will save about
87634.9920 dollar/MW per day which equivalent to

ISBN: 978-960-474-349-0

228

Recent Advances in Circuits, Systems and Automatic Control

longest convergence time for same number of


iteration.
TABLE II.

5.2 Single Objective Function of Total


System Loss and Observation on Total Fuel
Loss

COMPARISON OF IMPROVEMENT

Similarly, the same parameters are chosen to


generate optimal outputs when the new fitness
becomes the overall systems losses and only
monitors for total operational fuel costs. This
adjusted fitness function also is evaluated for
iteration techniques used in the previous test.
Subsequently, all data is collected in to Table III
below upon completion of 5 times successively
process.

Technique
Generating units

Output for each generator (MW)


BFOA

ATBFOA

EP

Meta-EP

10

481

490

496

482

12

181

127

88

141

25

234

286

276

286

26

368

338

336

349

31

7.86

7.92

26

13

46

138

96.5

49

44

49

202

242

257

218

54

148

90.4

62

82

59

155

201

217

177

61

213

204

166

65

419

395

66

462

80

TABLE III.

COMPARISON OF IMPROVEMENT
Technique

Generating units

Output for each generator (MW)


BFOA

ATBFOA

EP

Meta-EP

10

444.44

206.52

510

474

163

12

85.96

160.06

103

144

436

407

25

215.46

226.19

237

247

364

418

424

26

307.42

337.35

319

332

503

477

488

542

31

43.86

70.66

60

91

87

10.5

4.02

21

17

46

118.19

125.79

102

85

89

681

615

641

631

49

217.42

273.40

229

225

100

306

224

296

262

54

113.27

107.55

127

127

103

69.1

61.1

62

56

59

178.93

157.07

166

159

111

37.1

40.2

55

53

61

157.17

259.69

230

164

46.17

50.37

16.91

418.09

65

391.26

393.41

429

398

174.95

123.49

133.27

130.85

66

385.65

299.07

479

459

136869

113449

139435

137792

80

518.43

506.08

503

547

87

13.69

13.53

10

13

89

587.43

523.61

610

619

100

246.87

243.55

258

270

103

138.74

124.77

77

41

111

146.12

135.97

79

61

87.71

60.22

6.67

502.74

116.54

111.87

123.94

122.72

140332

153637

150384

152738

Average Time
( minutes )

Observation
Total Loss ( MW )
Fitness
Fuel Cost ($ / MWh)

Following the same idea, the graphs in Fig. 2


below illustrate all the fitness for IEEE 118 bus
system corresponding to tabularize data in Table II
for the four optimization techniques.

Average Time
( minutes )

Fitness
Total Loss ( MW )

Observation
Fuel Cost ($ / MWh)

As referred to Table III, it shows that the


proposed new approach, ATBFOA, is able to
provide the final solution that gives the minimum
overall system losses of 111.87129 MW as
compared to the other computational methods. This
fewer losses ATBFOA also computed in least
convergence time from BFOA and Meta EP as
charted in Fig 3. below.

Fig. 2. Illustration of all the fitness for IEEE 118


bus system.

ISBN: 978-960-474-349-0

229

Recent Advances in Circuits, Systems and Automatic Control

Generation, Transmission & Distribution, IET,


vol. 2, pp. 556-565, 2008.
[4] S. Panta, S. Premrudeepreechacharn, S.
Nuchprayoon, C. Dechthummarong, S.
Janjommanit, and S. Yachiangkain, "Optimal
economic dispatch for power generation using
artificial
neural network," in
Power
Engineering Conference, 2007. IPEC 2007.
International, 2007, pp. 1343-1348.
[5] W. Nakawiro and I. Erlich, "A Combined GAANN Strategy for Solving Optimal Power Flow
with Voltage Security Constraint," in Power
and Energy Engineering Conference, 2009.
APPEEC 2009. Asia-Pacific, 2009, pp. 1-4.
[6] [6] Y. S. Brar, J. S. Dhillon, and D. P. Kothari,
"Multiobjective Load Dispatch Based on
Genetic-Fuzzy Technique," in Power Systems
Conference and Exposition, 2006. PSCE '06.
2006 IEEE PES, 2006, pp. 931-937.
[7] A. M. A. A. Joned, I. Musirin, and R. Titik
Khawa Abdul, "Solving Dynamic Economic
Dispatch Using Evolutionary Programming," in
Power and Energy Conference, 2006. PECon
'06. IEEE International, 2006, pp. 144-149.
[8] D. N. Jeyakumar, P. Venkatesh, and K. Y. Lee,
"Application of Multi Objective Evolutionary
Programming
to
Combined
Economic
Emission Dispatch Problem," in Neural
Networks, 2007. IJCNN 2007. International
Joint Conference on, 2007, pp. 1162-1167.
[9] P. Venkatesh and K. Y. Lee, "Multi-Objective
Evolutionary Programming for Economic
Emission Dispatch problem," in Power and
Energy Society General Meeting - Conversion
and Delivery of Electrical Energy in the 21st
Century, 2008 IEEE, 2008, pp. 1-8.
[10] J. G. Vlachogiannis and K. Y. Lee, "QuantumInspired Evolutionary Algorithm for Real and
Reactive Power Dispatch," Power Systems,
IEEE Transactions on, vol. 23, pp. 1627-1636,
2008.
[11] K. Cheng-Chien, "A Novel Coding Scheme for
Practical Economic Dispatch by Modified
Particle Swarm Approach," Power Systems,
IEEE Transactions on, vol. 23, pp. 1825-1835,
2008.
[12] T. Thakur, K. Sem, S. Saini, and S. Sharma, "A
Particle Swarm Optimization Solution to NO2
and SO2 Emissions for Environmentally
Constrained Economic Dispatch Problem," in
Transmission & Distribution Conference and
Exposition: Latin America, 2006. TDC '06.
IEEE/PES, 2006, pp. 1-5.

Fig. 3. Illustration of all the fitness for IEEE 118


bus system.
As in previous objective function in section A,
the novel ATBFOA is the best optimization
techniques among these four computational
routines. Finally, the capability of this new
ATBFOA is promoted to be an efficient, cost saving
and reliable as an optimization tool in solving an
economic load dispatch difficulty.

6 Conclusion
Economic load dispatch is an important element in
order to maintain an efficient power system load
management. Accordingly, this research is working
thoroughly on the novel ATBFOA to meet a
minimum single objective function in section 5.1
and 5.2 earlier. Then, the evaluation with other
iteration techniques was finished in previous section
in order to confirm the capability of this bacterial
optimization strategy. In overall, based on the result
obtained, it proves that the novel ATBFOA has
outperformed other mentioned optimization
routines.

References:
[1] B. H. Chowdhury and S. Rahman, "A review of
recent advances in economic dispatch," Power
Systems, IEEE Transactions on, vol. 5, pp.
1248-1259, 1990.
[2] A. Jaini, I. Musirin, N. Aminudin, M. M.
Othman, and T. K. A. Rahman, "Particle swarm
optimization (PSO) technique in economic
power dispatch problems," in Power
Engineering and Optimization Conference
(PEOCO), 2010 4th International, pp. 308-312.
[3] B. K. Panigrahi and V. R. Pandi, "Bacterial
foraging optimisation: Nelder-Mead hybrid
algorithm for economic load dispatch,"

ISBN: 978-960-474-349-0

230

Recent Advances in Circuits, Systems and Automatic Control

[13] P. Erdogmus, A. Ozturk, and S. Duman,


"Environmental/Economic Dispatch using
Genetic Algorithm and Simulated Annealing,"
in Electric Power and Energy Conversion
Systems, 2009. EPECS '09. International
Conference on, 2009, pp. 1-4.
[14] I. A. Farhat and M. E. El-Hawary, "Modified
bacterial foraging algorithm for optimum
economic dispatch," in Electrical Power &
Energy Conference (EPEC), 2009 IEEE, 2009,
pp. 1-6.
[15] K. M. Passino, "Biomimicry of bacterial
foraging for distributed optimization and
control," Control Systems Magazine, IEEE, vol.
22, pp. 52-67, 2002.

ISBN: 978-960-474-349-0

[16] K. Y. Lee and F. F. Yang, "Optimal reactive


power planning using evolutionary algorithms:
a comparative study for evolutionary
programming, evolutionary strategy, genetic
algorithm, and linear programming," Power
Systems, IEEE Transactions on, vol. 13, pp.
101-108, 1998.
[17] S. Mishra, "Hybrid least-square adaptive
bacterial foraging strategy for harmonic
estimation," Generation, Transmission and
Distribution, IEE Proceedings-, vol. 152, pp.
379-389, 2005.
[18] C. Hanning, Z. Yunlong, and H. Kunyuan,
"Cooperative Bacterial Foraging algorithm for
global Optimization," in Control and Decision
Conference, 2009. CCDC '09. Chinese, 2009,
pp. 3896-3901.

231

You might also like