%% bare_conf.tex
%% V1.3
%% 2007/01/11
%% by Michael Shell
%% See:
%% http://www.michaelshell.org/
%% for current contact information.
%%
%% This is a skeleton file demonstrating the use of IEEEtran.cls
%% (requires IEEEtran.cls version 1.7 or later) with an IEEE conference paper.
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
%% and
%% http://www.ieee.org/
%%*************************************************************************
%% Legal Notice:
%% This code is offered as-is without any warranty either expressed or
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE!
%% User assumes all risk.
%% In no event shall IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
%%
%% All comments are the opinions of their respective authors and are not
%% necessarily endorsed by the IEEE.
%%
%% This work is distributed under the LaTeX Project Public License (LPPL)
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
%% distributed and modified. A copy of the LPPL, version 1.3, is included
%% in the base LaTeX documentation of all distributions of LaTeX released
%% 2003/12/01 or later.
%% Retain all contribution notices and credits.
%% ** Modified files should be clearly indicated as such, including **
%% ** renaming them and changing author support contact information. **
%%
%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex,
%% bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex
%%*************************************************************************
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do ***
% *** not appear when using other class files. ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/
% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
\documentclass[conference]{IEEEtran}
% Add the compsoc option for Computer Society conferences.
%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[conference]{../sty/IEEEtran}
% Some very useful LaTeX packages include:
% (uncomment the ones you want to load)
% *** MISC UTILITY PACKAGES ***
%
\usepackage{ifpdf}
% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
% compilation based on whether the output is pdf or dvi.
% usage:
% \ifpdf
% % pdf code
% \else
% % dvi code
% \fi
% The latest version of ifpdf.sty can be obtained from:
% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
% Also, note that IEEEtran.cls V1.7 and later provides a builtin
% \ifCLASSINFOpdf conditional that works the same way.
% When switching from latex to pdflatex and vice-versa, the compiler may
% have to be run twice to clear warning/error messages.
\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
\usepackage{url}
\usepackage{hyperref}
\hypersetup{colorlinks=false,pdfborder={0 0 0}}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
\errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}
\usepackage[utf8]{inputenc}
\usepackage[ngerman,english]{babel}
% *** CITATION PACKAGES ***
%
\usepackage{cite}
% cite.sty was written by Donald Arseneau
% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
% \cite{} output to follow that of IEEE. Loading the cite package will
% result in citation numbers being automatically sorted and properly
% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
% \cite will automatically add leading space, if needed. Use cite.sty's
% noadjust option (cite.sty V3.8 and later) if you want to turn this off.
% cite.sty is already installed on most LaTeX systems. Be sure and use
% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
% not currently provide for hyperlinked citations.
% The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
% The documentation is contained in the cite.sty file itself.
% *** MATH PACKAGES ***
%
%\usepackage[cmex10]{amsmath}
% A popular package from the American Mathematical Society that provides
% many useful and powerful commands for dealing with mathematics. If using
% it, be sure to load this package with the cmex10 option to ensure that
% only type 1 fonts will utilized at all point sizes. Without this option,
% it is possible that some math symbols, particularly those within
% footnotes, will be rendered in bitmap form which will result in a
% document that can not be IEEE Xplore compliant!
%
% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
% thus preventing page breaks from occurring within multiline equations. Use:
%\interdisplaylinepenalty=2500
% after loading amsmath to restore such page breaks as IEEEtran.cls normally
% does. amsmath.sty is already installed on most LaTeX systems. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/
% *** SPECIALIZED LIST PACKAGES ***
%
%\usepackage{algorithmic}
% algorithmic.sty was written by Peter Williams and Rogerio Brito.
% This package provides an algorithmic environment fo describing algorithms.
% You can use the algorithmic environment in-text or within a figure
% environment to provide for a floating algorithm. Do NOT use the algorithm
% floating environment provided by algorithm.sty (by the same authors) or
% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
% algorithm float types and packages that provide these will not provide
% correct IEEE style captions. The latest version and documentation of
% algorithmic.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
% There is also a support site at:
% http://algorithms.berlios.de/index.html
% Also of interest may be the (relatively newer and more customizable)
% algorithmicx.sty package by Szasz Janos:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/
% *** ALIGNMENT PACKAGES ***
%
%\usepackage{array}
% Frank Mittelbach's and David Carlisle's array.sty patches and improves
% the standard LaTeX2e array and tabular environments to provide better
% appearance and additional user controls. As the default LaTeX2e table
% generation code is lacking to the point of almost being broken with
% respect to the quality of the end results, all users are strongly
% advised to use an enhanced (at the very least that provided by array.sty)
% set of table tools. array.sty is already installed on most systems. The
% latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/tools/
%\usepackage{mdwmath}
%\usepackage{mdwtab}
% Also highly recommended is Mark Wooding's extremely powerful MDW tools,
% especially mdwmath.sty and mdwtab.sty which are used to format equations
% and tables, respectively. The MDWtools set is already installed on most
% LaTeX systems. The lastest version and documentation is available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/
% IEEEtran contains the IEEEeqnarray family of commands that can be used to
% generate multiline equations as well as matrices, tables, etc., of high
% quality.
%\usepackage{eqparbox}
% Also of notable interest is Scott Pakin's eqparbox package for creating
% (automatically sized) equal width boxes - aka "natural width parboxes".
% Available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/
% *** SUBFIGURE PACKAGES ***
%\usepackage[tight,footnotesize]{subfigure}
% subfigure.sty was written by Steven Douglas Cochran. This package makes it
% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
% work, it is a good idea to load it with the tight package option to reduce
% the amount of white space around the subfigures. subfigure.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at:
% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
% subfigure.sty has been superceeded by subfig.sty.
%\usepackage[caption=false]{caption}
%\usepackage[font=footnotesize]{subfig}
% subfig.sty, also written by Steven Douglas Cochran, is the modern
% replacement for subfigure.sty. However, subfig.sty requires and
% automatically loads Axel Sommerfeldt's caption.sty which will override
% IEEEtran.cls handling of captions and this will result in nonIEEE style
% figure/table captions. To prevent this problem, be sure and preload
% caption.sty with its "caption=false" package option. This is will preserve
% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later
% (recommended due to many improvements over 1.2) of subfig.sty supports
% the caption=false option directly:
%\usepackage[caption=false,font=footnotesize]{subfig}
%
% The latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
% The latest version and documentation of caption.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/
% *** FLOAT PACKAGES ***
%
%\usepackage{fixltx2e}
% fixltx2e, the successor to the earlier fix2col.sty, was written by
% Frank Mittelbach and David Carlisle. This package corrects a few problems
% in the LaTeX2e kernel, the most notable of which is that in current
% LaTeX2e releases, the ordering of single and double column floats is not
% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
% single column figure to be placed prior to an earlier double column
% figure. The latest version and documentation can be found at:
% http://www.ctan.org/tex-archive/macros/latex/base/
%\usepackage{stfloats}
% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
% the ability to do double column floats at the bottom of the page as well
% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
% LaTeX2e). It also provides a command:
%\fnbelowfloat
% to enable the placement of footnotes below bottom floats (the standard
% LaTeX2e kernel puts them above bottom floats). This is an invasive package
% which rewrites many portions of the LaTeX2e float routines. It may not work
% with other packages that modify the LaTeX2e float routines. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
% Documentation is contained in the stfloats.sty comments as well as in the
% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
% does not allow \baselineskip to stretch. Authors submitting work to the
% IEEE should note that IEEE rarely uses double column equations and
% that authors should try to avoid such use. Do not be tempted to use the
% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
% not format its papers in such ways.
\usepackage{arydshln}
\newcommand+{+}
\begin{document}
%
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
\title{(Confpaper: IEEETrans, accepted) Simulation Based Particle Swarm Optimization of Cross-Training Policies in Spare Parts Supply Systems}
\author{%
\IEEEauthorblockN{%
Andrei Sleptchenko,
Tarek Elmekkawy,
Hasan Hüseyin Turan,
Shaligram,
Maryam Al-Khatib
}% <-this % stops a space
\IEEEauthorblockA{%
Affiliation not available
\thanks{Tarek Elmekkawy is with Qatar University}
\thanks{Hasan Hüseyin Turan is with Qatar University}
\thanks{Shaligram is with Qatar University}
\thanks{Maryam Al-Khatib is with Affiliation not available}% <-this % stops a space
}}
% make the title area
\maketitle
% As a general rule, do not put math, special symbols or citations
% in the abstract
\selectlanguage{english}
\begin{abstract}
We study a single location supply system for repairable spare parts. The system consists of a multi-server repairshop and an inventory with ready-to-use spare parts. When a failed part is received, a new (or as-good-as-new) replacement (if available in the inventory) is sent back and the failed part is sent to the repair shop. In case of unavailability, failed requests are backordered and fulfilled when a ready-for-use part of same type is received from the repairshop. The repair shop has several multi-skilled parallel servers (technicians) that are capable to handle certain types of spares. In this paper, we propose a Particle Swarm Optimization heuristic combined with Discrete-Event Simulation for optimizing the cross training policy (skill assignment scheme) while minimizing the total system cost (consisting of inventory costs, backorder penalty cost, server cost and skill cost).
%
\end{abstract}%
% no keywords
% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex). ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )
\begin{IEEEkeywords}
Particle Swarm Optimization, Simulation, Multi-Skilled Server, Heuristic Skill Allocation, Maintenance Logistics
\end{IEEEkeywords}
\section{Introduction}
Maintenance support systems play are very important in supporting complex machinery used in modern society. This includes production equipment, transportation systems, life-supporting facilities, etc. In such systems, maintenance related costs form a substantial part of the budget and can be anywhere between 15\% and 70\% of the total production expenses, cf. \hyperref[csl:1]{[1]}.
For example, in \hyperref[csl:2]{[2]} authors indicate that component repairs (non-military) generated a turnover of \$9 billion in recent years (see also \hyperref[csl:3]{[3]})
In this paper, we focus on corrective maintenance of expensive repairable assets, where malfunctioned parts or components are immediately replaced by ready-for-use spares. The failed components are sent to a repairshop and once the repair is finished they are sent back to stock as good as new. The repair shop has several multi-skilled parallel servers (technicians) that are capable to handle certain types of spares, see Figure \ref{fig:workshop}.
The analyzed system and the underlying optimization model are in many aspects similar to the ones presented in \hyperref[csl:4]{[4]}. The main differences in the presented model include multiple servers, no priority rules and server flexibilities.\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=1.00\columnwidth]{figures/repairShopArchitecture-standalone/repairShopArchitecture-standalone}
\caption{{Repair shop architecture for 2 SKU's, 3 Servers and partial flexibility. \label{fig:workshop}%
}}
\end{center}
\end{figure}
It is known that efficiency of such maintenance systems strongly depends on efficiency of the repair facilities and efficiency of inventory management for the spare parts, see \hyperref[csl:5]{[5]}; \hyperref[csl:6]{[6]}; \hyperref[csl:7]{[7]}. Decision makers generally have to take into account trade-offs between inventory costs for the spare parts and the costs related to the repair facilities (initial and operations).
In this paper, we analyze propose optimization of skill-assignments (cross-training of employees) and spare parts inventory levels using a hybrid heuristic that combines Particle Swarm Optimization and Discrete-Event Simulation.
The contributions of this work include:
\begin{enumerate}
\item design of a simulation based optimization heuristic that uses a Particle Swarm Optimization (PSO) for optimization of the skill-assignments
\item extensive numerical analysis of the heuristics performance in comparison to brute force optimization and a Genetic Algorithm based optimization.
\end{enumerate}
\bigskip
In the next sections we present short literature review (section \ref{sec:literature}), problem definition (section \ref{sec:problem}), proposed optimization heuristic (section \ref{sec:optimization}), numerical results (section \ref{sec:experiments}) and conclusions and plans for future research (section \ref{sec:conclusions}).
\section{Literature Review}\label{sec:literature}
Both optimization of cross-training policies and optimization of spare parts inventories received much attention until now. The cross-training policies have been studied in the different applications related to: (1) manufacturing systems, (2) call centers and (3) health care systems.
Whereas the spare parts inventories are studied within large maintenance logistics system. The most recent survey of the results related to the cross-training and server flexibilities can be found in \hyperref[csl:8]{[8]}. For the most recent overview on the spare parts management we refer to \hyperref[csl:9]{[9]} and \hyperref[csl:10]{[10]}.
To our best knowledge, no results were presented till now analyzing cross-training in maintenance logistics. The only results that apply cross-training related to maintenance were found in \hyperref[csl:11]{[11]} and \hyperref[csl:12]{[12]}. Those results, however, concentrate only on service engineers (technicians).
Various optimization algorithms that are based on natural systems have been proposed in the literature such as particle swarm optimization (PSO), ant colony optimization (ACO), harmony search, bee algorithm, bat algorithm, and firefly algorithm, see for example \hyperref[csl:13]{[13]}. Particle Swarm Optimization (PSO) has been applied successfully in many different areas such as; scheduling optimization \hyperref[csl:14]{[14]}, Design of hybrid renewable systems \hyperref[csl:15]{[15]}, business optimization \hyperref[csl:16]{[16]}, and analysis of time series \hyperref[csl:17]{[17]}. Nevertheless, it did not receive enough attention in the area of cross-training policies in spare parts supply.
Eberhart and Kennedy \hyperref[csl:18]{[18]} were the first to introduce the PSO as an optimization technique. It was initially developed to deal with continuous problems; however, other version was developed to deal with discrete and binary problems later. In PSO, the search space of the problem is covered by a group of particles (or swarms) to find the optimum solution. Each particle is characterized by its position and velocity which are defined by the particle's vector. In each iteration of the search process, the particle's best solution is saved as its best experience (memory) while the best solution of all particles is saved as global best experience (memory). The particles' vectors are updated based on both the individual's best experience and the global best experience. This phenomenon of sharing particles' best experience is the essence of PSO and chasing the global optimal solution.
The addressed problem in this paper applies the binary version of PSO. As it was mentioned above, some versions of the discrete and binary PSOs were introduced in the literature \hyperref[csl:19]{[19]}; \hyperref[csl:13]{[13]}; \hyperref[csl:20]{[20]}; \hyperref[csl:21]{[21]}; \hyperref[csl:22]{[22]}; \hyperref[csl:23]{[23]}; \hyperref[csl:24]{[24]}.
The main limitation of the original continuous PSO algorithm occurs when the current experience (0 or 1) is equal to the best local and global experiences or when the best local and global experiences are different. This limitation will be discussed with more details in section 5. Different techniques were proposed to deal with this limitation of the original continuous PSO \hyperref[csl:19]{[19]}; \hyperref[csl:21]{[21]}; \hyperref[csl:20]{[20]}. Recently, \hyperref[csl:20]{[20]} compared these techniques and concluded that their method outperforms the other techniques. Therefore, we will adopt his proposed method in our application. Extensive analysis and comparison of other proposed techniques will be future research.
\section{Problem Formulation}\label{sec:problem}
\subsection{Assumptions and Notations}
In the rest of this paper we will use the following assumptions and notations:
\begin{itemize}
\item The failures occur according to a Poisson process with a constant rates.
\item The repair times are exponentially distributed and mutually independent. The expected repair times depend on the SKU type and are independent of the server they are processed at.
\item First come first served (FCFS) queuing discipline is adopted and no priority exists among failed spares.
\item It is assumed that the total holding costs for every SKU per time unit are linear in initial inventory levels (initially acquired inventory).
\item Penalty costs (or backorder costs) occur when the required part is not available and are paid per time unit per not available SKU.
\item It is assumed that a positive cross training or cost of flexibility occurs whenever an additional skill is assigned to a server.
\item The expected backorders are determined using steady-state probabilities on an infinite time planning horizon.
\end{itemize}
\bigskip
%
\underline{Index Sets:}
\begin{itemize}
\item[$N$:] number of distinct type of repairables (SKU's),
\item[$M$:] number of distinct servers in repair shop.
\end{itemize}
%
\underline{Decision variables:}
\begin{itemize}
\item[$S_i$:] initial inventory level (basestock level) for SKU type $i$, $(i=1,\ldots,N)$,
\item[$y_j$:] binary variable indicating whether server $j$ is operational (has at least one skill),
\item[$x_{ij}$:] binary variable indicating whether server $j$ has skill to repair SKU of type $i$,
%$\alpha_{ij}$: Percentage workload of SKU $i$ processed (assigned to) by server $j$ $\left( i=1,\ldots,N \ j=1,\ldots,M \right)$
\end{itemize}
%
\underline{Problem parameters:}
\begin{itemize}
\item[$\lambda_{i}$:] failure rates of SKU type $i$, $(i=1,\ldots,N)$,
\item[$\mu_i$:] service rates of SKU type $i$, $(i=1,\ldots,N)$,
%(All failure rates are exponentially distributed and mutually independent)\\
%$\mu_{i} \left(>0\right)$: Service rate of server to SKU type $i$ (All service times are exponentially distributed and mutually independent)\\
\item[$h_i$:] inventory holding cost of SKU type $i$ per time unit per part $(i=1,\ldots,N)$,
\item[$b$:] backorder penalty cost per time unit per part (e.g. downtime costs due to a lack of spare parts),
\item[$f_j$:] operation cost of server $j$ per time unit $(j=1,\ldots,M)$ (e.g. annual wage),
\item[$c_{i}$:] cost of having skill to repair SKU $i$ per time unit, $(i=1,\ldots,N )$, (e.g. annual qualification bonus),
\end{itemize}
\subsection{Mathematical Model}
The objective function include four cost factors: holding, backorder, server costs and cross training (see (\ref{eq:obj})). This function takes into account several trade-offs between cost terms such as the cost of holding excess inventory and the cost of downtime, and also tradeo-ff between the cost of having dedicated and multi-skill servers.
\begin{eqnarray}
\min_{S_i,\mathbf{X}, y_j} \underbrace{ \sum_{i=1}^N h_i S_i}_{Inventory\ Cost} + \underbrace{b \sum_{i=1}^N\mathbb{EBO}_i\left(S_i, \mathbf{X} \right)}_{Expected \ Backorder \ Cost} \label{eq:obj} \\
\phantom{\min_{S_i,\ \mathbf{X}, \ y_j} ++}+ \underbrace{\sum_{j=1}^Mf_jy_j}_{Server \ Cost} + \underbrace{\sum_{i=1}^N \sum_{j=1}^M c_{i} x_{ij}}_{Cross-Training \ Cost} \nonumber
\end{eqnarray}
In the objective function, the assignments of skills to servers described by a $(N \times M)$--matrix $\mathbf{X}$ of the binary decision variable $x_{ij}$. The penalty (backorder) cost is calculated using the penalty cost $b$ and the total expected number of backordered parts $\mathbb{EBO}_i (S_i, \mathbf{X})$. This expectation is calculated using the steady-state marginal probability distribution of the SKU's queued up for the repair. The skill assignment policy $\mathbf{X}$ and basestock inventory levels $S_i$ $(i=1,\ldots,N)$ are only variable affecting the probability distributions $\mathbb{EBO}_i (S_i, \mathbf{X})$. The average backorder costs for systems that are down due to the lack of spare parts of SKU $i$ is basically calculated via multiplication of penalty cost $b$ by expected number of backorder for SKU $i$ and the total average backorder cost is given by second summation term in objective function.
The server cost occurs whenever a particular server is operational. It is assumed that a server is operational whenever at least one skilled is assigned to that server. Mathematically, server $j$ is considered operational if the sum of all elements in column $j$ of the matrix $\mathbf{X}$ is greater than 0. Cross-training cost occur then a skill is assigned to a server ($x_{ij}=1$).
One can think of the server and skill related costs as the annual wages of the technicians and bonuses for their qualifications.
Further we have the following set of constraints that ensures feasibility of skill assignment $\mathbf{X}$:
\begin{align}
& \sum_{j=1}^{M}\alpha_{ij}=1, && i=1,\ldots,N \label{eq:constr1}\\
&\sum_{i=1}^N \alpha_{ij} \frac{\lambda_i}{\mu_i} \leq y_j, && j=1,\ldots,M \label{eq:constr2}\\
&\alpha_{ij} \leq x_{ij}, && i=1,\ldots,N, \ j=1,\ldots,M \label{eq:constr3}\\
&x_{ij} \leq y_j, && i=1,\ldots,N, \ j=1,\ldots,M \label{eq:constr4}\\%eq6c}\\
&x_{ij} \in \{ 0, 1 \}, && i=1,\ldots,N, \ j=1,\ldots,M \label{eq:constr5}\\
&y_j \in \{ 0, 1 \}, && j=1,\ldots,M \label{eq:constr6}\\
&\alpha_{ij} \geq 0, && i=1,\ldots,N, \ j=1,\ldots,M \label{eq:constr7}\\
&S_i \in \mathbb{N}_0, && i=1,\ldots,N \label{eq:constr8}
\end{align}
Constraint set (\ref{eq:constr1}) ensures that all of the failures of any type of SKU have to be repaired and mentioned failures can be distributed among servers. Constraint set (\ref{eq:constr2}) guarantees two things in the repair shop: (1) repairs can be only handled by a server if it is operational and (2) utilization of each server cannot be more than 1 to ensure queue stability conditions of repair shop. Constraint (\ref{eq:constr3}) ensures that failed parts are directed to only particular servers that have skills to repair the failed SKU type. In addition, only operational servers can have skills, which is ensured by constraint (\ref{eq:constr4}). The rest of the constraints (\ref{eq:constr5}-\ref{eq:constr8}) are for sign restrictions and the integrality of the decision variables.
\section{Optimization}\label{sec:optimization}
The formulated optimization model is a non-linear mixed integer programming model. Non-linearity of model arises due to the $\mathbb{EBO}_i\left(S_i, \mathbf{X} \right)$ expected number of backorders under given skill assignment policy ($\mathbf{X}$) and base stock inventory levels for SKUs ($S_i$). This expectation can not be analytically evaluated except some very trivial cases. Another difficulty of finding optimal solution to this problem is related to the size of the solution space which is determined by number of SKUs ($N$) and number of servers ($M$). For example, for a size of $N$=10 and $M$=10 repair shop system there exists more than $3.5 \times 10^{23}$ possible skill assignment policy $\mathbf{X}$.
In this section, we discuss in detail how the above mentioned complexities are handled.
\subsection{Objective function evaluation}
Since the variables $S_i$ are not included in the constraints (\ref{eq:constr1}-\ref{eq:constr8}), we can rewrite the objective function as:
\begin{align}
&\min_{\mathbf{X}, y_j} \Bigg [ \sum_{j=1}^M f_j y_j + \sum_{i=1}^N \sum_{j=1}^M c_{i} x_{ij} \label{eq:obj1} \\
&\phantom{\min_{S_i,\mathbf{X}, y_j} ++} + \min_{S_i} \left ( \sum_{i=1}^N h_i S_i + b \sum_{i=1}^N\mathbb{EBO}_i\left(S_i, \mathbf{X} \right) \right ) \Bigg ]\nonumber
\end{align}
or as:
\[
\min_{\mathbf{X}, y_j} \left [ \sum_{j=1}^M f_jy_j + \sum_{i=1}^N \sum_{j=1}^M c_{i} x_{ij} + \sum_{i=1}^N \mathbb{EHB}_i \left( \mathbf{X} \right) \right ]
\]
where the $\mathbb{EHB}_i \left(\mathbf{X} \right)$ function is the expected optimal holding+backorder cost given skill assignment $\mathbf{X}$:
$$
\mathbb{EHB}_i \left(\mathbf{X} \right) = \min_{S_i} \left [ h_i S_i + b \mathbb{EBO}_i \left(S_i, \mathbf{X} \right) \right ]
$$
The value of the $\mathbb{EHB}_i \left(\mathbf{X} \right)$ function can be easily evaluated once the probability distributions of items waiting in the queues are known. However, to our best knowledge, there no analytical method to evaluate the queue length distributions given certain skill assignments.
To evaluate the probability distributions of the items waiting in the queues and the value of the $\mathbb{EHB}_i \left(\mathbf{X} \right)$ function we use Discrete Event simulation. The marginal distributions are used to optimize the necessary stock levels and the total holding+backorder cost $\mathbb{EHB}_i \left(\mathbf{X} \right)$ for each SKU type. More information on the optimization procedure for the stock levels (for known skill assignments and marginal distributions) can be found in \hyperref[csl:4]{[4]}.
In general, the optimization procedure will look as shown on Figure \ref{fig:flowPSO}. The subroutine to evaluate the value of $\mathbb{EHB}_i \left(\mathbf{X} \right)$ for a given assignment $\mathbf{X}$ will be called on every iteration, for every particle. Within this subroutine we utilize an internal database to store obtained simulation results. This allows us to reduce the running times when we need to rerun the simulation with the same input parameters as will be presented in Section \ref{sec:experiments}.
\begin{figure}[h!]
\begin{center}
\includegraphics[width=1.00\columnwidth]{figures/flowDiagram-standalone/flowDiagram-standalone}
\caption{Flow chart and modules of proposed PSO heuristic.\label{fig:flowPSO}%
}
\end{center}
\end{figure}
\subsection{Particle Swarm Optimization}
To optimize the skill assignments $x_{ij} \in \{0,1\}$, we use a binary version of the Particle Swarm Optimization (BPSO) proposed initially by Kennedy and Eberhart in \hyperref[csl:19]{[19]} and improved later by Maleh et al. in \hyperref[csl:20]{[20]}. In this BPSO algorithm, in contrary to the continuous PSO, the particles are based on the discrete binary decision variables ($x_{ij}$). The velocities in this case are mapped to probabilities with which a certain bit of particle's solution will change to "0" or to "1".
To be more precise, we compute the velocities as:
\begin{align*}
& V_{ij}(t + 1) = \omega_t \times V_{ij}(t) \\
& \phantom{V_{ij}(t + 1) =} + (c_1 r_1 + c_2 r_2) \times (2B^p_{ij}-1) \times I(B^p_{ij}=B^g_{ij})
\end{align*}
In this expression, the $B^p$ is the partial best solutions that was experienced by the particle until that iteration. The $B^g$ is the global best solution across all particles (the best from the $B^p$'s). The $I(\cdot)$ is the indicator function that converts logical expressions to 0/1. The $\omega_t$ is the inertia with goes to 0 with every iteration:
\[\omega_t =\omega_{t=max}- \frac{\omega_{t=max}-\omega_{t=max}}{t=max}\times t.\]
The updated speeds $V_{ij}(t + 1)$ are converted to the skill assignments using the \textit{sigmoid} function $sig(g) = 1/(1+e^-g)$. Then the particle bit $x_{ij}$ is set to 1 if $sig(V_{ij}(t)$ is higher than a random number $r_{ij}$ uniformly distributed on $[0,1]$ and vice versa.
That is:
\[ x_{ij}(t+1) = I(r_{ij} < sig(V_{ij} (t+1)) = I \left ( r_{ij} < \frac{1}{1+e^{-V_{ij}(t+1)}} \right ) \]
\section{Computational Experiments}\label{sec:experiments}
\subsection{The testbed}
The proposed PSO heuristic has 7 parameters that define the performance of the heuristic. These include: population (swarm) size, maximum number of iterations, arbitrary constants $c_1$ and $c_2$, minimum and maximum values of the inertia ($\omega_{t=min}$ and $\omega_{t=max}$) and the range of speeds within which the speeds of the initial population are generated.
We performed a number of experiments in order to select a set of the PSO parameters that ensure good performance of the selected heuristic. In these experiments we use smaller testcases where solution can be still found by brute-force optimization (taking into account that for each feasible skill assignment we had to run the simulation). Namely, we limited the maximum number of skills and servers to 6 and the maximum number of possible assignments in each case (including not feasible) to 3000. Table \ref{tab:number_assignments} indicates the maximum numbers of feasible skill assignment that we encountered for each combination of skills and servers in the executed tests.
Further, in our set of experiments we varied failure and service rates together with holding and machine costs. Penalty costs were chosen to be $50\times$ of the average holding cost and skill cost $0.1\times$ of the machine cost, see \hyperref[csl:25]{[25]} for more details on the generated experiments. In total, for each set of the PSO parameters we executed 3360 optimization runs and compared the obtained solution to the optimal ones.
\begin{table}[htp]
\centering
\caption{Maximum numbers of feasible skill assignments $|\mathbf{X}|$ occurring in the numerical experiments \label{tab:number_assignments}}
\begin{tabular}{ crrrrr }
\hline
Number of & \multicolumn{5}{c}{Number of SKUs $\left(N\right)$ } \\ %\cdashline{2-6}
servers $(M)$&2 & 3& 4& 5& 6 \\
\hline
2 & 4 & 13 & 38 & 117 & 356 \\
3 & 12 & 62 & 404 & -- & -- \\
4 & 17 & 165 & -- & -- & -- \\
5 & 24 & 446 & -- & -- & -- \\
6 & 46 & 1193 & -- & -- & -- \\
\hline
\end{tabular}
\end{table}
\subsection{The Resutls}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=1.00\columnwidth]{figures/tunning-boxlot-standalone/tunning-boxlot-standalone}
\caption{Tuning of the PSO parameters\label{fig:tuning}%
}
\end{center}
\end{figure}
\section{Conclusions and Further Research}\label{sec:conclusions}
A simulation based optimization method has been proposed to optimize both the cross training level of multi-servers and the inventory levels of spare parts in a repair shop. The method combines particle swarm optimization (PSO) algorithm with discrete event simulation modeling to minimize the total cost in a stochastic environment. The PSO has been designed to deal with the binary nature of the problem using a proposed method from the literature. In order to evaluate the performance of the proposed method, it has been compared with the results obtained from brute-force method of solved randomly generated small test cases. The average gap between the proposed method and the brute force method is almost zero which is considered very promising. For future research, a heuristic algorithm and another metaheuristic such as genetic algorithm (GA) will be developed and their results will be compared with the proposed PSO-simulation based method of solved medium and large test cases.
\selectlanguage{english}
\FloatBarrier
\section*{References}\sloppy
\phantomsection
\label{csl:1}[1]L. Wang, J. Chu, and W. Mao, ``{An optimum condition-based replacement and spare provisioning policy based on Markov chains}'', \textit{Journal of Quality in Maintenance Engineering}, vol. 14, no. 4, pp. 387–401, Sep. 2008, doi: 10.1108/13552510810909984.
\phantomsection
\label{csl:2}[2]W. van Jaarsveld, T. Dollevoet, and R. Dekker, ``{Improving spare parts inventory control at a repair shop}'', \textit{Omega}, vol. 57, pp. 217–229, Dec. 2015, doi: 10.1016/j.omega.2015.05.002.
\phantomsection
\label{csl:3}[3]``{10-year global MRO forecast}'', \textit{Aviation Week: Overhaul \& Maintenance}, vol. 17, no. 4. pp. 28–31, 2011.
\phantomsection
\label{csl:4}[4]I. J. B. F. Adan, A. Sleptchenko, and G. J. V. Houtum, ``{Reducing costs of spare parts supply systems via static priorities}'', \textit{Asia-Pacific Journal of Operational Research}, vol. 26, no. 04, pp. 559–585, Aug. 2009, doi: 10.1142/s0217595909002377.
\phantomsection
\label{csl:5}[5]A. Sleptchenko, M. C. van der Heijden, and A. van Harten, ``{Trade-off between inventory and repair capacity in spare part networks}'', \textit{J Oper Res Soc}, vol. 54, no. 3, pp. 263–272, Mar. 2003, doi: 10.1057/palgrave.jors.2601511.
\phantomsection
\label{csl:6}[6]A. Sleptchenko, M. C. van der Heijden, and A. van Harten, ``{Using repair priorities to reduce stock investment in spare part networks}'', \textit{European Journal of Operational Research}, vol. 163, no. 3, pp. 733–750, Jun. 2005, doi: 10.1016/j.ejor.2004.02.002.
\phantomsection
\label{csl:7}[7]A. V. Horenbeek, J. Bur{\'{e}}, D. Cattrysse, L. Pintelon, and P. Vansteenwegen, ``{Joint maintenance and inventory optimization systems: A review}'', \textit{International Journal of Production Economics}, vol. 143, no. 2, pp. 499–508, Jun. 2013, doi: 10.1016/j.ijpe.2012.04.001.
\phantomsection
\label{csl:8}[8]R. Qin, D. A. Nembhard, and W. L. B. II, ``{Workforce flexibility in operations management}'', \textit{Surveys in Operations Research and Management Science}, vol. 20, no. 1, pp. 19–33, Jun. 2015, doi: 10.1016/j.sorms.2015.04.001.
\phantomsection
\label{csl:9}[9]R. J. I. Basten and G. J. van Houtum, ``{System-oriented inventory models for spare parts}'', \textit{Surveys in Operations Research and Management Science}, vol. 19, no. 1, pp. 34–55, Jan. 2014, doi: 10.1016/j.sorms.2014.05.002.
\phantomsection
\label{csl:10}[10]G.-J. van Houtum and B. Kranenburg, \textit{{Spare Parts Inventory Control under System Availability Constraints}}. Springer {US}, 2015.
\phantomsection
\label{csl:11}[11]D. E. Simmons, ``{The effect of non-linear delay costs on workforce mix}'', \textit{J Oper Res Soc}, vol. 64, no. 11, pp. 1622–1629, Dec. 2012, doi: 10.1057/jors.2012.158.
\phantomsection
\label{csl:12}[12]S. R. Agnihothri, A. K. Mishra, and D. E. Simmons, ``{Workforce cross-training decisions in field service systems with two job types}'', \textit{J Oper Res Soc}, vol. 54, no. 4, pp. 410–418, Apr. 2003, doi: 10.1057/palgrave.jors.2601535.
\phantomsection
\label{csl:13}[13]F. Marini and B. Walczak, ``{Particle swarm optimization ({PSO}). A tutorial}'', \textit{Chemometrics and Intelligent Laboratory Systems}, vol. 149, pp. 153–165, Dec. 2015, doi: 10.1016/j.chemolab.2015.08.020.
\phantomsection
\label{csl:14}[14]H. Samarghandi and T. Y. ElMekkawy, ``{A genetic algorithm and particle swarm optimization for no-wait flow shop problem with separable setup times and makespan criterion}'', \textit{The International Journal of Advanced Manufacturing Technology}, vol. 61, no. 9-12, pp. 1101–1114, Nov. 2011, doi: 10.1007/s00170-011-3766-8.
\phantomsection
\label{csl:15}[15]M. Sharafi and T. Y. ElMekkawy, ``{Stochastic optimization of hybrid renewable energy systems using sampling average method}'', \textit{Renewable and Sustainable Energy Reviews}, vol. 52, pp. 1668–1679, Dec. 2015, doi: 10.1016/j.rser.2015.08.010.
\phantomsection
\label{csl:16}[16]X.-S. Yang, S. Deb, and S. Fong, ``{Accelerated Particle Swarm Optimization and Support Vector Machine for Business Optimization and Applications}'', in \textit{Networked Digital Technologies}, Springer Science + Business Media, 2011, pp. 53–66.
\phantomsection
\label{csl:17}[17]E. Hadavandi, A. Ghanbari, and S. Abbasian-Naghneh, ``{Developing a Time Series Model Based on Particle Swarm Optimization for Gold Price Forecasting}'', in \textit{2010 Third International Conference on Business Intelligence and Financial Engineering}, 2010, doi: 10.1109/bife.2010.85.
\phantomsection
\label{csl:18}[18]R. Eberhart and J. Kennedy, ``{A new optimizer using particle swarm theory}'', in \textit{{MHS}{\textquotesingle}95. Proceedings of the Sixth International Symposium on Micro Machine and Human Science}, doi: 10.1109/mhs.1995.494215.
\phantomsection
\label{csl:19}[19]J. Kennedy and R. C. Eberhart, ``{A discrete binary version of the particle swarm algorithm}'', in \textit{1997 {IEEE} International Conference on Systems Man, and Cybernetics. Computational Cybernetics and Simulation}, doi: 10.1109/icsmc.1997.637339.
\phantomsection
\label{csl:20}[20]A. H. El-Maleh, A. T. Sheikh, and S. M. Sait, ``{Binary particle swarm optimization ({BPSO}) based state assignment for area minimization of sequential circuits}'', \textit{Applied Soft Computing}, vol. 13, no. 12, pp. 4832–4840, Dec. 2013, doi: 10.1016/j.asoc.2013.08.004.
\phantomsection
\label{csl:21}[21]M. A. Khanesar, M. Teshnehlab, and M. A. Shoorehdeli, ``{A novel binary particle swarm optimization}'', in \textit{2007 Mediterranean Conference on Control {\&} Automation}, 2007, doi: 10.1109/med.2007.4433821.
\phantomsection
\label{csl:22}[22]J. Sadri and C. Y. Suen, ``{A Genetic Binary Particle Swarm Optimization Model}'', in \textit{2006 {IEEE} International Conference on Evolutionary Computation}, doi: 10.1109/cec.2006.1688373.
\phantomsection
\label{csl:23}[23]G. Pampara, N. Franken, and A. P. Engelbrecht, ``{Combining Particle Swarm Optimisation with angle modulation to solve binary problems}'', in \textit{2005 {IEEE} Congress on Evolutionary Computation}, doi: 10.1109/cec.2005.1554671.
\phantomsection
\label{csl:24}[24]A. Marandi, F. Afshinmanesh, M. Shahabadi, and F. Bahrami, ``{Boolean Particle Swarm Optimization and Its Application to the Design of a Dual-Band Dual-Polarized Planar Antenna}'', in \textit{2006 {IEEE} International Conference on Evolutionary Computation}, doi: 10.1109/cec.2006.1688716.
\phantomsection
\label{csl:25}[25]H. H. Turan, A. Sleptchenko, S. Pokharel, and T. Y. ElMekkawy, ``{Cross Training Policies for Repair Shops with Spare Part Inventories}''. Work in progress, 2016.
\phantomsection
\label{csl:0}[26]D. Basten and T. Hoerstrup, ``{Organizational Effort Estimation}'', \textit{Computer}, vol. 47, no. 8, pp. 76–79, Aug. 2014, doi: 10.1109/mc.2014.216.
\phantomsection
\label{csl:0}[27]N. Franken and A. P. Engelbrecht, ``{Particle Swarm Optimization Approaches to Coevolve Strategies for the Iterated Prisoner{\textquotesingle}s Dilemma}'', \textit{{IEEE} Transactions on Evolutionary Computation}, vol. 9, no. 6, pp. 562–579, Dec. 2005, doi: 10.1109/tevc.2005.856202.
\phantomsection
\label{csl:0}[28]C. Zhang and H. Hu, ``{Using {PSO} Algorithm to Evolve an Optimum Input Subset for a {SVM} in Time Series Forecasting}'', in \textit{2005 {IEEE} International Conference on Systems Man and Cybernetics}, doi: 10.1109/icsmc.2005.1571737.
\end{document}