1 Introduction

It has become increasingly important to establish effective evacuation planning systems against large-scale disasters, e.g., earthquakes, tsunamis, and hurricanes, for example. For this purpose, several theoretical issues have to be considered. In particular, we focus on where evacuation buildings should be located in cities. Since the Tohoku-Pacific Ocean Earthquake occurred in Japan on March 11, 2011, construction of tsunami evacuation buildings in large Japanese cities near the coast has become an urgent issue.

Dynamic Network    To formulate the evacuation planning, we model a road network of a city as a graph in which a vertex represents an intersection associated with the number of habitants (evacuees) living close to the intersection and an edge represents a road that connects intersections associated with a transit time and a capacity which limits the flow rate entering the edge. The capacity of an edge is determined by the width and the speed limit of the corresponding road. In the graph, we are given a set of evacuation buildings (safe places) to which people evacuate when a large disaster occurs. Such a graph is called a dynamic flow network which was first introduced by Ford and Fulkerson [23]. From the viewpoint of evacuation planning, all evacuees must be sent to evacuation centers as quickly as possible. As will be mentioned later in this section, the concept of dynamic flow was first introduced to model the quickest transshipment problem: given a set of sources with available supplies and a set of sinks with required demands, the problem asks whether it is possible to send supplies to sinks in given time T to satisfy all the demands of the sinks. A sink is the point where a facility is located. This problem is very similar to the evacuation problem except for the existence of demands, and thus all the results of the quickest transshipment problems can be applied to evacuation problems. Therefore, in this paper, the number of evacuees existing at a vertex is called a supply. Notice that unlike in static flow networks, the time required to move supply from one vertex to another can be increased due to congestion caused by the capacity constraints, which requires supplies to wait at a vertex until supplies preceding it leave. Given a dynamic flow network, we are asked to transport supplies to sinks as quickly as possible.

Recently, to decrease the loss of human lives, many cities along the coast of the Pacific Ocean are planning to increase tsunami evacuation buildings. This motivates us to study the facility location problems in dynamic flow networks.

Integral Flow vs Fractional Flow    Dynamic networks can be considered in integral and fractional flow models. In the integral flow model, each input value is given as an integer and each supply is regarded as a set of substantial units. In other words, a supply can be regarded as a set of evacuees, and then the edge capacity is defined as the maximum number of evacuees who can enter an edge per unit time. On the other hand, in the fractional flow model, each input value is given as a real number. Then each supply can be regarded as fluid, and edge capacity is defined as the maximum amount of supply which can enter an edge per unit time.

Optimal Facility Location Problem    In this survey, we consider the facility location problems in dynamic flow networks. The problem is called the optimal facility location problem, in particular, if it requires finding a location of facilities in a given network so that all supplies are sent to the facilities as quickly as possible. For the optimality of location, the following two criteria can be naturally considered: the minimization of maximum cost and total cost (in a facility location in static flow networks, these criteria correspond to the center problem and the median problem, respectively). We explain these criteria in the integral flow model. Letting \({\varvec{x}}\) denote a location of facilities in a dynamic flow network, assume that every evacuee goes to one of the facilities of \({\varvec{x}}\). Then, an evacuee follows a path from a vertex where he/she has been originally located to a facility, and each vertex v on the path stores two values which represent the time he/she arrives at v and the time he/she leaves v, respectively (assume that arriving time at the origin vertex is zero and leaving time at the facility is infinity). We call such a path with arriving times and leaving times an evacuation path.

Table 1 Table for the minimax problems
Table 2 Table for the minisum problems

Given a location of facilities \({\varvec{x}}\), an evacuation to \({\varvec{x}}\) is defined as a set of evacuation paths to \({\varvec{x}}\) for all evacuees. An evacuation to \({\varvec{x}}\) is called feasible if it satisfies the capacity constraint which limits the number of evacuees entering each edge per unit time. Given a location of facilities \({\varvec{x}}\) and a feasible evacuation to \({\varvec{x}}\), say \({\mathscr {E}}\), the cost of \(({\varvec{x}}, {\mathscr {E}})\) for an evacuee is defined as the time required to send him/her to a facility of \({\varvec{x}}\) along an evacuation path determined by \({\mathscr {E}}\). Then \(max({\varvec{x}}, {\mathscr {E}})\) and \(sum({\varvec{x}}, {\mathscr {E}})\) are defined as the maximum of the cost of \(({\varvec{x}}, {\mathscr {E}})\) for all evacuees and the sum of the cost of \(({\varvec{x}}, {\mathscr {E}})\) for all evacuees, respectively. Note that these correspond to the completion time and the average time (times the number of evacuees) by \({\mathscr {E}}\). The maximum cost of \({\varvec{x}}\) and the total cost of \({\varvec{x}}\) are defined as \(\varTheta ({\varvec{x}}) = \min _{{\mathscr {E}} \in {\mathfrak {E}}_x} max({\varvec{x}}, {\mathscr {E}})\) and \(\varPhi ({\varvec{x}}) = \min _{{\mathscr {E}} \in {\mathfrak {E}}_x} sum({\varvec{x}}, {\mathscr {E}})\), respectively, where \({\mathfrak {E}}_x\) is the set of all feasible evacuations to \({\varvec{x}}\). In the fractional flow model, we define the unit as an infinitesimally small portion of supply, and the cost is defined on each infinitesimal unit. Then two criteria are defined in the same way as in the integral flow model. The minimax facility location problem and the minisum facility location problem are defined as problems that require finding a location of facilities \({\varvec{x}}\) that minimizes \(\varTheta ({\varvec{x}})\) and \(\varPhi ({\varvec{x}})\), respectively (Tables 1, 2).

At this point, we need to mention the relationship with well-known classical facility location problems (see [20]): k-center and k-median problems which, respectively, try to find a location of k facilities that minimizes the maximum (resp. the sum) of the distance from each user located at a vertex to the nearest facility. Facility location problems treated in this paper coincide with k-center and k-median problems if the number of facilities is fixed to k, a supply corresponds to a user, and the edge capacity is infinite (i.e., no congestion occurs). In this sense, our problems generalize the conventional facility location problems.

Here a number of questions are raised, for example: (1) What is the essential difficulty of our problems that discriminates the classical problems? (2) What is the time complexity of our problems? Although we do not have an answer to the first question (1) currently, we have a fully polynomial time approximation scheme (FPTAS) for the problem of finding an optimal location of a single facility in general graphs under the maximum cost criterion. This is contrasted with the existence of a polynomial time algorithm for the 1-center problem in general graphs. For the second question (2), regarding classical k-median and k-center problems, there exist several approximation algorithms [16, 21, 36]. For instance, there exists a 2-approximation algorithm for k-center problems in metric space [21, 36] while no such algorithm is known for the minimax facility location problem in dynamic flow networks.

Table 3 Table for the minimax regret problems adopting the maximum cost criterion
Table 4 Table for the minimax regret problems adopting the total cost criterion

Minimax Regret Facility Location Problem    Although the above criteria are reasonable for the facility location, such criteria may not be practical since the number of evacuees in an area may vary depending on the time (e.g., in an office area in a big city, there are many people during the daytime on weekdays while there are much less people on weekends or during the night time). Therefore, to take into account the uncertainty of population distribution, we consider the maximum regret for a facility location as another evaluation criterion assuming that for each vertex, we only know an interval of vertex supply. A particular assignment of supply to each vertex is called a scenario. Here, for a location of facilities \({\varvec{x}}\) and a scenario s, let \(\varTheta ^s({\varvec{x}})\) and \(\varPhi ^s({\varvec{x}})\) denote the maximum cost of \({\varvec{x}}\) under s and the total cost of \({\varvec{x}}\) under s, respectively. Also let \({\varvec{p}}^s\) and \({\varvec{q}}^s\) denote the minimax facility location under s and the minisum facility location under s, respectively. Then, the minimax regret facility location problem is formulated as follows. The problem can be understood as a 2-person Stackelberg game, that is, the first player picks a facility location \({\varvec{x}}\) and the second player chooses a scenario s that maximizes the regret defined as \(\varTheta ^s({\varvec{x}})-\varTheta ^s({\varvec{p}}^s)\) or \(\varPhi ^s({\varvec{x}})-\varPhi ^s({\varvec{q}}^s)\). The objective of the first player is to choose \({\varvec{x}}\) that minimizes the maximum regret (Tables 3, 4).

1.1 Related Work

The quickest transshipment problem is defined by a dynamic flow with sets of sources and sinks: each source has a fixed supply, and each sink has a fixed demand. The problem is to send exactly the right amount of supply from each source to each sink with minimum overall time. This problem has been studied for over fifty years [23]. The standard technique to solve this problem is to consider discrete time steps and make a copy of the original network for every time unit from time zero to the time horizon T. This process produces a time-expanded network (see Sects. 2.1 and 2.2 for details). Then applying a conventional max-flow algorithm, we can determine whether the optimal value is at most T or not. Therefore, finding an optimal solution requires a binary search for T. Since the size of the time expanded network is proportional to the size of the original network times T, the running time of this algorithm is polynomial in the size of the original network times T, and thus is pseudo-polynomial.

Here it is appropriate to mention the difference between the conventional quickest transshipment problem and the evacuation problem. Since a sink stands for an evacuation center in evacuation problems, it does not actually have a demand. Instead, it has an upper bound of the number of evacuees that the center can accommodate. Therefore, the evacuation problem tries to send all supplies to sinks as quickly as possible under the capacity constraints of edges and sinks. However, the algorithms developed for the quickest transshipment problem can be applied to the evacuation problem without major modifications.

Special cases of the quickest transshipment problem have been studied. The case with a single source and a single sink has been studied by Ford and Fulkerson [24] where the maximum dynamic flow problem which sends as much flow as possible from the source to the sink within a given time bound T was studied. They showed that this problem can be solved in polynomial time via one minimum cost flow computation. The quickest transshipment problem for the single source and the single sink can be reduced to the maximum dynamic flow problem by binary search. Burkard et al. [13] gave a more efficient, strongly polynomial time algorithm for this problem.

Efficient algorithms for subclasses of networks were developed [27, 38, 39, 41].

1.2 Organization

In the next section, we give definitions of dynamic flow and the time-expanded network.

In Sect. 3, we present recent results concerning optimal facility location problems in dynamic flow networks. Starting with the approximability result of k-facility location problems for general networks, we then explain efficient algorithms developed for the cases of path and tree dynamic flow networks.

In Sect. 4, we deal with the minimax regret facility location problem. We shall survey efficient algorithms recently developed for this problem with path and tree dynamic flow networks.

Section 5 concludes this paper.

2 Preliminaries

In this section, we give formal definitions of dynamic flow and a time-expanded network. Therefore, let us first explain briefly how a flow is sent on a dynamic flow network in the integral flow model.

A static flow problem is defined on a graph \(G=(V,E)\) (which is assumed to be directed). Here V is the set of vertices and E is the set of edges. Each edge e is associated with a capacity c(e) (which takes a positives value). The capacity c(e) gives us the upper bound on the amount of the resource that can be transmitted through e. Given a source vertex s and a sink vertex t, the maximum flow problem tries to find a way that transports the resource as much as possible from s to t under capacity constraints.

As in a static flow problem, a dynamic flow problem is defined on a graph \(G=(V,E)\) where each edge \(e=(u,v)\) is associated with a positive capacity c(e). In addition to the capacity, edge e is associated with a transit time \(\tau (e)\) which implies that a flow starting from u at time \(t_0\) arrives at v at time \(t_0+\tau (e)\). The capacity c(e) limits the rate of the amount of flow that enters e per unit time. In terms of evacuation, the capacity represents the maximum possible number of evacuees that can enter the edge per unit time due to the width of the road.

Suppose that at time 0, w evacuees are now starting to traverse edge \(e=(u,v)\) from u to v. Since at most c(e) evacuees can enter e per unit time, \(\lceil w/c(e) \rceil \) groups enter e where each group consists of c(e) people except possibly the last group. The first group arrives at v at time \(\tau (e)\) while the last group arrives at time \(\tau (e)+\lceil w/c(e) \rceil -1\).

Now suppose \(w_1\) evacuees move from \(v_1\) to \(v_3\) through edges \(e_1=(v_1,v_2)\) and \(e_2=(v_2,v_3)\), and that there exist \(w_2\) evacuees at \(v_2\) who start to move towards \(v_3\) at the same time. If some evacuees remain at \(v_2\) when evacuees from \(v_1\) arrive at \(v_2\), those who came from \(v_1\) are forced to wait at \(v_2\). This means that a dynamic flow model has the ability to express a congestion.

2.1 Dynamic Flow

The general quickest transshipment problem will be formally defined as follows. We denote by \(\mathbb {R}_+\) and \(\mathbb {Z}_+\) the sets of nonnegative reals and nonnegative integers, and let \(\delta _G(X)\) (resp. \(\varrho _G(X)\)) be the set of edges \((x,y) \in E\) with \(x \in X\) and \(y \notin X\) (resp. \(x \notin X\) and \(y \in X\)). Let \({\mathscr {N}}=(G=(V,E),S^+,S^-,w, c,\tau )\) be a dynamic flow network which consists of a directed graph \(G=(V,E)\), disjoint subsets of V, \(S^+\) and \(S^-\), a supply function \(w: V \rightarrow \mathbb {R}\) which associates each vertex \(u \in S^+\) or \(v \in S^-\) with a positive amount of supply (the number of evacuees) or a negative amount of supply, respectively, a capacity function \(c: E \rightarrow \mathbb {R}_+ \backslash \{0\}\) which associates each edge \(e\in E\) with a positive capacity, and a transit time function \(\tau : E \rightarrow \mathbb {Z}_+\) which represents the time required to traverse the unit distance on any edge. \(S^-\) stands for a set of sinks which represents a set of destinations where evacuation centers exist. An illustrative example of a dynamic flow is given in Fig. 1.

Fig. 1
figure 1

Example of a dynamic flow network. The pair of numbers \((\cdot , \cdot )\) attached to each edge e represents \((c(e), \tau (e))\)

The problem tries to find a dynamic flow (a way of evacuation) that minimizes the time by which all supplies have arrived at one of the sinks. A dynamic flow is defined as a function f: \(E \times \mathbb {Z}_+ \rightarrow \mathbb {R}_+\) as follows. For each \(e\in E\) and \(\theta \in \mathbb {Z}_+ \), \(f(e,\theta )\) denotes the flow rate entering e at time step \(\theta \). We call f feasible if it satisfies the capacity constraint

$$ 0 \le f(e,\theta) \le c(e) \quad (\forall e \in E, \forall \theta \in \mathbb {Z}_+),$$
(1)

the flow conservation

$$\begin{aligned} \sum _{e \in \delta _G(x)}\sum _{\theta =0}^{T}f(e,\theta ) \le \sum _{e \in \varrho _G(x)}\sum _{\theta =0}^{T - \tau (e)}f(e,\theta ) + w(x) \ \ \ \ \text{( }\forall x \in V\text{, } \forall T \in \mathbb {Z}_+\text{) }, \end{aligned}$$
(2)

and the demand constraint

$$\begin{aligned} \sum _{e\in \varrho _G(S^-)} \sum _{\theta =0}^{T - \tau (e)} f(e,\theta ) = \sum _{v\in V} w(v) \ \ \ \ \text{( }\exists T \in \mathbb {Z}_+\text{) }. \end{aligned}$$
(3)

Notice that in (2) we allow storage at intermediate vertices. For a feasible dynamic flow f, we define the evacuation time of f by the minimum time step T satisfying (3). Then, the evacuation problem tries to find the minimum evacuation time among all feasible dynamic flows as well as an optimal dynamic flow which attains the minimum evacuation time.

2.2 Time-Expanded Networks

To find an optimal dynamic flow for the evacuation problem, Ford and Fulkerson [23, 24] introduced the time-expanded network \({\mathscr {N}}(T)\) which is a static flow network for a dynamic flow network \({\mathscr {N}}\) with a time horizon T (see Fig. 2). The vertex set of \({\mathscr {N}}(T)\) consists of two parts defined as follows. The first part contains a vertex \(x(\theta )\) for each \(x \in V\) and \(\theta \in \{0,\ldots ,T\}\), and the second part contains a vertex \(x^{*}\) for each \(x \in V\setminus S^-\). On the other hand, the edge set of \({\mathscr {N}}(T)\) consists of three parts defined as follows. The first part contains an edge \(e(\theta )=(x(\theta ), y(\theta + \tau (e)))\) with a capacity c(e) for each \(e = (x, y) \in E\) and \(\theta \in \{0,\ldots , T - \tau (e)\}\), and the second part contains an edge \((x(\theta ), x(\theta +1))\) with an infinite capacity for each \(x\in V\setminus S^-\) and \(\theta \in \{0,\ldots ,T - 1\}\). The edges of the second part are called holdover edges. Finally, the third part contains an edge \((x^{*}, x(\theta ))\) with an infinite capacity for each \(x \in V\setminus S^-\) and \(\theta \in \{0,\ldots ,T\}\). We define the source set and the sink set of \({\mathscr {N}}(T)\) by \(\{x^{*} \mid x \in V\setminus S^-\}\) and \(\{s(\theta ) \mid \theta \in \{0,\ldots ,T\}\}\), respectively. For each \(x \in V\setminus S^-\), the supply of \(x^{*}\) is set to w(x). Notice that the size of the time-expanded network \({\mathscr {N}}(T)\) is proportional to T and thus is pseudo-polynomial in the input size.

Fig. 2
figure 2

A time-expanded network \({\mathscr {N}}(5)\) for the dynamic flow network \({\mathscr {N}}\) illustrated in Fig. 1. A number attached to a vertex represents its supply. A number attached to an edge represents its capacity

For each \(s\in S^-\) and for the corresponding sink set \(\{s(\theta )\mid 0\le \theta \le T \}\), we introduce a super sink \(s^*\) as well as an edge \((s(\theta ), s^*)\) with \(+\infty \) capacity. Furthermore, we introduce a general super sink \(\varsigma ^*\) as well as an edge \((s^*, \varsigma ^*)\) with capacity b(s) which denotes the capacity of an evacuation center s.

Theorem 1

(Ford and Fulkerson [23, 24]) Given a dynamic flow network\({\mathscr {N}}\)and a time horizonT, there exists a feasible dynamic flow in\({\mathscr {N}}\)whose evacuation time is less than or equal toTif and only if the value of a maximum flow from\(x^*\)to\(\varsigma ^*\)is equal to\(\sum _{v\in V}w(v)\). Furthermore, we can construct a feasible dynamic flow in\({\mathscr {N}}\)whose evacuation time is less than or equal toTfrom a maximum flow\(\xi \)in\({\mathscr {N}}(T)\)whose flow value is equal to\(\sum _{v\in V}w(v)\)by setting\(f(e, \theta ) = \xi (e(\theta ))\)for each\(e \in E\)and\(\theta \in \{0, \ldots , T - \tau (e)\}\).

Since the size of a time-expanded network is pseudo-polynomial in input size and computing the maximum flow can be done in polynomial time in input size, this theorem implies that testing whether all evacuees can be evacuated to one of the facilities (i.e., sinks) within time T can be done in pseudo-polynomial time. By applying a binary search over T, a dynamic flow that minimizes the maximum cost can be obtained in pseudo-polynomial time.

Theorem 2

An optimal dynamic flow under the maximum cost criterion can be obtained in pseudo-polynomial time.

Time-expanded networks can also be used for solving a dynamic flow problem under total cost criterion. Suppose we are given a sufficiently large time horizon T. Let us consider the minimum cost flow problem Q(T) defined on a time-expanded network \(\mathcal{N}(T)\) where the cost of an edge \(e(\theta )=(x(\theta ), y(\theta + \tau (e)))\) with a capacity c(e) for each \(e = (x, y) \in E\) is defined to be \(\tau (e)\), and the cost of a holdover edge \((x(\theta ), x(\theta +1))\) is defined to be 1 while the cost of all the other edges are defined to be zero. Then the cost of flow \(\xi \) from \(x^*\) to \(\varsigma ^*\) with the flow value equal to \(\sum _{v\in V} w(v)\) is equivalent to the total cost of the corresponding dynamic flow. Since the minimum cost flow problem can be solved in polynomial time in input size (see [2]) and the size of the time-expanded network \({{{\mathscr {N}}}}(T)\) is pseudo-polynomial, the following theorem follows.

Theorem 3

An optimal dynamic flow under the total cost criterion can be obtained in pseudo-polynomial time.

Contrary to the maximum cost criterion, a polynomial time algorithm for computing an optimal dynamic flow under the total cost criterion is not known.

2.3 Dynamic Network Models in Facility Location and Quickest Transshipment

As mentioned in Sect. 2.1, a dynamic flow network consists of a directed graph in quickest transshipment problems. In contrast to this, all previous studies for facility location problems (which will be shown in the following sections) have assumed that a dynamic flow network consists of an undirected graph. We thus also assume the undirected model in the following sections. Note that under the optimal evacuation in an undirected dynamic flow network, no edge is ever used bidirectionally at the same time because if so, changing the route and/or the destination does not increase the maximum/total cost. In addition, we notice that an edge may be used in one direction at a time and in another direction at another time. This implies that an undirected dynamic flow network can be transformed to an equivalent directed one by replacing every undirected edge uv of capacity c(uv) and transit time \(\tau (uv)\) with two directed edges (uv) and (vu) such that each one has the same capacity c(uv) and the same transit time \(\tau (uv)\).

Also in the following sections, we treat dynamic flow networks where each edge is associated with a positive length, instead of a transit time. Additionally, we define \(\tau \) as a transit time required for traversing the unit distance, i.e., if the distance between two points in a dynamic flow network is d, an evacuee can traverse the distance in time \(\tau d\) (with no congestion). This is because in facility location problems, facilities have been usually assumed to be located at any point in a network, so it seems to be natural that the transit time is defined as a function of the distance.

3 Optimal Facility Location Problems in Dynamic Networks

Recently, minimax facility location problems in dynamic flow networks have been studied by several researchers. First, Mamada et al. [41] studied the minimax 1-facility location problem in a dynamic flow tree network assuming that the facility must be located at a vertex, and proposed an \(O(n \log ^2 n)\) time algorithm. Higashikawa et al. [32, 34] also studied the same problem as [41] by assuming that the edge capacity is uniform and a facility can be located at any point in the network, and proposed an \(O(n \log n)\) time algorithm. For the minimax k-facility location problems in a dynamic flow tree network, Chen and Golin [14] provided an algorithm that costs \(O(k^2n \log ^5 n)\) time and \(O(k^2n \log ^4 n)\) time for cases with general edge capacities and uniform edge capacity, respectively. In a recent paper [15] on arXiv, the authors of [14] have improved the time complexities to \(O(\max \{k, \log n\}\cdot kn \log ^4 n)\) and \(O(\max \{k, \log n\}\cdot kn \log ^3 n)\), respectively. Other than tree networks, Higashikawa et al. [33] treated the minimax k-facility location problem in a dynamic flow path network with uniform edge capacity, and proposed an \(O(kn \log n)\) time algorithm, which was improved to O(kn) by the same authors in [35]. Also, Higashikawa showed in his doctoral dissertation [28] that the minimax 1-facility and k-facility location problems in a dynamic flow path network with general edge capacities can be solved in \(O(n \log n)\) time and \(O(kn^2 \log n)\) time, respectively. Finally, for the minimax k-facility location problem in a dynamic flow path network with general edge capacities, Bhattacharya et al. [8] have provided an \(O(n \log n + k^2 \log ^4 n)\) time algorithm and an \(O(n \log ^3 n)\) time algorithm. In [8], the authors have also shown that there exist an \(O(n + k^2 \log ^2 n)\) time algorithm and an \(O(n \log n)\) time algorithm for the case with uniform edge capacity, which together improve upon the previous results for any k. For general networks, Belmonte et al. [5] showed that the minimax k-facility location problem admits a fully polynomial time approximation scheme (FPTAS) for every fixed k, and that the problem is W[1]-hard when parameterized by k (see [22, 42] for details of parameterized complexity).

On the other hand, the minisum facility location problems in dynamic flow networks have not been studied much except for the problem in path networks [6, 7, 33, 35]. Paper [33] treated the minisum k-facility location problem in a dynamic flow path network with uniform edge capacity, and proposed an \(O(kn^2)\) time algorithm, which was improved to \(\min \{ O(n^2 \sqrt{k \log n}+n^2\log n),n^2 2^{O(\sqrt{\log k \log \log n})}\}\) by the same authors in [35]. Recently, Benkoczi et al. [6] have developed an \(O(kn \log ^3 n)\) time algorithm, which is the best so far. In [6], the authors also treated the case with general edge capacities and proposed an \(O(kn^2 \log ^2 n)\) time algorithm, which was improved to \(O(kn \log ^4 n)\) by the same authors in [7].

In the rest of this section, we define minimax and minisum facility location problems in dynamic flow networks, introduce basic ideas of algorithms to solve the problems and several properties upon which the algorithms are based.

3.1 Dynamic Network Under Fixed Supplies

A dynamic flow network under fixed supplies\({{{\mathscr {N}}}} = (G = (V, E), w, l, c, \tau )\) consists of an undirected graph \(G=(V, E)\), function w which associates each vertex \(v \in V\) with a positive supply, function l which associates each edge \(e \in E\) with a positive length, function c which associates each edge \(e \in E\) with a positive capacity, and a positive constant \(\tau \) which represents the time required by the flow to traverse the unit distance in the network. In Sect. 3, for a vertex \(v \in V\), we abuse w(v) to denote the amount of supply of v although w(v) represents the supply of v as a set of substantial units.

3.2 Minimax Facility Location Problems

We consider the facility location problems in a dynamic flow network with the integral flow model. Given a location of facilities \({\varvec{x}}\) and a feasible evacuation to \({\varvec{x}}\), say \({\mathscr {E}}\), the cost of \(({\varvec{x}}, {\mathscr {E}})\) for an evacuee is defined as the time required to send him/her to a facility of \({\varvec{x}}\) along an evacuation path determined by \({\mathscr {E}}\). Then \(max({\varvec{x}}, {\mathscr {E}})\) is defined as the maximum cost of \(({\varvec{x}}, {\mathscr {E}})\) for all evacuees. The maximum cost of \({\varvec{x}}\) is defined as

$$\begin{aligned} \varTheta ({\varvec{x}}) = \min \{max({\varvec{x}}, {\mathscr {E}}) \mid {\mathscr {E}} \in {\mathfrak {E}}_x \}, \end{aligned}$$
(4)

where \({\mathfrak {E}}_x\) is a set of all feasible evacuations to \({\varvec{x}}\). In the fractional flow model, we define the unit as the infinitesimally small portion of supply, and the cost is defined on each infinitesimal unit. Then two criteria are defined in the same way as in the integral flow model. Here, we treat a problem that requires finding \({\varvec{x}}\) in a dynamic flow network minimizing \(\varTheta ({\varvec{x}})\).

3.2.1 \({\varvec{k}}\)-Facility Location in General Graphs

Very recently, the minimax k-facility location problem in general dynamic flow networks has been studied by Belmonte et al. [5]. Given a dynamic flow network \({\mathscr {N}} = (G, w, l, c, \tau )\) where \(G=(V, E)\) is a general graph, the problem requires finding a location of k facilities \({\varvec{x}}=(x_1, x_2, \ldots , x_k) \in G^k\) that minimizes \(\varTheta ({\varvec{x}})\). Here, the notation G is abused to denote the set of all points on G. The authors of [5] showed that the minimax k-facility location problem in dynamic flow networks admits a fully polynomial time approximation scheme (FPTAS) for every fixed k, and that the problem is W[1]-hard when parameterized by k. Basically, they used the previous results of Hoppe et al. [37] for the quickest transshipment problem, which requires the computation of \(\varTheta ({\varvec{x}})\) for a given \({\varvec{x}}\) and finding an optimal evacuation to \({\varvec{x}}\). Although the algorithm in [37] is for the case in which an input graph is directed, the authors of [5] showed that the algorithm can be applied to the undirected case by replacing every undirected edge uv of capacity c(uv) with two directed edges (uv) and (vu) of capacity c(uv). Then their FPTAS for the minimax k-facility location problem is roughly described as follows. For a positive \(\epsilon > 0\), the algorithm places \(1/\epsilon \) points on every edge at even intervals. Letting \(\chi \) be the set of original vertices and the points so generated, the algorithm computes a location of k facilities \({\varvec{x}}\) that minimizes \(\varTheta ({\varvec{x}})\) for \({\varvec{x}} \in \chi ^k\) using the algorithm of [37].

Theorem 4

[5] The minimaxk-facility location problem in dynamic flow networks admits FPTAS for a fixedk.

Theorem 5

[5] The minimaxk-facility location problem in dynamic flow networks isW[1]-hard when parameterized byk.

For the minisum k-facility location problem in the general dynamic flow network, there has been no theoretical result.

3.2.2 \({\varvec{k}}\)-Facility Location in Paths

The minimax k-facility location problems in a dynamic flow path network have been studied in [8, 28, 33, 35]. We review the algorithms proposed in [8, 28, 33, 35]. Given a dynamic flow path network \({\mathscr {N}} = (P=(V, E), w, l, c, \tau )\) where \(V = \{ v_1, v_2,\)\(\ldots , v_n \}\) and \(E = \{ e_1, e_2\), \(\ldots , e_{n-1} \}\) such that \(v_i\) and \(v_{i+1}\) are endpoints of \(e_i\) for \(1 \le i \le n-1\), the problem requires finding a location of k facilities \({\varvec{x}}=(x_1, x_2, \ldots , x_k) \in P^k\) that minimizes \(\varTheta ({\varvec{x}})\). In the following, for integers pij satisfying \(1\le p \le k\) and \(1 \le i \le j \le n\), let \(\varTheta _{\text{ OPT }}(p, i, j)\) denote the cost of the minimax p-facility location in \(P_{i, j}\). Here, the notation P is abused to denote the set of all points on P, and for any point \(x \in P\), the notation x is abused to denote the distance from \(v_1\) to x. It is assumed that all units of supply originally located at a vertex are sent to the same facility. The following description applies to both the cases of uniform edge capacity and general edge capacities unless specifically mentioned. Notice that papers [33, 35] only deal with the case of uniform edge capacity while [28] extends it to the case of general edge capacities and [8] treats both of two cases. In the following, we use the notation x to denote \({\varvec{x}}\) when we consider the 1-facility location.

Basic properties    For integers ij satisfying \(1 \le i \le j \le n\), let \(P_{i, j}\) denote the subpath of P between \(v_i\) and \(v_j\) (including \(v_i\) and \(v_j\)). Suppose that a facility is located at a point \(x \in P_{i, j}\). Let \(\varTheta _{i, j}(x)\) denote the maximum cost of x for all supplies on \(P_{i, j}\), i.e., the minimum time required to send to x all supplies on \(P_{i, j}\). Also let \(\varTheta _L^i(x)\) (resp. \(\varTheta _R^j(x)\)) denote the minimum time required to send to x all supplies on the part of \(P_{i, j}\) between \(v_i\) and x (resp. x and \(v_j\)) where \(\varTheta _L^i(v_i) = 0\) and \(\varTheta _R^j(v_j) = 0\). Then, \(\varTheta _{i, j}(x)\) is the maximum of \(\varTheta _L^i(x)\) and \(\varTheta _R^j(x)\), i.e.,

$$\begin{aligned} \varTheta _{i, j}(x) = \max \left\{ \varTheta _L^i(x), \varTheta _R^j(x) \right\} . \end{aligned}$$
(5)

This formula was developed by [33, 35] which has also been shown in [18, 29]. Notice that this formula holds also for the case of general edge capacities. Now, assume that x is located on an edge \(e_{s_x}\) (not including endpoints) satisfying \(i \le s_x \le j-1\). For the integral flow model, \(\varTheta _L^i(x)\) and \(\varTheta _R^j(x)\) are expressed as follows:

$$\begin{aligned} \varTheta _L^i(x)= & {} \max \left\{ \tau (x - v_l) + \bigg \lceil \frac{\sum _{i \le h \le l} w(v_h)}{c'} \bigg \rceil - 1 \ \bigg | \ i \le l \le s_x \right\} , \end{aligned}$$
(6)
$$\begin{aligned} \varTheta _R^j(x)= & {} \max \left\{ \tau (v_l - x) + \bigg \lceil \frac{\sum _{l \le h \le j} w(v_h)}{c'} \bigg \rceil - 1 \ \bigg | \ s_x+1 \le l \le j \right\} , \end{aligned}$$
(7)

where \(c'\) is the uniform edge capacity. From these, \(\varTheta _L^i(x)\) and \(\varTheta _R^j(x)\) are expressed in the fractional flow model as follows:

$$\begin{aligned} \varTheta _L^i(x)= & {} \max \left\{ \tau (x - v_l) + \frac{\sum _{i \le h \le l} w(v_h)}{c'} \ \bigg | \ i \le l \le s_x \right\} , \end{aligned}$$
(8)
$$\begin{aligned} \varTheta _R^j(x)= & {} \max \left\{ \tau (v_l - x) + \frac{\sum _{l \le h \le j} w(v_h)}{c'} \ \bigg | \ s_x+1 \le l \le j \right\} . \end{aligned}$$
(9)

Formulae (6) and (7) were first shown by Kamiyama et al. [38] while (8) and (9) were shown in [33, 35]. Note that \(\varTheta _L^i(x)\) (resp. \(\varTheta _R^j(x)\)) is a piecewise linear strictly increasing (resp. decreasing) function of x. Therefore, function \(\varTheta _{i, j}(x)\) is unimodal in x, and there exists the unique point that minimizes \(\varTheta _{i, j}(x)\).

For the general edge capacities, formulae are also developed both in the integral and fractional flow models. We only give those for the fractional flow model. Assuming that x is located on an edge \(e_{s_x}\) (not including endpoints) satisfying \(i \le s_x \le j-1\), \(\varTheta ^i_L(x)\) and \(\varTheta ^i_R(x)\) are expressed as follows:

$$\begin{aligned} \varTheta _L^i(x)= & {} \max \left\{ \tau (x - v_l) + \frac{\sum _{i \le h \le l} w(v_h)}{\min _{l \le h \le s_x} c(e_h)} \ \bigg | \ i \le l \le s_x \right\} , \end{aligned}$$
(10)
$$\begin{aligned} \varTheta _R^j(x)= & {} \max \left\{ \tau (v_l - x) + \frac{\sum _{l \le h \le j} w(v_h)}{\min _{s_x \le h \le l-1} c(e_h)} \ \bigg | \ s_x+1 \le l \le j \right\} . \end{aligned}$$
(11)

These formulae are developed by Higashikawa [28] in which the correctness proof of them is given and those for the integral flow model are also given.

Sketch of Algorithms Based on Dynamic Programming    In [28, 33, 35], the basic idea to solve the problems is a dynamic programming, i.e., the algorithm repeatedly solves the p-facility location problem in \(P_{i, j}\) for \(1 \le p \le k\) and \(1 \le i \le j \le n\). Then the following recursion holds for \(p \ge 2\):

$$\begin{aligned} \varTheta _{\text{ OPT }}(p, i, j) = \min \left\{ \max \left\{ \varTheta _\mathsf{OPT}(p-1, i, t), \varTheta _{\text{ OPT }}(1, t+1, j) \right\} \ \Big | \ i \le t \le j-1 \right\} . \end{aligned}$$
(12)

To solve the problem effectively, the authors of [33, 35] proved monotonic properties shown in Lemmas 1 and 2 . Let \(d_{p}(j)\) denote an integer t minimizing \(\max \{ \varTheta _{\text{ OPT }}(p-1, 1, t)\), \(\varTheta _\mathsf{OPT}(1, t+1, j) \}\) for \(1 \le t \le j-1\), i.e.,

$$\begin{aligned} \varTheta _{\text{ OPT }}(p, 1, j) = \max \left\{ \varTheta _{\text{ OPT }}(p-1, 1, d_{p}(j)), \varTheta _{\text{ OPT }}(1, d_{p}(j)+1, j) \right\} . \end{aligned}$$
(13)

Lemma 1

[33, 35] For integerspjsatisfying\(2 \le p \le k\)and\(1 \le j \le n-1\), \(d_{p}(j) \le d_{p}(j+1)\)holds.

Proof

To prove Lemma 1, we note the following fundamental property. \(\square \)

Claim 1

For integerspsatisfying\(1 \le p \le k\), and\(i, j, i', j'\)satisfying\(1 \le i' \le i \le j \le j' \le n\), \(\varTheta _{\text{ OPT }}(p, i, j) \le \varTheta _{\text{ OPT }}(p, i', j')\)holds.

We prove Lemma 1 by contradiction: there exist integers pj satisfying \(2 \le p \le k\) and \(1 \le j \le n-1\) such that \(d_{p}(j) > d_{p}(j+1)\) holds. For ease of notation in the proof, we use the notation ABCDE and F as follows:

$$\begin{aligned} \begin{array}{ll} A = \varTheta _{\text{ OPT }}(p-1, 1, d_{p}(j)), &{} B = \varTheta _{\text{ OPT }}(1, d_{p}(j)+1, j), \\ C = \varTheta _{\text{ OPT }}(p-1, 1, d_{p}(j+1)), &{} D = \varTheta _{\text{ OPT }}(1, d_{p}(j+1)+1, j+1), \\ E = \varTheta _{\text{ OPT }}(1, d_{p}(j+1)+1, j), &{} F = \varTheta _{\text{ OPT }}(1, d_{p}(j)+1, j+1). \end{array} \end{aligned}$$
(14)

From the assumption of \(d_{p}(j) > d_{p}(j+1)\) and Claim 1, we can derive the following inequalities:

$$\begin{aligned}&C \le A, \end{aligned}$$
(15)
$$\begin{aligned}&B \le E \le D, \end{aligned}$$
(16)
$$\begin{aligned}&B \le F \le D. \end{aligned}$$
(17)

Since \(d_{p}(j)\) minimizes \(\max \{ \varTheta _{\text{ OPT }}(p-1, 1, h), \varTheta _{\text{ OPT }}(1, h+1, j) \}\) over h, we have the following inequality:

$$\begin{aligned} \max \{A, B \} \le \max \{ C, E \}. \end{aligned}$$
(18)

Also, without loss of generality, we assume that \(d_{p}(j+1)\) is maximized unless the cost increases. By this assumption, we have the following inequality:

$$\begin{aligned} \max \{C, D \} < \max \{ A, F \}. \end{aligned}$$
(19)

Then, we consider three cases: [Case 1] \(A \le B\); [Case 2] \(D \le C\); [Case 3] \(B < A\) and \(C < D\).

[Case 1]: By (15), (17) and the condition of \(A \le B\), we have \(C \le A \le F \le D\), which contradicts (19).

[Case 2]: By (15), (16) and the condition of \(D \le C\), we have \(B \le E \le C \le A\). By this and (18), we have \(A = C\). Also, by (15), (17) and the condition of \(D \le C\), we have \(F \le D \le C \le A\). By this and (19), we have \(C < A\), which contradicts \(A = C\).

[Case 3]: By (18) and the condition of \(B < A\), we have

$$\begin{aligned} A \le \max \{ C, E \}. \end{aligned}$$
(20)

Also, by (19) and the condition of \(C < D\), we have

$$\begin{aligned} D < \max \{ A, F \}. \end{aligned}$$
(21)

If \(F \le A\) holds, we have \(D < \max \{ C, E \}\) by (20) and (21), which contradicts the condition of \(C < D\) or (16). If \(A < F\) holds, we have \(D < F\) by (21), which contradicts (17). \(\square \)

Let \(x^*(i, j)\) denote the minimax 1-facility location in \(P_{i, j}\), i.e., \(x^*(i, j)\) minimizes \(\varTheta _{i, j}(x)\) for \(x \in P_{i, j}\).

Lemma 2

[33, 35] For integers\(i, j, i', j'\)satisfying\(1 \le i \le j \le n\), \(1 \le i' \le j' \le n\), \(i \le i'\)and\(j \le j'\), \(x^*(i, j) \le x^*(i', j')\)holds.

Proof

To prove Lemma 2, we confirm the following claim (refer to the definitions of (8) and (9)). \(\square \)

Claim 2

  1. (i)

    For integersijsatisfying\(1 \le i \le j \le n\)and points\(x, y \in P\)satisfying\(v_i \le x \le y \le v_j\), \(\varTheta _L^i(x) \le \varTheta _L^i(y)\)and\(\varTheta _R^j(x) \ge \varTheta _R^j(y)\) hold.

  2. (ii)

    For integersijsatisfying\(1 \le i \le j \le n\)andpoints\(x, y \in P\)satisfying\(x \le v_i \le v_j \le y\), \(\varTheta _R^i(x) \le \varTheta _R^j(x)\)and\(\varTheta _L^i(y) \ge \varTheta _L^j(y)\)hold.

We prove Lemma 2 by contradiction: there exist integers \(i, j, i', j'\) satisfying \(1 \le i \le j \le n\), \(1 \le i' \le j' \le n\), \(i \le i'\) and \(j \le j'\) such that \(x^*(i, j) > x^*(i', j')\) holds. By this assumption, we have the following inequality:

$$\begin{aligned} i \le i' \le x^*(i', j') < x^*(i, j) \le j \le j'. \end{aligned}$$
(22)

For ease of notation in the proof, we use the notation ABCDEFG and H as follows:

$$\begin{aligned} \begin{array}{ll} A = \varTheta _L^i(x^*(i, j)), &{} B = \varTheta _R^j(x^*(i, j)), \\ C = \varTheta _L^{i'}(x^*(i', j')), &{} D = \varTheta _R^{j'}(x^*(i', j')), \\ E = \varTheta _L^i(x^*(i', j')), &{} F = \varTheta _R^j(x^*(i', j')), \\ G = \varTheta _L^{i'}(x^*(i, j)), &{} H = \varTheta _R^{j'}(x^*(i, j)). \end{array} \end{aligned}$$
(23)

From (22) and Claim 2, we can derive the following inequalities:

$$\begin{aligned}&C \le E \le A, \end{aligned}$$
(24)
$$\begin{aligned}&C \le G \le A, \end{aligned}$$
(25)
$$\begin{aligned}&B \le F \le D, \end{aligned}$$
(26)
$$\begin{aligned}&B \le H \le D. \end{aligned}$$
(27)

Since \(x^*(i, j)\) and \(x^*(i', j')\) are the unique points that minimize \(\varTheta _{i, j}(x) = \max \{ \varTheta _L^i(x),\)\(\varTheta _R^j(x)\}\) and \(\varTheta _{i', j'}(x) = \max \{ \varTheta _L^{i'}(x), \varTheta _R^{j'}(x)\}\), respectively (refer to (5)), we have the following inequalities:

$$\begin{aligned}&\max \{A, B \} < \max \{ E, F \}, \end{aligned}$$
(28)
$$\begin{aligned}&\max \{C, D \} < \max \{ G, H \}. \end{aligned}$$
(29)

Then, we consider three cases: [Case 1] \(A \le B\); [Case 2] \(D \le C\); [Case 3] \(B < A\) and \(C < D\).

[Case 1]: By (25), (27) and the condition of \(A \le B\), we have \(C \le G \le H \le D\), which contradicts (29).

[Case 2]: By (24), (26) and the condition of \(D \le C\), we have \(B \le F \le E \le A\), which contradicts (28).

[Case 3]: By (28) and the condition of \(B < A\), we have

$$\begin{aligned} A < \max \{ E, F \}. \end{aligned}$$
(30)

Also, by (29) and the condition of \(C < D\), we have

$$\begin{aligned} D < \max \{ G, H \}. \end{aligned}$$
(31)

If \(F \le E\) holds, we have \(A < E\) by (30), which contradicts (24). Also, if \(G \le H\) holds, we have \(D < H\) by (31), which contradicts (27). If \(E < F\) and \(H < G\) hold, we have \(A< F \le D < G\) by (26), (30) and (31), that is, \(A < G\) holds, which contradicts (25). \(\square \)

We first overview an \(O(kn^2 \log n)\) time algorithm by [28] for the case of general edge capacities. The algorithm computes \(\varTheta _{\text{ OPT }}(p, 1, 1)\), \(\ldots \), \(\varTheta _{\text{ OPT }}(p, 1, n)\) for \(p = 1, 2, \ldots , k\) in this order, using a dynamic programming approach based on the recursion (12). For some integers pj satisfying \(2 \le p \le k\) and \(2 \le j \le n\), let us see how to obtain \(\varTheta _{\text{ OPT }}(p, 1, j)\). Supposing that \(\varTheta _{\text{ OPT }}(1, 1, 1)\), \(\ldots \), \(\varTheta _{\text{ OPT }}(p-1, 1, n)\), \(\varTheta _{\text{ OPT }}(p, 1, 1)\), \(\ldots \), \(\varTheta _{\text{ OPT }}(p, 1, j-1)\) have already been obtained, we consider computing \(\varTheta _\mathsf{OPT}(p, 1, j)\) based on all information obtained by then. Here, for integers pj satisfying \(2 \le p \le k\) and \(2 \le j \le n\), let \(f_{p, j}(t)\) denote a function of \(t \in \{1, 2, \ldots , j-1 \}\) defined as

$$\begin{aligned} f_{p, j}(t) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, t), \varTheta _{\text{ OPT }}(1, t+1, j) \}. \end{aligned}$$
(32)

Note that \(f_{p, j}(t)\) is unimodal in t and \(d_p(j)\) is an integer t that minimizes \(f_{p, j}(t)\). In the following, we show how the algorithm obtains \(\varTheta _{\text{ OPT }}(p, 1, j) = f_{p, j}(d_p(j))\).

First, the algorithm computes

$$\begin{aligned} f_{p, j}(d_p(j-1)) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, d_p(j-1)), \varTheta _{\text {OPT}}(1, d_p(j-1)+1, j) \}. \end{aligned}$$
(33)

Since \(\varTheta _{\text{ OPT }}(p-1, 1, d_p(j-1))\) has been obtained in a previous step of dynamic programming, \(f_{p, j}(d_p(j-1))\) can be obtained only by computing \(\varTheta _{\text{ OPT }}(1, d_p(j-1)+1, j)\).

Next, since \(d_p(j-1) \le d_p(j)\) holds by Lemma 1, the algorithm continues to compute \(f_{p, j}(t)\) for \(t=d_p(j-1)+1, d_p(j-1)+2, \ldots \) in this order. Since \(f_{p, j}(t)\) is unimodal in t and \(f_{p, j}(t)\) is minimized when \(t = d_p(j)\), if the algorithm reaches the first integer \(t^* \ge d_p(j-1)\) such that \(f_{p, j}(t^*) \le f_{p, j}(t^*+1)\), it outputs \(t^*\) as \(d_p(j)\). Then, the algorithm also outputs \(f_{p, j}(t^*)\) as \(\varTheta _\mathsf{OPT}(p, 1, j)\). For some i\((\ge d_p(j-1)+1)\), the algorithm computes

$$\begin{aligned} f_{p, j}(i) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, i), \varTheta _\mathsf{OPT}(1, i+1, j) \}. \end{aligned}$$
(34)

Since \(\varTheta _{\text{ OPT }}(p-1, 1, i)\) has been obtained in a previous step of dynamic programming, \(f_{p, j}(i)\) can be obtained only by computing \(\varTheta _{\text{ OPT }}(1, i+1, j)\).

Let us turn to the time complexity of the above mentioned algorithm. For ease of explanation, we here assume that facilities are located on vertices although it is allowed in [28] that facilities are located at any point on a path. Then, during the computation of \(\varTheta _{\text{ OPT }}(p, 1, 1)\), \(\ldots , \varTheta _{\text{ OPT }}(p, 1, n)\) for a fixed p, an algorithm just computes \(\varTheta _{\text{ OPT }}(1, i, j)\) while increasing i or j one by one as mentioned above, which implies that the number of such computations is O(n) for a fixed p. Therefore, up to \(\varTheta _{\text{ OPT }}(k, 1, n)\), O(kn) computations are required in total. Each computation of \(\varTheta _\mathsf{OPT}(1, i, j)\) can be obtained by applying a binary search based on the unimodality of \(\varTheta _{i, j}(x)\), and \(\varTheta _{i, j}(x)\) for a fixed x can be computed in O(n) time using the formulae (10) and (11), i.e., \(\varTheta _{\text{ OPT }}(1, i, j)\) can be computed in \(O(n \log n)\) time. These imply an \(O(kn^2 \log n)\) time algorithm for minimax k-facility location problem in a dynamic flow path network with general edge capacities.

Theorem 6

[28] The minimaxk-facility location problem in a dynamic flow path network with general edge capacities can be solved in\(O(kn^2 \log n)\)time.

For the case of uniform edge capacity, an algorithm by [33, 35] basically applies an similar approach as the algorithm by [28] for the case of general edge capacities, but there are differences as follows. In the following, we call the algorithm by [28] and one by [33, 35] \(ALG_{GC}\) and \(ALG_{UC}\), respectively.

Similarly to \(ALG_{GC}\), when computing \(\varTheta _{\text{ OPT }}(p, 1, j)\), \(ALG_{UC}\) first computes

$$\begin{aligned} f_{p, j}(d_p(j-1)) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, d_p(j-1)), \varTheta _{\text{ OPT }}(1, d_p(j-1)+1, j) \}, \end{aligned}$$

which is the same as (33). Note that \(d_p(j-1)\) has been obtained and \(f_{p, j-1}(d_p(j-1))\) has computed as

$$\begin{aligned} f_{p, j-1}(d_p(j-1)) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, d_p(j-1)), \varTheta _{\text{ OPT }}(1, d_p(j-1)+1, j-1) \}. \end{aligned}$$
(35)

To obtain \(f_{p, j}(d_p(j-1))\), \(ALG_{GC}\) independently computes \(\varTheta _{\text{ OPT }}(1, d_p(j-1)+1, j)\) as mentioned above. Unlike this, \(ALG_{UC}\) updates \(\varTheta _{\text{ OPT }}(1, d_p(j-1)+1, j-1)\) (which has already been obtained in (35)) to \(\varTheta _{\text{ OPT }}(1, d_p(j-1)+1, j)\). In this updating, letting \(i=d_p(j-1)+1\), \(ALG_{UC}\) computes \(\varTheta _{i, j}(x)\) from \(x = x^*(i, j-1)\) to \(x^*(i, j)\), which satisfy \(x^*(i, j-1) \le x^*(i, j)\) by Lemma 2.

Also similarly to \(ALG_{GC}\), \(ALG_{UC}\) continues to compute \(f_{p, j}(t)\) for \(t=d_p(j-1)+1, d_p(j-1)+2, \ldots \) in this order, and outputs \(t^*\) as \(d_p(j)\) if it reaches the first integer \(t^* \ge d_p(j-1)\) such that \(f_{p, j}(t^*) \le f_{p, j}(t^*+1)\). For some i\((\ge d_p(j-1)+1)\), \(ALG_{UC}\) computes

$$\begin{aligned} f_{p, j}(i) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, i), \varTheta _\mathsf{OPT}(1, i+1, j) \}, \end{aligned}$$

which is the same as (34). Suppose that \(f_{p, j}(i-1)\) has been obtained as

$$\begin{aligned} f_{p, j}(i-1) = \max \{ \varTheta _{\text{ OPT }}(p-1, 1, i-1), \varTheta _\mathsf{OPT}(1, i, j) \}. \end{aligned}$$
(36)

To obtain \(f_{p, j}(i)\), \(ALG_{GC}\) independently computes \(\varTheta _{\text{ OPT }}(1, i+1, j)\) as mentioned above. Unlike this, \(ALG_{UC}\) updates \(\varTheta _{\text{ OPT }}(1, i, j)\) (which has already been obtained in (36)) to \(\varTheta _{\text{ OPT }}(1, i+1, j)\). In this updating, the algorithm computes \(\varTheta _{i+1, j}(x)\) from \(x = x^*(i, j)\) to \(x^*(i+1, j)\), which satisfy \(x^*(i, j) \le x^*(i+1, j)\) by Lemma 2.

Therefore, \(ALG_{UC}\) computes \(\varTheta _{i, j}(x)\) while increasing i or j one by one or moving x monotonically to the next vertex during the computation of \(\varTheta _{\text{ OPT }}(p, 1, 1)\), \(\ldots , \varTheta _{\text{ OPT }}(p, 1, n)\) for a fixed p (we also assume that facilities are located only at vertices), which implies that the number of such computations is O(n) for a fixed p. Thus, up to \(\varTheta _{\text{ OPT }}(k, 1, n)\), O(kn) computations are done in total. Using the formulae (8) and (9), the authors of [33] made each computation possible in \(O(\log n)\) time, and the same authors have improved it to O(1) time in [35]. They thus developed an \(O(kn \log n)\) time algorithm in [33] and an O(kn) time algorithm in [35]. Although all of the above are results for the fractional flow model, it was pointed out in [35] that all properties are still maintained even in the integral flow model; therefore we can directly apply the same algorithms to the integral flow model without increasing time complexity.

Theorem 7

[35] The minimaxk-facility location problem ina dynamic flow path network with uniform edge capacity can be solved inO(kn) time.

Even for the case of general edge capacities, we now observe that the exactly same approach as in the uniform edge capacity case works although the author of [28] developed an \(O(kn^2 \log n)\) time algorithm as shown in Theorem 6. Therefore, we have an \(O(kn^2)\) time algorithm since \(\varTheta _{i, j}(x)\) for fixed ij and x can be computed in O(n) time using the formulae (10) and (11).

Theorem 8

The minimaxk-facility location problem in a dynamic flow path network with general edge capacities can be solved in\(O(kn^2)\)time.

Sketch of Algorithms Based on Feasibility Tests    First, we mention that the authors of [8] developed a data structure CUE tree to efficiently compute \(\varTheta _L^i(x)\) and \(\varTheta _R^j(x)\) for any integers ij satisfying \(1 \le i \le j \le n\) and any \(x \in P_{i,j}\). For the case of general edge capacities, the CUE tree can be constructed in \(O(n \log n)\) time, and using the CUE tree, \(\varTheta _L^i(x)\) and \(\varTheta _R^j(x)\) can be computed in \(O(\log ^2 n)\) time. See [8] for more detail.

Lemma 3

[8] Given a dynamic flow path network with general edge capacitiesP, its CUE tree can be constructed in\(O(n \log n)\)time.

Lemma 4

[8] Given a dynamic flow path network with general edge capacitiesP, suppose that its CUE tree is available. Then, for any integersijsatisfying\(1 \le i \le j \le n\)and any\(x \in P_{i,j}\), \(\varTheta _L^i(x)\)and\(\varTheta _R^j(x)\)can be computed in\(O(\log ^2 n)\)time.

In [8], to solve the minimax k-facility location problem in a dynamic flow path network, an algorithm repeatedly solves the decision version of the problem for several subpaths. For a positive real t and an integer pij satisfying \(1 \le p \le k\) and \(1 \le i \le j \le n\), a subpath \(P_{i,j}\) is (tp)-feasible if and only if \(\varTheta _{\text{ OPT }}(p, i, j) \le t\) holds.

Lemma 5

[8] Given a dynamic flow path network with general edge capacitiesP, suppose that its CUE tree is available. For integerspijsatisfying\(1 \le p \le k\)and\(1 \le i \le j \le n\), we can test (tp)-feasibility of\(P_{i,j}\)in\(O(\min \{n\log ^2 n, k\log ^3 n\})\)time.

Proof

To determine (tp)-feasibility of \(P_{i,j}\), we put sinks one by one from left to right as far to the right as possible. First, we compute the maximum integer h such that \(\varTheta _L^i(v_h) \le t\) and \(\varTheta _L^i(v_{h+1}) > t\) holds. Next, we solve

$$\begin{aligned} \varTheta _L^i(v_{h+1}) - \alpha \tau (v_{h+1}-v_h) = t \end{aligned}$$
(37)

for \(\alpha \). If \(\alpha < 1\), we put the leftmost sink s at \(v_{h+1} - \alpha (v_{h+1}-v_h) = \alpha v_h + (1-\alpha )v_{h+1}\); otherwise we put s at \(v_{h}\). We then compute the maximum integer \(l_1\) such that \(\varTheta _R^{l_1}(s) \le t\) and \(\varTheta _R^{l_1+1}(s) > t\) holds. We thus determine the maximal subpath \(P_{i,l_1}\) such that \(\varTheta _{\text{ OPT }}(1, i, l_1) \le t\). In the same manner, we repeatedly isolate the maximal subpaths \(P_{l_1,l_2}, P_{l_2,l_3}, \ldots \). If the p-th subpath is determined so that \(l_p < j\), \(P_{i,j}\) is not (tp)-feasible; otherwise \(P_{i,j}\) is (tp)-feasible.

Let us turn to the time complexity. When isolating \(P_{i,l_1}\), we did (a) compute h, (b) solve the equation for \(\alpha \), and (c) compute \(l_1\). Obviously (b) takes O(1) time. For (a), if we apply the binary search, it takes \(O(\log ^3 n)\) time since we compute \(O(\log n)\) of \(\varTheta _L^i(v_a)\) over \(i \le a \le j\) and each \(\varTheta _L^i(v_a)\) can be computed in \(O(\log ^2 n)\) time using the CUE tree by Lemma 4. Similarly (c) takes \(O(\log ^3 n)\) time by binary search. In this way we can isolate at most p subpaths in \(O(p\log ^3 n) = O(k\log ^3 n)\) time. On the other hand, if we do not apply the binary search for (a) and (c), i.e., we compute \(\varTheta _L^i(v_a)\) for \(a = i, i+1, \ldots , h, h+1\) and \(\varTheta _R^{b}(s)\) for \(b = h+1, h+2, \ldots , l_1, l_1+1\), it takes \(O((l_1-i)\log ^2 n)\) time to determine \(P_{i,l_1}\). In this way we can isolate at most p subpaths in \(O((j-i)\log ^2 n) = O(n \log ^2 n)\) time. \(\square \)

Lemma 6

[8] Given a dynamic flow path network with general edge capacitiesP, suppose that its CUE tree is available. For any integersijsatisfying\(1 \le i \le j \le n\), \(\varTheta _\mathsf{OPT}(1, i, j)\)can be computed in\(O(\log ^3 n)\)time.

Proof

Recall that \(\varTheta _{i,j}(x)\) is unimodal in x (also see (5)). Therefore, for the maximum integer h satisfying \(i \le h \le j\) and \(\varTheta _L^i(v_h) \le \varTheta _R^j(v_h)\), we can see that there exists \(x^*\) minimizing \(\varTheta _{i,j}(x)\) on edge \(e_h\) including \(v_h\) and \(v_{h+1}\). We can apply the binary search to compute such h, which can be done in \(O(\log ^3 n)\) time using the CUE tree (see Lemma 4). Once h is determined, \(x^*\) can be computed as follows: we solve

$$\begin{aligned} \varTheta _L^i(v_{h+1}) - \alpha \tau (v_{h+1}-v_{h}) = \varTheta _R^j(v_{h}) - (1-\alpha )\tau (v_{h+1}-v_{h}) \end{aligned}$$
(38)

for \(\alpha \) in O(1) time. If \(\alpha \le 0\), let \(x^*=v_{h+1}\) and compute \(\varTheta _{\text{ OPT }}(1, i, j) = \varTheta _{i,j}(v_{h+1})\); if \(\alpha \ge 1\), let \(x^*=v_{h}\) and compute \(\varTheta _{\text{ OPT }}(1, i, j) = \varTheta _{i,j}(v_h)\); otherwise, let \(x^*=\alpha v_h + (1-\alpha )v_{h+1}\) and compute \(\varTheta _{\text{ OPT }}(1, i, j) = \varTheta _L^i(v_{h+1}) - \alpha \tau (v_{h+1}-v_{h}) = \varTheta _R^j(v_{h}) - (1-\alpha )\tau (v_{h+1}-v_{h})\). Using the CUE tree, we can compute such values in \(O(\log ^2 n)\) time. Thus \(\varTheta _{\text{ OPT }}(1, i, j)\) can be computed in \(O(\log ^3 n) + O(1) + O(\log ^2 n) = O(\log ^3 n)\) time. \(\square \)

To compute the optimal k-sink location on P, the authors of [8] showed two approaches: the parametric search approach and the sorted matrix approach.

In the parametric search approach, we first compute the maximum integer \(i_1\) such that \(P_{i_1+1,n}\) is not \((\varTheta _{\text{ OPT }}(1, 1, i_1),k-1)\)-feasible and store \(t_1 = \varTheta _{\text{ OPT }}(1, 1, i_1+1)\) as a feasible value. Note that \(t^* = \varTheta _{\text{ OPT }}(k, 1, n)\) satisfies \(\varTheta _{\text{ OPT }}(1, 1, i_1) < t^* \le t_1\). To compute \(i_1\), we apply the binary search by executing \(O(\log n)\) tests for \((\varTheta _{\text{ OPT }}(1, 1, a),k-1)\)-feasibility of \(P_{a+1,n}\) over \(1 \le a \le n\). For an integer a, we can compute \(\varTheta _{\text{ OPT }}(1, 1, a)\) in \(O(\log ^3 n)\) time by Lemma 6. Also by Lemma 5, we can test if \(P_{a+1,n}\) is \((\varTheta _{\text{ OPT }}(1, 1, a),k-1)\)-feasible in \(O(k\log ^3 n)\) time. Summarizing these arguments, we can compute \(i_1\) and \(t_1\) in \(\{O(\log ^3 n) + O(k\log ^3 n)\}\times O(\log n)=O(k \log ^4 n)\) time. Next, we compute the maximum integer \(i_2\) such that \(P_{i_2+1,n}\) is not \((\varTheta _{\text{ OPT }}(1, i_1+1, i_2),k-2)\)-feasible and store \(t_2 = \varTheta _{\text{ OPT }}(1, i_1+1, i_2+1)\) as a feasible value, which can be done in \(O(k \log ^4 n)\) time in the same manner as in computing \((i_1,t_1)\). Sequentially, we determine \((i_3,t_3), \ldots , (i_{k-1},t_{k-1})\) in \((k-3) \times O(k \log ^4 n)\) time and eventually compute \(t_k = \varTheta _\mathsf{OPT}(1, i_{k-1}+1, n)\) in \(O(\log ^3 n)\) time. Notice that \(t^* = \min \{t_i \mid i = 1, 2, \ldots , k\}\) holds, which can be computed in O(k) time. We then execute a \((t^*,k)\)-feasibility test for P in \(O(k \log ^3 n)\) time, so that the optimal k-facility location is obtained. We thus see the problem can be solved in \((k-1) \times O(k \log ^4 n) + O(\log ^3 n) +O(k) + O(k \log ^3 n) = O(k^2 \log ^4 n)\) time once the CUE tree is constructed. Since it takes \(O(n \log n)\) time to construct the CUE tree by Lemma 3, the total time complexity is \(O(n \log n + k^2 \log ^4 n)\).

In the sorted matrix approach, the authors of [8] defined an \(n\times n\) matrix A whose entry (ij) entry is given by

$$\begin{aligned} A[i,j] = \left\{ \begin{array}{ll} \varTheta _{\text{ OPT }}(1,n-i+1, j) &{} \text{ if } n-i+1\le j\\ 0 &{} \text{ otherwise. } \end{array} \right. \end{aligned}$$
(39)

It is clear that matrix A includes \(\varTheta _{\text{ OPT }}(1,l, r)\) for every pair of integers (lr) such that \(1 \le l \le r \le n\). There exists a pair (lr) such that \(\varTheta _{\text{ OPT }}(1,l, r)=\varTheta _{\text{ OPT }}(k,1,n)\). Then the problem can be formulated as “Find the smallest A[ij] such that the given problem instance is (A[ij], k)-feasible.” Note that we do not actually compute all the elements of A, but element A[ij] is computed on demand as needed. We also notice that matrix A is a sorted matrix [25], i.e., each row and column of A is sorted in the nondecreasing order. The authors of [8] mentioned that paper [25] had implicitly shown the following lemma.

Lemma 7

[8, 25] Suppose thatA[ij] can be computed inf(n) time, and feasibility can be tested ing(n) time. Then the minimaxk-facility location problem in a dynamic flow path network can be solved in\(O(n f(n) + g(n) \log n)\)time.

Once the CUE tree is constructed, we have \(f(n)=O(\log ^3 n)\) by Lemma 6 and \(g(n)= O(n \log ^2 n)\) by Lemma 5; therefore the problem can be solved in \(O(n\log ^3 n)\) time. Since it takes \(O(n \log n)\) time to construct the CUE tree by Lemma 3, the total time complexity is \(O(n \log n) + O(n \log ^3 n) = O(n \log ^3 n)\).

Theorem 9

[8] The minimaxk-facility location problem in a dynamic flow path network with general edge capacities can be solved in\(O(\min \{n\log n+ k^2 \log ^4 n,n\log ^3 n\})\)time.

It was also shown in [8] that the above two approaches similarly work even for the case of uniform edge capacity. See [8] for more detail.

Theorem 10

[8] The minimaxk-facility location problem in a dynamic flow path network with uniform edge capacity can be solved in\(O(\min \{n+ k^2 \log ^2 n,n\log n\})\)time.

3.2.3 \({\varvec{k}}\)-Facility Location in Trees

The minimax 1-facility location problems in a dynamic flow tree network have been studied in [28, 32, 34, 41] so far. Recently, Chen and Golin [14, 15] have studied the case of k-facility location. In this section, we mainly introduce the algorithms for the 1-facility location in [28, 32, 34, 41] and mention the results for the k-facility location in [14, 15] because of space limitations. Given a dynamic flow tree network \({\mathscr {N}} = (T, w, l, c, \tau )\) where \(T=(V, E)\) is a tree such that \(|V|=n\), the problem requires finding a location of a facility \(x \in T\) that minimizes \(\varTheta (x)\). Here, the notation T is abused to denote the set of all points on T. In the following, we use the notation x to denote \({\varvec{x}}\) since we consider the 1-facility location.

Sketch of an Algorithm for the 1-Facility Location    We first introduce an algorithm developed by Mamada et al. [41] for the minimax 1-facility location problem in a dynamic flow tree network with general edge capacities under the assumption that a facility is located only at a vertex. Letting \(x^*\) denote a point in T that minimizes \(\varTheta (x)\), the algorithm basically maintains a subtree \(T' \subseteq T\) that consists of \(x^*\) while reducing \(T'\) by cutting a leaf as well as an incident edge at each step. For a leaf v of \(T'\), let p(v) denote a unique vertex adjacent to v in \(T'\). The algorithm also maintains an arriving table \(A_v\) and a sending table \(S_v\) for every leaf v of \(T'\): \(A_v\) is a function of time \(\theta \) such that \(A_v(\theta )\) represents the sum of the flow rates arriving at v at time \(\theta \) from adjacent vertices except p(v), and \(S_v\) is also a function of time \(\theta \) such that \(S_v(\theta )\) represents the flow rate leaving v at time \(\theta \) to p(v). For a leaf v of \(T'\), let time(v) denote the time at which the last flow sent by \(S_v\) arrives at p(v). Then, the algorithm computes time(v) for every leaf v of \(T'\) and remove from \(T'\) a leaf \(v^*\) (and an edge incident to \(v^*\)) that minimizes time(v) over all leaves v of \(T'\). If \(p(v^*)\) becomes a new leaf of \(T'\), the algorithm computes \(A_{p(v^*)}\). We here observe that the maximum cost of \(p(v^*)\) is less than or equal to that of \(v^*\), i.e., \(v^*\) is not an optimal facility location or both of \(v^*\) and \(p(v^*)\) are optimal. Thus, when \(T'\) becomes a single vertex, the algorithm outputs the vertex as \(x^*\). The authors of [41] mentioned that the above algorithm requires \(O(n^2)\) time if Arriving and Sending Tables are explicitly constructed, and by representing these tables efficiently, they developed an \(O(n \log ^2 n)\) time algorithm.

Theorem 11

[41] The minimax 1-facility location problem in a dynamic flow tree network with general edge capacities can be solved in\(O(n \log ^2 n)\)time.

We next overview an \(O(n \log n)\) time algorithm for the minimax 1-facility location problem in a dynamic flow tree network with uniform edge capacity by [28, 32, 34]. To develop an algorithm for the case of the uniform edge capacity, the authors of [28, 32, 34] used the formula of \(\varTheta (x)\) observed by Kamiyama et al. [38], which is as follows. For two points \(x, y \in T\), let d(xy) denote the distance between x and y in T. For a vertex \(v \in V\), let \(\delta (v)\) denote a set of vertices adjacent to v, and for a point \(x \in T\) which is not at a vertex but on an edge \(uv \in E\), let \(\delta (x)\) denote a set of two vertices u and v. Given a point \(x \in T\), if x is not at a vertex but on an edge \(uv \in E\), x is regarded as a new vertex of T and uv is split into two new edges ux and xv. Then, let T(x) be a rooted tree made from T such that each edge has a natural orientation towards the root x, and for any vertex \(v \in V\), let T(xv) be a subtree of T(x) rooted at v. Suppose that a facility is located at a point \(x \in T\). For a vertex \(u \in \delta (x)\), let \(\varTheta (x, u)\) denote the maximum cost of x for all supplies on T(xu), i.e., the minimum time required to send all supplies on T(xu) to x. Then \(\varTheta (x)\) can be represented as follows:

$$\begin{aligned} \varTheta (x) = \max \{ \varTheta (x, u) \mid u \in \delta (x) \}. \end{aligned}$$
(40)

Here, we only need to consider \(\varTheta (x, u^*)\) for \(u^{*} = \hbox {argmax}\{\varTheta (x, u) \mid u \in \delta (x) \}\). Suppose that there are \(n'\) vertices in \(T(x, u^*)\) named \(v_1 (= u^*), v_2, \ldots \), \(v_{n'}\) such that \(d(x, v_j) \le d(x, v_{j+1})\) for \(1 \le j \le n'-1\). For the integral flow model, Kamiyama et al. [38] observed that the value of \(\varTheta (x, u^*)\) does not change if x and all \(v_j\) for \(1 \le j \le n'\) are relocated on a line with the same capacity so that \(d(x, v_j)\) for \(1 \le j \le n'\) remain the same (see Fig. 3), and \(\varTheta (x, u^*)\) can be represented as follows:

$$\begin{aligned} \varTheta (x, u^*) = \max \bigg \{ \tau d(x, v_i) + \bigg \lceil \frac{\sum _{i \le j \le n'} w(v_j)}{c'} \bigg \rceil - 1 \ \bigg | \ 1 \le i \le n' \bigg \}, \end{aligned}$$
(41)

where \(c'\) is the uniform edge capacity. The authors of [28, 32, 34] have formally proved the formula (41), and the author of [28] also developed the formula for the fractional flow model as follows:

$$\begin{aligned} \varTheta (x, u^*) = \max \bigg \{ \tau d(x, v_i) + \frac{\sum _{i \le j \le n'} w(v_j)}{c'} \ \bigg | \ 1 \le i \le n' \bigg \}. \end{aligned}$$
(42)
Fig. 3
figure 3

Vertices of the tree can be relocated on a line with the same capacity

Also, to solve the problem effectively, the authors of [28, 32, 34] proved key properties shown in Lemmas 8 and 9. In the statements and the proofs of those two lemmas, we use the following notation. For two vertices \(v, v' \in V\), let \(V(v, v')\) denote the set of all vertices in \(T(v, v')\) and let \(T(V')\) denote a subgraph induced by a vertex set \(V' \subseteq V\). Let P be a simple path in T from a leaf to another leaf, which is represented as the sequence of vertices \(v_1, v_2, \ldots , v_k\) where \(v_1\) and \(v_k\) are leaves. In the following, for a point \(x \in P\), the notation x is abused to denote \(d(v_1, x)\). For a point \(x \in P\), we call the direction to \(v_1\) (resp. \(v_k\)) from x the left direction (resp. right direction). If a facility location x is given at a vertex \(v_i\) for some i satisfying \(2 \le i \le k\) (resp. \(1 \le i \le k-1\)), let \(\varTheta _L(x; P)\) (resp. \(\varTheta _R(x; P)\)) denote the minimum time required to send all supplies on \(T(x, v_{i-1})\) (resp. \(T(x, v_{i+1})\)) to x. If x is given on an edge \(v_iv_{i+1}\) for some i satisfying \(1 \le i \le k-1\), let \(\varTheta _L(x; P)\) (resp. \(\varTheta _R(x; P)\)) denote the minimum time required to send all supplies on \(T(x, v_i)\) (resp. \(T(x, v_{i+1})\)) to x. Also, for a vertex \(v_i\) satisfying \(1 \le i \le k-1\), let

$$\begin{aligned} \varTheta _L^{+0}(v_i; P)= & {} \lim _{\epsilon \rightarrow +0} \left\{ \varTheta _L(v_i + \epsilon ; P) \right\} , \end{aligned}$$
(43)
$$\begin{aligned} \varTheta _R^{-0}(v_i; P)= & {} \lim _{\epsilon \rightarrow +0} \left\{ \varTheta _R(v_i - \epsilon ; P) \right\} . \end{aligned}$$
(44)
Fig. 4
figure 4

Functions along P: a\(\varTheta _L(x; P)\), \(\varTheta _R(x; P)\) and b\(\varTheta (x)\)

Lemma 8

Along a path from a leaf to another leaf inT, \(\varTheta (x)\)is unimodal inx.

Proof

To prove the lemma, we first show that along a path P, \(\varTheta _L(x; P)\) is increasing in x and \(\varTheta _R(x; P)\) is decreasing in x (see Fig. 4a). By (42), (43) and (44), we can see the following three properties of \(\varTheta _L(x; P)\) and \(\varTheta _R(x; P)\):

  1. (i)

    for an open interval \((v_{i-1}, v_i)\) satisfying \(2 \le i \le k\), \(\varTheta _L(x; P)\) (resp. \(\varTheta _R(x; P)\)) is linear in x with slope \(\tau \) (resp. \(-\tau \)),

  2. (ii)

    \(\varTheta _L(x; P)\) (resp. \(\varTheta _R(x; P)\)) is left-continuous (resp. right-continuous) at \(x = v_i\) for \(2 \le i \le k\) (resp. \(1 \le i \le k-1\)),

  3. (iii)

    \(\varTheta _L(v_i; P) \le \varTheta _L^{+0}(v_i; P)\) (resp. \(\varTheta _R^{-0}(v_i; P) \ge \varTheta _R(v_i; P)\)) holds at \(v_i\) for \(2 \le i \le k-1.\)

From these properties, \(\varTheta _L(x; P)\) (resp. \(\varTheta _R(x; P)\)) is piecewise linear increasing (resp. decreasing) in x. Therefore, there uniquely exists \(x \in P\) that minimizes \(\max \{ \varTheta _L(x; P)\), \(\varTheta _R(x; P) \}\), called \(x^*(P)\) in the following.

Also, it can be seen that \(\varTheta _L(v_i; P) \le \varTheta (v_i) \le \varTheta _L^{+0}(v_i; P)\) for a vertex \(v_i \in P\) such that \(v_i \ge x^*(P)\), and \(\varTheta _R^{-0}(v_i; P) \ge \varTheta (v_i) \ge \varTheta _R(v_i; P)\) for a vertex \(v_i \in P\) such that \(v_i \le x^*(P)\). Thus, \(\varTheta (x)\) may possibly be discontinuous at \(v_i\) for \(2 \le i \le k-1\) but it is always unimodal in x along P. \(\square \)

Lemma 9

For a vertex\(v \in V\), if\(u^* = \hbox {argmax}\{ \varTheta (v, u) \mid u \in \delta (v) \}\)holds, there exists\(x^* \in T(V(v, u^*) \cup \{ v \})\).

Proof

Let us consider a path P from a leaf to another leaf through adjacent vertices v and \(u^*\) where \(u^* = \hbox {argmax}\{ \varTheta (v, u) \mid u \in \delta (v) \}\). Let us define the left direction in P as the direction from v to \(u^*\) and the right direction as the other one. Suppose that there are \(k+1\) vertices \(v_1, v_2, \ldots , v_k\) in P, and \(v = v_i\) and \(u^* = v_{i-1}\) for some i satisfying \(2 \le i \le k-1\). We consider a point \(p \in P\) such that \(p = v_i+\epsilon \) with sufficiently small \(\epsilon > 0\).

If we can show \(\varTheta (v_i) < \varTheta (p)\), \(x^*\) never exists in the right direction from \(v_i\) along P by Lemma 8. Then, this lemma can be proved by repeatedly applying the same discussion to all the other paths through v and \(u^*\). By the assumption of \(\varTheta (v_i) = \varTheta _L(v_i; P)\),

\(\varTheta _L(v_i; P) \ge \varTheta _R(v_i; P)\) holds, and by (42), \(\varTheta _L(v_i; P) + \epsilon \tau \le \varTheta _L(p; P)\) and \(\varTheta _R(v_i; P) = \varTheta _R(p; P) + \epsilon \tau \), that is, \(\varTheta _L(v_i; P) < \varTheta _L(p; P)\) and \(\varTheta _R(v_i; P) > \varTheta _R(p; P)\) hold. Thus, we have \(\varTheta _R(p; P) < \varTheta _L(p; P)\), which implies that

$$\begin{aligned} \varTheta (p) = \varTheta _L(p; P) . \end{aligned}$$
(45)

From (45) and the above mentioned two facts \(\varTheta (v_i) = \varTheta _L(v_i; P)\) and \(\varTheta _L(v_i; P) < \varTheta _L(p; P)\), we derive \(\varTheta (v_i) < \varTheta (p)\).

\(\square \)

We now see the algorithm by [28, 32, 34] for the minimax 1-facility location problem in a dynamic flow tree network with uniform edge capacity. The algorithm uses the concept of centroid of a tree [40]: for an undirected tree \(T = (V, E)\), a centroid of T is a vertex that minimizes \(\max \{ |V(v, u)| \mid u \in \delta (v) \}\) for all \(v \in V\).

Kang et al. [40] showed that a centroid m of T can be computed in O(|V|) time and

$$\begin{aligned} \max \{ |V(m, u)| \mid u \in \delta (m) \} \le \frac{|V|}{2}. \end{aligned}$$
(46)

Let us explain the first iteration of the algorithm by [28, 32, 34]. For ease of explanation, we here assume that a facility is located on a vertex although the authors of [28, 32, 34] allowed that a facility can be located at any point on a tree. Letting \(U_1 = V\), the algorithm first finds a centroid \(m_1\) of \(T(U_1)\) and computes \(d(m_1, v)\) for every \(v \in U_1\). Then, to compute \(\varTheta (m_1, u)\) for each \(u \in \delta (m_1)\), the algorithm basically creates the list L(u) of all vertices \(v \in U_1 \cap V(m_1, u)\) which are arranged in the nondecreasing order of \(d(m_1,v)\). From (42), we can derive that \(\varTheta (m_1, u)\) can be computed using L(u).

In this manner, the algorithm computes \(u_1 = \hbox {argmax}\{ \varTheta (m_1, u) \mid u \in \delta (m_1) \}\). After that, it sets \(V_1 = U_1 \setminus (V(m_1, u_1) \cup \{ m_1 \})\) and merges lists L(u) for \(u \in \delta (m_1) \setminus \{ u_1 \}\) into a new list \(L_1\). At the end of the first iteration, the algorithm sets \(U_2 = U_1 \cap (V(m_1, u_1) \cup \{ m_1 \})\). Note that by Lemma 9, there exists \(x^*\) in \(T(U_2)\) and by (46), \(|U_2| \le |U_1|/2 + 1\) holds.

The algorithm iteratively performs the same procedure (see Fig. 5). Namely, at the i-th iteration, it finds a centroid \(m_i\) of \(T(U_i)\), computes \(u_i = \hbox {argmax}\{ \varTheta (m_i, u) \mid u \in \delta (m_i) \}\), sets \(V_i = U_i \setminus (V(m_i, u_i) \cup \{ m_i \})\), creates a list \(L_i\) of vertices \(v \in V_i\) arranged in the nondecreasing order of \(d(m_i,v)\) and also sets \(U_{i+1} = U_i \cap (V(m_i, u_i) \cup \{ m_i \})\). Since, at each iteration, the algorithm reduces the subgraph where \(x^*\) exists so that the size becomes half or less roughly, it halts after \(l=O(\log |V|)\) iterations. At this point, it finds two vertices \(m_l\) and \(u_l \in U_l\) connected by an edge, and outputs the better one as \(x^*\).

Fig. 5
figure 5

Illustration of the i-th iteration: a\(i = 6\) and b\(i = 7\)

Let us turn to the time complexity of the algorithm. The authors of [28, 32, 34] first showed that the running time is \(O(n \log ^2 n)\) where \(n = |V|\). Let us examine the running time for each iteration required by the algorithm. At the i-th iteration for \(i \ge 2\), a centroid \(m_i\) of \(T(U_i)\) can be found in \(O(|U_i|)\) time (in [40]), and \(d(m_i, v)\) can be computed for all \(v \in V\) by depth-first search in O(n) time. In the following, we consider two lists of vertices in \(V(m_i, u)\) for \(u \in \delta (m_i)\) which are arranged in the nondecreasing order of the distance from \(m_i\), that is, L(u) and \(L'(u)\). The only one difference between L(u) and \(L'(u)\) is that L(u) just consists of vertices in \(U_i \cap V(m_i, u)\) although \(L'(u)\) consists of all vertices in \(V(m_i, u)\). If the algorithm creates a list \(L'(u)\), \(\varTheta (m_i, u)\) can be computed as mentioned above. Each list \(L'(u)\) can be created by a simple merge sort in \(O(|V(m_i, u)| \log |V(m_i, u)|)\) time, so \(u_i = \hbox {argmax}\{ \varTheta (m_i, u) \mid u \in \delta (m_i) \}\) can be computed in \(O(n \log n + n)\) time. Therefore, in each iteration, it takes \(O(|U_i| + n + n \log n + n) = O(n \log n)\) time. Since the algorithm halts after \(O(\log n)\) iterations as mentioned above, our problem can be solved in \(O(n \log ^2 n)\) time.

In the above analysis, the authors of [28, 32, 34] showed that the running time required to create lists \(L'(u)\) for \(u \in \delta (m_i)\) can be improved from \(O(n \log n)\) to \(O(n + |U_i| \log |U_i|)\), based on the following lemma.

Lemma 10

\(|U_i| = O(\frac{n}{2^{i-1}})\)and\(|V_i| = O(\frac{n}{2^{i-1}})\)hold for\(i \ge 1\).

Proof

By definition of \(U_i\), we can clearly see that \(|U_i| = O(n/2^{i-1})\) holds. Recall that \(V_i = U_i \setminus (V(m_i, u_i) \cup \{ m_i \})\) and \(|U_i \cap V(m_i, u_i)| = O(|U_i|/2)\), thus we have \(|V_i| = O(n/2^{i-1})\). \(\square \)

The idea to improve the running time is to use the sorted lists \(L_j\) with \(j = 1, 2, \ldots , i-1\). Let us look at Fig. 5a, and focus on a vertex \(u \in \delta (m_6)\) in the figure. The computation of \(L'(u)\) can be done in \(O(n \log n)\) time if we know \(d(m_6, v)\) for all \(v \in V(m_6, u)\). But, since \(V(m_6, u) = V_1 \cup V_4 \cup (U_6 \cap V(m_6, u))\) holds and we have already computed \(L_1\) and \(L_4\), \(L'(u)\) can be obtained faster if we create only a list L(u) by computing \(d(m_6, v)\) for all \(v \in U_6 \cap V(m_6, u)\). Note that by (46), \(|U_6 \cap V(m_6, u)|\) is at most \(|U_6|/2\), which is about \(|V_1|/64\) or \(|V_4|/8\) by Lemma 10, so its size is much smaller than \(|V(m_6, u)|\). The idea is formalized as follows. For each \(u \in \delta (m_i)\), the algorithm first creates a list L(u) of vertices in \(U_i \cap V(m_i, u)\), which takes \(O(n' \log n')\) time where \(n' = |U_i \cap V(m_i, u)|\). Thus, lists L(u) for all \(u \in \delta (m_i)\) can be created in \(O(|U_i| \log |U_i|)\) time. For each \(u \in \delta (m_i)\), the algorithm merges L(u) and all lists \(L_j\) with \(V_j \subseteq V(m_i, u)\) into \(L'(u)\) (at this point, all of the original lists are maintained since these will be used later). For this merging operation, if we apply a simple merge sort, it takes \(O(|V(m_i, u)| \log |V(m_i, u)|)\) time, which does not improve the running time. Here, we notice that \(|L_j| = |V_j|\) for \(1 \le j \le i-1\). Instead, the algorithm basically takes the following two steps to create each list \(L'(u)\) for \(u \in \delta (m_i)\).

[Step 1]: For \(L_j\) such that \(V_j \subseteq V(m_i, u)\), choose \(L_p = \hbox {argmin}\{ |L_j| \mid V_j \subseteq V(m_i, u) \}\) and merge each \(L_j\) in the increasing order of size (i.e., the decreasing order of j) with \(L_p\) one by one.

[Step 2]: Merge the list obtained at Step 1 and L(u) into \(L'(u)\).

For all \(u \in \delta (m_i)\), Step 1 takes in \(O( \sum _{j=1}^{i-1} jn/2^{j-1}) = O(n)\) time, and thus, Step 2 takes \(O(n + |U_i|) = O(n)\) time. Recall that L(u) for all \(u \in \delta (m_i)\) can be created in \(O(|U_i| \log |U_i|)\) time. Then, by Lemma 10, it takes \(O(n + |U_i| \log |U_i|) = O(n + (n/2^{i-1}) \log (n/2^{i-1}))\) time to create lists \(L'(u)\) for all \(u \in \delta (m_i)\).

Lemma 11

Thei-th iteration of the algorithm by [28, 32, 34] takes\(O(n + \frac{n}{2^{i-1}} \log \frac{n}{2^{i-1}})\)time.

Recall that the algorithm halts after \(O(\log n)\) iterations. Thus, by Lemma 11, it takes \(O(n \log n + \sum \{ (n/2^{i-1}) \log (n/2^{i-1}) \mid 1 \le i \le \log n \})= O(n \log n)\) time for the entire iterations.

Theorem 12

[28, 32, 34] The minimax 1-facility location problem in a dynamic flow tree network with uniform edge capacity can be solved in\(O(n \log n)\)time.

Results for thek-Facility Location    We here introduce the latest results in [15] for the minimax k-facility location problem in a dynamic flow tree network. Note that the algorithms by [15] use the algorithms for the 1-facility location by [28, 32, 34, 41] as subroutines.

Theorem 13

[15] The minimaxk-facility location problem in a dynamic flow tree network with general edge capacities can be solved in\(O(\max \{k, \log n\}kn \log ^4 n)\)time. The problem for the case of uniform edge capacity can be solved in\(O(\max \{k, \log n\}kn \log ^3 n)\)time.

3.3 Minisum Facility Location Problems

We consider the facility location problems in a dynamic flow network with the integral flow model. Given a location of facilities \({\varvec{x}}\) and a feasible evacuation to \({\varvec{x}}\), say \({\mathscr {E}}\), the cost of \(({\varvec{x}}, {\mathscr {E}})\) for an evacuee is defined as the time required to send him/her to a facility of \({\varvec{x}}\) along an evacuation path determined by \({\mathscr {E}}\). Then \(sum({\varvec{x}}, {\mathscr {E}})\) is defined as the sum of the cost of \(({\varvec{x}}, {\mathscr {E}})\) for all evacuees. The total cost of \({\varvec{x}}\) is defined as

$$\begin{aligned} \varPhi ({\varvec{x}}) = \min \{sum({\varvec{x}}, {\mathscr {E}}) \mid {\mathscr {E}} \in {\mathfrak {E}}_x \}, \end{aligned}$$
(47)

where \({\mathfrak {E}}_x\) is a set of all feasible evacuations to \({\varvec{x}}\). In the fractional flow model, we define the unit as the infinitesimally small portion of supply, and the cost is defined on each infinitesimal unit. Then two criteria are defined in the same way as in the integral flow model. Here, we deal with a problem that requires finding \({\varvec{x}}\) in a dynamic flow network minimizing \(\varPhi ({\varvec{x}})\).

3.3.1 \({\varvec{k}}\)-Facility Location in Paths

The minisum k-facility location problems in a dynamic flow path network with uniform edge capacity have been studied in [33, 35]. Very recently, Benkoczi et al. [7] have studied the problem for the case of general edge capacities. In this section, we mainly introduce the algorithms for the case of uniform edge capacity in [33, 35] and mention the results for the case of general edge capacities in [7] because of space limitations. Given a dynamic flow path network \({\mathscr {N}} = (P=(V, E), w, l, c, \tau )\) defined in Sect. 3.2.2, the problem requires finding a location of k facilities \({\varvec{x}}=(x_1, x_2, \ldots , x_k) \in P^k\) that minimizes \(\varPhi ({\varvec{x}})\). In [7, 33, 35], it was assumed that all units of supply originally located at a vertex are sent to the same facility (as in the maximum cost case). In the following, we use the notation x to denote \({\varvec{x}}\) when we consider the 1-facility location.

Basic Properties for the Case of Uniform Edge Capacity    We first see a useful formula developed by [33, 35] for the total cost in the case of uniform edge capacity to solve the 1-facility location problem. Suppose that a facility is located at a point \(x \in P_{i, j}\) for fixed integers i and j satisfying \(1 \le i \le j \le n\). Let \(\varPhi _{i, j}(x)\) denote the total cost of x for \(P_{i, j}\). Also let \(\varPhi _L^i(x)\) (resp. \(\varPhi _R^j(x)\)) denote the sum of the cost of x for all supplies on the part of \(P_{i, j}\) between \(v_i\) and x (resp. x and \(v_j\)) where \(\varPhi _L^i(v_i) = 0\) and \(\varPhi _R^j(v_j) = 0\). Then, \(\varPhi _{i, j}(x)\) is the sum of \(\varPhi _L^i(x)\) and \(\varPhi _R^j(x)\), i.e.,

$$\begin{aligned} \varPhi _{i, j}(x) = \varPhi _L^i(x) + \varPhi _R^j(x). \end{aligned}$$
(48)

For the fractional flow model, the authors of [33, 35] showed the formulae for \(\varPhi _L^i(x)\) and \(\varPhi _R^j(x)\). In the following, we only explain the case of \(\varPhi _L^i(x)\) (the case of \(\varPhi _R^j(x)\) is symmetric). Assume that x is located on an edge \(e_{s_x}\) (not including endpoints) satisfying \(i \le s_x \le j-1\). Consider the case that the first unit of \(v_{l-1}\) is forced to stop at \(v_l\) for some l satisfying \(i+1 \le l \le s_x\), i.e.,

$$\begin{aligned} \tau (v_l-v_{l-1}) \le \frac{w(v_l)}{c'}, \end{aligned}$$
(49)

where \(c'\) is the uniform edge capacity. Then, even if all units of \(v_{l-1}\) are moved to \(v_l\) and \(v_{l-1}\) is removed from \(P_{i, j}\), the cost of x for any unit does not change, which implies that \(\varPhi _L^i(x)\) does not change. By repeatedly applying the same operation as long as there exist such consecutive two vertices, several vertices whose indices are \(\rho _1, \ldots , \rho _e\) are eventually left such that all units on vertices \(v_{\rho _{h-1}+1}, \ldots , v_{\rho _h-1}\) have been moved to \(v_{\rho _h}\) for \(1 \le h \le e\) (where \(\rho _0 = i-1\) and \(\rho _e = s_x\)) without changing \(\varPhi _L^i(x)\). Notice that for every integer h satisfying \(1 \le h \le e\), the first unit of \(v_{\rho _h}\) will never be forced to stop on its way to x. Formally, the authors of [33, 35] defined the vertex indices \(\rho _1, \ldots , \rho _e\) as

$$\begin{aligned} \rho _i= & {} \hbox {argmax}\left\{ \tau (x - v_h) + \frac{\sum _{l=\rho _{i-1}+1}^h w(v_l)}{c'} \ \bigg | \ \rho _{i-1} + 1 \le h \le s_x \right\} . \end{aligned}$$
(50)

For every integer h satisfying \(1 \le h \le e\), they also defined the value of \(\rho _h\) as \(\sigma _h = \sum \{ w(v_l) \mid \rho _{h-1}+1 \le l \le \rho _h \}\). Then, it was shown in [33, 35] that \(\varPhi _L^i(x)\) is represented as follows:

$$\begin{aligned} \varPhi _L^i(x)= & {} \sum _{1 \le h \le e} \left( \sigma _h\tau (x-\rho _h) + \frac{{\sigma _h}^2}{2c'} \right) . \end{aligned}$$
(51)

The authors of [33, 35] pointed out that function \(\varPhi _{i, j}(x)\) may not be unimodal in x although \(\varPhi _L^i(x)\) and \(\varPhi _R^j(x)\) are increasing in x and decreasing in x, respectively.

Also, to efficiently solve the problem, the authors of [33, 35] proved an important property.

Lemma 12

For the minisum 1-facility location problem in a dynamic flow path network with uniform edge capacity, there exists an optimal facility location at a vertex.

Proof

By (51), for an open interval \((v_h, v_{h+1})\) with \(i \le h \le j-1\), \(\varPhi _{i, j}(x)\) is linear in x with slope \(\tau (\sum _{i \le l \le h} w_l - \sum _{h+1 \le l \le j} w_l)\). Now let us consider an open interval \((v_h, v_{h+1})\) with \(i \le h \le j-1\) such that \(\sum _{i \le l \le h} w_l - \sum _{h+1 \le l \le j} w_l \ge 0\) holds. Then, we can see that for any two points \(p, q \in (v_h, v_{h+1})\) satisfying \(p < q\), \(\varPhi _{i, j}(p) \le \varPhi _{i, j}(q)\) holds. We will show that for sufficiently small \(\epsilon > 0\), \(\varPhi _{i, j}(v_h) \le \varPhi _{i, j}(v_h + \epsilon )\) holds. We confirm

$$\begin{aligned} \varPhi ^j_R(v_h)= & \, \varPhi ^j_R(v_h + \epsilon ) + \left( \sum _{h+1 \le l \le j} w_l \right) \cdot \tau \epsilon , \ \ \text{ and } \end{aligned}$$
(52)
$$\begin{aligned} \varPhi ^i_L(v_h + \epsilon )\ge & {} \varPhi ^i_L(v_h) + \left( \sum _{i \le l \le h} w_l \right) \cdot \tau \epsilon . \end{aligned}$$
(53)

From (52), (53) and the assumption of \(\sum _{i \le l \le h} w_l - \sum _{h+1 \le l \le j} w_l \ge 0\), we can derive \(\varPhi _{i, j}(v_h) \le \varPhi _{i, j}(v_h + \epsilon )\). Thus, for any point \(p \in (v_h, v_{h+1})\), \(\varPhi _{i, j}(v_h) \le \varPhi _{i, j}(p)\) holds, which implies that \(x^*(i, j)\) is located at some vertex where \(x^*(i, j) = \hbox {argmin}\{ \varPhi _{i, j}(x) \mid x \in P_{i, j} \}\). \(\square \)

Sketch of Algorithms for the Case of Uniform Edge Capacity    We now see the algorithm by [33, 35] for the minisum 1-facility location problem in a dynamic flow path network with uniform edge capacity. For ease of explanation, we consider \(P = P_{1, n}\) as an input, and use the notation \(\varPhi (x)\), \(\varPhi _L(x)\) and \(\varPhi _R(x)\) to denote \(\varPhi _{1, n}(x)\), \(\varPhi ^1_L(x)\) and \(\varPhi ^n_R(x)\).

Basically, the algorithm first computes \(\varPhi _L(v_i)\) for \(2 \le i \le n\) in ascending order of i, and next \(\varPhi _R(v_i)\) for \(1 \le i \le n-1\) in descending order of i. After computing all these values, \(\varPhi (v_i)\) can be computed and evaluated for \(1 \le i \le n\) in O(n) time. By Lemma 12, the optimal facility location \(x^*\) is at a vertex that minimizes \(\varPhi (x)\) for \(x \in P\), so we just take the minimum of the n values above.

Below, we show how to compute \(\varPhi _L(v_i)\) (computation of \(\varPhi _R(v_i)\) can be treated in a similar manner). First, the algorithm sets \(\rho _1 = 1\), \(\sigma _1 = w_1\). By (51), \(\varPhi _L(v_2)\) is computed in O(1) time as follows:

$$\begin{aligned} \varPhi _L(v_2)= & {} \sigma _1\tau (v_2-v_{\rho _1}) + \frac{{\sigma _1}^2}{2c'}. \end{aligned}$$
(54)

Now, suppose that for some integer j satisfying \(2 \le j \le n-1\), \(\varPhi _L(v_j)\) has been already obtained as follows:

$$\begin{aligned} \varPhi _L(v_j)= & {} \sum _{1 \le i \le e(j)} \left( \sigma _i\tau (v_j-v_{\rho _i}) + \frac{{\sigma _i}^2}{2c'} \right) , \end{aligned}$$
(55)

where e(j) is a positive integer satisfying \(1 \le e(j) \le j-1\). Here, \(\rho _i\) and \(\sigma _i\) for all i satisfying \(1 \le i \le e(j)\) have also been obtained. In addition, letting \(W_{j-1} = \sum _{1 \le i \le j-1} w_i = \sum _{1 \le i \le e(j)} \sigma _i\), suppose that \(W_{j-1}\) has also been computed. We then show how to compute \(\varPhi _L(v_{j+1})\). First, the algorithm temporarily sets

$$\begin{aligned} \varPhi ' = \varPhi _L(v_j), \ \ \text{ and } \ \ W' = W_{j-1}. \end{aligned}$$
(56)

Next, the algorithm computes \(W_j\) as \(W_j = W_{j-1} + w_j\). Here, \(W_j-W'\) corresponds to \(w_j\) plus the amount of supplies merged to \(v_j\). Then the algorithm tests if \(\tau (v_j-v_{\rho _i}) < (W_j-W')/c'\) for \(1 \le i \le e(j)\) in descending order. If and only if so, the supply of \(v_{\rho _i}\) will be merged to \(v_j\), thus the algorithm updates \(\varPhi '\) and \(W'\) as follows:

$$\begin{aligned} \varPhi ' \leftarrow \varPhi ' - \left( \sigma _i\tau (v_j-v_{\rho _i}) + \frac{{\sigma _i}^2}{2c'} \right) , \ \ \text{ and } \ \ W' \leftarrow W' - \sigma _i, \end{aligned}$$
(57)

and deletes \(\rho _i\). If the maximum integer m such that \(\tau (v_j-v_{\rho _m}) \ge (W_j-W')/c'\) is found or \(\tau (v_j-v_{\rho _1}) < (W_j-W')/c'\) is obtained, the algorithm stops testing. In the former case, after the algorithm tests \(e(j)-m+1\) times, \(\rho _1, \ldots , \rho _{m}\) remain. Now the total amount of supplies on \(v_{\rho _1}, \ldots , v_{\rho _{m}}\) is \(W'\), and the total evacuation time to \(v_j\) for these supplies is \(\varPhi '\). Since each unit of these supplies does not stop at \(v_j\), the total evacuation time to \(v_{j+1}\) for these supplies is \(\varPhi ' + W'\tau (v_{j+1}-v_j)\). On the other hand, all supplies on \(v_{\rho _{m+1}}, \ldots , v_{\rho _{e(j)}}\) are merged to \(v_j\), thus the total amount of supply on \(v_j\) is \(W_j-W'\). Then, by (51), \(\varPhi _L(v_{j+1})\) can be computed as

$$\begin{aligned} \begin{aligned} \varPhi _L(v_{j+1}) = \varPhi '&+ W'\tau (v_{j+1}-v_j) \\&+ \left( (W_j - W')\tau (v_{j+1}-v_j) + \frac{(W_j - W')^2}{2c'} \right) . \end{aligned} \end{aligned}$$
(58)

Also, for the next recursive step, the algorithm eventually sets

$$\begin{aligned} e(j+1)=m+1, \ \ \rho _{m+1} = j, \ \ \text{ and } \ \ \sigma _{m+1} = W_j - W'. \end{aligned}$$
(59)

Since the algorithm tests \(e(j)-m+1 = e(j)-e(j+1)+2\) times to compute \(\varPhi _L(v_{j+1})\), it needs to test \(\sum _{1 \le i \le n-1} (e(i)-e(i+1)+2)\) times to compute \(\varPhi _L(v_i)\) for \(2 \le i \le n\). Here, by \(e(1) = 0\), we have

$$\begin{aligned} \sum _{1 \le i \le n-1} \left( e(i)-e(i+1)+2 \right) = - e(n) + 2(n-1) = O(n). \end{aligned}$$
(60)

Theorem 14

[33, 35] The minisum 1-facility location problem in a dynamic flow path network with uniform edge capacity can be solved inO(n) time.

For the minisum k-facility location problem in a dynamic flow path network with uniform edge capacity, Higashikawa et al. [33] showed the following recursion for \(p \ge 2\) in a similar way to (12):

$$\begin{aligned} \varPhi _{\text{ OPT }}(p, i, j) = \min _{i \le d \le j-1} \{\varPhi _\mathsf{OPT}(p-1, i, d)+\varPhi _{\text{ OPT }}(1, d+1, j)\}, \end{aligned}$$
(61)

where \(\varPhi _{\text{ OPT }}(p, i, j)\) denotes the cost of the minisum p-facility location in a subpath \(P_{i, j}\) (which has already been defined in Sect. 3.2.2). Also letting \(d_{p}(j)\) denote an integer t minimizing \(\{ \varPhi _{\text{ OPT }}(p-1, 1, t)+\varPhi _{\text{ OPT }}(1, t+1, j) \}\) for \(1 \le t \le j-1\), the authors of [33] showed that for integers pj satisfying \(2 \le p \le k\) and \(1 \le j \le n-1\), \(d_{p}(j) \le d_{p}(j+1)\) holds (similar to Lemma 1). Using a dynamic programming approach based on the above property, the authors of [33] proved that the minisum k-facility location problem can be solved by computing the minisum 1-facility location problems in subpaths for O(kn) times. By this and Theorem 14, they developed an \(O(kn^2)\) algorithm.

Next, the same authors as [33] have improved the algorithm in its time complexity in [35]. They basically transformed the problem to an equivalent problem, which requires finding the minimum k-link path in a weighted, complete, directed acyclic graph (DAG), as follows. First, for integers i and j satisfying \(1 \le i < j \le n+1\), let \(w(i, j) = \varPhi _{\text{ OPT }}(1, i, j-1)\). Let us consider a DAG \(G = (N, A)\) such that \(N = \{ u_1, u_2, \ldots , u_n, u_{n+1} \}\) and for every vertex pair \((u_i, u_j)\) satisfying \(1 \le i < j \le n+1\), there exists an edge which is directed from \(u_i\) to \(u_j\) associated with the weight of w(ij). Then, the minisum k-facility location problem in a dynamic flow path network is equivalent to a problem requiring finding a path in G from \(u_1\) to \(u_{n+1}\) which contains exactly k edges such that the sum of weights is minimized. Schieber [43] showed that this problem can be solved by querying edge weights \(\min \{O(n \sqrt{k \log n}+n\log n), n2^{O(\sqrt{\log k \log \log n})}\}\) times if the input DAG satisfies the concave Monge property, that is, \(w(i, j) + w(i+1, j+1) \le w(i+1, j) + w(i, j+1)\) holds for any integers i and j satisfying \(2 \le i+1 < j \le n\). The authors of [35] proved that the concave Monge property holds if \(w(i, j) = \varPhi _{\text{ OPT }}(1, i, j-1)\). Then, we can see a \(\min \{O(n^2 \sqrt{k \log n}+n^2\log n), n^2 2^{O(\sqrt{\log k \log \log n})}\}\) time algorithm for the minisum k-facility location problem in a dynamic flow path network since each weight query takes O(n) time as mentioned in Theorem 14.

Lemma 13

For any integersiandjsatisfying\(2 \le i+1 < j \le n\),

$$\begin{aligned} \varPhi _{\text{ OPT }}(1, i, j-1) + \varPhi _{\text{ OPT }}(1, i+1, j) \le \varPhi _{\text{ OPT }}(1, i+1, j-1) + \varPhi _{\text{ OPT }}(1, i, j). \end{aligned}$$

Proof

We consider two cases: [Case 1] \(x^*(i+1, j-1) \le x^*(i, j)\) and [Case 2] \(x^*(i+1, j-1) > x^*(i, j)\). We will only prove Case 1 (The proof of Case 2 is symmetric). We first show that

$$\begin{aligned} \begin{aligned} \varPhi _{i, j-1}(x^*(i+1, j-1))&- \varPhi _{i+1, j-1}(x^*(i+1, j-1)) \\&\le \varPhi _{i, j}(x^*(i, j)) - \varPhi _{i+1, j}(x^*(i, j)). \end{aligned} \end{aligned}$$
(62)

Since both of \(\varPhi _{i, j-1}(x^*(i+1, j-1))\) and \(\varPhi _{i+1, j-1}(x^*(i+1, j-1))\) include \(\varPhi ^{j-1}_R(x^*(i+1, j-1))\), the left side of (62) is equal to \(\varPhi _L^i(x^*(i+1, j-1)) - \varPhi _L^{i+1}(x^*(i+1, j-1))\). Similarly, the right side of (62) is equal to \(\varPhi _L^i(x^*(i, j)) - \varPhi _L^{i+1}(x^*(i, j))\). Let \(D = \varPhi _L^{i+1}(x^*(i, j)) - \varPhi _L^{i+1}(x^*(i+1, j-1))\) (clearly \(D \ge 0\) by the condition of \(x^*(i+1, j-1) \le x^*(i, j)\)), that is,

$$\begin{aligned} \varPhi _L^{i+1}(x^*(i, j)) = \varPhi _L^{i+1}(x^*(i+1, j-1)) + D. \end{aligned}$$
(63)

Then, we have

$$\begin{aligned} \varPhi _L^i(x^*(i, j)) \ge \varPhi _L^i(x^*(i+1, j-1)) + D. \end{aligned}$$
(64)

By (63) and (64), we obtain

$$\begin{aligned} \begin{aligned} \varPhi _L^i(x^*(i+1, j-1))&- \varPhi _L^{i+1}(x^*(i+1, j-1)) \\&\le \varPhi _L^i(x^*(i, j)) - \varPhi _L^{i+1}(x^*(i, j)), \end{aligned} \end{aligned}$$
(65)

which is equivalent to (62) as mentioned above.

On the other hand, by the optimality of \(\varPhi _{\text{ OPT }}(1, i, j-1)\) and \(\varPhi _{\text{ OPT }}(1, i+1, j)\), we have

$$\begin{aligned} \varPhi _{i, j-1}(x^*(i+1, j-1))\ge & {} \varPhi _{i, j-1}(x^*(i, j-1)), \ \text{ and } \end{aligned}$$
(66)
$$\begin{aligned} \varPhi _{i+1, j}(x^*(i, j))\ge & {} \varPhi _{i+1, j}(x^*(i+1, j)). \end{aligned}$$
(67)

Then, by (62), (66) and (67), we obtain

$$\begin{aligned} \varPhi _{\text{ OPT }}(1, i, j-1) - \varPhi _{\text{ OPT }}(1, i+1, j-1) \le \varPhi _{\text{ OPT }}(1, i, j) - \varPhi _{\text{ OPT }}(1, i+1, j), \end{aligned}$$
(68)

which implies that the lemma holds in Case 1. \(\square \)

Theorem 15

[35] The minisumk-facility location problem in a dynamic flow path network with uniform edge capacity can be solved in\(\min \{O(n^2 \sqrt{k \log n}+n^2\log n), n^2 2^{O(\sqrt{\log k \log \log n})}\}\)time.

Results for the Case of General Edge Capacities    We here introduce the latest results by [7] for the minisum k-facility location problem in a dynamic flow path network with general edge capacities. Although paper [7] has treated not only the case of general edge capacities but also that of uniform edge capacity and the time complexity of their algorithm for the case of uniform edge capacity has improved the previous one shown in Theorem 15, we do not refer to the details here because of space limitations.

Theorem 16

[7] The minisumk-facility location problem in a dynamic flow path network with general edge capacities can be solved in\(O(kn \log ^4 n)\)time. The problem for the case of uniform edge capacity can be solved in\(O(kn \log ^3 n)\)time.

4 Minimax Regret Facility Location Problems in Dynamic Flow Networks

The minimax regret facility location problems in dynamic flow networks have been studied in recent years. All of the previous studies on the problems have assumed that the edge capacity is uniform and facilities can be located at any point in the network. Cheng et al. [18] first studied the minimax regret 1-facility location problem in a dynamic flow path network adopting the maximum cost criterion and proposed an \(O(n \log ^2 n)\) time algorithm. This result was improved to \(O(n \log n)\) by Higashikawa et al. [29] and Wang [44, 45] independently. Finally, Bhattacharya and Kameda [10] have developed an O(n) time algorithm. They also studied the minimax regret 2-facility location problem in a dynamic flow path network adopting the maximum cost criterion and proposed an \(O(n \log ^4 n)\) time algorithm in [10]. The minimax regret k-facility location problem in a dynamic flow path network has first been studied by Arumugam et al. [3]. They developed two algorithms in [3]: the first one runs in \(O(kn^2 \log ^k n)\) time and the second one runs in \(O(kn^3 \log n)\) time. The second result in [3] was improved to \(O(kn^3)\) by Higashikawa [28]. For tree networks, Higashikawa et al. [32, 34] studied the minimax regret 1-facility location problem adopting the maximum cost criterion and proposed an \(O(n^2 \log ^2 n)\) time algorithm. Later, Bhattacharya and Kameda [10] developed an \(O(n \log n)\) time algorithm, which is the best so far. Very recently, Golin and Sandeep [26] have studied the minimax regret k-facility location problem in a dynamic flow tree network adopting the maximum cost criterion and shown that the problem can be solved in \(O(\max \{k^2, \log ^2 n\}\cdot k^2n^2 \log ^5 n)\) time.

On the other hand, the problems adopting the total cost criterion have not been studied much except for the case of the 1-facility location in path networks. For the minimax regret 1-facility location problem in a dynamic flow path network adopting the total cost criterion, Higashikawa et al. [30, 31] provided an \(O(n^3)\) time algorithm, and this result has been improved to \(O(n^2 \log ^2 n)\) recently by Bhattacharya et al. [9].

In the rest of this section, we introduce basic ideas for the reduction of scenarios to be considered in the minimax regret facility location problems in dynamic flow networks.

4.1 Dynamic Network Under Uncertain Supplies

A dynamic flow network under uncertain supplies\({{{\mathscr {N}}}} = (G = (V, E), W, l, c, \tau )\) consists of the same components as the one under fixed supplies (mentioned in Sect. 3.2.2) except for function w. Here, function W associates each vertex \(v \in V\) with an interval of supply such that \(W(v) = [w^-(v), w^+(v)]\) satisfying \(0 < w^-(v) \le w^+(v)\) instead of w. In a dynamic flow network under uncertain supplies, a particular assignment of supplies to vertices is called a scenario. Let \({{{\mathscr {S}}}}\) denote the Cartesian product of all W(v) for \(v \in V\), i.e., a set of scenarios:

$$\begin{aligned} {{{\mathscr {S}}}} = \prod _{v \in V} [w^-(v), w^+(v)]. \end{aligned}$$
(69)

For a scenario \(s \in {{{\mathscr {S}}}}\), the notation \(w^s(v)\) is used to denote the supply of each vertex \(v \in V\) under the scenario s.

4.2 Problems Adopting the Maximum Cost Criterion

For a location of facilities \({\varvec{x}}\) and a scenario \(s \in \mathcal{S}\), let \(\varTheta ^s({\varvec{x}})\) denote the maximum cost of \({\varvec{x}}\) under s. Also let \({\varvec{x}}^s\) denote the minimax facility location under s. Given a location of facilities \({\varvec{x}}\) and a scenario \(s \in {{{\mathscr {S}}}}\), the regret adopting the maximum cost criterion of \({\varvec{x}}\) under s is defined as follows:

$$\begin{aligned} RM^s({\varvec{x}}) = \varTheta ^s({\varvec{x}}) - \varTheta ^s({\varvec{x}}^s). \end{aligned}$$
(70)

Then, given a facility location \({\varvec{x}}\), the maximum regret adopting the maximum cost criterion of \({\varvec{x}}\) is defined as follows:

$$\begin{aligned} RM_{\max }({\varvec{x}}) = \max \{ RM^s({\varvec{x}}) \mid s \in {\mathscr {S}}\}. \end{aligned}$$
(71)

Here, we treat a problem that requires finding \({\varvec{x}}\) in a dynamic flow network minimizing \(RM_{\max }({\varvec{x}})\). A scenario \(s^* \in {{{\mathscr {S}}}}\) is called a worst case scenario adopting the maximum cost criterion for \({\varvec{x}}\) if

$$\begin{aligned} s^* = \hbox {argmax}\{ RM^s({\varvec{x}}) \mid s \in {\mathscr {S}}\}. \end{aligned}$$
(72)

4.2.1 \({\varvec{k}}\)-Facility Location in Paths

The minimax regret k-facility location problems in a dynamic flow path network adopting the maximum cost criterion have been studied so far in [3, 10, 18, 28, 29, 44, 45]. As mentioned above, all these studies have assumed that the edge capacity is uniform and facilities can be located at any point in the network. Given a dynamic flow path network under uncertain supplies \({\mathscr {N}} = (P=(V, E), W, l, c', \tau )\) where P is the same as in Sect. 3.2.2 and \(c'\) is the uniform edge capacity, the problem requires finding a location of k facilities \({\varvec{x}}=(x_1, x_2, \ldots , x_k) \in P^k\) that minimizes \(RM_{\max }({\varvec{x}})\).

Basic Properties for the 1-Facility Location    The authors of [18, 29] first studied the case of \(k=1\) and proved several key properties that were useful even for the case of general k. When \(k=1\), we use the notation x and \(x^s\) to denote \({\varvec{x}}\) and \({\varvec{x}}^s\), respectively. If scenario s is fixed, function \(\varTheta ^s(x)\) has the same properties as \(\varTheta _{1, n}(x)\) (refer to (5), (8) and (9)), i.e., assuming that x is located on an edge \(e_{s_x}\) (not including endpoints) satisfying \(1 \le s_x \le n-1\), \(\varTheta ^s({\varvec{x}})\) is represented as

$$\begin{aligned} \varTheta ^s(x) = \max \{ \varTheta ^s_L(x), \varTheta ^s_R(x) \}, \end{aligned}$$
(73)

where

$$\begin{aligned} \varTheta ^s_L(x)= & {} \max \left\{ \tau (x - v_l) + \frac{\sum _{1 \le h \le l} w^s(v_h)}{c'} \ \bigg | \ 1 \le l \le s_x \right\} , \end{aligned}$$
(74)
$$\begin{aligned} \varTheta ^s_R(x)= & {} \max \left\{ \tau (v_l - x) + \frac{\sum _{l \le h \le n} w^s(v_h)}{c'} \ \bigg | \ s_x+1 \le l \le n \right\} . \end{aligned}$$
(75)

Similarly to \(\varTheta _{1, n}(x)\), \(\varTheta ^s(x)\) is unimodal in x for a fixed s, and there uniquely exists \(x^s\). By the definition of (70), \(RM^s(x)\) is also unimodal in x for a fixed s, and then \(RM_{\max }(x)\) is the upper envelope of unimodal functions by (71), which implies that \(RM_{\max }(x)\) is unimodal in x.

Lemma 14

\(RM_{\max }(x)\)is unimodal inx.

We next introduce the most important property in the 1-facility location, which was proved in [18, 29]. A main difficulty of the problem lies in evaluating \(RM^s(x)\) over \(s \in {\mathscr {S}}\) to compute \(RM_{\max }(x)\) even for a fixed location \(x \in P\) since the size of \({\mathscr {S}}\) is infinite. The authors of [18, 29] then proved that a worst case scenario for any \(x \in P\) is included in a finite set of scenarios, called bipartite scenarios (in [18, 29], called dominant scenarios), defined as follows. A scenario s is said to be left-bipartite (resp. right-bipartite) if \(w^s(v_j) = w^+(v_j)\) (resp. \(w^-(v_j)\)) over \(j \in \{1, \ldots , i\}\) and \(w^s(v_j) = w^-(v_j)\) (resp. \(w^+(v_j)\)) over \(j \in \{i+1, \ldots , n\}\) for some \(i \in \{1, \ldots , n-1\}\). Let \({{{\mathscr {S}}}}_L\) (resp. \({{{\mathscr {S}}}}_R\)) denote the set of all left-bipartite (resp. right-bipartite) scenarios. \({{{\mathscr {S}}}}_L\) consists of the following \(n + 1\) scenarios:

$$\begin{aligned} \begin{aligned} s_L^i&= (w^+(v_1), \ldots , w^+(v_i),w^-(v_{i+1}), \ldots , w^-(v_n)) \ \text{ for } \ 1 \le i \le n-1, \text{ and } \\ s_L^n&= (w^+(v_1), w^+(v_1), \ldots , w^+(v_n)), \end{aligned} \end{aligned}$$
(76)

and \({{{\mathscr {S}}}}_R\) consists of the following \(n + 1\) scenarios:

$$\begin{aligned} \begin{aligned} s_R^i&= (w^-(v_1), \ldots , w^-(v_i),w^+(v_{i+1}), \ldots , w^+(v_n)) \ \text{ for } \ 1 \le i \le n-1, \text{ and } \\ s_R^n&= (w^-(v_1), w^-(v_1), \ldots , w^-(v_n)). \end{aligned} \end{aligned}$$
(77)

It is clear that the number of such bipartite scenarios is O(n).

Lemma 15

\(|{{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R| = O(n)\).

The authors of [18, 29] proved the following lemma.

Lemma 16

Consider the minimax regret 1-facility location problems in a dynamic flow path network adopting the maximum cost criterion. For a location of a single facility\(x \in P\), a worst case scenario belongs to\({{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R\).

Proof

In the proof, we use the notation \(s_{i+}\) and \(s_{i-}\) for a given \(s \in {\mathscr {S}}\) to denote scenarios such that

$$\begin{aligned} w^{s_{i+}}(v_i)= & \, w^+(v_i) \text{ and } w^{s_{i+}}(v_j) = w^s(v_j) \text{ for } \ j \ne i, \text{ and }\\ w^{s_{i-}}(v_i)= & \, w^-(v_i) \text{ and } w^{s_{i-}}(v_j) = w^s(v_j) \ \text{ for } j \ne i, \end{aligned}$$

respectively. Let \(s^* = \hbox {argmax}\{ RM^s(x) \mid s \in {{{\mathscr {S}}}} \}\). Here, we only prove for a facility location x such that \(\varTheta ^{s^*}(x^{s^*})_L(x) \ge \varTheta ^{s^*}_R(x)\). Suppose that \(v_{k-1} < x \le v_k\) satisfying \(2 \le k \le n\) and \(l = \hbox {argmax}\{ \tau (x - v_l) + (\sum _{1 \le h \le l} w^{s^*}(v_h))/c' \mid 1 \le l \le k-1 \}\), i.e.,

$$\begin{aligned} \varTheta ^{s^*}(x) = \tau (x - v_l) + \frac{\sum _{1 \le h \le l} w^{s^*}(v_h)}{c'}. \end{aligned}$$
(78)

Then, we actually prove that \(RM^{s_L^l}(x) \ge RM^{s^*}(x)\) holds. If \(s^*\) is not equal to \(s_L^l\), we have two cases: [Case 1] there exists an integer i satisfying \(1 \le i \le l\) such that \(w^{s^*}(v_i) < w^+(v_i)\), and [Case 2] there exists an integer i satisfying \(l+1 \le i \le n\) such that \(w^{s^*}(v_i) > w^-(v_i)\). If we can show that \(RM^{s^*_{i+}}(x) \ge RM^{s^*}(x)\) holds for Case 1 and \(RM^{s^*_{i-}}(x) \ge RM^{s^*}(x)\) holds for Case 2, we will eventually obtain \(RM^{s_L^l}(x) \ge RM^{s^*}(x)\) by repeatedly applying the same discussion as long as there exists such a vertex \(v_i\).

[Case 1]: Let \(\varDelta = (w^+(v_i) - w^{s^*}(v_i))/c'\). We first notice

$$\begin{aligned} \varTheta ^{s^*_{i+}}(x)= & \, \varTheta ^{s^*_{i+}}_L(x), \ \ \text{ and } \\ \varTheta ^{s^*_{i+}}_L(x)= & \, \tau (x - v_l) + \frac{\sum _{1 \le h \le l} w^{s^*_{i+}}(v_h)}{c'} = \varTheta ^{s^*}(x) + \varDelta \end{aligned}$$

by (74) and (78). Thus, we have

$$\begin{aligned} \varTheta ^{s^*_{i+}}(x) = \varTheta ^{s^*}(x) + \varDelta . \end{aligned}$$
(79)

By the optimality of \(x^{s^*_{i+}}\) under \(s^*_{i+}\), \(\varTheta ^{s^*_{i+}}(x^{s^*_{i+}}) \le \varTheta ^{s^*_{i+}}(x^{s^*})\) holds. Here, we show

$$\begin{aligned} \varTheta ^{s^*_{i+}}(x^{s^*}) \le \varTheta ^{s^*}(x^{s^*}) + \varDelta \end{aligned}$$
(80)

for the subcase of \(x^{s^*} > v_i\) (the other case can be similarly treated). In this case, \(\varTheta ^{s^*_{i+}}_L(x^{s^*}) \le \varTheta ^{s^*}_L(x^{s^*}) + \varDelta \) (see Fig. 6) and \(\varTheta ^{s^*_{i+}}_R(x^{s^*}) = \varTheta ^{s^*}_R(x^{s^*})\) hold by the definitions of (74) and (75), which implies that (80) holds. Thus, we have

$$\begin{aligned} \varTheta ^{s^*_{i+}}(x^{s^*_{i+}}) \le \varTheta ^{s^*}(x^{s^*}) + \varDelta . \end{aligned}$$
(81)

By (70), (79) and (81), we obtain \(RM^{s^*_{i+}}(x) \ge RM^{s^*}(x)\).

Fig. 6
figure 6

Subcase of Case 1: \(x^{s^*} > v_i\)

[Case 2]: In this case, \(\varTheta ^{s^*_{i-}}(x) = \varTheta ^{s^*_{i-}}_L(x)\) and \(\varTheta ^{s^*_{i-}}_L(x) = \varTheta ^{s^*}_L(x)\) by (74) and (75). Thus, we have

$$\begin{aligned} \varTheta ^{s^*_{i-}}(x) = \varTheta ^{s^*}(x). \end{aligned}$$
(82)

By the optimality of \(x^{s^*_{i-}}\) under \(s^*_{i-}\), \(\varTheta ^{s^*_{i-}}(x^{s^*_{i-}}) \le \varTheta ^{s^*_{i-}}(x^{s^*})\) holds. Also \(\varTheta ^{s^*_{i-}}(x^{s^*}) \le \varTheta ^{s^*}(x^{s^*})\) holds clearly. Thus, we have

$$\begin{aligned} \varTheta ^{s^*_{i-}}(x^{s^*_{i-}}) \le \varTheta ^{s^*}(x^{s^*}). \end{aligned}$$
(83)

By (70), (82) and (83), we obtain \(RM^{s^*_{i-}}(x) \ge RM^{s^*}(x)\). \(\square \)

We introduce another property which Higashikawa et al. [29] and Wang [44, 45] independently showed.

Lemma 17

For a scenario\(s \in {{{\mathscr {S}}}}\)and an integerisatisfying\(1 \le i \le n\)such that\(v_1 \le v_i \le x^s\) (resp. \(x^s \le v_i \le v_n\)), \(v_i \le x^{s_{i+}} \le x^s\) (resp. \(x^s \le x^{s_{i+}} \le v_i\)) holds.

Proof

We only prove \(v_i \le x^{s_{i+}} \le x^s\) for a given integer i satisfying \(1 \le i \le n\) such that \(v_1 \le v_i \le x^s\) (the other case can be similarly treated). We first prove \(x^{s_{i+}} \le x^s\) by contradiction: suppose that \(x^{s_{i+}} > x^s\). Let \(x_{\mathrm{mid}}\) be the midpoint of \(x^{s_{i+}}\) and \(x^s\):

$$\begin{aligned} x_{\mathrm{mid}} = \frac{x^{s_{i+}} + x^s}{2}. \end{aligned}$$

We notice \(x^s< x_{\mathrm{mid}} < x^{s_{i+}}\). Since an increasing function \(\varTheta _L^s(x)\) and a decreasing function \(\varTheta _R^s(x)\) intersect at \(x=x^s\) and similarly \(\varTheta _L^{s_{i+}}(x)\) and \(\varTheta _R^{s_{i+}}(x)\) intersect at \(x=x^{s_{i+}}\), we have

$$\begin{aligned} \varTheta ^s_R(x_{\mathrm{mid}})< \varTheta ^s_L(x_{\mathrm{mid}}) \ \text{ and } \ \varTheta ^{s_{i+}}_L(x_{\mathrm{mid}}) < \varTheta ^{s_{i+}}_R(x_{\mathrm{mid}}). \end{aligned}$$
(84)

Note that by \(x^s < x_{\mathrm{mid}}\) and the assumption of \(v_i \le x^s\), we have \(v_i < x_{\mathrm{mid}}\). Therefore \(\varTheta ^s_R(x_\mathrm{mid})\) does not change if \(w^s(v_i)\) increases to \(w^+(v_i)\), i.e.,

$$\begin{aligned} \varTheta ^{s_{i+}}_R(x_{\mathrm{mid}}) = \varTheta ^s_R(x_{\mathrm{mid}}). \end{aligned}$$
(85)

By (84) and (85), we obtain \(\varTheta ^{s_{i+}}_L(x_{\mathrm{mid}}) < \varTheta ^s_L(x_{\mathrm{mid}})\), which is a contradiction.

We next prove \(v_i \le x^{s_{i+}}\) by contradiction: suppose that \(x^{s_{i+}} < v_i\). First, by the definitions of (73), (74) and (75), we have

$$\begin{aligned} \varTheta _L^{s_{i+}}(v_i) = \varTheta _L^s(v_i) \ \text{ and } \ \varTheta _R^{s_{i+}}(v_i) = \varTheta _R^s(v_i), \end{aligned}$$
(86)

i.e.,

$$\begin{aligned} \varTheta ^{s_{i+}}(v_i) = \varTheta ^s(v_i). \end{aligned}$$
(87)

Note that \(\varTheta ^{s_{i+}}_L(v_i) > \varTheta ^{s_{i+}}_R(v_i)\) when \(x^{s_{i+}} < v_i\). By this and (86), we have \(\varTheta ^s_L(v_i) > \varTheta ^s_R(v_i)\), which implies \(v_i \ge x^s\). On the other hand, we have the condition of \(v_i \le x^s\), that is,

$$\begin{aligned} x^s = v_i. \end{aligned}$$
(88)

By the definitions of (73), (74) and (75), we also have

$$\begin{aligned} \varTheta ^s(x^{s_{i+}})\le & {} \varTheta ^{s_{i+}}(x^{s_{i+}}). \end{aligned}$$
(89)

By the assumption of \(x^{s_{i+}} \ne v_i\) and the optimality of \(x^{s_{i+}}\) under \(s_{i+}\), we have

$$\begin{aligned} \varTheta ^{s_{i+}}(x^{s_{i+}})< & {} \varTheta ^{s_{i+}}(v_i). \end{aligned}$$
(90)

From (87), (88), (89) and (90), we can derive \(\varTheta ^s(x^{s_{i+}}) < \varTheta ^s(x^s)\), which contradicts the optimality of \(x^s\) under s.

\(\square \)

As a corollary of Lemma 17, we can see the following property.

Corollary 1

(i) As long as\(x^{s^i_L} \ge v_{i+1}\)holds, \(x^{s^i_L}\)does not increase asiincreases. (ii) Once\(x^{s^i_L} \le v_{i+1}\)holds, \(x^{s^i_L}\)never decreases asiincreases.

Sketch of Algorithms for the 1-Facility Location    For the minimax regret 1-facility location problem in a dynamic flow path network with uniform edge capacity adopting the maximum cost criterion, Cheng et al. [18] developed the first algorithm based on Lemmas 14, 15 and 16, which is as follows. The algorithm by [18] first constructs a data structure in \(O(n \log n)\) time so that for any integer i satisfying \(1 \le i \le n\) and any bipartite scenario \(s \in {{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R\), \(\varTheta ^s(v_i)\) can be computed in \(O(\log n)\) time. Then, for a fixed bipartite scenario \(s \in {{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R\), the algorithm can compute \(\varTheta ^s(x^s)\) in \(O(\log ^2 n)\) time by a binary search based on the unimodality of function \(\varTheta ^s(x)\). Thus, \(\varTheta ^s(x^s)\) for all bipartite scenarios \(s \in {{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R\) can be computed in \(O(n \log ^2 n)\) time. After that, for a fixed i, the algorithm can compute \(RM^s(v_i) = \varTheta ^s(v_i) - \varTheta ^s(x^s)\) (see (70)) for all bipartite scenarios \(s \in {{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R\) in \(O(n \log n)\) time, which implies that by comparing all obtained \(RM^s(v_i)\), \(RM_{\max }(v_i)\) can be computed in \(O(n \log n)\) time (see (71)). By the unimodality of function \(RM_{\max }(x)\) mentioned in Lemma 14, the algorithm can apply a binary search to find \(x \in P\) that minimizes \(RM_{\max }(x)\). The authors of [18] thus developed an \(O(n \log ^2 n)\) time algorithm.

The algorithm by [18] was improved by Higashikawa et al. [29] and Wang [44, 45] independently. Although the algorithm by [29] constructs the same data structure as in [18], it computes \(\varTheta ^s(x^s)\) for all bipartite scenarios \(s \in \mathcal{S}_L \cup {{{\mathscr {S}}}}_R\) in \(O(n \log n)\) time applying the monotonic property mentioned in Corollary 1, which contrasts with the algorithm by [18] computing the same values in \(O(n \log ^2 n)\) time as mentioned above. Also, the authors of [29] showed that for a fixed i, \(RM^s(v_i)\) for all bipartite scenarios \(s \in {{{\mathscr {S}}}}_L \cup {{{\mathscr {S}}}}_R\) can be computed in O(n) time by the careful observation (in [18], it takes \(O(n \log n)\) time as mentioned above). If the algorithm applies a binary search to find \(x \in P\) that minimizes \(RM_{\max }(x)\) as in [18], the problem can be solved in \(O(n \log n)\) time in total. Bhattacharya and Kameda [10] have studied the same problem and developed an O(n) time algorithm, which uses all of the properties mentioned in Lemmas 14, 15, 16 and Corollary 1 but does not construct the data structure as in [18, 29]. See [10] for more detail.

Theorem 17

[10] The minimax regret 1-facility location problem in a dynamic flow path network with uniform edge capacity adopting the maximum cost criterion can be solved inO(n) time.

Basic Properties for the\({\varvec{k}}\)-Facility Location    The minimax regret k-facility location problem in a dynamic flow path network with uniform edge capacity adopting the maximum cost criterion was first studied by Arumugam et al. [3]. They assumed that all units of supply at a vertex are allocated the same evacuation path as in [33, 35]. Here, a scenario s is said to be tripartite if \(w^s(v_h) = w^+(v_h)\) over \(h \in \{i, \ldots , j\}\) and \(w^s(v_h) = w^-(v_h)\) over \(h \notin \{i, \ldots , j\}\) for some integers ij satisfying \(1 \le i \le j \le n\). Let \({{{\mathscr {S}}}}_T\) denote the set of all tripartite scenarios. It is clear that the number of such tripartite scenarios is \(O(n^2)\).

Lemma 18

\(|{{{\mathscr {S}}}}_T| = O(n^2)\).

The authors of [3] proved that a worst case scenario for any \({\varvec{x}} \in P^k\) is a tripartite scenario based on Lemma 16.

Lemma 19

Consider the minimax regretk-facility location problems in a dynamic flow path network adopting the maximum cost criterion. For a location ofkfacilities\({\varvec{x}} \in P^k\), a worst case scenario belongs to\({{{\mathscr {S}}}}_T\).

Sketch of Algorithms for the\({\varvec{k}}\)-Facility Location    The authors of [3] developed two algorithms: the first one runs in \(O(kn^2 \log ^k n)\) time and the second one runs in \(O(kn^3 \log n)\) time. Note that the second one is faster when \(k > \log n/(\log \log n)+1\), e.g., \(k \ge 5\) for \(n=1000\). Based on Lemma 19, the second algorithm in [3] first computes the minimax k-facility location under every tripartite scenario, i.e., \(\varTheta ^s({\varvec{x}}^s)\) for \(s \in {{{\mathscr {S}}}}_T\), using an algorithm on the minimax k-facility location in a dynamic flow path network by [33]. The number of tripartite scenarios is \(O(n^2)\) by Lemma 18, and the computation of \(\varTheta ^s({\varvec{x}}^s)\) for each \(s \in {{{\mathscr {S}}}}_T\) takes \(O(kn \log n)\) time using the algorithm by [33], thus computing \(\varTheta ^s({\varvec{x}}^s)\) for all \(s \in {{{\mathscr {S}}}}_T\) takes \(O(kn^3 \log n)\) in total. The authors of [3] also showed that the other part can be done in \(O(n^3)\) time, which implies that computing \(\varTheta ^s({\varvec{x}}^s)\) for all \(s \in \mathcal{S}_T\) dominates the other part in the sense of time complexity. The time complexity of this computation has been improved to \(O(kn^3)\) by [28] as the algorithm by [33] has been improved to an O(kn) time algorithm by [35], which implies that the minimax regret k-facility location problem in a dynamic flow path network can be solved in \(O(kn^3)\) time.

Theorem 18

[28] The minimax regretk-facility location problem in a dynamic flow path network with uniform edge capacity adopting the maximum cost criterion can be solved in\(O(kn^3)\)time.

4.2.2 \({\varvec{k}}\)-Facility Location in Trees

The minimax regret 1-facility location problems in a dynamic flow tree network adopting the maximum cost criterion have been studied in [10, 32, 34] so far. Very recently, Golin and Sandeep [26] have studied the case of k-facility location.

In this section, we mainly introduce the algorithms for the 1-facility location in [32, 34] and mention the results for the k-facility location in [26] because of space limitations. Given a dynamic flow tree network under uncertain supplies \({\mathscr {N}} = (T=(V, E), W, l, c', \tau )\) where T is the same as in Sect. 3.2.3 and \(c'\) is the uniform edge capacity, the problem requires finding a location of a single facility \(x \in T\) that minimizes \(RM_{\max }(x)\). Here, the notation T is abused to denote the set of all points on T. In the following, since we consider the 1-facility location, we use the notation x and \(x^s\) to denote \({\varvec{x}}\) and \({\varvec{x}}^s\), respectively.

Basic Properties for the 1-Facility Location    The authors of [32, 34] proved several properties in the minimax regret 1-facility location problem in a dynamic flow tree network adopting the maximum cost criterion. As in Sect. 3.2.3, we here use the same notation d(xy) for two points \(x, y \in T\), \(\delta (x)\) for a point \(x \in T\), and T(xv) a point \(x \in T\) and a vertex \(v \in V\). Also given a scenario \(s \in {\mathscr {S}}\), for a point \(x \in T\) and a vertex \(u \in \delta (x)\), let \(\varTheta ^s(x, u)\) denote the maximum cost of x for all supplies on T(xu) under s. Then, referring to (40) and (42), \(\varTheta ^s(x)\) is represented (in the fractional flow model) as follows:

$$\begin{aligned} \varTheta ^s(x) = \max \bigg \{ \tau d(x, v_i) + \frac{\sum _{i \le j \le n'} w^s(v_j)}{c'} \ \bigg | \ 1 \le i \le n' \bigg \}, \end{aligned}$$
(91)

where \(v_1 = \hbox {argmax}\{\varTheta ^s(x, u) \mid u \in \delta (x) \}\) and there are \(n'\) vertices in \(T(x, v_1)\) named \(v_1, v_2, \ldots \), \(v_{n'}\) such that \(d(x, v_j) \le d(x, v_{j+1})\) for \(1 \le j \le n'-1\).

First, we confirm the following two lemmas.

Lemma 20

For a scenario\(s \in {\mathscr {S}}\), along a path from a leaf to another leaf inT, \(\varTheta ^s(x)\)is unimodal inx.

Lemma 21

For a vertex\(v \in V\)and a scenario\(s \in {\mathscr {S}}\), if\(u^* = \hbox {argmax}\{ \varTheta ^s(v, u) \mid u \in \delta (v) \}\)holds, there exists\(x^s \in T(V(v, u^*) \cup \{ v \})\).

These immediately follow by Lemmas 8 and 9, respectively. By (70), (71) and Lemma 20, we can also see the following lemma.

Lemma 22

Along a path from a leaf to another leaf inT, \(RM_{\max }(x)\)is unimodal inx.

We here introduce a concept of dominant scenarios for a vertex \(v \in V\). Suppose that \(u \in \delta (v)\), \(n'\) is the number of vertices in T(vu) and \(v_1(=u), v_2, \ldots , v_{n'}\) are vertices in T(vu) such that \(d(v, v_i) \le d(v, v_{i+1})\) for \(1 \le i \le n'-1\). We now consider a scenario \(s \in {\mathscr {S}}\) such that \(w^s(v_i) = w^+(v_i)\) for \(v_i \in T(v, u)\) such that \(l \le i \le n'\) for some l with \(1 \le l \le n'\) and \(w^s(v') = w^-(v')\) for all the other vertices \(v' \in V\). In the following, such a scenario is said to be dominant for v, and represented by \(s(v, v_l)\). Then, let \({\mathscr {S}}_D(v, u) = \{ s(v, v_l) \mid 1 \le l \le n' \}\), and also let \({\mathscr {S}}_D(v) = \bigcup _{u \in \delta (v)} {\mathscr {S}}_D(v, u)\).

Note that \({\mathscr {S}}_D(v)\) consists of \(n - 1\) scenarios.

Lemma 23

For a vertex\(v \in V\), \(|{\mathscr {S}}_D(v)| = O(n)\).

The authors of [32, 34] proved the following lemma, which follows by (91) and Lemma 16.

Lemma 24

Consider the minimax regret 1-facility location problems in a dynamic flow tree network adopting the maximum cost criterion. When a facilityxis located at a vertex\(v \in V\), a worst case scenario forxbelongs to\({\mathscr {S}}_D(v)\).

Also, letting \(x^*\) denote a point x that minimizes \(RM_{\max }(x)\) for \(x \in T\), the authors of [32, 34] proved the following lemma.

Lemma 25

For a vertex\(v \in V\), if \(s^* = \hbox {argmax}\{ RM^s(v) \mid s \in {\mathscr {S}} \}\)and\(u^* = \hbox {argmax}\{\)\(\varTheta ^{s^*}(v, u) \mid u \in \delta (v) \}\)hold, there exists\(x^* \in T(V(v, u^*) \cup \{ v \})\).

Proof

We prove by contradiction: suppose that there exists \(x^* \in T(v, u)\) or on an edge vu (not including endpoints) for some \(u \in \delta (v) \) with \(u \ne u^*\). By Lemma 21, there exists \(x^{s^*} \in T(V(v, u^*) \cup \{ v \})\). Now, let us consider a path which goes through \(x^{s^*}\), v and \(x^*\) in this order. By Lemma 20, \(\varTheta ^{s^*}(x)\) is increasing in x when x moves along the path from \(x^{s^*}\) to \(x^*\), which implies that \(\varTheta ^{s^*}(x^*) > \varTheta ^{s^*}(v)\) holds. Thus, \(RM^{s^*}(x^*) > RM^{s^*}(v)\) also holds by (70).

We have \(RM_{\mathrm{max}}(x^*) \ge RM^{s^*}(x^*)\) by the maximality of \(RM_{\mathrm{max}}(x^*)\) and \(RM^{s^*}(v) = RM_{\mathrm{max}}(v)\) by definition of \(s^*\), thus \(RM_{\mathrm{max}}(x^*) > RM_{\mathrm{max}}(v)\) holds, which contradicts the optimality of \(x^*\). \(\square \)

Sketch of an Algorithm for the 1-Facility Location    The authors of [32, 34] developed an algorithm that computes \(x^* \in T\) based on the above mentioned properties. For ease of explanation, we here assume that a facility is located on a vertex although the authors of [32, 34] allowed that a facility can be located at any point on a tree. We first explain how an algorithm by [32, 34] computes \(RM_{\max }(v)\) for a vertex \(v \in V\). Given a dominant scenario \(s \in {\mathscr {S}}_D(v)\), by Theorem 12, \(\varTheta ^s(v)\) and \(\varTheta ^s(x^s)\) can be computed in \(O(n \log n)\) time, respectively. This implies that \(RM^s(v)\) can be computed in \(O(n \log n)\) time (see (70)). By Lemmas 23 and 24, we only need to consider O(n) dominant scenarios for a particular v. Thus, \(RM_{\max }(v)\) can be computed in \(O(n^2 \log n)\) time (see (71)). We assume that when \(RM_{\max }(v)\) is computed, \(s^* = \hbox {argmax}\{ RM^s(v) \mid s \in {\mathscr {S}} \}\) and \(u^* = \hbox {argmax}\{\)\(\varTheta ^{s^*}(v, u) \mid u \in \delta (v) \}\) are also computed.

To find \(x^* \in T\), we can apply a similar approach to the one presented by [28, 32, 34] (mentioned in Sect. 3.2.3) that finds the minimax 1-facility location in a dynamic flow tree network with uniform edge capacity since Lemma 25 holds. Therefore the algorithm can find \(x^* \in T\) by computing \(RM_{\max }(v)\) for \(O(\log n)\) times, which implies that \(x^*\) can be computed in \(O(n^2 \log ^2 n)\) time. The authors of [32, 34] thus developed an \(O(n^2 \log ^2 n)\) time algorithm. Bhattacharya and Kameda [10] have developed an \(O(n \log n)\) time algorithm using a better data structure. See [10] for more detail.

Theorem 19

[10] The minimax regret 1-facility location problem in a dynamic flow tree network with uniform edge capacity adopting the maximum cost criterion can be solved in\(O(n \log n)\)time.

Results for thek-Facility Location    We here introduce the latest results in [26] for the minimax regret k-facility location problem in a dynamic flow tree network with uniform edge capacity adopting the maximum cost criterion

Theorem 20

[26] The minimax regretk-facility location problem in a dynamic flow tree network with uniform edge capacity adopting the maximum cost criterion can be solved in\(O(\max \{k^2, \log ^2 n\}k^2n^2 \log ^5 n)\)time.

4.3 Problems Adopting the Total Cost Criterion

For a location of facilities \({\varvec{x}}\) and a scenario \(s \in \mathcal{S}\), let \(\varPhi ^s({\varvec{x}})\) denote the maxisum cost of \({\varvec{x}}\) under s. Also let \({\varvec{x}}^s\) denote the minisum facility location under s. Given a location of facilities \({\varvec{x}}\) and a scenario \(s \in {{{\mathscr {S}}}}\), the regret adopting the total cost criterion of \({\varvec{x}}\) under s is defined as follows:

$$\begin{aligned} RT^s({\varvec{x}}) = \varPhi ^s({\varvec{x}}) - \varPhi ^s({\varvec{x}}^s). \end{aligned}$$
(92)

Then, given a facility location \({\varvec{x}}\), the maximum regret adopting the total cost criterion of \({\varvec{x}}\) is defined as follows:

$$\begin{aligned} RT_{\max }({\varvec{x}}) = \max \{ RT^s({\varvec{x}}) \mid s \in {\mathscr {S}}\}. \end{aligned}$$
(93)

Here, we treat a problem that requires finding \({\varvec{x}}\) in a dynamic flow network minimizing \(RT_{\max }({\varvec{x}})\). A scenario \(s^* \in {{{\mathscr {S}}}}\) is called a worst case scenario adopting the total cost criterion for \({\varvec{x}}\) if

$$\begin{aligned} s^* = \hbox {argmax}\{ RT^s({\varvec{x}}) \mid s \in {\mathscr {S}}\}. \end{aligned}$$
(94)

4.3.1 \({\varvec{k}}\)-Facility Location in Paths

The minimax regret 1-facility location problem in a dynamic flow path network adopting the total cost criterion has been studied in [9, 30, 31]. As mentioned above, this study has also assumed that the edge capacity is uniform and a facility can be located at any point in the network. Given a dynamic flow path network \({\mathscr {N}} = (P=(V, E), w, l, c, \tau )\) defined in Sect. 4.3.1, the problem requires finding a location of a single facility \(x \in P\) that minimizes \(RT_{\max }(x)\). For the problem, the authors of [30, 31] proposed an \(O(n^3)\) time algorithm. Very recently, Bhattacharya et al. [9] have improved the time complexity in [30, 31] to \(O(n^2 \log ^2 n)\). We do not refer to the details here because of space limitations.

Theorem 21

[9] The minimax regret 1-facility location problem in a dynamic flow path network with uniform edge capacity adopting the total cost criterion can be solved in\(O(n^2\log ^2 n)\)time.

5 Conclusion

In this paper, we surveyed recent developments of algorithms for facility location problems in dynamic flow networks that were motivated by evacuation planning problems.

Contrasted with classical 1-center and 1-median problems, we showed the difficulty and approximability of solving 1-facility location problems for general networks although NP-hardness has not be proven yet, which is currently open. We then showed polynomial time algorithms for the problems in path and tree networks. We also showed the results for minimax regret versions of the problems where the weights (the number of evacuees) on vertices are not fixed but the only interval where the weight exists is known for every vertex.

As we showed, there are still many open problems. To attack those problems, we believe that new ideas and techniques are required. In this sense, we hope that many of the readers will have an interest in this problem.

There is a 70–80% percent chance that the Nankai Trough Earthquake will occur within the coming 30 years [1]. In Japan, there are many small towns on the coastal area facing the Pacific Ocean whose local governments are faced with the serious problem that they have to spend most of their budget to build tsunami evacuation buildings to reduce the loss of human lives from a tsunami triggered by the earthquake. In this respect, we hope that the methods developed for facility location problems will help to reduce the budget used for such disaster prevention and help reduce the loss of human lives.