## 3 Swap Algorithm and Non-Dominated Solution Set  
As the exact approaches proved to be very demanding concerning computational time, the attention of researchers has been concentrated on a family of heuristic tools, the performance of which may serve as a source of candidates for membership in a non-dominated solution set (\(NDSS\)). A starting list of non-dominated designs may be easily constructed from two solutions, where each one is obtained by the minimization process of \(f^{1,}\) or \(f^{2,}\) in the set \(\mathbf{Y}\) of feasible solutions. If a current set of non-dominated solutions is kept in the form of a sequence ordered according to increasing values of one of the objective functions, then it can be easily decided on an arbitrary feasible solution \(\mathbf{y}\), whether it is dominated by a solution of the current \(NDSS\) or it can be included to the \(NDSS\). Thus, the procedure \(UpdateNDSS(NDSS,\)\(y\)) can be implemented. Because most heuristics and metaheuristics produce a series of newly designed feasible solutions, the \(UpdateNDSS\) procedure can be applied to each of these solutions and used to build a good set of non-dominated components gradually. It must be noted that heuristic methods equipped with the procedure \(UpdateNDSS\) will give only an approximation of the Pareto front for the given instance. To be able to study the efficiency of particular approaches, a measure of proximity of the final \(NDSS\) to the Pareto front must be defined. Under the assumption that the minimal values of \(f^{1}\), and \(f^{2}\) are determined accurately enough, the proximity can be expressed by the difference in the areas under the curve given by the element of the Pareto front and the \(NDSS\) (see Figure 1). Previously obtained experience with the swap algorithm [27, 28] induced an idea of using the swap algorithm in connection with the procedure \(UpdateNDSS\) for the construction of an approximation of the Pareto front for the two-objective EMS system. Applying the swap algorithm's fundamental operation to a workable solution \(y\) entails shifting a station from its actual point \(i\) to a vacant position \(j\). The outcome may be represented as \(Exchange(y,i,j)=\{y_{1},y_{2},\ldots,y_{i-1},\)\(0,\)\(y_{i+1},\ldots,\)\(y_{j-1},\)\(1,\)\(y_{i+1},\ldots,\)\(y_{m}\}\). The procedure defined by the below steps requires an input solution \(y\), a starting set \(NDSS\) of non-dominated elements, and a pair \(a\) of coefficients \(a_{1}\) and \(a_{2}\):  
\(Suqp(y,a,NDSS)\)  
Initialize F = \(a_{1}f^{1}(y)+a_{2}f^{2}(y)\) and BestF = F.  
For each \(i=1,\)\(\ldots,\)\(m,\)\(y_{i}=1\) and \(j=1,\)\(\ldots,\)\(m,\)\(y_{j}=0\) repeat Step 2 and go to Step 3. Perform UpdateNDSS (NDSS, Exchange \((y,i,j)\)). If F > \(a_{1}f^{1}\) (Exchange \((y,i,j)\)) + \(a_{2}f^{2}\) (Exchange \((y,i,j)\)), then put F = \(a_{1}f^{1}\) (Exchange \((y,i,j)\)) + \(a_{2}f^{2}\) (Exchange \((y,i,j)\)) and \(i^{*}=i,\)\(j^{*}=j\). If F < BestF then set \(y\) = Exchange \((y,i^{*},j^{*})\) and go to Step 1. In the opposite case, return \(y\) and NDSS and finish. The performance of the presented swap algorithm has been considerably reinforced by a meticulous implementation of functions \(f^{1}\). and \(f^{2}\). It was taken into account that most of the computational effort is paid to objective function value enumeration of the solutions, which is a member of a current solution neighborhood, i.e., the solution differs from the current one only in one center location. This fact enabled the enumeration of an auxiliary ordered list of \(r\) nearest centers of the current solution for each user, and then the computational complexity of the objective function values of the neighboring solutions can be reduced to \(O(rn)\) instead of the usual \(O(pn)\). Figure 1: The solutions of the Pareto front are depicted by the black circles, and elements of the NDSS correspond to the empty circles. The difference in the areas is depicted by hatched area.