1 Introduction

Since the original study by Cooper [9], facility location problems (FLP) as a crucial and generic engineering optimization model have being attracting an increasing number of people. The key issue of FLP is to find the optimal sizes to open facilities among a given set of potential sites to meet the objective of profit maximization or cost minimization.

Regarding FLPs with deterministic parameters, capacitated FLP in which the capacities of facilities are limited, was originally discussed by Murtagh and Niwattisyawong [30] which is considered as one of studies of the most importance in the filed of FLP, and later on, more and more studies along this direction (capacitated FLP) have been reported in the literature [1, 4, 14]. Since it was proved by Megiddo and Supowit [29] that FLP is NP-hard, a series of analytical methods and programming techniques as well as heuristic algorithms have been developed to solve the FLPs. For instance, Love [27] discussed one-dimensional facility location–allocation problem using dynamic programming. Gong et al. [15] designed a hybrid evolutionary method for solving obstacle location–allocation problem. Lozano et al. [28] discussed the application of Kohonen maps to solve a class of location–allocation problems. Ernst and Krishnamoorthy [14] combined the simulated annealing and random descent method.

In real applications, many parameters of FLP, such as demands of clients, the costs of operating the facilities, may be of uncertainties, e.g., randomness and fuzziness. These distinct uncertainties yields the stochastic FLP and fuzzy FLP, respectively. For stochastic scenarios, readers may refer to [5, 2426]. Due to the development of fuzzy theory [12, 13, 21, 31, 40, 41], a number of pieces of research brought this tool into the FLP. Darzentas [11] discussed various facility location problems by fuzzy logic methods. Bhattacharya et al. [2] considered facilities located under multiple fuzzy criteria, and proposed a fuzzy goal programming approach to deal with the problem. Ishii et al. [16] developed a location model considering the satisfaction degree with respect to the distance from the facility for each customer and preference of the site in an urban area. In the above-mentioned studies, the parameters of FLP are deterministic, and fuzzy theory are just used to solve classical mathematical programming effectively, the problems were static ones in nature. Apart from those researches, Zhou and Liu [42] modeled three types of capacitated location–allocation problem with fuzzy demands according to different decision criteria. Wen and Iwamura [39] presented an α-cost FLP with fuzzy demands under Hurwicz criterion. In these two papers, the costs for establishing and operating the facilities and the size of the facilities are all assumed fixed, and since the potential region where the location are to be chosen are assumed to be continuous, the proposed FLP in [39, 42] are both continuous type of fuzzy programming problems.

This paper addresses a more realistic fuzzy capacitated FLP in which both the demands of clients and the variable costs of facilities can be fuzzy, and the decision is a 0-1 integer vector which consists of the optimal location and size of the new facilities. What is more, when process the decision-making in FLP, we assume that the decisions are made in two stages so as to maximize expected total profit. The first-stage decision, location decision, is made before the values of fuzzy parameters are realized, and the second-stage decisions, distribution pattern can be taken after the realization of the fuzzy parameters are observed. The optimal value of the problem depends on the realization of the fuzzy parameters and the first-stage decisions. It is a dynamic process.

The rest of the paper is organized as follows. Section 2 recalls some basic concepts of fuzzy variable. In Sect. 3, the model is formulated. Section 4 discusses an approximation method to the expected objective value of second-stage programming, and proves the convergence of the approximation. Then, a hybrid algorithm is designed in which the approximation approach, neural network (NN) and PSO are fused to solve the proposed FLP. A numerical example is provided in Sect. 5 to illustrate the effectiveness of the hybrid algorithm. Section 6 draws the conclusions.

2 Fuzzy variable

Given a universe \(\Upgamma, \) let Pos be a possibility measure defined on the power set \(\mathcal P(\Upgamma)\) of \(\Upgamma. \) Then, triplet \({(\Upgamma,{\mathcal P}(\Upgamma), \hbox{Pos})}\) is called a possibility space. A function \(\xi=(\xi_{1},\xi_{2},\ldots,\xi_{n}):\Upgamma\to\Re^{n}\) is said to be an n-ary fuzzy vector. As n = 1, ξ is called a fuzzy variable. The function

$$ \mu_{\xi}({\mathbf{t}})=\hbox{Pos} \left\{\gamma\in \Upgamma | \xi(\gamma)={\mathbf{t}}\right\} =\min\limits_{1\le i\le n}\hbox{Pos}\left\{\gamma \in \Upgamma|\xi_{i}(\gamma)=t_{i}\right\} $$
(1)

for any \({\bf t}=(t_{1},\ldots,t_{n})\in \Re^n\) is said to be the possibility distribution of ξ, or the joint possibility distribution of \(\xi_{i},i=1,2,\ldots,n. \)

For fuzzy variable ξ with possibility distribution μξ, the possibility, necessity and credibility of event {ξ ≤ r} can be given respectively by

$$ \begin{aligned} \hbox{Pos}\{\xi\le r\}&=\sup\limits_{t\le r}\mu_{\xi}(t),\\ \hbox{Nec}\{\xi\le r\}&=1-\sup\limits_{t> r}\mu_{\xi}(t),\\ \hbox{Cr}\{\xi\le r\}&=\frac{1}{2}\left[ \hbox{Pos}\{\xi\le r\}+\hbox{Nec}\{\xi\le r\}\right]. \end{aligned} $$
(2)

Based on credibility measure, the expected value of a fuzzy variable is defined below [21]:

Definition 1

Let ξ be a fuzzy variable defined on a possibility space \((\Upgamma, \mathcal P(\Upgamma), \hbox{Pos}). \) The expected value of ξ is defined as

$$ E[\xi]=\int\limits_{0}^{\infty}\hbox{Cr}\{\gamma\mid \xi(\gamma)\geq r\}\hbox{d}r -\int\limits_{-\infty}^{0}\hbox{Cr}\{\gamma\mid \xi(\gamma)\leq r\}\hbox{d}r $$
(3)

provided that one of the two integrals is finite.

Example 1

Let ξ be a triangular fuzzy variable (2, 3, 4). Calculate the expected value E[ξ].

Recall the possibility distribution of triangular fuzzy variable ξ = (2, 3, 4) is

$$ \mu_{\xi}(t)=\left\{ \begin{array}{ll} t-2, & \quad \hbox{if} \,2 \le t<3 \\ 4-t, & \quad \hbox{if}\, 3\le t<4 \\ 0, & \quad \hbox{otherwise.}\\ \end{array}\right. $$
(4)

From (2), for any r ≥ 0, we can compute

$$ \begin{aligned} \hbox{Cr}\{\xi\ge r\}&=\frac{1}{2}\left(\sup\limits_{t\ge r}\mu_{\xi}(t)+1-\sup\limits_{t<r}\mu_{\xi}(t)\right)\\ &=\left\{\begin{array}{ll} 1, & \quad\hbox{if}\,r\le 2 \\ (4-r)/2, & \quad\hbox{if}\,2<r\le 4 \\ 0, & \quad\hbox{otherwise.}\\ \end{array}\right. \end{aligned} $$

For any r < 0, we have

$$ \hbox{Cr}\{\xi\le r\}=\frac{1}{2}\left(\sup_{t\le r}\mu_{\xi}(t)+1-\sup_{t> r}\mu_{\xi}(t)\right)\equiv 0. $$

It follows from Definition 1 that

$$ E[\xi]=\int\limits_{0}^{\infty} \hbox{Cr}\{\xi\ge r\}\hbox{d}r=2+\int\limits_{2}^{4} \frac{4-r}{2}\hbox{d}r=3. $$

Particularly, for a discrete fuzzy variable ξ with the following possibility distribution:

$$ \mu_{\xi}(t)= \left\{\begin{array}{ll} \mu_{1}&\quad\hbox{if}\, t=a_{1}\\ \mu_{2}&\quad\hbox{if}\, t=a_{2}\\ \vdots\\ \mu_{n} &\quad\hbox{if}\, t=a_{n}\\ 0& \quad\hbox{otherwise}. \end{array}\right. $$

Without any loss of generality, we assume that \( a_{1}\leq a_{2}\leq\cdots\leq a_{n}, \) i.e., a i is the ith smallest outcome value of ξ. Then the expected value defined by (3) reduces to the following form [21]:

$$ E[\xi]=\sum_{i=1}^{n} p_{i} a_{i}, $$
(5)

where the weights p i s are determined by

$$ p_{i}= \frac{1}{2}\left(\max_{j=1}^{i}\,\mu_{j}-\max_{j=0}^{i-1}\,\mu_{j}\right)+\frac{1}{2} \left(\max_{j=i}^{n}\,\mu_{j}-\max_{j=i+1}^{n+1}\,\mu_{j}\right) $$
(6)

0 = 0,μ n+1 = 0) for \(i=1,\ldots,n,\) and satisfy the following constraints

$$ p_{i}\geq 0, \quad \hbox{and} \quad\sum\limits_{i=1}^{n} p_{i}=\max\limits_{i=1}^{n}\mu_{i}=1. $$

Example 2

Let ξ be a fuzzy variable with the following possibility distribution

$$ \mu_{\xi}(t)=\left\{ \begin{array}{ll} 0.7& \quad {if}\, t=1\\ 1& \quad {if}\, t=3\\ 0.8& \quad{if} \,t=5\\ 0& \quad{otherwise}. \end{array}\right. $$

Calculate the expected value of ξ.

By (6), we have

$$ \begin{aligned} p_{1}&=\frac{1}{2}(0.7-0)+\frac{1}{2}(\max\{0.7,1,0.8\}-\max\{1,0.8\})=0.35,\\ p_{2}&=\frac{1}{2}(\max\{0.7,1\}-0.7)+\frac{1}{2}(\max\{1,0.8\}-0.8)=0.25,\\ p_{3}&=\frac{1}{2}(\max\{0.7,1,0.8\}-\max\{0.7,1\})+\frac{1}{2}(0.8-0)=0.40. \end{aligned} $$

It follows from (5) that E[ξ] = 1 × 0.35 + 3 × 0.25 + 5 × 0.40 = 3.10.

3 Model formulation

A FLP with fuzzy costs and demands may be described as follows: assume that there are m clients having uncertain demand which is a fuzzy vector for some given commodity. The firm can open some new facilities in potential sites \(i=1,2\ldots, n, \) the cost of each facility consists of fix opening and operating cost and variable operating cost, the later is a fuzzy variable. Each client can be supplied from an open facility where the commodity is made available. No more than 100% of a client’s demand can be served, but the possibility exists that not all demand is served. The total supply from one facility to all clients can not exceed the capacity of the facility. The distribution pattern i.e., the quantities distributed form facilities to clients, is not fixed, it is adapted to the realization of fuzzy event with respected to the demand and variable operating cost. The problem of the firm is to choose the best locations for facilities to open to maximize profit or minimize costs.

In order to model the problem, we give the following notations:

  • \(i=1,2,\ldots,n:\) the index of facilities;

  • \(j=1,2,\ldots,m:\) the index of clients;

  • d j : fuzzy demand of client j for a given commodity;

  • r j : the unit price charged to clint j;

  • x i : decision variable which is a binary variable equal to one if facility i is open and zero otherwise;

  • s i : the capacity of facility i;

  • c i : the fixed cost for opening and operating facility i;

  • v i : the unit variable operating cost of facility i, which is a fuzzy variable;

  • y ij : the quantity supplied to client j from facility i.

  • t ij unit transportation cost from i to j.

All variable operating cost \(v_{i}, i=1,2,\ldots, n\) and the demands \(d_{j}, \; j=1,2,\ldots,m\) are fuzzy variables defined on a possibility space \({(\Upgamma, {\mathcal P}(\Upgamma), \hbox{Pos}), }\) and for any \(\gamma\in \Upgamma, \) v i (γ) and d j (γ) are the realizations of v i and d j , respectively, for each i and j.

Under the above assumptions and notations, taking the objective as maximization of expected profit, we can formulate a capacitated fuzzy FLP as follows:

$$ \left. \begin{array}{ll} \max &-\sum\limits_{i=1}^{n} c_{i}x_{i}+E\left[\max\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} (r_{j}-v_{i}(\gamma)-t_{ij})y_{ij}\right]\\ \hbox{subject to}& x_{i}\in \{0,1\}, \quad i=1,2,\ldots,n,\\ & \sum\limits_{i=1}^{n} y_{ij}\le d_{j}(\gamma), \quad j=1,2,\ldots,m,\\ &\sum\limits_{j=1}^{m}y_{ij}\le s_{i} x_{i}, \quad i=1,2,\ldots,n,\\ &y_{ij}\ge 0, \quad j=1,2,\ldots,n, \quad j=1,2,\ldots,m.\\ \end{array} \right. $$
(7)

In order to clarify the dynamic process of the problem more detailedly, we suppose that the decision variables of the model are divided into two categories. The location decision vector \(\user2{x}=(x_{1}, x_{2}, \ldots,x_{n})\) is the first-stage decision which must be taken before the outcome of fuzzy event γ is revealed, here the outcome of fuzzy event refers to the realizations of fuzzy demands and fuzzy operating cost

$$ \xi(\gamma)=(d_{1}(\gamma), \ldots, d_{m}(\gamma), v_{1}(\gamma), \ldots, v_{n}(\gamma)). $$
(8)

In the second stage, the demands of all clients are known. As a consequence, the second-stage decision variables y ij for \(i=i,2,\ldots,n\) and \(j=1,2,\ldots,m, \) which represent the distribution pattern, can be adjusted to the realization of the fuzzy event γ.

Following this scheme, we present a two-stage fuzzy FLP, in which there are two optimization problems to be solved. By assuming x and γ to be fixed, the second-stage problem can be formulated as follows:

$$ \left. \begin{array}{rl} \max \sum\limits_{i=1}^{n}&\sum\limits_{j=1}^{m} (r_{j}-v_{i}(\gamma)-t_{ij})y_{ij}\\ \hbox{subject\,to} &\sum\limits_{i=1}^{n} y_{ij}\le d_{j}(\gamma), \quad j=1,2,\ldots,m,\\ & \sum\limits_{j=1}^{m}y_{ij}\le s_{i} x_{i}, \quad i=1,2,\ldots,n,\\ &y_{ij}\ge 0, \quad i=1,2,\ldots,n, \quad j=1,2,\ldots,m.\\ \end{array}\right. $$
(9)

Let Q(x, ξ(γ)) be the optimal value of problem (9) at fixed x and ξ(γ), it is usually called second-stage value function (abbreviated as SSVF) in two-stage fuzzy programming theory [22]. Furthermore, if we define expected second-stage value function (abbreviated as ESSVF)

$$ {\mathcal Q}_{E}(\user2{x})=E\left[Q(\user2{x}, \xi)\right], $$
(10)

where \(E[\cdot]\) is the expected value operator with respect to fuzzy vector ξ, then it represents the expected total revenue obtained from the severed clients, given the first-stage decision x.

Based on the above notations, the first-stage of the FLP can be formulated as follows:

$$ \left. \begin{array}{ll} &\max \quad -\sum\limits_{i=1}^{n} c_{i}x_{i}+{\mathcal Q}_{E}(\user2{x})\\ &\hbox{subject\,to}\quad x_{i}\in \{0,1\}, i=1,2,\ldots,n. \end{array} \right. $$
(11)

Combining the problems (9) and (11) yields the two-stage fuzzy FLP. It is equivalent to the problem (7).

Particularly, if fuzzy vector ξ in problem (9)–(11) is a discrete one that takes the following values

$$ \begin{array}{ll} \widehat\xi^{1}=\left(\widehat d_{1}^{1}, \ldots, \widehat d_{m}^{1},\widehat v_{1}^{1},\ldots,\widehat v_{n}^{1}\right) &\hbox{with\, possibility} \,\mu_{1}>0,\\ \widehat\xi^{2}=\left(\widehat d_{1}^{2}, \ldots, \widehat d_{m}^{2},\widehat v_{1}^{2},\ldots,\widehat v_{n}^{2}\right)& \hbox{with\, possibility} \,\mu_{2}>0,\\ \quad \cdots & \quad \cdots\\ \widehat\xi^{N}=\left(\widehat d_{1}^{N}, \ldots, \widehat d_{m}^{N},\widehat v_{1}^{N},\ldots,\widehat v_{n}^{N}\right) & \hbox{with\,possibility} \,\mu_{N}>0, \end{array} $$

and \(\max\nolimits_{k=1}^{N}\,\mu_{k}=1.\) Without any loss of generality, we assume that for any fixed x the SSVF Q(x, ξ(γ)) satisfies the condition \(Q(\user2{x},\widehat\xi^{1}) \leq Q(\user2{x},\widehat\xi^{2})\leq\cdots\leq Q(\user2{x},\widehat\xi^{N}), \) then the value of the ESSVF \({{\mathcal Q}_{E}(\user2{x})}\) at x is computed by the formula

$$ {\mathcal Q}_{E}(\user2{x})=\sum_{k=1}^{N} p_{k} Q(\user2{x},\widehat\xi^{k}), $$
(12)

where

$$ \left. \begin{array}{ll} &Q(\user2{x},\widehat\xi^{k})=\max \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} (r_{j}-{\widehat v_{i}^{k}}-t_{ij})y_{ij}\\ \hbox{subject\, to} &\sum\limits_{i=1}^{n} y_{ij}\le {\widehat d_{j}^{k}}, \quad j=1,2,\ldots,m,\\ & \sum\limits_{j=1}^{m}y_{ij}\le s_{i} x_{i}, \quad i=1,2,\ldots,n,\\ & y_{ij}\ge 0, \quad i=1,2,\ldots,n, \quad j=1,2,\ldots,m,\\ \end{array} \right. $$
(13)

and the corresponding weights p i ′s are given by formula (6). The following example is provided to depict the process of solving the problem (9)–(11) in a simple discrete fuzzy vector scenario.

Example 3

Let n = 2, m = 1, (r 1r 2) = (5, 4), (s 1s 2) = (2, 2), (t 1t 2) = (3, 2), (c 1c 2) = (0.1, 0.3). If fuzzy operating cost v 1 takes the values 1 and 2 with possibilities 0.5 and 1, respectively, and v 2 takes the values 3 and 4 with possibilities 0.25 and 1, respectively, and fuzzy demand d≡ 3, then problem (9)–(11) can be built as

$$ \begin{aligned} &\max -0.1x_{1}-0.3x_{2}+E\left[Q(\user2{x}, \xi)\right]\\ &\hbox{subject \,to} \,x_{i}\in \{0,1\}, i=1,2. \end{aligned} $$
(14)

where

$$ \left. \begin{array}{ll} &Q(\user2{x}, \xi(\gamma))=\max 2y_{1}+2y_{2}-v_{1}(\gamma)y_{1}-v_{2}(\gamma)y_{2}\\ &\hbox{subject\,to}\quad y_{1}+y_{2}\le 3, \\ & 0\le y_{1}\le 2x_{1},\\ & 0\le y_{2}\le 2x_{2}.\\ \end{array}\right. $$
(15)

By the assumptions, we know fuzzy vector ξ = (dv 1v 2) is discrete, and

$$ \begin{array}{ll} \widehat\xi^{1}=\left(3, 1, 3\right) & \hbox{with\, possibility}\,\mu_{1}=\min\{0.5, 0.25\}=0.25,\\ \widehat\xi^{2}=\left(3, 1, 4\right)& \hbox{with\, possibility}\, \mu_{2}=\min\{0.5, 1\}=0.5,\\ \widehat\xi^{3}=\left(3, 2, 3\right)& \hbox{with\, possibility}\,\mu_{3}=\min\{1, 0.25\}=0.25,\\ \widehat\xi^{4}=\left(3, 2, 4\right)& \hbox{with\, possibility}\,\mu_{4}=\min\{1, 1\}=1. \end{array} $$

We note that the first-stage decision variable x takes four values in all: (0, 0), (1, 1), (1, 0) and (0,1). And, fuzzy vector ξ have four realizations (3, 1, 3), (3, 1, 4), (3, 2, 3) and (3, 2, 4) for each value of x. The process of the solution of this problem can be divided roughly into three steps: Firstly, calculate the SSVF \(Q(\user2{x}, {\hat\xi})\) by solving a second-stage programming (15) for each value of x and realization \({\hat\xi}\) of ξ. Secondly, compute the ESSVF \({{\mathcal Q}_{E}(\user2{x})=E\left[Q(\user2{x}, \xi)\right]}\) for each x through formula (12). Thirdly, find the optimal solution by solving the first-stage programming (14). The detailed solution process is given below.

In the case of x = (0, 0), straightforwardly, we have the optimal second-stage solution y *1  = y *2  = 0, and the second-stage value \(Q(0,0, \widehat\xi^{k})=0\) for k = 1, 2, 3, 4. Hence, E[Q(0, 0, ξ)] = 0, and the objective value of the model at x = (0,0) is 0.

For the case that x = (1, 1), we can compute respectively that the second-stage value \(Q(1,1, \widehat\xi^{k}), k=1,2,3,4\) as follows. For \(\widehat\xi^{1}=\left(3,1, 3\right)\) with possibility μ1 = 0.25, we have the second-stage programming is

$$ \left. \begin{array}{rl} Q(1,1, \widehat\xi^{1})=\max & y_{1}-y_{2}\\ \hbox{subject to:} & y_{1}+y_{2}\le 3, \\ & 0\le y_{i}\le 2, i=1,2. \end{array}\right. $$

Clearly, the optimal second-stage solution is y *1  = 2, y *2  = 0. Hence, \(Q(1,1, \widehat\xi^{1})=2\) with possibility μ1 = 0.25. By the same reasoning, we can calculate

$$ \begin{array}{ll} Q(1,1, \widehat\xi^{2})=2& \hbox{with\, possibility}\, \mu_{2}=0.5,\\ Q(1,1, \widehat\xi^{3})=0& \hbox{with\, possibility} \,\mu_{2}=0.25,\\ Q(1,1, \widehat\xi^{4})=0& \hbox{with\, possibility} \,\mu_{2}=1. \end{array} $$

That is

$$ 0=Q(1,1, \widehat\xi^{4})=Q(1,1, \widehat\xi^{3})<Q(1,1, \widehat\xi^{2})=Q(1,1, \widehat\xi^{1})=2. $$

Furthermore,

$$ \begin{array}{ll} p_{1}=0.5\times ({1-1})+0.5\times0.25=0.125, \\ p_{2}=0.5\times ({1-1})+0.5\times(0.5-0.25\})=0.125, \\ p_{3}=0.5\times (1-1)+0.5\times(0.5-0.5)=0, \\ p_{4}=0.5\times {1}+0.5\times(\max\{1,0.25,0.5,0.25\}-\max\{0.25,0.5,0.25\})=0.75. \end{array} $$

As a consequence,

$$ E[Q(1,1,\xi)]=0\times 0.75+ 0\times 0 +0.125\times 2+0.125\times 2=0.5, $$

and the objective value at x = (1,1) of the model is −0.1 − 0.3 + 0.5 = 0.1.

If x = (0, 1), we can calculate \( Q(0,1, \widehat\xi^{k})=0\) for k = 1, 2, 3, 4. Thus, E[Q(0, 1, ξ)] = 0 and the objective value of the model at x = (0,1) is −0.3.

If x = (1, 0), we can calculate

$$ \begin{array}{ll} Q(1,0, \widehat\xi^{1})=2& \hbox{with\, possibility} \mu_{2}=0.25,\\ Q(1,0, \widehat\xi^{2})=2& \hbox{with\, possibility} \mu_{2}=0.5,\\ Q(1,0, \widehat\xi^{3})=0& \hbox{with\, possibility} \mu_{2}=0.25,\\ Q(1,0, \widehat\xi^{4})=0& \hbox{with\, possibility} \mu_{2}=1, \end{array} $$

hence, we only need to compute

$$ p_{1}=0.125, \quad p_{2}=0.125. $$

Furthermore,

$$ E[Q(1,0,\xi)]=0.125\times 2+0.125\times 2=0.5, $$

and the objective value of the model at x = (1,0) is 0.4.

Comparing the objective values for all the values of the first-stage decision x, we obtain the optimal value of this model is 0.4 with the optimal solution x * = (x *1 x *2 ) = (1, 0).

Observing the problem (9)–(11), we can see the fact that the complexity of the problem is directly related to the number of location decisions and the possible realizations of fuzzy variables. In other words, the problem size rapidly increases with the number of x i and the realizations of ξ. In fact, as illustrated in Example 3, for each first-stage decision x, there are different realizations \(\xi(\gamma), \gamma\in\Upgamma, \) and for each pair (x, ξ(γ)) we have to solve the second-stage programming (9), which is a linear programming. Therefore, it is very difficult to obtain the analytical expression of the ESSVF \({{\mathcal Q}_{E}(\user2{x}). }\) Furthermore, since the fuzzy operating cost v i and fuzzy demand d j involved in problem (9)–(11) are usually continuous which are defined through possibility distributions with infinite support, the model is inherently an infinite-dimensional optimization problem that can not be solved directly and exactly. As a consequence, algorithms designed to solve such a problem must rely on intelligent computing and some approximation scheme. Solution procedure will be discussed in the next section.

4 Solution procedure

In this section, using an scheme proposed by Liu [23], we shall approximate fuzzy variables with infinite supports by finitely supported ones, which enable us to solve the infinite-dimensional optimization model by solving a finite-dimensional problem. Furthermore, in order to accelerate the solution process, we employ an neural network (NN) based on the approximation scheme to simulate the ESSVF. Finally, to avoid getting stuck at a local optimal solution, we suggest a heuristic algorithm, which incorporates approximation approach, NN and PSO, to solve the problem (9)–(11).

4.1 Approximation approach

From the discussion of Sect. 3, we know that in order to solve the problem (9)–(11), it is required to evaluate the ESSVF

$$ {\mathcal Q}_{E}(\user2{x})= E[Q(\user2{x},\xi)], $$
(16)

where ξ is the fuzzy vector described in (8).

For any given decision x, we compute \({{\mathcal Q}_{E}(\user2 {x})}\) by the following approach.

Assume that \(\xi=(d_{1},\ldots,d_{m}, v_{1}, \ldots, v_{n})\) is a continuous fuzzy vector whose support is

$$ \Upxi=\prod_{j=1}^{m}[a_{j}^{L},a_{j}^{U}]\times \prod_{i=1}^{n}[b_{i}^{L},b_{i}^{U}] $$
(17)

where [a L j a U j ] is the support of d j and [b L i b U i ] is that of v i . Then we employ the method proposed in ([23]) to approximate the possibility distribution of ξ by a sequence of possibility distributions of discrete fuzzy vectors \(\{\zeta_{m}\}. \)

For each integer l, we define the discrete fuzzy vector \(\zeta_{l}=(\zeta_{l,1},\ldots,\zeta_{l,m},\zeta_{l,m+1},\ldots, \zeta_{l,m+n})\) as follows:

For each \(j\in\left\{1,2,\ldots,m\right\}\) and \(i\in\left\{1,2,\ldots,n\right\},\) define fuzzy variables \(\zeta_{l,j}=g_{l,j}(d_{j})\) and \(\zeta_{l,m+i}=g_{l,m+i}(v_{i}), \) for \(l=1,2,\ldots,\) where g l,j (d j )’s and g l,m+i (v i )’s are given respectively as follows,

$$ g_{l,j}(u_{j})=\sup\left\{\frac{k}{l}\bigm|k\in Z,\text{ s.t. }\frac{k}{l}< u_{j} \right\},\quad u_{j}\in [a_{j}^{L},a_{j}^{U}] $$

and

$$ g_{l,m+i}(u_{i})=\sup\left\{\frac{k}{l}\bigm|k\in Z,\text{ s.t. }\frac{k}{l}< u_{i} \right\},\quad u_{i}\in [b_{i}^{L},b_{i}^{U}] $$

Z is the set of integers.

According to the above definitions, for each j, as d j takes its values in the interval [a L j a U j ], the fuzzy variables \(\zeta_{l,j}\) takes values \(\frac{k}{l}\) for \(k=[l\cdot a_{j}^{L}],[l\cdot a_{j}^{L}]+1,\ldots, [l\cdot a_{j}^{U}]\) with \([\cdot]\) the integer part of ·. Moreover, for each k, fuzzy variable \(\zeta_{l,j}\) only takes the value \(\frac{k}{l}\) as d j takes its values in \(\left[\frac{k}{l},\frac{k+1}{l}\right)\). Consequently, for each \(\gamma\in\Upgamma,\) we have

$$ \left|\zeta_{l,j}(\gamma)-d_{j}(\gamma)\right|<\frac{1}{l},\quad j=1,2,\ldots,m. $$

By the same analysis, we can obtain

$$ \left|\zeta_{l,m+i}(\gamma)-v_{i}(\gamma)\right|<\frac{1}{l},\quad i=1,2,\ldots,n. $$

Note that \(\zeta_{l}\) and ξ are m + nary fuzzy vectors, and \(\zeta_{l,j}^{d}, \zeta_{l,i}^{v}\) and d j v i are their components, respectively, we have

$$ \|\zeta_{l}(\gamma)-\xi(\gamma)\|= \sqrt{\sum_{j=1}^{m}(\zeta_{l,j}(\gamma)-d_{j}(\gamma))^{2}+\sum_{i=1}^{n}(\zeta_{l,m+i}(\gamma)-v_{i}(\gamma))^{2}}\le \frac{\sqrt{m+n}}{l} $$
(18)

for all \(\gamma\in\Upgamma. \) That implies the sequence \(\{\zeta_{l}\}\) of fuzzy vectors converges to infinite-supported fuzzy vector ξ uniformly. The sequence \(\{\zeta_{l}\}\) of finite-supported fuzzy vectors is referred to as discretization of the fuzzy vector ξ.

In the following, we provide an example to show the discretization process described above.

Example 4

Consider the triangular fuzzy variable ξ = (2, 3, 4) in Example 1, define a sequence of discrete fuzzy variables \(\zeta_{l}=g_{l}(\xi), \) where the function g l is defined by

$$ g_{l}(u)=\sup\left\{\frac{k}{l}| k\in Z,{s.t.}\frac{k}{l}< u\right\},u \in [2,4]. $$

Determine the possibility distributions of the discrete fuzzy variables \(\zeta_{l}\) for \(l=1,2,\ldots. \)

Let l = 1. Then \(\zeta_{1}\) takes only two values: 2 and 3. As ξ takes its values in [2, 3), \(\zeta_{1}\) takes the value 2 only, and \(\zeta_{1}\) takes the value 3 as ξ takes its values in [3,4). Hence,

$$ \mu_{1}(2)=\hbox{Pos} \{\zeta_{1}=2\} = \hbox{Pos}\{2\le \xi<3\}=1, $$
$$ \mu_{1}(3)=\hbox{Pos}\{\zeta_{1}=3\}=\hbox{Pos}\{3\le \xi<4\}=1. $$

That is, discrete fuzzy variable \(\zeta_{1}\) takes values 2 and 3 with possibility 1 each.

Let l = 2. Then \(\zeta_{2}\) takes four values, 2, \(\frac{5}{2}, \) 3 and \(\frac{7}{2}, \) as ξ takes it values in the intervals \([2, \frac{5}{2}), [\frac{5}{2},3), [3,\frac{7}{3})\) and \([\frac{7}{3},4), \) respectively. Therefore

$$ \begin{aligned}\mu_{2}(2)&=\hbox{Pos}\left\{\zeta_{2}=2\right\}=\hbox{Pos} \left\{2\le\xi<\frac{5}{2}\right\}=\frac{1}{2}, \\ \mu_{2}\left(\frac{5}{2}\right)&=\hbox{Pos}\left\{\zeta_{2}=\frac{5}{2}\right\}=\hbox{Pos}\left\{\frac{5}{2}\le \xi < 3\right\}=1.\\ \mu_{2}(3)&=\hbox{Pos}\left\{\zeta_{2}=3\right\}=\hbox{Pos}\left\{3 \le \xi < \frac{7}{2}\right\} =1, \\ \mu_{2}\left(\frac{7}{2}\right)&=\hbox{Pos}\left\{\zeta_{2}=\frac{7}{2}\right\}=\hbox{Pos}\left\{\frac{7}{2}\le \xi<4 \right\}=\frac{1}{2}.\end{aligned} $$

That is, \(\zeta_{2}\) takes values 2, \(\frac{5}{2}, \) 3 and \(\frac{7}{2}\) with possibilities \(\frac{1}{2}, \) 1, 1 and \(\frac{1}{2}, \) respectively.

Generally, ζ l takes 2l values \(\frac{i}{l}, i=2l, 2l+1, \ldots, 4l-1. \) The possibility that ζ l takes value \(\frac{i}{l}\) is

$$ \mu_{l}\left(\frac{i}{l}\right)=\hbox{Pos}\left\{\frac{i}{l}\le \xi<\frac{i+1}{l}\right\} =\left\{\begin{array}{ll} \frac{i+1}{l}-2, &\quad \hbox{if}\; 2l\le i\le 3l-1\\ 4-\frac{i}{l}, &\quad \hbox{if}\; 3l\le i\le4l-1\\ 0, &\quad\hbox{otherwise.}\\ \end{array}\right. $$

We now replace the possibility distribution of ξ by that of its discretization \(\zeta_{l}, \) and approximate the ESSVF \({{\mathcal Q}_{E}(\user2{x})}\) by \(E[Q(\user2{x}, \zeta_{l})]\) for each given decision x. For each given integer l, the fuzzy vector \(\zeta_{l}\) takes finite number of values, which are denoted by

$$ \widehat \zeta_{l}^{k}=(\widehat \zeta_{l,1}^{k}, \ldots, \widehat \zeta_{l,m}^{k}, \widehat \zeta_{l,m+1}^{k}, \ldots, \widehat \zeta_{l,m+n}^{k}), \quad k=1,2,\ldots, K. $$

Then, we denote

$$ \nu_{k}=\min\{\mu_{l,1}(\widehat \zeta_{l,1}^{k}), \ldots, \mu_{l,m}(\widehat \zeta_{l,m}^{k}),\mu_{l,m+1} (\widehat \zeta_{l,m+1}^{k}),\ldots, \mu_{l,m+n} (\widehat \zeta_{l,m+n}^{k})\} $$

for \(k=1,2,\ldots,K, \) where μ l,i are the possibility distribution of \(\zeta_{l,i}\) for \(i=1,2,\ldots, m, m+1, \ldots, m+n,\) respectively. For each k, we solve the second-stage linear programming problem (9) through simplex algorithm [8, 10] and obtain the optimal value \(Q(\user2{x}, \widehat \zeta_{l}^{k}), \) whose possibility is ν k . Rearrange the subscript k of ν k and \(Q(\user2{x}, \widehat \zeta_{l}^{k})\) such that

$$ Q(\user2{x}, \widehat \zeta_{l}^{1})\le Q(\user2{x}, \widehat \zeta_{l}^{2})\le \cdots\le Q(\user2{x}, \widehat \zeta_{l}^{K}). $$

Calculate the wights \(p_{k}, k=1,2,\ldots, K\) by formula (6). After that, the expected value \(E[Q(\user2{x}, \zeta_{l})]\) is computed by the formula

$$ {\mathcal Q}=\sum_{k=1}^{K} p_{k} Q(\user2{x}, \widehat \zeta_{l}^{k}). $$
(19)

The following Theorem 1 will show that \(E[Q(\user2{x}, \zeta_{l})]\) converges to \({{\mathcal Q}_{E}(\user2{x}), }\) as \(l\to \infty. \) As a consequence, the original ESSVF \({{\mathcal Q}_{E}(\user2{x})}\) can be approximated by \(E[Q(\user2{x},\zeta_{l})]\) through the formula (19), provided l is sufficiently large. The process to compute the ESSVF is summarized as

Algorithm 1: Approximation approach

  • Step 1. Generate K points \(\widehat \zeta_{l}^{k}=\left(\widehat \zeta_{l,1}^{k}, \ldots, \widehat \zeta_{l,m+n}^{k}\right)\) uniformly from the support \(\Upxi\) of ξ for \(k=1,2,\ldots, K. \)

  • Step 2. Solve the second-stage linear programming (9) via simplex algorithm, and obtain the optimal value \(Q(\user2{x}, \widehat \zeta_{l}^{k})\) for \(k=1,2,\ldots, K. \)

  • Step 3. compute the possibility of \(Q(\user2{x}, \widehat \zeta_{l}^{k})\) by setting \(\nu_{k}=\min\{\mu_{l,1}(\widehat \zeta_{l,1}^{k}), \ldots, \mu_{l,m+n}(\widehat \zeta_{l,m+n}^{k})\}\) for \(k=1,2,\ldots, K. \)

  • Step 4. Rearrange the subscript k of ν k and \(Q(\user2{x}, \widehat \zeta_{l}^{k})\) such that \( Q(\user2{x}, \widehat \zeta_{l}^{1})\le Q(\user2{x}, \widehat \zeta_{l}^{2})\le \cdots\le Q(\user2{x}, \widehat \zeta_{l}^{K}).\)

  • Step 5. Calculate the wights \(p_{k}, k=1,2,\ldots, K\) by formula (6).

  • Step 6. Return the value of \({{\mathcal Q}}\) through the estimation formula (19).

    The convergence of Algorithm 1 is ensured by the following theorem.

Theorem 1

Consider the problem (9)–(11). Suppose the fuzzy cost and demand vector ξ is a continuous fuzzy vector with support (17), and \(\zeta_{l}\) 's are the discretization of the fuzzy vector ξ, then for any given feasible decision xwe have

$$ \lim\limits_{l\to\infty}E[Q(\user2{x},\zeta_{l})] = {\mathcal Q}_{E}(\user2{x}). $$

Proof

Since the problem (9)–(11) is a two-stage fuzzy programming, and the second-stage programming (9) can be expressed in the form given below:

$$ \left. \begin{array}{ll} \max & V(\gamma)^{T}{y}\\ {subject\;to} & W{{y}}=H-T(\gamma)\user2{x}\\ & {{y}}\ge 0 \end{array} \right. $$

where V is a matrix containing r j t ij and fuzzy costs v i (γ) for \(i=1,2,\ldots, n, T\) a matrix containing s i and fuzzy demands d j (γ), H is the matrix of slack variables, and matrix W only consists of 0 and 1. Noting that matrix W is fixed, together with the fact that ξ is a continuous fuzzy vector with a compact support (17) and that \(\zeta_{l}\)’s are the discretization of ξ, by the properties of two-stage fuzzy programming with fixed recourse [22], we can obtain

$$ \lim\limits_{l\to\infty}E[Q(\user2{x},\zeta_{l})]= {\mathcal Q}_{E}(\user2{x}). $$

The proof is complete.\(\square\)

4.2 Estimating the ESSVF by NN

So far, we have discussed the approximation approach for the ESSVF \({{\mathcal Q}_{E}(\user2{x}). }\) It is easy to see that the approach is a time-consuming process though it’s convergence can be ensured by Theorem 1, since in each iteration of simulation, we have to solve the linear programming (9) many times in the second stage. To speed up the solution process, in this paper, we employ the fast BP algorithm [18] to train a feedforward NN to estimate \({{\mathcal Q}_{E}(\user2{x}). }\) The training data set can be generated by the approximation approach of \({{\mathcal Q}_{E}(\user2{x})}\) discussed in Sect. 4.1 Therefore, much time can be saved during the solution process since it is not necessary to evaluate \({{\mathcal Q}_{E}(\user2{x})}\) by the approximation approach. We use the NN with input layer, one hidden layer and output layer connected in a feedforward way, in which there are n neurons in input layer representing the input value of decision variables, p neurons in hidden layer, and 1 neuron in output layer representing the value of the ESSVF. In addition, the number p in the hidden layer can be determined by pruning algorithm [6]. Let \(\left\{(\user2{x}_{k},y_{k})\mid k=1,2,\ldots,N\right\}\) be a set of input-output data generated by fuzzy simulations. The training process is to find the best weight vector w that minimizes the following error function

$$ Err({\user2{w}})=\frac{1}{2}\sum\limits_{k=1}^{N} |F(\user2{x}_{k},{\user2{w}})-y_{k}|^{2}, $$
(20)

where F(x k w) is the output function of the NN. As for more details on NN and its applications, the reader can refer to [3, 7, 35, 36, 37].

4.3 A hybrid algorithm

Particle swarm optimization (PSO) developed by Kennedy and Eberhart [19] is an evolutionary computation technique which uses collaboration among a population of simple search agents (called particles) to find optima in function spaces. In PSO, a potential solution to a problem is represented as a particle i having current position x id and the direction v id in which the particle will travel. Each particle i maintains a record of the position of its previous best performance in a vector p id . The variable g is the index of the particle with best performance so far in the population. An iteration comprises evaluation of each particle, then stochastic adjustment of v id in the direction of particle i′s best previous position p id and the best previous position p gd of any particle in the population. The direction vector v id is updated first and then added to x id according to the formulas given below [32]:

$$ v_{id}=\omega*v_{id}+c_{1}*\hbox{rand()}*(p_{id}-x_{id})+c_{2}*\hbox{rand()}*(p_{gd}-x_{id}), $$
(21)
$$ x_{id}=x_{id}+v_{id} $$
(22)

where i is the ith particle, c 1 and c 2 are random numbers independently generated in the interval [0,4] which represent the weighting of the stochastic acceleration terms that pull each particle towards p id and p gd positions, respectively, rand() is a uniform random number in the interval [0,1], and ω is the inertia weight whose value decreases linearly as the number of iterations of the algorithm increases. PSO has demonstrated great success in providing good solutions to many complex optimization problems and has received more and more attention during the past decade. The reader who are interested in detailed discussion about PSO and its applications may refer to [17, 19], [20, 3234, 38).

In order to use a PSO algorithm to solve the location problem (9)–(11) more effectively, we define the following function:

$$ \varphi(t_{i})=\left\{ \begin{array}{ll} 1, &\quad \hbox{if} \,t_{i}>0.5 \\ 0, &\quad \hbox{if} \,t_{i}\le0.5 \end{array} \right. $$
(23)

for \(i=1,2,\ldots,\) and denote \(\varphi({{\bf t}})=(\varphi(t_{1}), \ldots,\varphi(t_{n})), \) where \({{\bf t}}=(t_{1}, \ldots, t_{n})\in [0,1]^{n}. \) Hence, the problem (9)–(11) can be solved by solving the following modified model:

$$ \left. \begin{array}{ll} &\max \quad -\sum\limits_{i=1}^{n} c_{i}\varphi(t_i)+{\mathcal Q}_{E}(\varphi({{\bf t}}))\\ &\hbox{subject to} \quad t_{i}\in [0,1], i=1,2,\ldots,n, \end{array} \right. $$
(24)

where \({{\mathcal Q}_{E}(\varphi({{\bf t}}))=E[Q(\varphi({{\bf t}}), \xi)]}\) and

$$ \left. \begin{array}{ll} &Q(\varphi({\bf t}), \xi(\gamma))=\max \quad \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} (r_{j}-v_{i}(\gamma)-t_{ij})y_{ij}\\ &\hbox{subject to}\quad \sum\limits_{i=1}^{n} y_{ij}\le d_{j}(\gamma), \quad j=1,2,\ldots,m,\\ & \sum\limits_{j=1}^{m}y_{ij}\le s_{i} \varphi(t_{i}), \quad i=1,2,\ldots,n,\\ & y_{ij}\ge 0, \quad i=1,2,\ldots,n, \quad j=1,2,\ldots,m.\\ \end{array} \right. $$
(25)

Clearly, the original problem (9)–(11) and modified problem (24, (25) correspond the same optimal value, and the optimal solution of problem (9)–(11) can be presented by that of problem (24, (25) using (23):

$$ \user2{x}^{*}=(x_{1}^{*},\ldots,x_{n}^{*})=(\varphi(t_{1}^{*}),\ldots,\varphi(t_{n}^{*})). $$
(26)

In the following, we incorporate approximation approach, NN and PSO to produce a hybrid algorithm for solving the FPR problems. First, we generate a training data set for an ESSVF \({{\mathcal Q}_{E}(\user2{x})}\) by approximation approach. Then, using the generated input-output data, we train an NN by fast BP algorithm to estimate \({{\mathcal Q}_{E}(\user2{x}). }\) We repeat this BP algorithm until the error for all vectors in the training set is reduced to an acceptable value or perform the specified number of epochs of training. After that, we use new data (which are not learned by the NN) to test the trained NN. If the test results are satisfactory, then we stop the training process; otherwise, we continue to train the NN. After the NN is well-trained, it is embedded into a PSO. During the solution process, the output values of the trained NN are used to represent the approximate values of \({{\mathcal Q}_{E}(\user2{x}). }\) This process of the hybrid algorithm for solving the problem (9)–(11) is summarized as follows.

Algorithm 2 A Hybrid Algorithm

  • Step 1. Generate a set of input-output data for an ESSVF \({{\mathcal Q}_{E}(\user2{x})}\) through Algorithm 1;

  • Step 2 Train an NN to approximate \({{\mathcal Q}_{E}(\user2{x})}\) by the generated data;

  • Step 3. Initialize a population of particles (potential solutions) at random, set p id equal to x id for each particle i, and find p gd for the population;

  • Step 4. Update all the particles by formulas (21) and (22);

  • Step 5. Calculate the objective values for all particles by the trained NN, and evaluate each particle according to the objective value;

  • Step 6. Update the p id for each particle, and the p gd for the population, respectively;

  • Step 7. Repeat Step 4 to Step 6 for a given number of generations;

  • Step 8. Return the particle p gd as the optimal solution of modified problem (24, (25), and obtain the optimal solution of original problem (9)–(11) through formula (26).

5 A numerical example

Suppose a firm intends to open new facilities in six potential sites, whose fixed costs and variable operating costs are given in Table 1, and there are five clients whose demands are triangular fuzzy variables given below

$$ d_{1}=(12,13,14), d_{2}=(10,12,14), d_{3}=(14,15,16), d_{4}=(12,14,16), d_{5}=(9,10,12). $$
Table 1 Capacities and fixed costs of six facilities

Example 5

Consider the following two-stage fuzzy facility location problem

$$ \left. \begin{array}{ll} \max &-3x_{1}-x_{2}-2x_{3}-x_{4}-2x_{5}-3x_{6}+{\mathcal Q}_{E}(\user2{x})\\ {subject\, to} &x_{1}, x_{2}, \ldots,x_{6}\in \{0,1\}, \end{array} \right. $$
(27)

where \({{\mathcal Q}_{E}(\user2{x})=E[Q(\user2{x}, \xi)]}\) and

$$ \left. \begin{array}{ll} Q(\user2{x}, \xi(\gamma))=\max &\sum\limits_{i=1}^{6}\sum\limits_{j=1}^{5} (r_{j}-v_{i}(\gamma)-t_{ij})y_{ij}\\ {subject\, to} & \sum\limits_{i=1}^{n} y_{ij}\le d_{j}(\gamma), j=1,2,\ldots,5,\\ & \sum\limits_{j=1}^{m} y_{ij} \le s_{i} x_{i}, i=1,2,\ldots,6,\\ & y_{ij}\ge 0, i=1,2,\ldots,6, j=1,2,\ldots,5,\\ \end{array} \right. $$
(28)

and the values of r j  − t ij , for \(i=1,2,\ldots,6, j=1,2,\dots,5\) are given by matrix

$$ M=\left(r_{j}-t_{ij}\right)_{6\times 5}=\left( \begin{array}{lllll} 3 & 4 & 3 & 6 & 5 \\ 4 & 3 & 2 & 5 & 6 \\ 4 & 5 & 3 & 5 & 4 \\ 4 & 6 & 5 & 4 & 6 \\ 3 & 4 & 6 & 5 & 6 \\ 4 & 5 & 6 & 5 & 2 \\ \end{array} \right). $$

To solve this problem, for any feasible solution x, we generate 3,000 sample points via approximation approach to evaluate the ESSVF \({{\mathcal Q}_{E}(\user2{x}). }\) That is, we are first required to solve the second-stage programming (28) 3,000 times and obtain the SSVF Q(x, ξ(γ i )) for \(i=1,2,\ldots, 3,000. \) Then the value of \({{\mathcal Q}_{E}(\user2{x})}\) at x can be computed by formula (19).

Furthermore, we generate 2,000 input-output data by using the method mentioned above to train an NN to estimate the ESSVF \({{\mathcal Q}_{E}(\user2{x}). }\) After the NN is well trained, it is embedded into a PSO algorithm to produce a hybrid algorithm (Algorithm 2) to search for the optimal solution. As have described in Sect. 4.3, for problem (27), (28), we replace all the \(x_{i}\in \{0,1\}\) by \(\varphi(t_{i})\in [0,1], \) for \(i=1,2,\ldots,6, \) where \(\varphi(\cdot)\) is given by formula (23). Hence, \({{\bf t}}=(t_{1}, t_{2}, \ldots, t_{6})\) is considered as the particle in the PSO, and the optimal solution of the problem is given by \(\user2{x}^{*}=(\varphi(t_{1}^{*}), \varphi(t_{2}^{*}), \ldots, \varphi(t_{6}^{*})).\)

In this paper, parameters of PSO c 1 and c 2 are set equal to 2, the population size P size  = 4, the maximum generation G max  = 60, and using the method of (Shi and Eberhart, 1998a) that inertia weight decreases linearly from about 0.9 to 0.4 during a run, ω is given by

$$ w=0.5*(G_{max}-G_{n})/G_{max} +0.4, $$

where G n the number of current generation. A run of the hybrid algorithm (Algorithm 2) shows the optimal location decision is

$$ \user2{x}^{*}=(x_{1}^{*}, x_{2}^{*}, \ldots, x_{6}^{*})=(1,1,1,1,1,0) $$

whose objective value is 53.798394. In Table 2, we can compare the results at different generations of particles. It follows from Table 2 that the algorithm converges at the generation of 20. Furthermore, in order to test the effectiveness of the algorithm, we reset the P size  = 100 to achieve an ergodic search, and obtain the global optimal solution which is right x * = (1, 1, 1, 1, 0) with objective value 53.798394. That is, the hybrid algorithm searches out the global optimal solution at the generation of 20 with population size 4, which implies the high effectiveness of the algorithm.

Table 2 Comparison solutions of Example 5.1

6 Concluding remarks

This paper puts forth a novel and realistic capacitated two-stage FLP with fuzzy costs and demands. Since the problem is a 0–1 integer two-stage fuzzy programming, and the possibility distributions of fuzzy costs and demands own infinite support, the proposed FLP can not be solved directly and exactly. Therefore, in order to tackle this complicated model, first, an approximation method of the location problem is employed, and the convergence of the method is proved. After that, a hybrid algorithm which integrates the approximation approach, neural network and particle swarm optimization is designed to solve the problem. Finally, a numerical example is provided to test the effectiveness of the hybrid algorithm. With the proposed model, the approximately optimal location can be determined when the location problems are with imprecise cost and demand parameters, or they are directly provided by the experts.

There is much room for further development based on this study, for instance, a more complex situation could be more interesting by considering a hybrid continuous-discrete location region, in that case, the solution should be totally different and much more difficult.