Keywords

1 Introduction

Multiple-Objective continuous optimization problem has been applied in widely many fields such as science, engineering and management. However, solving such problem is regarded as a challenge because of the high dimensionality and complex objectives. Some heuristic-based methods capable with dealing such difficulties have been developed such as AMOPSO [1], NSGAII [2] and MOEPSO [3]. Such kind of methods has constant number of solution agent. For these methods, once the solutions tend to converge during the searching process, redundant computation is arisen.

This paper proposed a novice approach, i.e. Water Flow-like Algorithm for Multi-objective Continuous Optimization Problems (WFA4MC). This approach tactically adjusts the solution agent number for efficient search and is based on Water Flow-like Algorithm (WFA) proposed by Yang and Wang [4]. WFA mimics the water flow traversing on the terrain with regard to several phenomena such as flow moving, flow splitting, evaporation and precipitation. Single water corresponds to a solution agent and the terrain is related to the solution space. A single moving water flow represents searching behavior of a solution agent. Flow splitting increases the solution agent number to intensify the searching direction and computation. While flow merging decreases the solution agent number to remove the resemble solutions. Evaporation decreases the solution agent number for the removal of weak solution. When the air is saturated with water, precipitation starts. Additional solution agents are generated for random search.

Evaluation of non-dominant solutions in a proper manner is another issue. Generational distance proposed by Zitzler et~al. [5] is commonly in use for measuring the Euclidean distance between current obtained non-dominant solution and the true optimal p solution.

However, Generation distance does not provide the information that how well the non-dominant solutions are not dominant by Pareto-front solution Also it cannot detect the solutions narrowly distributed in Pareto front. This paper further proposed two more performance indices, i.e. Correctness and Coverness. Correctness evaluates how many current obtained non-dominant solutions are not dominant from true optimal non-dominant solutions. Coverness quantifies how well the current-obtained non-dominant solutions cover the true optimal non-dominant solutions.

2 Multi-objective Continuous Optimization Problem

Assume that a solution to the multi-objective optimization problem consists of p indexed real numbers and is defined as a p-dimensional vector x = [x 1 x 2 ⋯ x p ]. Each variable is bounded by given lower and upper limits, such that \( {\underline{x}}_k\le {x}_k\le {\overline{x}}_k \); \( {x}_k,{\underline{x}}_k,{\overline{x}}_k\in \mathbb{R} \), ∀ k ∈ {1,2, …,p}. Suppose that there are gobjective functions defined for the problem: f j (x) :  p → ; j = 1, 2, ⋯, g. Objective values of the solution x can be denoted by a g-dimensional vector f = [f 1 f 2 ⋯ f g ] ≡ [f 1(xf 2(x) ⋯ f g (x)]. The goal of this optimization problem is to either maximize or minimize these objective values.

Instead of providing an optimal solution, a set of non-dominated solutions are usually presented to the user for a multi-objective optimization problem. Let the set be \( \widehat{X} \). Without loss of generality, assume that the goal of the optimization problem is to minimize all objective values. Therefore, for a pair of non-dominated solutions x i and \( {\mathbf{x}}^{i^{\prime }} \), \( {\mathbf{x}}^i,{\mathbf{x}}^{i^{\prime }}\in \widehat{X} \), there is at least one component j such that \( {f}_j^i<{f}_j^{i^{\prime }} \), where f i = [f i1 f i2  ⋯ f i g ] ≡ [f 1(x if 2(x i) ⋯ f g (x i)] and \( {\mathbf{f}}^{i^{\prime }}=\left[{f}_1^{i^{\prime }}{f}_2^{i^{\prime }}\cdots {f}_g^{i^{\prime }}\right]\equiv \left[{f}_1\left({\mathbf{x}}^{i^{\prime }}\right)\kern0.5em {f}_2\left({\mathbf{x}}^{i^{\prime }}\right)\cdots {f}_g\left({\mathbf{x}}^{i^{\prime }}\right)\right] \) are their objective vectors respectively. In other words, non-dominated solutions should mutually have at least one objective value superior than that of others. Let operation \( \mathrm{Dominated}\left({\mathrm{X}}^i,{\mathrm{X}}^{i^{\prime }}\right) \) be used to test whether the first solution, x i, is dominated by the second one, \( {\mathbf{x}}^{i^{\prime }} \). Then

$$ \mathrm{Dominated}\left({\mathrm{X}}^i,{\mathrm{X}}^{i^{\prime }}\right)=\left\{\begin{array}{l}\mathrm{false},\mathrm{if}\;\exists j\in \left\{1,2,\dots, g\right\}\backepsilon {f}_j^i<{f}_j^{i^{\prime }}\\ {}\mathrm{true},\mathrm{otherwise}\end{array}\right. $$
(1)

When a candidate solution x i is considered for joining the non-dominated solution set \( \widehat{X} \), it will be subject to this domination test against all solutions in the set. Once the solution is not dominated by any solution in the set, it is recognized as a new member of the set.

Although, it seems that we can provide as many as non-dominated solutions to the user for decision making, people prefers a finite number of solutions for easier application. Therefore, suppose \( \overline{s} \) is the required number of non-dominated solution in \( \widehat{X} \) and s is the number of solutions in \( \widehat{X} \). When \( s>\overline{s} \), \( s-\overline{s} \) “inferior” solutions should be expelled from \( \widehat{X} \). Moreover, the objective vectors f of the solutions in \( \widehat{X} \) are expected to cover the objective space as large as possible to provide a wider spectrum for decision making. This means the \( \overline{s} \) non-dominated solutions should be separated far from each other on the objective space. A solution with smaller distances to its neighbors on the solution space is then regarded as inferior one, which is a candidate for solution pruning. We propose a pruning method that sorts the solutions in \( \widehat{X} \) with a jamming distance. The \( s-\overline{s} \) solutions with smaller jamming distances are pruned away; details will be given later.

3 WFA Model for the Continuous Multi-objective Optimization Problems

The developed computation model based on the water flow like algorithm consists of a set of water flows represented by their locations, X = {x 1,x 2, ⋯,x n}, where n is the number of flows of the current flow set X. The location of flow i is x i = [x i1  x i2  ⋯ x i p ], representing a solution to the optimization problem. For easier presentation, hereafter we alternatively use index i or location x i to refer to a flow. The set of water flows is then recursively subject to a serial of water flow operations to yield a new set of flows to enhance the objective values of the solutions represented by their locations. Note that the set of flows X is updated both in the number of flows and their locations, subjecting to water splitting and merging operations. The flow splitting operation on a flow depends on the objective enhancement of the current location with respective to its previous location. Therefore, a virtual parent flow with location \( {\tilde{\mathbf{x}}}^i=\left[{\tilde{x}}_1^i{\tilde{x}}_2^i\cdots {\tilde{x}}_p^i\right] \) is defined for flow i. Chronically, \( {\tilde{\mathbf{x}}}^i \) can be regarded as the previous location of flow i. When more than one sub flow is split, these sub flows share the same parent. Let f i = [f i1 f i2  ⋯ f i g ] and \( {\tilde{\mathbf{f}}}^i=\left[{\tilde{f}}_1^i{\tilde{f}}_2^i\cdots {\tilde{f}}_g^i\right] \) be the vectors of objective values of flow i and its parent, respectively. In addition to the location and objective values, a mass property m i is defined for flow i, which is used to determine whether a flow survives to the next flowing iteration and to regulate the precipitation operation.

For final optimal solution presentation, a non-dominated solution set is constructed, which is denoted by \( \widehat{X}=\left\{{\widehat{\mathbf{x}}}^1,{\widehat{\mathbf{x}}}^2,\cdots, {\widehat{\mathbf{x}}}^s\right\} \), where s is number of non-dominated solutions found. Each solution in \( \widehat{X} \) is cloned from the set of flows in X after exclusive domination tests.

Figure 1 illustrates the computation flow of the presented WFA for Multi-objective Continuous Optimization Problems. Notice that several stopping conditions can be provided and specified by the user to stop the solution evolution. In our model, iteration limits, elapsed CPU execution time, and number of objective evaluations are provided to stop the solution evolution.

Fig. 1
figure 1

The computation flow of the proposed WFA for multi-objective optimization problems

3.1 Initialization

Initially, only one flow is defined in the flow set; i.e., n = 1 and X = {x 1}. Let \( {m}^1=\overline{m} \), where \( \overline{m} \) is a user specified mass that will regulate flow splitting. Components of location x 1 are randomly set by

$$ {x}_k^1\leftarrow \sim U\left(0,1\right)\left({\overline{x}}_k-{\underline{x}}_k\right)+{\underline{x}}_k,k=1,2,\cdots, p $$

where ∼ U(0,1) is a uniformly distributed random real value bounded within [0,1]. Since the initial flow is not split from any other flow, we randomly assign the location of its parent flow \( {\tilde{\mathbf{x}}}^1 \) as

$$ {{\tilde{x}}^1}_k\leftarrow \sim U\left(0,1\right)\left({\overline{x}}_k-{\underline{x}}_k\right)+{\underline{x}}_k,k=1,2,\cdots, p $$

The objective vectors f 1 = [f 11 f 12  ⋯ f 1 g ] and \( {\tilde{\mathbf{f}}}^1=\left[{\tilde{f}}_1^1{\tilde{f}}_2^1\cdots {\tilde{f}}_g^1\right] \) of both locations (solutions) x 1 and \( {\tilde{\mathbf{x}}}^1 \) are then evaluated and solution domination test is conducted to constitute the initial non-dominated solution set. Therefore,

$$ \widehat{X}=\left\{\!\begin{array}{l}\left\{{\mathbf{x}}^1\right\}\!,\mathrm{if}\operatorname{Dominated}\left({\tilde{\mathbf{x}}}^1,{\mathbf{x}}^1\right)=\mathrm{true}\\[3pt] {}\!\left\{{\tilde{\mathbf{x}}}^1\right\}\!,\mathrm{else}\ \mathrm{if}\ \mathrm{Dominated}\left({\mathbf{x}}^1,{\tilde{\mathbf{x}}}^1\right)=\mathrm{true}\\[3pt] {}\!\left\{{\tilde{\mathbf{x}}}^1\!,{\mathbf{x}}^1\right\},\mathrm{otherwise}\end{array}\right. $$
(2)

The amount of objective improvement influences the flow moving and flow splitting, both in the location change and the number of sub flows split. To evaluate the amount of objective value improvement, the largest and smallest values of each objective value obtained so far are updated and recorded during the water flowing operation. Let \( {\underline{f}}_j \) and \( {\overline{f}}_j \) be the smallest and largest values of objective values f j (x) obtained so far. Therefore, initially

$$ {\underline{f}}_j= \min \left({f}_j^1,{\tilde{f}}_j^1\right);j=1,2,\cdots, g $$
(3)

and

$$ {\overline{f}}_j= \max \left({f}_j^1,{\tilde{f}}_j^1\right);j=1,2,\cdots, g $$
(4)

The j-th objective value of water flow i can be normalized as

$$ {f^{\prime}}_j^i=\frac{f_j^i-{\underline{f}}_j}{{\overline{f}}_j-{\underline{f}}_j} $$
(5)

In addition, since there are g objective values, a weighted sum of objective value F i is defined for flow i as

$$ {F}^i={\displaystyle {\sum}_{j=1}^g{w}_j{f^{\prime}}_j^i}={\displaystyle {\sum}_{j=1}^g{w}_j\frac{f_j^i-{\underline{f}}_j}{{\overline{f}}_j-{\underline{f}}_j}} $$
(6)

where w j is a user specified weight for objective function f j (⋅). Similarly, the weighted objective value of the parent flow of flow i is

$$ {\tilde{F}}^i={\displaystyle {\sum}_{j=1}^g{w}_j\frac{{\tilde{f}}_j^i-{\underline{f}}_j}{{\overline{f}}_j-{\underline{f}}_j}} $$
(7)

We let the amount of objective improvement determine the number of sub flows in the operation of flow splitting. To help evaluating the improvement, an improvement threshold θ is defined in our WFA model. When the objective improvement of a flow exceeds the threshold, no flow splitting is executed. The threshold is defined as the average of the difference between weighted objective values of all flows and their parents; i.e.,

$$ \theta =\frac{\Delta F}{N} $$
(8)

where N is the total number of flows constructed so far and ΔF is cumulated objective differences of these flows. Initially

$$ \Delta F=\left|{F}^1-{\tilde{F}}^1\right|\ \mathrm{and}\ N=1\ \mathrm{since}\ X=\left\{{\mathbf{x}}^1\right\} $$
(9)

3.2 Flow Splitting and Moving

Flow splitting and moving operation is sequentially conducted for each flow in the current flow set X. Firstly, the objective value improvement for each flow is evaluated to determine the number of sub flows. Once the number is determined, the location advancements of all sub flows follow to create sub flows. The number of sub flows split from a flow is restricted by a split limit \( \overline{n} \), whose value is set by the user to avoid an exponentially increased number of flows. In general, a smaller improvement amount of objective value is designated to split more sub flows for a wider solution exploration. On the other hand, a larger amount should bind the same flow for neighborhood exploitation. Therefore, we define the number of sub flows split from flow i as

$$ {n}^i=\left\{\begin{array}{l}1,\mathrm{if}\ \left|{\tilde{F}}^i-{F}^i\right|>\theta \\[6pt] {}\operatorname{Round}\left(\operatorname{Pow}\left(\overline{n},\left(1-\dfrac{\left|{\tilde{F}}^i-{F}^i\right|}{\theta}\right)\right)\right),\mathrm{otherwise}\end{array}\right. $$
(10)

Assume that \( {\mathbf{x}}_1^i,{\mathbf{x}}_2^i,\cdots, {\mathbf{x}}_{n^i}^i \) are locations of the n i sub flows split from flow i and

$$ {\mathbf{x}}_q^i=\left[{x}_{q1}^i\kern0.5em {x}_{q2}^i\cdots {x}_{qp}^i\right],q=1,2,\cdots, {n}^i $$
(11)

Where

$$ {\underline{x}}_k\le {x}_{qk}^i\le {\overline{x}}_k,k=1,2,\cdots, p $$
(12)

For a multi-objective optimization problem, the solution evolution is a forwarding process toward non-dominated solutions. Locations of the sub flows split from flow i are stochastically determined by the corresponding variables of flow i, parent flow of flow i, and a randomly selected flow from the non-dominated set. For each sub flow, a referential non-dominated solution is randomly selected first. Let location vector \( {\widehat{\mathbf{x}}}^{i^{\prime }} \) be the selected non-dominated solution for a sub flow of flow i, where i′ = RandomInteger(1, m).

Note that RandomInteger(min, max) returns a random integer that follows uniform distribution between integers min and max.

The value of the k-th variable x i qk is then set stochastically with respective to a target value ξ that is selected from the k-th component of either x i, \( {\tilde{\mathbf{x}}}^i \), or \( {\widehat{\mathbf{x}}}^{i^{\prime }} \). If flow i has a clone in the non-dominated solution set \( \widehat{X} \), ξ is directly selected from x i. Otherwise, if the parent flow is a non-dominated solution ξ is selected from \( {\tilde{\mathbf{x}}}^i \), since flow i is inferior to its parent. On the other hand, if both x i and \( {\tilde{\mathbf{x}}}^i \) are not non-dominated solutions, \( {\widehat{\mathbf{x}}}^{i^{\prime }} \) is targeted. Therefore,

$$ \xi =\left\{\begin{array}{l}{x}_k^i,\mathrm{if}\ {\mathbf{x}}^i\in \widehat{X}\\[6pt] {}{\tilde{x}}_k^i,\mathrm{else}\ \mathrm{if}\ {\tilde{\mathbf{x}}}^i\in \widehat{X}\\[6pt] {}{\widehat{x}}_k^{i^{\prime }},\mathrm{othewise}\end{array}\right. $$
(13)

Value of x i qk is then stochastically set to the target ξ or a random value bounded by \( \left[\underline{\xi },\overline{\xi}\right] \) with an equal probability. Bounds

$$ \underline{\xi }=\left\{\begin{array}{l}\frac{1}{2}\left({\underline{x}}_k+\xi \right),\mathrm{if}\;\xi ={\widehat{x}}_k^{i^{\prime }}\\[6pt] {} \max \left({\underline{x}}_k,\xi -\left|\xi -{\widehat{x}}_k^{i^{\prime }}\right|\right),\mathrm{otherwise}\end{array}\right. $$
(14)
$$ \overline{\xi}=\left\{\begin{array}{l}\frac{1}{2}\left({\overline{x}}_k+\xi \right),\mathrm{if}\;\xi ={\widehat{x}}_k^{i^{\prime }}\\[6pt] {} \min \left({\overline{x}}_k,\xi +\left|\xi -{\widehat{x}}_k^{i^{\prime }}\right|\right),\mathrm{otherwise}\end{array}\right. $$
(15)

Note that bounds \( \underline{\xi } \) and \( \overline{\xi} \) are constrained by the given coordinate bounds \( {\underline{x}}_k \) and \( {\overline{x}}_k \), as well as the target value ξ and \( {\widehat{x}}_k^{i^{\prime }} \). The reduced bounds are then used to generate location values centering around ξ. Therefore,

$$ {x}_{qk}^i=\left\{\begin{array}{l}\xi, \mathrm{if}\sim U\left(0,1\right)\le 0.5\\[6pt] {}\operatorname{RandomReal}\left(\underline{\xi },\overline{\xi}\right),\mathrm{otherwise}\end{array}\right. $$
(16)

Where RandomReal(min,max) returns a uniformly distributed random real value bounded by min and max. Note that the location vectors of all sub flows are sequentially determined while the component values are determined one after the other.

The last step in flow splitting is to distribute the mass to sub flows and assign their parents. Two types of mass distribution are provided. Each type is dedicated to a type of flow merging operation. Our WFA for multi-objective optimization problems presents two types of flow merging: one is based on the closeness of flow locations and the other is on the similarity of objective values.

The first type of mass distribution evenly distributes the mass to all the sub flows. Let m i q be the mass of the q-th sub flow split form flow i; then

$$ {m}_q^i=\frac{1}{n^i}{m}^i,q=1,2,\cdots, {n}^i $$
(17)

The second type of mass distribution requires that the objective values of all sub flows must be evaluated first. Assume that the objective vector of the q-th sub flow split form flow i is

$$ {\mathbf{f}}_q^i\equiv \left[{f}_1\left({\mathbf{x}}_q^i\right)\cdots {f}_g\left({\mathbf{x}}_q^i\right)\right]=\left[{f}_{q1}^i\kern0.5em {f}_{q2}^i\cdots {f}_{qg}^i\right] $$
(18)

and the weighted sum of objective value is

$$ {F}_q^i={\displaystyle {\sum}_{j=1}^g{w}_j\frac{f_{qj}^i-{\underline{f}}_j}{{\overline{f}}_j-{\underline{f}}_j}},q=1,2,\cdots, {n}^i $$
(19)

Notice that the largest and smallest objective values, \( {\overline{f}}_j \) and \( {\underline{f}}_j \), are updated before evaluating the objective values of all sub flows. The amount of mass received by a sub flow is proportional to the amount of objective improvement from its parent; e.g., F i − F i q for the q-th sub flow. Notice that the amount of improvement might be negative. We let the sub flow with the largest improvement receive twice the mass of the one with the lowest. Therefore for sub flows split from flow i, the largest and smallest objective improvements are determined first by

$$ \overline{\delta}={ \max}_{q=1,2,\cdots, {n}^i}\left\{{F}^i-{F}_q^i\right\} $$
(20)

and

$$ \underline{\delta }={ \min}_{q=1,2,\cdots, {n}^i}\left\{{F}^i-{F}_q^i\right\} $$
(21)

The relative portion of mass splitting for the q-th sub flow is

$$ {\rho}_q=\left({F}^i-{F}_q^i-\underline{\delta}\right)+\left(\overline{\delta}-\underline{\delta}\right) $$
(22)

The mass received by the q-th sub flow form flow i is

$$ {m}_q^i=\frac{\rho_q}{{\displaystyle {\sum}_{q^{\prime }=1}^{n^i}{\rho}_{q^{\prime }}}}{m}^i,q=1,2,\cdots, {n}^i $$
(23)

After the mass is distributed, the location, objective values, and weighted objective value of flow i are then assigned as parent attributes of the split sub flows; i.e.,

$$ \left.\begin{array}{l}{{\tilde{\mathbf{x}}}^i}_q\leftarrow {\mathbf{x}}^i\\[6pt] {}{{\tilde{\mathbf{f}}}^i}_q\leftarrow {\mathbf{f}}^i\\[6pt] {}{\tilde{F}}_q^i\leftarrow {F}^i\end{array}\right\}q=1,2,\cdots, {n}^i $$

Notice that if n i = 1, flow i is regarded as being transformed into its single sub flow that is subject to location moving, objective evaluation, and parent change, etc.

Finally, a new set of flows constructed from sub flows is yielded as

$$ X\leftarrow {\displaystyle {\bigcup}_{i=1}^n\left\{{\mathbf{x}}_1^i,{\mathbf{x}}_2^i,\cdots, {\mathbf{x}}_{n^i}^i\right\}} $$

and the new number of flows is

$$ n\leftarrow {\displaystyle {\sum}_{i=1}^n{n}^i} $$

3.3 Flow Merging

The flow merging operation conducted in the WFA is to eliminate duplicated solution agents to avoid unnecessary solution searches and evaluations. The location-based merging approach is frequently adopted in general optimization problems, either continuous or discrete ones. In addition to the location-based approach, we propose an objective-based merging approach for our multi-objective optimization problems, where a set of non-dominated solutions with objective values dispersedly distributed in the objective space is preferred.

Two flows will be merged in the location-based merging operation when the locations of two flows are close enough. A Location Closeness Factor β L , 0 < β L  < 1, is defined to facilitate the merging operation. If the normalized component variable differences of two flows are all smaller than the factor, they are eligible for merging. Let LocationMergeable(x i, \( {\mathbf{x}}^{i^{\prime }} \)) be used to identify whether flow i can be merged with i′;

$$ \mathrm{LocalMergeable}\left({x}^i,{x}^{i{^\prime}}\right)=\left\{\begin{array}{l}\mathrm{false},\mathrm{if}\;\exists k\in \left\{1,2,\cdots, p\right\}\backepsilon \frac{\left|{x}_k^i-{x}_k^{i^{\prime }}\right|}{{\overline{x}}_k-{\underline{x}}_k}>{\beta}_L\\ {}\mathrm{true},\mathrm{otherwise}\end{array}\right. $$
(24)

On the other hand, when objectives of two flows on the objective space are close enough, they can be merged to increase the spread of non-dominated solutions on the objective space. Let β O , 0 < β O  < 1 be the Objective Closeness Factor, which is used for objective-based merging operation. In addition, let ObjectiveMergeable (x i, \( {\mathbf{x}}^{i^{\prime }} \)) be used to identify whether flow i can be merged with i′; then

$$ \mathrm{ObjectiveMergeable} \left({\mathbf{x}}^i,{\mathbf{x}}^{i^{\prime }}\right)=\left\{\begin{array}{l}\mathrm{false},\mathrm{if}\;\exists j\in \left\{1,2,\cdots, g\right\}\backepsilon \frac{\left|{f}_j^i-{f}_j^{i^{\prime }}\right|}{{\overline{f}}_j-{\underline{f}}_j}>{\beta}_O\\ {}\mathrm{true},\mathrm{otherwise}\end{array}\right. $$
(25)

Note that if the number of objective functions is far smaller than the number of variables in a problem, an objective-based merging test is simpler than the location-based test. However, the newly generated sub flows are subject to objective value evaluations prior to the test.

The merging operation sequentially loops through each flow i in the current flow set X to establish a flow sub set A i that rounds in mergeable flows indexed after i. If flow i′, i < i′, is rounded in A i, which means flow i′ is mergeable with flow i, \( {A}^{i^{\prime }} \) is set to null. On the other hand if flow i′ is not merged by any preceding flow, \( {A}^{i^{\prime }} \) contains at least flow i′ itself; i.e., \( {A}^{i^{\prime }}\ne \varnothing \) and \( {\mathbf{x}}^{i^{\prime }}\in {A}^{i^{\prime }} \). To identify whether flow i can merge flow i′, operation LocalMergeable(x i,x i ') or ObjectiveMergeable(x i,x i ') is applied depending on which merging mode is chosen. Suppose that flow i is not null and \( {A}^i=\left\{{\mathbf{x}}^i\right\}\cup \left\{{{\mathbf{x}}^{\mathbf{\prime}}}_1^i,{{\mathbf{x}}^{\mathbf{\prime}}}_2^i,\cdots, {{\mathbf{x}}^{\mathbf{\prime}}}_{{n^{\prime}}^i}^i\right\} \); then, there are ni flows that are mergeable with flow i. The merging operation simply randomly selects one flow from A i to represent the merged flow and assigns its mass properties with the aggregated mass of all flows in A i. Let RandomElement(A) be a random operation that returns one element of the given set A; i.e. RandomElement(A) ∈ A. Then the merged flow of a non-null flow set A i is xi = RandomElement(A i). In addition, the mass of the selected flow is replaced with the aggregated mass; i.e., \( {m^{\prime}}^i={\displaystyle {\sum}_{\forall i,{\mathbf{x}}^i\in {A}^i}{m}^i} \). When all none-null mergeable flow sets are merged into single flows the flow set is further updated as

$$ X\leftarrow \left\{{{\mathbf{x}}^{\mathbf{\prime}}}^i\left|{A}^i\ne \varnothing \wedge {{\mathbf{x}}^{\mathbf{\prime}}}^i=\operatorname{RandomElement}\left({A}^i\right)\right.\right\} $$

and the number of flows is as n ← Count(A i ≠ ∅).

3.4 Water Evaporation

Evaporation operation simulates the natural behavior of water evaporating to the atmosphere. The water flow-like algorithm conducts this operation to store a certain amount of water up in the air for chances of water flow regeneration in water precipitation.

An Evaporation Factor α is initially set by the user, whose value is restricted by 0 ≤ α < 0.5. Let the mass of the cumulated water in the air be v. In the evaporation operation, the evaporated mass of water is added to v by

$$ v\leftarrow v+\alpha {\displaystyle {\sum}_{i=1}^n{m}^i} $$

and the mass of each flow in X after evaporation is updated as

$$ {m}^i\leftarrow \left(1-\alpha \right){m}^i;i=1,2,\cdots, n $$

Notice that the mass of a flow indicates the liveliness of the flow while it traverses on the ground. Once it is reduced to a minimal amount, it is regarded as a dried-out flow. The total number of flows is restricted by a user specified limit. Let the maximal number of flows allowed be \( \overline{z} \); the minimal amount of mass is then \( \overline{m}/\overline{z} \), where \( \overline{m} \) is the user specified initial flow mass. A dried-out flow is removed from the flow set and its leftover mass is added to v; i.e.,

$$ \begin{array}{l}v\leftarrow v+{\displaystyle {\sum}_{\forall i,{m}^i\le \overline{m}/\overline{z}}{m}^i}\\[6pt] {}X\leftarrow X-\left\{{\mathbf{x}}^i\Big|{m}^i\le \overline{m}/\overline{z}\right\}\end{array} $$

3.5 Precipitation

Precipitation operation simulates the natural rainfall that results in water flows covering a wide range of the territory. The water flow-like algorithm conducts this operation to generate new solution agents for exploring new solution space. When the mass of the evaporated water exceeds a user specified saturation amount the precipitation operation is conducted automatically. The limit is a fraction of the initial mass: \( \rho \overline{\mathrm{m}} \); where ρ is the Precipitation Factor specified by the user and 0 < ρ ≤ 0.5. In other worlds, the precipitation operation is conducted when \( v\ge \rho \overline{m} \).

The number of precipitation flows generated is set to the number of ground flows in X; i.e., n. However the total number of flows allowed is restricted by \( \overline{z} \). On the other hand, since a minimal mass \( \overline{m}/\overline{z} \) is required, at most \( \left\lfloor v\overline{z}/\overline{m}\right\rfloor \) flows can be generated. Therefore, the number of precipitation flows is

$$ {n}^{{\prime\prime} }= \min \left(n,\kern0.5em \overline{z}-n,\kern0.5em \left\lfloor v\overline{z}/\overline{m}\right\rfloor \right) $$
(26)

Let \( {X}^{{\prime\prime} }=\left\{{{\mathbf{x}}^{\mathbf{{\prime\prime}}}}^1,{{\mathbf{x}}^{\mathbf{{\prime\prime}}}}^2,\cdots, {{\mathbf{x}}^{\mathbf{{\prime\prime}}}}^{n^{{\prime\prime} }}\right\} \) be the set of generated precipitation flows. Evaporated mass v is then evenly distributed to generated precipitation flows. Let mi be the mass of precipitation flow xi, then \( {m^{{\prime\prime}}}^i=\raisebox{1ex}{$v$}\!\left/ \!\raisebox{-1ex}{${n}^{{\prime\prime} }$}\right. \). The location of each precipitation flow is directly duplicated from a randomly selected ground flow and some components are perturbed with random distances. In assigning the location of flow xi, a ground flow i′ in X is randomly selected first. Then a random distance δ i k for each component k, restricted by the length between lower and upper bounds, is stochastically calculated. If a forward advancement or backward retraction of distance δ i k from \( {x}_k^{i^{\prime }} \) exceeds the bounds, no perturbation is applied. Otherwise, either forward or backward perturbation is stochastically applied. Components of the location are set by

$$ \begin{array}{l}\left.{x^{{\prime\prime}}}_k^i=\left\{\begin{array}{l}{x}_k^{i^{\prime }},\mathrm{if}\left({x}_k^{i^{\prime }}+{\delta}_k^i>{\overline{x}}_k\vee {x}_k^{i^{\prime }}-{\delta}_k^i<{\underline{x}}_k\right)\\[6pt] {}{x}_k^{i^{\prime }}+{\delta}_k^i,\mathrm{else}\ \mathrm{if}\sim U\left(0,1\right)\ge 0.5\\[6pt] {}{x}_k^{i^{\prime }}-{\delta}_k^i,\mathrm{otherwise}\end{array}\right.;k=1,2,\cdots, p\right\};\\[2pc] i=1,2,\cdots, {n}^{{\prime\prime} } \end{array} $$
(27)

Where

$$ {i}^{\prime }=\operatorname{RandomInteger}\left(1,n\right), $$

and

$$ {\delta}_k^i=\sim U\left(0,1\right)\left({\overline{x}}_k-{\underline{x}}_k\right). $$

The parent flow of a precipitation flow is cloned from the selected ground flow as \( {\tilde{{\mathbf{x}}^{\mathbf{{\prime\prime}}}}}^i\leftarrow {\tilde{\mathbf{x}}}^{i^{\prime }} \). Finally, the flow set X is augmented by precipitation flows as X ← X ∪ X″ and number of flows is updated as n ← n + n″.

3.6 Water Flow Evaluation and Non-dominated Solution Set Update

The final operation performed in an iteration of water flow-like optimization algorithm is to evaluate the objectives of the solutions represented by the flows. Therefore, objective vector for each flow i in X is evaluated as

$$ {\mathbf{f}}^i=\left[{f}_1\left({\mathbf{x}}^i\right)\; {f}_2\left({\mathbf{x}}^i\right)\cdots {f}_g\left({\mathbf{x}}^i\right)\right]\equiv {\left[{f}_j^i\right]}_{1\times g},i=1,2,\cdots, n $$

and the maximum and minimum objectives are updated as

$$ \left.\begin{array}{l}{\underline{f}}_j\leftarrow \min \left({\underline{f}}_j,{f}_j^i\right)\\[6pt] {}{\overline{f}}_j\leftarrow \max \left({\overline{f}}_j,{f}_j^i\right)\end{array}\right\}j=1,2,\cdots, g $$

Moreover, the cumulated objective differences ΔF and the cumulated number of flows generated N are both updated as

$$ \Delta F\leftarrow \Delta F+{\displaystyle {\sum}_{i=1}^n\left|{F}^i-{\tilde{F}}^i\right|}\ \mathrm{and}\ N\leftarrow N+n $$

Notice that we have maintained the non-dominated solution set \( \widehat{X} \) that will be presented to the user as solutions to the problem. Once the objectives of all flows are calculated, each flow is subject to a serial of domination tests for being added to \( \widehat{X} \). To be added to \( \widehat{X} \) the solution of a flow must not be dominated by any solution in both X and \( \widehat{X} \). Therefore \( \widehat{X} \) is augmented by new non-dominated solutions as

$$ \begin{aligned}[b] &\widehat{X}\leftarrow \widehat{X}\cup \left\{{\mathbf{x}}^i\right\},\mathrm{if}\left({\displaystyle \underset{\forall {\mathbf{x}}^{i^{\prime }}\in X,i\ne {i}^{\prime }}{\wedge }}\neg \mathrm{Dominated}\ \left({\mathbf{x}}^i,{\mathbf{x}}^{i^{\prime }}\right)\right) \\ &\quad \wedge \left({\displaystyle \underset{\forall {\mathbf{x}}^{i^{\prime }}\in \widehat{X}}{\wedge }}\neg \mathrm{Dominated}\ \left({\mathbf{x}}^i,{\widehat{\mathbf{x}}}^{i^{\prime }}\right)\right);\kern1em i=1,2,\cdots n. \end{aligned} $$

3.7 Non-dominated Solution Set Pruning

Before presenting the final non-dominated solution set \( \widehat{X} \) to the user, an extra pruning operation is required if the number of solutions s \( \widehat{X} \) in exceeds the user specified maximum number \( \overline{s} \). In the operation, the same procedure of removing the worst solution is recursively executed \( s-\overline{s} \) times to prune \( \widehat{X} \) to have exactly \( \overline{s} \) non-dominated solutions left. The worst solution is the one that has the smallest jamming distance among the solutions. The jamming distance τ i of a solution \( {\widehat{\mathbf{x}}}^i \) in \( \widehat{X} \) is the smallest aggregated normalized distance to other solutions on the objective space. A normalized objective distance is the objective value difference between two solutions divided by the bounding length of the objective value. Let r j be the bounding length of objective j, then

$$ {r}_j=\underset{i^{\prime }=1,\cdots, s}{ \max}\left\{{\widehat{f}}_j^{i^{\prime }}\right\}-\underset{i^{\prime }=1,\cdots, s}{ \min}\left\{{\widehat{f}}_j^{i^{\prime }}\right\} $$
(28)

The jamming distance of each non-dominated solution i in \( \widehat{X} \) is

$$ {\tau}^i=\underset{i^{\prime }=1,\cdots, s;i\ne {i}^{\prime }}{ \min}\left\{{\displaystyle {\sum}_{j=1}^g\left(\frac{1}{r_j}\left|{\widehat{f}}_j^i-{\widehat{f}}_j^{i^{\prime }}\right|\right)}\right\} $$
(29)

In the repeated procedure, all r j are updated by the objective values of all of the current solutions in \( \widehat{X} \) first. Then the jamming distances of all solutions are recalculated. The solution \( {\widehat{\mathbf{x}}}^{i^{*}} \) with the smallest jamming distance is then removed form \( \widehat{X} \); i.e., \( \widehat{X}\leftarrow \widehat{X}-\left\{{\widehat{\mathbf{x}}}^{i^{*}}\right\} \), where \( {i}^{*}= \arg \kern0.5em \underset{i=1,\cdots, s}{ \min }{\tau}^i \). Note that instead of executing the procedure only one time to removing \( s-\overline{s} \) inferior solutions directly, \( s-\overline{s} \) recursive recalculations of all r j and τ i are conducted to remove totally \( s-\overline{s} \) solutions from the objective space. The recursive removal of the worst solution has a better ability to yield an evenly dispersed solution set.

4 Performance Index

Generational distance is a common way to evaluate the performance of non-dominant solution. In addition, this paper proposed two more performance indices are proposed to evaluate the non-dominant solution.

4.1 Generational Distance

Generational Distance is proposed by Veldhuize [5]. It is defined as the Euclidean distance between current computed non-dominant solution and the known global optimal solution. Smaller Generational Distance means the current obtained non-dominant solution is closer to the optimal Pareto-front solution.

4.2 Correctness

Correctness index is to measure that how many percentages of current obtained non-dominant solutions belong to the true optimal Pareto front. An optimizer which yields the solution with high Correctness indicates that such optimizer is credible. Correctness index is calculated as follows

$$ C=\frac{\left|{\widehat{X}}^{\prime}\right|}{\left|\widehat{X}\right|}\times 100\%=\frac{1}{\overline{s}}\cdot \left|{\widehat{X}}^{\prime}\right|\times 100\% $$
(30)

Where

$$ {\widehat{X}}^{\hbox{'}}\left\{{\widehat{X}}^i\left|{\widehat{X}}^i\in \widehat{X}\ \mathrm{and}\forall \underset{\forall {\widehat{X}}^i\in \widehat{X}}{\wedge}\neg \mathrm{Dominated}\left({\widehat{X}}^i,{\widehat{X}}^{i^{\prime }}\right)\ \right.\right\} $$
(31)

4.3 Coverness

Coverness is devised to quantify how well the non-dominant solutions spread. Define the Coverness

$$ \ell =\frac{u}{\left|\overset{\frown }{X}\right|} $$
(32)

Where u represents number of Pareto front solution covered by non-dominant solution. Define ε as user specified Radius for Pareto Neighborhood. Here Radius for Pareto Neighborhood is suggested to set as

$$ \varepsilon =\frac{1}{\left|\overset{\frown }{X}\right|} $$
(33)

Define \( \mathbb{Q}=\left\{{Q}^1,{Q}^2,\dots {Q}^{\overset{\frown }{n}}\right\} \) as the sets for identifying if Pareto front solution covered by non-dominant solution. Where \( \overset{\frown }{n} \) is the number of Pareto front solution. Initially \( {Q}^{i^{\prime }}=0 \), \( {i}^{\prime }=1,2,\dots, \overset{\frown }{n} \). Each element of the set is computed as

$$ {Q}^{i*}=\left\{\begin{array}{l}1,\kern0.5em \operatorname{if}\kern0.5em {i}^{*}= \arg \kern0.5em \min \left\{\left.{K}_j^{i^{\prime }}\right|{K}_j^{i^{\prime }}<\varepsilon \right\},\forall {Q}_{i^{\prime }}=0\\ {}0,\kern0.5em \mathrm{otherwise}\end{array}\right. $$
(34)

where

$$ {K}_j^{i^{\prime }}={\displaystyle \sum_{j=1}^g{\left(\frac{\left|{\overset{\frown }{f}}_j^{i^{\prime }}-{\widehat{f}}_j^i\right|}{{f_j}^{(u)}-{f_j}^{(l)}}\right)}^2} $$
(35)

and

$$ u={\displaystyle \sum_{i^{\prime }=1}^{\widehat{n}}{Q}^{i^{\prime }}} $$
(36)

Coverness can be obtained then. Large value means non-dominant solutions have wide spreading and able to cover most of Pareto-front solution. Notice that while using Coverness, \( \overset{\frown }{n}=s \) is necessary condition.

5 Simulation Study

Simulation study in this paper is conducted in twofold. Firstly, find out the best of flow merging method in WFA. Secondly, compare non-dominant solution of WFA among other proposed methods. Recommended Parameter settings for WFA are shown as Table 1. High saturation rate setting is suggested to avoid redundant search caused by precipitation overly.

Table 1 WFA4MC parameter settings for different benchmark

Table 2 presents the numerical result for simulation study2. Benchmark problem proposed by Zizler et al. [6] is in use for this experiment. We can obtain that OM method has better performance based on Coverness index. It indicates that OM method generates the wider range of non-dominant solution. However, two of other indices show that LM method has better overall performance.

Table 2 Performance LM and OM methods

In Table 3, generation distance shows that WFA4MC outperforms other methods in the benchmark ZDT3, ZDT4 and ZDT6. Though WFA4MC is not an overwhelming MOO method, it is still an option for solving MOO problem.

Table 3 Benchmark problems on different methods

6 Conclusion

In this paper, a multi-objective continuous problem solver WFA4MC based on WFA is proposed. WFA mimics the phenomenon of water flow in the nature, consisting of flow splitting, flow merging and precipitation.

In addition, other than generational distance, this paper proposed two novice criteria for non-dominant solution evaluation such as correctness and Coverness index. Firstly, correctness calculates the percentage that current non-dominant solutions are not dominated from the true non-dominant solutions. Secondly, Coverness quantifies how well the current non-dominant covers the true Pareto front. Three total indices are applied to evaluate two of the flow merging mechanism, OM and LM. Simulation result shows that though LM can gain smaller generational distance, OM has higher correctness.

Comparing with AMOPSO, NSGAII and MOEPSO, Simulation study based on generational distance index shows that our proposed method outperforms other methods in several benchmarks.