\section{Introduction}
\lettrine[lines=2]{E}{conomic} Load Dispatch (ELD) is a fundamental problem in power system control and operation. The goal for ELD is to find a best feasible power generation schedule with a minimal fuel cost, while satisfying the generation constraints of the power units \cite{WoodWollenberg1984PowerGenerationOperation}. In the canonical formulation of ELD, the fuel costs of power units are represented by quadratic functions, which are convex and can be easily solved using mathematical programming methods. Many classical methods have been employed to solve ELD in the past decades, e.g., the gradient method \cite{DoduMartinMerlinPouget1972optimalformulationand}, the lambda iteration method \cite{ChenWang1993Branchandbound}, and quadratic programming \cite{FanZhang1998Realtimeeconomic}. These methods have also been employed to solve other optimization problems in power system like the Unit Commitment problem \cite{YuLiLam2013OptimalV2GScheduling} and the Optimal Power Flow problem \cite{JanChen1995ApplicationfastNewton}.

Although the convex, differentiable, and monotonically increasing canonical formulation of ELD is simple to solve, it is unrealistic because valve-point effects (VPE), multi-fuel options (MFO), and prohibited operating zones (POZ) are not considered. However, all these factors shall be accounted for in the real-world industrial production process. Incorporating these factors, the modern ELD is represented by a non-convex, non-continuous, and non-differentiable optimization problem with many equality and inequality constraints, making it very challenging to find the global optimum solution. For the sake of simplicity, ELD is used to refer to the modern formulation of the problem hereafter.

Despite the complexity of the problem, a number of techniques have been devised to solve ELD in the past decade, e.g., Tabu search \cite{LinChengTsay2002improvedtabusearch}, Taguchi method \cite{LiuCai2005Taguchimethodsolving}, and variants of particle swarm optimization \cite{Gaing2003Particleswarmoptimization,ParkJeongShinLee2010ImprovedParticleSwarm}. Evolutionary algorithms (EAs) also play an important role in solving ELD problems. Currently most state-of-the-art solvers for ELD are EAs and their variants according to the analysis in \cite{ZhanWuGuoZhou2015EconomicDispatchWith}.

Social Spider Algorithm (SSA) is a recently proposed evolutionary algorithm to solve global numerical optimization problems \cite{YuLi2015SocialSpiderAlgorithm}. By mimicking the foraging behavior of the social spiders, SSA explores and exploits the solution space in an iterative manner. In the formulation of SSA, searching information is propagated among the individuals, i.e., spiders, through the means of vibrations, which are lossy. In addition to this lossy information feature, SSA also incorporates a new social animal foraging model, namely, the information sharing model \cite{ClarkMangel1984ForagingandFlocking}. In this model, individuals in a population perform searching and joining behaviors simultaneously, which could potentially result in improved searching efficiency \cite{YuLi2015SocialSpiderAlgorithm,Uetz1992Foragingstrategiesspiders}. The reasons leading to the outstanding performance of SSA have been investigated in \cite{YuLi2015SocialSpiderAlgorithm}, and the improvements are mainly credited to the unique design of the information loss scheme and the searching pattern. Besides its superiority in solving optimization benchmark problems \cite{YuLi2015SocialSpiderAlgorithm}, SSA has also demonstrated its potential to be applied to address real world complex optimization problems \cite{YuLi2014BaseStationSwitching}. This makes it a good candidate to generate outstanding power schedules for ELD.

In this paper, we propose a variant of SSA to solve ELD problem, accounting for VPE, MFO, POZ, and power line loss. The advantage of our proposed algorithm is that it can generate more cost-efficient power schedules when compared with other algorithms. The rest of the paper is organized as follows. We first introduce the related work in Section \ref{sec:related}. Section \ref{sec:eld} presents the formulation of ELD with VPE, MFO, POZ, and power line loss. Our proposed algorithm is elaborated in Section \ref{sec:ssa}, and simulation problems, results, and comparisons are shown in Section \ref{sec:simr}. Finally we conclude this paper in Section \ref{sec:conclusion}.

\section{Related Work}\label{sec:related}

Over the past decades, many methods have been developed to solve ELD. Lin and Viviani proposed a hierarchical numerical method to solve the economic dispatch problem with piecewise quadratic cost functions \cite{LinViviani1984HierarchicalEconomicDispatch}. In this work the authors considered multiple intersecting cost functions for each generator, which is an analogy of MFO. A similar formulation of the problem is addressed by Park \textit{et al.} \cite{ParkKimEomLee1993Economicloaddispatch} with hopfield neural networks. This work is among the first attempts of adopting computational intelligence methodologies in solving ELD. Lee \textit{et al.} later proposed an adaptive hopfield neural network to solve the same problem \cite{LeeSode-YomePark1998AdaptiveHopfieldneural}. Their algorithm introduced a slope adjustment and bias adjustment method to speed up the convergence of the hopfield neural network system with adaptive learning rates. Lee and Breipohl proposed a decomposition technique to solve ELD with POZ \cite{LeeBreipohl1993Reserveconstrainedeconomic}. Their algorithm decomposes the nonconvex decision space into subsets which can be solved via the conventional Lagrangian relaxation approach. Binetti proposed a distributed algorithm based on the auction techniques and consensus protocols to solve ELD \cite{BinettiDavoudiNasoTurchianoLewis2014DistributedAuctionBased}. In their work, each power unit locally evaluates its possible fuel costs as bids. The bids are later employed in the auction mechanism to come up with a consensus. A very recent work by Zhan \textit{et al.} proposed a dimensional steepest decline method \cite{ZhanWuGuoZhou2015EconomicDispatchWith}. This method utilizes the local minimum analysis of the ELD problem to reduce the solution space to singular points.

Besides the above non-EA approaches, many EA methods have also been developed to solve various formulations of ELD. Orero and Irving proposed a simple Genetic Algorithm (GA) to solve ELD with POZ \cite{OreroIrving1996Economicdispatchgenerators}. Besides the standard GA, this work also devised a deterministic crowding GA model to solve the problem. Chiang developed an improved GA with the multiplier updating scheme for ELD with VPE and MFO \cite{Chiang2005Improvedgeneticalgorithm}. In this work, the proposed GA is incorporated with an improved evolutionary direction operator. In addition, the tailor-made migration operator efficiently searches the solution space. He \textit{et al.} proposed a hybrid GA approach to solve ELD with VPE \cite{HeWangMao2008hybridgeneticalgorithm}. The algorithm proposed is a hybrid GA with differential evolution (DE) and sequential quadratic programming (SQP). Sinha \textit{et al.} developed an Evolutionary Programming (EP) method to solve ELP with VPE \cite{SinhaChakrabartiChattopadhyay2003Evolutionaryprogrammingtechniques}. Pereira-Neto \textit{et al.} proposed an Evolutionary Strategy (ES) method to solve ELP with VPE and POZ \cite{Pereira-NetoUnsihuaySaavedra2005Efficientevolutionarystrategy}. DE has also been adapted to solve ELD \cite{WangChiouLiu2007Nonsmoothnonconvex,NomanaIb2008Differentialevolutioneconomic}.

Swarm Intelligence (SI), a branch of EA, has also attracted researchers' attention. Particle Swarm Optimization (PSO) has made a significant contribution in solving ELD problems. Selvakumar and Thanushkodi proposed a ``new PSO'' based on the classical PSO for ELD with VPE, MFO, and POZ \cite{SelvakumarThanushkodi2007NewParticleSwarm}. They manipulated the cognitive searching behavior in PSO to facilitate the solution space exploration. They also proposed an anti-predatory PSO in \cite{SelvakumaraThanushkodi2008Antipredatoryparticle}. In this algorithm, a new anti-predator scheme is modeled and introduced in the classical PSO. Chaturvedi \textit{et al.} proposed a hierarchical PSO for ELD with VPE and POZ \cite{ChaturvediGwaliorPanditSrivastava2008SelfOrganizingHierarchical}. In this work, a time-varying acceleration coefficient is introduced to act as the inertia factor of PSO. Meng \textit{et al.} proposed a Quantum PSO for ELD with VPE \cite{MengWangDongWong2010QuantumInspiredParticle}. Their algorithm demonstrated strong searching ability and fast convergence speed, which are contributed by the introduction of quantum computing theory, self-adaptive probability selection, and chaotic sequence mutation. Safari and Shayeghi developed an Iteration PSO for ELD with VPE and POZ \cite{SafariaShayeghi2011Iterationparticleswarm}. Besides the conventional global best (\textit{gBest}) and personal best (\textit{pBest}) positions considered in canonical PSO, the proposed algorithm also considers an iteration best (\textit{iBest}) position in the searching process. Nature-inspired EAs also yield satisfactory results in solving ELD variants. Some outstanding ones are Bee Colony Optimization Algorithm \cite{KumaraSaduaKumaraPanda2012novelmultiobjective}, Biogeography-Based Optimization \cite{BhattacharyaChattopadhyay2010BiogeographyBasedOptimization}, Ant Swarm Optimization \cite{CaiLiLiPengYang2012fuzzyadaptivechaotic}, Harmony Search Algorithm \cite{SantosMariani2009improvedharmonysearch}, and Chemical Reaction Optimization \cite{RoyBhuiPaul2014Solutioneconomicload}.

\section{Economic Load Dispatch Problem}\label{sec:eld}

The objective of the ELD problem is to find an optimal power generation schedule with minimal fuel cost while satisfying different power system operating constraints, including power unit and load balancing constraints. In this paper we adopt the formulation described in \cite{ZhanWuGuoZhou2015EconomicDispatchWith} and \cite{RoyBhuiPaul2014Solutioneconomicload}. The problem is formulated on one-hour time spans.

\subsection{Objective Function}

The objective function of ELD is defined as follows:
\begin{equation}\label{eqn:eld}
	\min_P \sum^n_{i=1}F_i^c(P_i),
\end{equation}
where $n$ is the total number of power units, $F_i^c(P_i)$ is the fuel cost function for the $i$th power unit, and $P_i$ is the power generation for the $i$th power unit according to the power generation schedule.

\subsubsection{Valve-point Effect}

Conventionally the fuel cost of power units are formulated by a quadratic function with the following form:
\begin{equation}
	F_i^c = a_i + b_iP_i + c_iP_i^2,
\end{equation}
where $a$, $b$, and $c$ are constant coefficients determined by the physical characteristics of the power units. However, the fuel cost function exhibits a larger variation in practice due to VPE, which generates ripple like effect during the valve-opening process of multi-valve units. A more precise formulation with both a quadratic component and a rectified sinusoidal component is adopted. In (\ref{eqn:eld}), the fuel cost is defined by
\begin{equation}\label{eqn:vpe}
	F_i^c = a_i + b_iP_i + c_iP_i^2 + |e_i\sin(f_i(P^{\textit{min}}_i)-P_i)|,
\end{equation}
where $e$ and $f$ are new coefficients describing VPE, and $P^{\textit{min}}_i$ is the minimum power generation for the $i$th power unit in the system.

\subsubsection{Multi-fuel Options}

Modern power units can be operated with multiple fuels \cite{ZhanWuGuoZhou2015EconomicDispatchWith}, and each fuel has a different fuel cost function. The unit will always utilize the fuel with a minimum fuel cost given a specified power generation requirement. Thus the fuel cost defined in (\ref{eqn:vpe}) is further modified to reflect the effects of multiple fuel options. A piecewise quadratic function is adopted to calculate the fuel cost of such power units, defined as follows:
\begin{align}\label{eqn:mfo}
	F_i^c =
	\min(&a_{i,1} + b_{i,1}P_i + c_{i,1}P_i^2 + |e_{i,1}\sin(f_{i,1}(P^{\textit{min}}_i)-P_i)|, \notag\\
				 &a_{i,2} + b_{i,2}P_i + c_{i,2}P_i^2 + |e_{i,2}\sin(f_{i,2}(P^{\textit{min}}_i)-P_i)|, \notag\\
				 &\cdots, \notag\\
				 &a_{i,h} + b_{i,h}P_i + c_{i,h}P_i^2 + |e_{i,h}\sin(f_{i,h}(P^{\textit{min}}_i)-P_i)|),
\end{align}
where $a_{i,k}$, $b_{i,k}$, $c_{i,k}$, $e_{i,k}$, and $f_{i,k}$ are the fuel cost coefficients of the $k$th fuel option of the $i$th power unit, and $h$ is the total number of fuel options. Note that our formulation of MFO is different from the previous ones \cite{ZhanWuGuoZhou2015EconomicDispatchWith,RoyBhuiPaul2014Solutioneconomicload}, in which predefined power levels of switching among fuel options are listed as follows:
\begin{align}\label{eqn:mfo_old}
F_i^c =
\begin{cases}
a_{i,1} + b_{i,1}P_i + c_{i,1}P_i^2 + |e_{i,1}\sin(f_{i,1}(P^{\textit{min}}_i)-P_i)|& \text{if }P_i\in [P^{\textit{min}}_i, P_1) \\
a_{i,2} + b_{i,2}P_i + c_{i,2}P_i^2 + |e_{i,2}\sin(f_{i,2}(P^{\textit{min}}_i)-P_i)|& \text{if }P_i\in [P_1, P_2) \\
\cdots\\
a_{i,h} + b_{i,h}P_i + c_{i,h}P_i^2 + |e_{i,h}\sin(f_{i,h}(P^{\textit{min}}_i)-P_i)|& \text{if }P_i\in [P_{h-1}, P^{\textit{max}}_i]
\end{cases},
\end{align}
where $P^{\textit{max}}_i$ is the maximum power generation for the $i$th power unit, and $P_1,P_2,\cdots,P_{h-1}$ are the predefined power levels of switching fuel options. As all the formulations considering MFO makes the assumption that power units can choose fuel options freely \textit{a-priori}, our formulation is a more practical one. Meanwhile, as the predefined power levels in the simulation cases presented in Section \ref{sec:simr} were previously manipulated to make (\ref{eqn:mfo}) and (\ref{eqn:mfo_old}) equivalent, it is still fair to compare the performance of our proposed algorithm with existing ones. For example, $P_1$ value given in the previous test cases makes
\begin{align}
F_i^c = & a_{i,1} + b_{i,1}P_1 + c_{i,1}P_1^2 + |e_{i,1}\sin(f_{i,1}(P^{\textit{min}}_i)-P_1)| \notag\\
= & a_{i,2} + b_{i,2}P_1 + c_{i,2}P_1^2 + |e_{i,2}\sin(f_{i,2}(P^{\textit{min}}_i)-P_1)|.
\end{align}
Thus it is equivalent to
\begin{align}
F_i^c =
\min(&a_{i,1} + b_{i,1}P_1 + c_{i,1}P_1^2 + |e_{i,1}\sin(f_{i,1}(P^{\textit{min}}_i)-P_1)|, \notag\\
&a_{i,2} + b_{i,2}P_1 + c_{i,2}P_1^2 + |e_{i,2}\sin(f_{i,2}(P^{\textit{min}}_i)-P_1)|).
\end{align}

\subsection{Constraints}
\subsubsection{Active Power Balance}

In this formulation we take the transmission line loss into consideration. Thus the active power balance is defined as an equilibrium between generated power and load demand plus line loss:
\begin{equation}\label{eqn:const_start}
	\sum^n_{i=1}P_i = P^{\textit{demand}} + P^{\textit{loss}},
\end{equation}
where $P^{\textit{demand}}$ and $P^{\textit{loss}}$ are the load demand and line loss, respectively. The line loss is calculated by \cite{WoodWollenberg1984PowerGenerationOperation}:
\begin{equation}
	P^{\textit{loss}} = \sum^n_{i=1}\sum^n_{j=1}P_iB_{ij}P_j+\sum^n_{i=1}B_{i0}P_i+B_{00},
\end{equation}
where $B_{ij}$ are the line loss coefficients.

\subsubsection{Power Generation Constraint}

The amount of power that each power unit can generate is limited by three factors: power limits, ramp rate limits, and POZ, each of which is represented by a set of inequalities. First, the power generation shall be within each power unit's minimum and maximum limits:
\begin{equation}\label{eqn:const_gen}
	P^{\textit{min}}_i\leq P_i\leq P^{\textit{max}}_i,
\end{equation}
where $P^{\textit{min}}_i$ and $P^{\textit{max}}_i$ are the minimum and maximum power output of the $i$th power unit, respectively. Second, ramp rates are employed to prevent severe power output changes, which are actually restricted by the physical properties of the power units. The operating ranges of all units are limited by their corresponding ramp rates:
\begin{equation}\label{eqn:ramp_rate}
	P^{\textit{prev}}_i-P^{\textit{DR}}\leq P_i\leq P^{\textit{prev}}_i+P^{\textit{UR}},
\end{equation}
where $P^{\textit{prev}}_i$ is the previous power output of the $i$th power unit, $P^{\textit{DR}}$ and $P^{\textit{UR}}$ are the ramp down and ramp up limits, respectively. Sometimes the entire operating range may not be completely feasible to the power unit due to physical operation limitations. Such power units have one or multiple power output ranges that are forbidden to the units. Therefore, additional constraints are introduced for the power units with POZ:
\begin{equation}\label{eqn:const_stop}
	P_i\in[P^{\textit{min}}_i, P^{\textit{l,1}}_i]\cup[P^{\textit{u,1}}_i, P^{\textit{l,2}}_i]\cup\cdots\cup[P^{\textit{u,z}}_i, P^{\textit{max}}_i],
\end{equation}
where $P^{\textit{l,r}}_i$ and $P^{\textit{u,r}}_i$ are the $r$th POZ of the $i$th power unit, and $z$ is the total number of POZs.

\section{Proposed Approach Based on Social Spider Algorithm}\label{sec:ssa}

SSA was recently proposed by Yu and Li \cite{YuLi2015SocialSpiderAlgorithm} to solve global numerical optimization problems. It is a general-purpose swarm intelligence algorithm utilizing the foraging behavior of the social spiders to perform optimization tasks. SSA was initially designed to solve continuous unconstrained problems, and we made several essential modifications to adapt the algorithm to solve ELD efficiently.

\subsection{Spider}

Spiders are the basic operating agents of SSA. In SSA, the solution space of an optimization problem is formulated as a hyper-dimensional spider web $S$ on which the spiders can move freely. Each position on the web corresponds to a feasible solution to the optimization problem. The spider web also serves as a transmission media for the vibrations generated by the spiders.

Each spider, say the $i$th spider in the population, in SSA is characterized by two properties, namely, its position $P_i(t)\in S$ and fitness value $f(P_i(t))$, where $t$ is the current iteration index and $f(x)$ is the objective function. In addition, each spider holds several attributes which are utilized to guide its random walk process when searching the solution space. The searching pattern will be introduced later and these attributes are:
\begin{itemize}
	\item The target vibration $V_i^{\textit{tar}}$.
	\item The inactive degree $d_i^{\textit{in}}$.
	\item The movement in the previous iteration $|P_i(t)-P_i(t-1)|$.
	\item The dimension mask\footnote{A 0-1 binary vector of length equals to the dimension of the optimization problem.} $M_i$.
\end{itemize}

\subsection{Vibration}

The vibrations represent a key design of SSA. It distinguishes SSA from other swarm intelligence algorithms and incorporates the lossy information idea into meta-heuristic algorithm design.

According to observations, the spiders are extremely sensitive to the vibrations propagated over the spider web. They are able to distinguish different vibrations from all directions and tell their intensities \cite{Uetz1992Foragingstrategiesspiders}. In SSA design, a vibration will be generated whenever a spider performs an arbitrary movement. The vibration carries the optimization information of the corresponding spider, and is propagated to and received by others in the same population. In such a way, the population of spiders share their personal experience and form a communal knowledge of the solution space.

The vibrations in SSA are characterized by two properties, namely, its source location $L_i\in S$ and the intensity at its source $T_i\in[0,+\infty)$. In iteration $t$, whenever a spider moves to a new position $P_i(t)$, it generates a vibration at this position $L_i = P_i(t)$ with an intensity calculated based on the fitness value of the position\footnote{We only study minimization problems in this paper. In such cases, smaller objective values are translated into larger intensity values using (\ref{eqn:intensity}).}:
\begin{equation}\label{eqn:intensity}
	T_i = \log(\frac{1}{f(P_i(t)) - C}+1),
\end{equation}
where $C$ is a confidently small constant. The introduction of $C$ is to guarantee the feasibility of the $\log$ term in (\ref{eqn:intensity}). The values of $C$ will be elaborated later.

 A vibration, after being generated, will attenuate when propagated over the spider web. Thus upon receipt, the spiders can only get partial information of the vibration's source location and its attenuated intensity. The vibration attenuation process is defined as follows:
\begin{equation}\label{eqn:attenuation}
	T_i^{\textit{D}} = T_i\times\exp(-\frac{D}{\overline{\sigma}\times r_a}),
\end{equation}
where $T_i^{\textit{D}}$ is the attenuated intensity after being propagated over a distance $D$, $\overline{\sigma}$ is the mean of the standard deviation of the population's positions over all dimensions, and $r_a\in(0, +\infty)$ is the attenuation rate, which is a user-controlled parameter.

\subsection{Iteration}

The complete optimization process of SSA is divided into three phases: initialization, iteration, and final phase, where the most notable one is the iteration phase. This phase is constituted of several steps, namely, fitness evaluation, vibration processing, mask changing, random walk, and constraint handling.

Each iteration starts with the fitness evaluation step, where the fitness value of each spider in the population is evaluated and stored. It is worth mentioning that the fitness evaluation process is conducted once and only once per iteration.

After all fitness values are evaluated, each spider will generate a vibration at its current position using (\ref{eqn:intensity}). The vibrations are then propagated over the spider web using (\ref{eqn:attenuation}), and received by all other spiders. Upon receipt of all vibrations, each spider will select the one with the largest attenuated intensity, denoted by $V_i^{\textit{rcv}}$, and compare it with $V_i^{\textit{tar}}$. If $V_i^{\textit{rcv}}$ is larger, it is stored as the new $V_i^{\textit{tar}}$. In such cases the inactive degree $d_i^{\textit{in}}$ is reset to zero. Otherwise $V_i^{\textit{tar}}$ remains unchanged and $d_i^{\textit{in}}$ is incremented by one.

In SSA, the movements of spiders are guided by both $V_i^{\textit{tar}}$ and $M_i$. $M_i$ is manipulated after $V_i^{\textit{tar}}$ is determined. In this mask-changing step two user-controlled parameters, $p_c$ and $p_m$, are introduced and used to modify $M_i$. At the beginning of this step, each spider will decide whether its $M_i$ shall be changed, and the probability of changing is $1-{p_c}^{d_i^{\textit{in}}}$. If $M_i$ is determined to be modified, each bit of $M_i$ has a probability $p_m$ to be assigned with a one, and $1-p_m$ to be a zero. If all bits are set to zero, a random bit is changed to one in order to avoid getting stuck in local optima \cite{YuLi2015SocialSpiderAlgorithm}.

When all dimension masks are determined, each spider will perform a random walk, and then employ the constraint-handling scheme to repair the possible infeasible solutions generated in the previous step. These two steps are substantially modified to solve ELD, as elaborated below.

\subsection{Random Walk with Chaotic Sequence Based Memory Factor}

When an iteration of SSA proceeds to the random walk step, each spider shall hold updated $V_i^{\textit{tar}}$, $M_i$, and a collection of received vibrations. These pieces of information are utilized to construct a target position $P_i^\textit{tar}$ as follows:
\begin{equation}
	(P_i^\textit{tar})_j =
	\begin{cases}
	(V_i^{\textit{tar}})_j & \text{if }(M_i)_j = 0 \\
	(V_i^{\textit{rand}})_j & \text{if }(M_i)_j = 1 \\
	\end{cases},
\end{equation}
where $(P_i^\textit{tar})_j$ is the $j$th element of $P_i^\textit{tar}$, $(V_i^{\textit{tar}})_j$ is the $j$th element of the source location of $V_i^\textit{tar}$, $V_i^{\textit{rand}}$ is a random vibration received by the spider, and $(M_i)_j$ is the $j$th bit of $M_i$.

With the generated $P_i^\textit{tar}$, here we introduce a chaotic sequence based memory factor into the random walk process. Chaotic sequences has been employed in controlling the optimization process of many swarm intelligence algorithms \cite{ParkJeongShinLee2010ImprovedParticleSwarm,AraujoS.2008Particleswarmapproaches}. In our proposed algorithm, we employ a logistic map iterator to emulate the dynamic system with chaotic behavior \cite{CaponettoFortunaFazzinoXibilia2003Chaoticsequencesto}:
\begin{equation}
	\gamma_t = \mu\gamma_{t-1}(1-\gamma_{t-1}),
\end{equation}
where $\mu$ is a control parameter and is set to four in this paper. $\gamma_t$ is the chaotic parameter at iteration $t$, randomly generated in $(0.75,1)$ in this paper.

In addition, we introduce a new memory factor to control the impact of past behavior on the spider's random walk. In previous work \cite{YuLi2015SocialSpiderAlgorithm,YuLi2015ParameterSensitivityAnalysis}, the random walk formula is defined as follows:
\begin{equation}
	P_i(t+1) = P_i(t) + (P_i(t) - P_i(t-1))\times\delta+(P_i^\textit{tar} - P_i(t))\odot R,
\end{equation}
where $\delta$ is randomly generated in $(0,1)$, $R\sim U(0,1)$ is a vector of random numbers, and $\odot$ is the element-wise multiplication operation. In our formulation, $\delta$ is considered as the memory factor, and defined as follows:
\begin{equation}
	\delta(t) = \gamma_t(\omega^{\textit{max}}-\frac{\omega^{\textit{max}} - \omega^{\textit{min}}}{\textit{iter}^{\textit{max}}}\times t),
\end{equation}
where $\omega^{\textit{max}}$ and $\omega^{\textit{min}}$ are the maximum and minimum memory strengths, respectively. $\textit{iter}^{\textit{max}}$ is the maximum allowed iteration count, which is a stopping criteria. The design of $\omega$ terms is similar to the descending inertia weight approach used in PSO \cite{ParkJeongShinLee2010ImprovedParticleSwarm}.

\subsection{Power Schedule Repairing Scheme}

After the random walk step, the spiders in the population are assigned with new positions. However, as their positions are not checked against the constraints of ELD, namely, (\ref{eqn:const_start})--(\ref{eqn:const_stop}), an additional constraint-handling scheme shall be incorporated to repair the infeasible solutions.

We first consider the power generation constraints, i.e., (\ref{eqn:const_gen})--(\ref{eqn:const_stop}). In these constraints, several power levels are designed to limit the available power outputs: $P^{\textit{min}}_i$, $P^{\textit{max}}_i$, $P^{\textit{prev}}_i-P^{\textit{DR}}$,  $P^{\textit{prev}}_i+P^{\textit{UR}}$, $P^{\textit{l,r}}_i$, and $P^{\textit{u,r}}_i$. If an element $p_i$ in the checked power schedule (spider position) $P$ is infeasible for (\ref{eqn:const_gen})--(\ref{eqn:const_stop}), $p_i$ is set to the power level which is closest to the original $p_i$. Thus a boundary absorbing technique \cite{ChuGaoSorooshian2011Handlingboundaryconstraints} is employed to address (\ref{eqn:const_gen})--(\ref{eqn:const_stop}).

After all power outputs satisfy the boundary constraints, the active power balance constraint (\ref{eqn:const_start}) is checked. The deficit energy is calculated as follows:
\begin{equation}
	P^{\textit{dfc}} = P^{\textit{demand}} + P^{\textit{loss}} - \sum^n_{i=1}P_i.
\end{equation}
Then a repairing operation is repeated until $P^{\textit{dfc}} = 0$. The scheme first randomly selects the $g$th power unit and then calculates its remaining capacity:
\begin{equation}
	P^{\textit{cap}}_g =
	\begin{cases}
	{P^{\textit{max}}_g}^* - p_g & P^{\textit{dfc}} > 0 \\
	{P^{\textit{min}}_g}^* - p_g & P^{\textit{dfc}} < 0 \\
	\end{cases},
\end{equation}
where ${P^{\textit{max}}_g}^*$ and ${P^{\textit{min}}_g}^*$ are the maximum and minimum power outputs in the current allowed operating zone. For the test instances without POZ, ${P^{\textit{max}}_g}^* = P^{\textit{max}}_g$ and ${P^{\textit{min}}_g}^* = P^{\textit{min}}_g$. Otherwise ${P^{\textit{max}}_g}^* = \min\{P^{\textit{max}}_g, P^{\textit{l,q}}_g\}$, where $P^{\textit{l,q}}_g$ is the closest lower limit of all POZs.
${P^{\textit{min}}_g}^* = \max\{P^{\textit{min}}_g, P^{\textit{u,q}}_g\}$, where $P^{\textit{u,q}}_g$ is the closest upper limit of all POZs. After $P^{\textit{cap}}_g$ is calculated, $p_g$ and $P^{\textit{dfc}}$ are manipulated according to the following:
\begin{align}
P^\textit{ch} =&
\begin{cases}
\min\{P^{\textit{cap}}_g\times r, P^{\textit{dfc}}\} & P^{\textit{dfc}} > 0 \\
\max\{P^{\textit{cap}}_g\times r, P^{\textit{dfc}}\} & P^{\textit{dfc}} < 0 \\
\end{cases},\\
p_g \leftarrow& p_g + P^\textit{ch}, \\
P^{\textit{dfc}} \leftarrow& P^{\textit{dfc}} - P^\textit{ch}.
\end{align}

This repairing scheme will work for test instances without POZ. However, for some rare cases with POZ, it is possible that $\sum^n_{g=1}P^{\textit{cap}}_g$ is not sufficient to cover $P^{\textit{dfc}}$ due to the limitation of POZ. In such a case, the power output of a random unit is set to the closest upper limit of all POZs, i.e., $p_g=\min\{P^{\textit{u,q}}_g|P^{\textit{u,q}}_g>p_g\}$, and the repairing scheme is conducted again until constraint (\ref{eqn:const_start}) is satisfied. A pseudocode of the modified SSA with the proposed ELD-specific schemes is presented in Algorithm \ref{alg:ssa}.

\begin{algorithm}
	\caption{\sc{Modified Social Spider Algorithm for Economic Load Dispatch Problem}}
	\begin{algorithmic}[1]
		\State Assign values to the parameters of SSA.
		\State Create the population of spiders $pop$ and assign memory for them.
		\State Initialize $V_i^\textit{tar}$ for each spider.
		\While {stopping criteria not met}
		\For {\textbf{each} spider in $pop$}
		\State Evaluate the fitness value.
		\State Generate a vibration at the spider's position.
		\EndFor
		\For {\textbf{each} spider in $pop$}
		\State Calculate the intensity of the generated vibrations.
		\State Select the strongest vibration $V_i^\textit{rcv}$.
		\If {The intensity of $V_i^\textit{rcv}$ is larger than $V_i^\textit{tar}$}
		\State Store $V_i^\textit{rcv}$ as $V_i^\textit{tar}$.
		\EndIf
		\State Update $d_i^{in}$.
		\State Generate a random number $r$ from [0,1).
		\If {$r > {p_c}^{d_i^{in}}$}
		\State Update the dimension mask $M_i$.
		\EndIf
		\State Update the logistic map iterator $\gamma_t$.
		\State Update the memory factor $\delta(t)$ with $\gamma_t$.
		\State Perform a random walk with $\delta(t)$.
		\State Address violated constraints in the power schedule using proposed repairing scheme.
		\EndFor
		\EndWhile
		\State Output the best solution found.
	\end{algorithmic}
	\label{alg:ssa}
\end{algorithm}

\section{Simulation Results and Comparisons}\label{sec:simr}

In order to benchmark the performance of our proposed SSA-based approach in solving variants of ELD, we conduct a series of simulations on test systems with different combinations of VPE, MFO, POZ, and line loss. Five different test cases are considered, where the time span for each case is one hour \cite{SinhaChakrabartiChattopadhyay2003Evolutionaryprogrammingtechniques}. In addition, the ramp rate constraint (\ref{eqn:ramp_rate}) is provided in the last two cases. For all simulations, the population size equals the number of power units, $r_a$ is set to 10, $p_c$ and $p_m$ are set to 0.9 and 0.1, respectively. Constant $C$ in (\ref{eqn:intensity}) is set to the value of the minimal fuel cost $\sum^n_{i=1}F_i^c(P^{\textit{min}}_i)$. The stopping criteria for all simulations is 100000 function evaluations, and each test system is repeated for 25 runs.

The algorithm is implemented in C++. All simulations of SSA are conducted on a personal computer with an Intel Core i7 CPU at 3.40GHz. For other algorithms, the best power schedules are obtained from the corresponding publications and the fuel costs are evaluated using these obtained solutions.

\subsection{ELD with VPE}\label{sys:1}

For this variant of ELD, two test systems are adopted for evaluation, namely, the 13-unit system \cite{SinhaChakrabartiChattopadhyay2003Evolutionaryprogrammingtechniques} and the 40-unit system \cite{SinhaChakrabartiChattopadhyay2003Evolutionaryprogrammingtechniques}. Load demand for these systems are 1800MW and 10 500MW. The system coefficients are presented in Tables \ref{tbl:13unit_config} and \ref{tbl:40unit_config}.

The performance of SSA is compared with the state-of-the-art algorithms in solving these two test systems, namely, Quantum PSO (QPSO) \cite{MengWangDongWong2010QuantumInspiredParticle}, hybrid GA (HGA) \cite{HeWangMao2008hybridgeneticalgorithm}, iteration PSO with time varying acceleration coefficients (IPSO-TVAC) \cite{SafariaShayeghi2011Iterationparticleswarm}, self-tuning hybrid DE (SHDE) \cite{WangChiouLiu2007Nonsmoothnonconvex}, fuzzy adaptive PSO with variable DE (FAPSO-VDE) \cite{NiknamMojarradMeym2011novelhybridparticle}, hybrid CRO with DE (HCRO-DE) \cite{RoyBhuiPaul2014Solutioneconomicload}, Dimensional Steepest Decline Method (DSD) \cite{ZhanWuGuoZhou2015EconomicDispatchWith}, and PSO with chaotic sequences and crossover operation (CCPSO) \cite{ParkJeongShinLee2010ImprovedParticleSwarm}. It should be noted that the total cost obtained can be different from the publication due to calculation precision issues \cite{ZhanWuGuoZhou2015EconomicDispatchWith}.

\input{tbl/tbl_sys_1}

Simulation results and best power schedules are listed in Tables \ref{tbl:13unit} and \ref{tbl:40unit}. From the tables we can see that all constraints are satisfied with the power schedule found, and the obtained solutions of the best performing algorithms (SSA, DSD, HGA, and FAPSO-VDE for 13-unit system; SSA, IPSO-TVAC, DSD, and CCSPO for 40-unit system) are quite similar. SSA outperforms others in 13-unit comparison and achieves a satisfactory performance in 40-unit system compared with other state-of-the-art algorithms. These results demonstrates the superiority of SSA in exploiting the local optimum spaces.

The average computation times for SSA are 0.474 and 0.569 seconds for the 13 and 40-unit systems, respectively. As a reference, the corresponding simulation times for FAPSO-VDE were 4.1 and 22 seconds with an Intel Pentium IV CPU at 3.0GHz \cite{NiknamMojarradMeym2011novelhybridparticle}, which can be roughly translated into approximately 2 and 12 seconds on our simulation platform, respectively. Typically ELD is usually considered with the Unit Commitment Problem, which makes power generation schedules on a per-hour basis. In such cases a computational time of several seconds is not as significant when compared with the optimization time frame. However, with the introduction of fast-changing renewable energy sources to the conventional grid, in the future, a smaller response time for such generation optimization problems will be required and it will be necessary to achieve a faster computational speed.

\subsection{ELD with VPE and MFO}

For ELD with VPE and MFO, we employ a 10-unit system \cite{Chiang2005Improvedgeneticalgorithm} for comparison. Load demand for this system is 2700MW. The system coefficients are presented in Table \ref{tbl:10unit_config}.

The performance of SSA is compared with the state-of-the-art algorithms in solving this test system, namely, QPSO, PSO with local random search (PSO-LRS) \cite{SelvakumarThanushkodi2007NewParticleSwarm}, new PSO with local random search (NPSO-LRS) \cite{SelvakumarThanushkodi2007NewParticleSwarm}, PSO with the constriction factor and inertia weight with a real-valued mutation (CBPSO-RVM) \cite{LuSriyanyongSongDillon2010Experimentalstudynew}, improved GA
with multiplier updating (IGA-MU) \cite{Chiang2005Improvedgeneticalgorithm}, HCRO-DE, and DSD. The simulation results and comparison are presented in Table \ref{tbl:10unit}. The average computation time is 0.510 second.

\input{tbl/tbl_sys_2}

From the simulation results it is clear that SSA again outperforms all compared algorithms in solving this ELD with VPE and MFO problem. In this comparison, the best power schedules found by the compared algorithms have some differences in terms of the outputs of the power units. A preliminary guess of the reason to this condition is that the solution space for ELD problems considering MFO is more complex than that with only VPE. This may potentially result in algorithms getting stuck in the local optima.

\subsection{ELD with POZ and Line Loss}

For ELD with POZ and line loss characteristics, we employ two test systems for comparison, namely, a 6-unit system \cite{Gaing2003Particleswarmoptimization} and a 15-unit system \cite{Gaing2003Particleswarmoptimization}. Load demand for these systems are 1263MW and 2630MW, respectively. The system coefficients are presented in Tables \ref{tbl:6unit_config} and \ref{tbl:15unit_config}, and line loss coefficients are listed in \cite{Gaing2003Particleswarmoptimization}.

The performance of SSA is compared with the state-of-the-art algorithms in solving these two test systems, namely, QPSO, NPSO-LRS, IPSO-TVAC, bacterial foraging optimization (BFO) \cite{PanigrahiPandi2008Bacterialforagingoptimisation}, improved PSO (IPSO) \cite{Gaing2003Particleswarmoptimization}, elitist GA (EGA) \cite{Gaing2003Particleswarmoptimization}, HCRO-DE, simple PSO (SPSO) \cite{ChaturvediGwaliorPanditSrivastava2008SelfOrganizingHierarchical},	passive congregation-based PSO (PC-PSO) \cite{ChaturvediGwaliorPanditSrivastava2008SelfOrganizingHierarchical}, self-organizing hierarchical PSO (SOH-PSO) \cite{ChaturvediGwaliorPanditSrivastava2008SelfOrganizingHierarchical}, firefly algorithm \cite{YangHosseiniGandomi2012FireflyAlgorithmsolving}, and CCPSO
. The simulation results and comparison are presented in Tables \ref{tbl:6unit} and \ref{tbl:15unit}. The average computation times are 0.338 and 0.574 second, respectively.

\input{tbl/tbl_sys_3}

From the simulation results we can see SSA generates the best performing power schedule among all the compared algorithms. Further investigation of the generated schedules shows that although all algorithms can successfully locate the same best performing operating zones, other algorithms are not able to further exploit the optimum sub-space.

It is worth noting that there are several published results on the 15-unit system with better fuel cost performance, i.e., smaller than \$32 662.51 obtained by SSA. However, after a careful investigation it can be observed that these results violate the ramp rate constraints. For example, the power output of the second unit in the best recorded result of \cite{Gaing2003Particleswarmoptimization} is 407.9727, which exceeds the maximum allowed power output limited by the ramp rate, which is 380. This situation may be caused by the different test instance configurations, and these infeasible solutions are not included in the comparison (except for \cite{Gaing2003Particleswarmoptimization}, in which the test case was proposed).

\subsection{Parameter Selection}

Parameter selection is critical to the optimization performance of SSA \cite{YuLi2015ParameterSensitivityAnalysis}. Although there is already related work on benchmarking the parameter sensitivity of SSA, it is still interesting to investigate and search for the optimal combination of parameters to solve ELD-like optimization problems. In order to test the impact of changing parameters on the fuel cost performance, we employ the 13-unit test system introduced in Section \ref{sys:1} and perform a parameter sweep test on the four parameters of SSA, namely, population size ($|pop|$), $r_a$, $p_c$, and $p_m$.

The simulation is conducted as follows. We first start from the previous recommended parameter setting given in \cite{YuLi2015ParameterSensitivityAnalysis}, i.e., $|pop|$/$r_a$/$p_c$/$p_m$ is 30/1.0/0.7/0.1. Then one parameter is tested against a wide range of possible values to figure out which one performs the best. This process is repeated until all four parameters are adjusted. Note that although this testing method neglects the correlations among multiple parameters, it can still generate a sub-optimal parameter combination while alleviating the effort in the parameter-tuning process to the maximum extent.

\input{tbl/tbl_param}

The simulation results are presented in Table \ref{tbl:param}. The best, the mean and the standard deviation (S.D.) of the results are presented. The simulation results indicate that the best parameter combination is $|pop|$/13/10/0.9/0.1. In addition, it can be concluded that the correlation among the tested parameters for solving ELD is not significant due to the observation that the worst results for each test is comparable.

To better illustrate the convergence performance with respect to different parameter settings, the convergence results of each parameter test are plotted in Figures \ref{fig:conv_ra}, \ref{fig:conv_pc}, \ref{fig:conv_pm}, where the median ones among the 25 runs are presented. The x-axis is the function evaluation counts, and the y-axis is the best-so-far fuel cost. From the results it can be observed that the best performing parameters generally also have the fastest convergence speed.

\begin{figure}
	\includegraphics[width=\linewidth]{fig/conv_ra.pdf}
	\caption{Convergence performance of SSA with different $r_a$ values.}
	\label{fig:conv_ra}
\end{figure}
\begin{figure}
	\includegraphics[width=\linewidth]{fig/conv_pc.pdf}
	\caption{Convergence performance of SSA with different $p_c$ values.}
	\label{fig:conv_pc}
\end{figure}
\begin{figure}
	\includegraphics[width=\linewidth]{fig/conv_pm.pdf}
	\caption{Convergence performance of SSA with different $p_m$ values.}
	\label{fig:conv_pm}
\end{figure}

\section{Conclusion}\label{sec:conclusion}

In this paper we propose a new approach based on the social spider algorithm to solve the economic dispatch problem in power grid operation and control. Although the conventional ELD problem is convex and can be easily solved by mathematical programming methods, the power unit model it employs is not as precise as those considering more practical constraints, e.g., VPE, MFO, and POZ. These characteristics of power units make the optimization problem non-convex, non-differentiable, and non-continuous.

In order to efficiently solve the modern ELD problem, we propose a variant of SSA with new controlling schemes. A chaotic sequence based memory factor is introduced to control the searching pattern, where the previous movement of a spider in SSA is assigned with different degrees of importance with the process of optimization. In addition, we introduce a problem-specific power schedule repairing scheme to fix the infeasible solution generated in the random walk step. This repair scheme takes the power supper/demand and POZ constraints into account, while all other boundary constraints are handled by a boundary absorbing technique.

To evaluate the performance of our proposed SSA-based ELD solver, the approach is applied to solve five different test power systems with various numbers of power units and constraint configurations. The simulation results are compared with a wide range of the state-of-the-art algorithms in solving ELD within the employed test systems. SSA is able to find new best fuel cost solution in four out of the five systems, and can achieve the same solution quality in the remaining one. This result indicates the superiority of SSA in solving ELD with different configurations. In addition, we performed a parameter sensitivity test to develop a best performing combination of SSA parameters. The convergence performance of different parameter values are also presented for comparison. From all simulation results it can be concluded that our proposed SSA-based approach outperforms the existing state-of-the-art algorithms in solving non-convex ELD problems.

\section*{Appendix}

\input{tbl/tbl_appendix}

The system coefficients and configurations are presented in Tables \ref{tbl:13unit_config}, \ref{tbl:40unit_config}, \ref{tbl:10unit_config}, \ref{tbl:6unit_config}, and \ref{tbl:15unit_config}.

\section*{References}

\bibliographystyle{elsarticle-num}