文章快速检索     高级检索
  北京化工大学学报(自然科学版)  2018, Vol. 45 Issue (1): 78-83  DOI: 10.13543/j.bhxbzr.2018.01.013
0

文章浏览量:[]

Citation  

Bo WEN, HongGuang LI, XiaoChun CHEN. A modeling approach for fuzzy programming with echelon form membership functions[J]. Journal of Beijing University of Chemical Technology (Natural Science), 2018, 45(1): 78-83. DOI: 10.13543/j.bhxbzr.2018.01.013.

First Author

WEN Bo, male, born in 1985, post doctorate, E-mail:wenbokkk@163.com.

History

Received: 2017-05-22
A modeling approach for fuzzy programming with echelon form membership functions
WEN Bo 1, LI HongGuang 1, CHEN XiaoChun 2     
1. College of Information Science & Technology, Beijing University of Chemical Technology, Beijing 100029, China;
2. College of Chemical Engineering, Beijing University of Chemical Technology, Beijing 100029, China
Abstract: In order to solve fuzzy mathematical programming with soft constraints, the initial models must first be converted into crisp models.Membership functions are employed to describe the fuzzy right-hand side parameters needed to achieve this conversion.In some cases, echelon form membership functions (EFMFs) are required to depict the actual fuzzy situation.However, due to their discrete properties, fuzzy programming problems with such membership functions cannot be modeled by traditional methods.Motivated by these challenges, this paper introduces a novel absolute value representation modeling approach to formulate fuzzy programming using EFMFs.This approach can translate a discrete model to a continuous one which can then be easily solved.Finally, by means of a numerical example, the effectiveness of our new approach is demonstrated.
Key words: echelon form membership function    fuzzy right-hand side    absolute value representation    
1. ${affiVo.addressStrCn};
2. ${affiVo.addressStrCn}
Introduction

While solving practical optimization problems, uncertain information, whose characteristics rendered traditional methods useless, has always been encountered due to the insufficient understanding of the objective facts. Aiming at this issue, Zimmermann[1] brought up the fuzzy mathematical programming methodology basing on the fuzzy theory proposed by Zadeh[2] in 1978. This method primarily focuses on solving the optimization problems with uncertainties, with its kernel idea being describing the fuzzy parameter by employing membership functions and measuring the parameters' variation by satisfaction degree. Thus, fuzzy models can be converted into crisp ones by eliminating fuzzy factors. Since their pioneer work, this method has been widely applied in various fields[3-6] owing to its outstanding practicability.

Membership functions are acknowledged for characterizing the fuzzy set. However, as decision makers (DMs) have various understandings and acceptance for even the same fuzzy concept, personal subjective preferences will inevitably be involved, which results in the fact that membership functions from different DMs take shape in diverse forms. In practical applications, the familiar forms of membership functions are all continuous[7-11]. Yet in accordance to some actual situation, membership functions will exhibit jumping property, which means their membership degree values are constant but different in specified interval. These functions can be specified as echelon form membership functions (EFMFs), which have already been applied in fuzzy sequencing and other fields with excellent performance [12-14]. Hence, in fuzzy programming problems, the functions can also be employed to represent some fuzzy parameters with discrete properties. However, with the special structural characteristic, EFMFs cannot be expressed and modeled by traditional methods.

Motivated by the above challenges, the major objective of this paper is to propose a novel absolute value representation method for modeling fuzzy programming with EFMFs. Thus, the EFMF can be transformed by the given method to achieve corresponding membership degree during different interval with continuous expression form, and the fuzzy programming can be modeled and solved. Furthermore, the effectiveness of the given approach has been proven by a numerical case study.

1 Methodology 1.1 Echelon form membership function construction

Membership function is an effective tool to measure DMs' satisfaction degree in fuzzy mathematical programming. The satisfaction degree can be used to describe the objective function as well as right-hand side soft constraints involved in the programming. Membership functions have various forms, such as trapezoidal, triangular, exponential, Gaussian, echelon and so on. Among these functions of different forms, the echelon form membership function is more special relatively, as depicted in Fig. 1, which is constructed by several discrete segments with different constant degree values respectively. The degree value is switched to another constant number at the endpoint in each segment, thus, the point can be specified as the jumping point in accordance to its variation mode. Thanks to its discrete property, it can be employed to describe the fuzzy parameters with the echelon changing property in general.

Fig.1 The echelon form membership function

Although the EFMF is consisted of discrete segments, its construction process must be carried out on the basis of a continuous function. Hence, before the process, a continuous function should be chosen as the basic continuous function accordingly. Gaussian membership functions are acknowledged with superior performance for describing people’s subjective preferences, thus, it has been chosen as the example to introduce the process.

Take the following fuzzy programming for example.

$ \begin{array}{l} {\rm{Max}}\;\;\;z\left( {{x_i}} \right), \\ {\rm{s}}{\rm{.t}}{\rm{.}}\;\;g\left( {{x_i}} \right)\mathop \le \limits^ \sim b, \\ h\left( {{x_i}} \right) \cong c. \end{array} $ (1)

where, the inequality and equality constraint are both soft ones.

Firstly, construct the continuous membership functions for the constraints[15]. Take the following Gaussian membership functions for example.

$ {\mu _g} = \left\{ \begin{array}{l} 1, \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;g\left( {{x_i}} \right) \le b\\ {{\rm{e}}^{-\frac{{{{\left( {g\left( {{x_i}} \right)-b} \right)}^2}}}{{2{p_1}}}}}, \;\;\;\;\;\;\;g\left( {{x_i}} \right) \ge b \end{array} \right. $ (2)
$ {\mu _h} = {{\rm{e}}^{-\frac{{{{\left( {h\left( {{x_i}} \right)-c} \right)}^2}}}{{2{p_2}}}}} $ (3)

where, p1 and p2 are both width factors. The inequality constraint corresponding membership function is unilateral and the equality constraint corresponding one is bilateral[16], as shown in Fig. 2 and Fig. 3.

Fig.2 The unilateral membership function of g(xi)
Fig.3 The bilateral membership function of h(xi)

Secondly, choose the jumping points for the EFMF in Gaussian membership functions according to the analysis result decided by DM in view of the practical situation.

Choose the discrete points on the basis of functions (1) and (2) as the jumping points. The chosen situation is depicted as Fig. 4 and Fig. 5. The coordinates of the points from left to right in Fig. 4 are: (q11, 1), (q12, a11), (q13, a12), (q14, a13), (q15, a14). The coordinates of the points from left to right in Fig. 5 are: (q21, a21), (q22, a22), (q23, a23), (q24, a24), (q25, a25), (q26, a26), (q27, a27), (q28, a28).

Fig.4 The chosen discrete points in μg
Fig.5 The chosen discrete points in μh

After deciding the membership degree constant value of each segment, the corresponding EFMF can be thereupon constructed, as shown in Fig. 6 and Fig. 7. According to the changing trend of the degree value, the EFMF in Fig. 6 can be specified as the descending type with the jumping points on the right side of the segments, meanwhile the EFMF with opposite trend can be specified as the ascending type with the jumping points on the left side of the segments.

Fig.6 The echelon form membership functions of g(xi)
Fig.7 The echelon form membership functions of h(xi)

The EFMF can be expressed by the following functions.

$ {\mu _g}\left( {{x_i}} \right) = \left\{ \begin{array}{l} 1, \;\;\;\;g\left( {{x_i}} \right) \le {q_{11}}\\ {a_{11}}, \;\;{q_{11}} < g\left( {{x_i}} \right) \le {q_{12}}\\ {a_{12}}, \;\;{q_{12}} < g\left( {{x_i}} \right) \le {q_{13}}\\ {a_{13}}, \;\;{q_{13}} < g\left( {{x_i}} \right) \le {q_{14}}\\ {a_{14}}, \;\;{q_{14}} < g\left( {{x_i}} \right) \le {q_{15}}\\ 0, \;\;\;\;\;{q_{15}} < g\left( {{x_i}} \right) \end{array} \right. $ (4)
$ {\mu _h}\left( {{x_i}} \right) = \left\{ \begin{array}{l} 0, \;\;\;\;h\left( {{x_i}} \right) < {q_{21}}\\ {a_{21}}, \;\;{q_{21}} \le h\left( {{x_i}} \right) < {q_{22}}\\ {a_{22}}, \;\;{q_{22}} \le h\left( {{x_i}} \right) < {q_{23}}\\ {a_{23}}, \;\;{q_{23}} \le h\left( {{x_i}} \right) < {q_{24}}\\ {a_{24}}, \;\;{q_{24}} \le h\left( {{x_i}} \right) < {q_{25}}\\ {a_{25}}, \;\;{q_{25}} \le h\left( {{x_i}} \right) < {q_{26}}\\ {a_{25}}, \;\;{q_{26}} \le h\left( {{x_i}} \right) < {q_{27}}\\ {a_{27}}, \;\;{q_{27}} \le h\left( {{x_i}} \right) < {q_{28}}\\ 0, \;\;\;\;\;{q_{28}} < h\left( {{x_i}} \right) \end{array} \right. $ (5)

Considering the special form of the EFMF, the modeling process will be hindered because it cannot be represented as a continuous function by the traditional method, which means a new expression method is required.

1.2 Absolute value representation

Aiming at the question mentioned in section 1.1, a novel absolute value representation method has been given to formulate the EFMF. By means of absolute value symbol, the different membership degree values of each segment can be achieved along with the sign (positive or negative) switching.

On account of ascending and descending type membership functions differ in the position of their jumping points, they differ in the representation method as well.

Assume the EFMF y has m discrete points, and the coordinate value according to each point is (xi, yi), i=1, 2, …, m.

(1) If the function is of the ascending type, it can be expressed as

$ y\left( x \right) = {y_1} + \sum\limits_{i = 2}^m {\left( {{y_i}-{y_{i-1}}} \right)} \left\lceil {\frac{{\left| {x-{x_i}} \right| + x - {x_i}}}{{2\left( {{x_m} - {x_1}} \right)}}} \right\rceil $ (6)

where, $ \left\lceil \cdot \right\rceil $ is Gaussian rounding function which can be characterized by

$ \left\{ \begin{array}{l} \left[m \right] = 0, \;\;\;\;\;\;\;0 \le m < 1\\ \left[m \right] = -1, \;\;\;\;\; -1 \le m < 0 \end{array} \right. $

(2) If the function is of the descending type, it can be expressed as

$ y\left( x \right) = {y_1} + \sum\limits_{i = 2}^m {\left( {{y_i}-{y_{i-1}}} \right)} \left\lceil {\frac{{\left| {x-{x_{i - 1}}} \right| + x - {x_{i - 1}}}}{{2\left( {{x_m} - {x_1}} \right)}}} \right\rceil $ (7)

Suppose that the function is of the descending type. In the presence of x2xx3, there is,

$ \begin{array}{l} y\left( x \right) = {y_1} + \left( {{y_2}-{y_1}} \right)\left\lceil {\frac{{\left| {x-{x_1}} \right| + x-{x_1}}}{{2\left( {{x_m} - {x_1}} \right)}}} \right\rceil + \cdots + \\ \left( {{y_i} - {y_{i - 1}}} \right)\left\lceil {\frac{{\left| {x - {x_{i - 1}}} \right| + x - {x_{i - 1}}}}{{2\left( {{x_m} - {x_1}} \right)}}} \right\rceil \end{array} $ (8)

where, owing to xx3, the terms after the third one are all equal to 0, which means

$ \begin{array}{l} y\left( x \right) = {y_1} + \left( {{y_2}-{y_1}} \right)\left\lceil {\frac{{\left| {x-{x_1}} \right| + x-{x_1}}}{{2\left( {{x_m} - {x_1}} \right)}}} \right\rceil + \left( {{y_3} - } \right.\\ \left. {{y_2}} \right)\left\lceil {\frac{{\left| {x - {x_2}} \right| + x - {x_2}}}{{2\left( {{x_m} - {x_1}} \right)}}} \right\rceil = {y_1} + {y_2} - {y_1} + {y_3} - {y_2} = {y_3} \end{array} $ (9)

Therefore, the membership degree values in every segment of the EFMF can be achieved effectively by the employment of formula (6) and (7). Then, fuzzy programming with EFMFs can be formulated directly by means of the following equations.

$ \begin{array}{l} {\rm{Max}}\;\;\lambda \\ {\rm{s}}{\rm{.t}}{\rm{.}}\;\;\lambda \le {\mu _g}\left( {{g_1}} \right) + \sum\limits_{j = 2}^m {\left( {{\mu _g}\left( {{g_j}} \right)-{\mu _g}\left( {{g_{j-1}}} \right)} \right)} \\ \left\lceil {\frac{{\left| {g\left( {{x_i}} \right)-{g_{j - 1}}} \right| + g\left( {{x_i}} \right) - {g_{j - 1}}}}{{2\left( {{g_m} - {g_1}} \right)}}} \right\rceil, \\ \lambda \le {\mu _h}\left( {{h_1}} \right) + \\ \sum\limits_{j = 2}^q {\left( {{\mu _h}\left( {{h_j}} \right) - {\mu _h}\left( {{h_{j - 1}}} \right)} \right)} \left\lceil {\frac{{\left| {h\left( {{x_i}} \right) - {h_j}} \right| + h\left( {{x_i}} \right) - {h_j}}}{{2\left( {{h_n} - {h_1}} \right)}}} \right\rceil + \\ \sum\limits_{j = q + 2}^n {\left( {{\mu _h}\left( {{h_j}} \right) - {\mu _h}\left( {{h_{j - 1}}} \right)} \right)} \left\lceil {\frac{{\left| {h\left( {{x_i}} \right) - {h_{j - 1}}} \right| + h\left( {{x_i}} \right) - {h_{j - 1}}}}{{2\left( {{h_n} - {h_1}} \right)}}} \right\rceil, \\ \lambda \le {\mu _z}. \end{array} $ (10)

where, membership function μ and μ contain m and n segments respectively; g and h are the abscissa value for the jumping point in the corresponding membership function; hq is the abscissa value for the left side jumping point of the highest membership degree segment in the bilateral membership function; μ is the objective membership function. Thus, the fuzzy programming with EFMFs can be modeled and solved by the given formula.

2 Results

Consider the following numerical example.

$ \begin{array}{l} {\rm{Max}}\;\;z\left( {{x_i}} \right) = 10x_1^2 + 10x_2^2 + 20x_3^2 + 5{x_1} + 5{x_2} + 21{x_3}{\rm{, }}\\ {\rm{s}}{\rm{.t}}{\rm{.}}\;g\left( {{x_i}} \right) = x_1^2 + x_2^2 + x_3^2 + {x_1}-{x_2}-{x_3}\mathop \le \limits^ \sim 400, \\ h\left( {{x_i}} \right) = 2x_1^2 + x_2^2 + x_3^2 + 2{x_1}-{x_2} \cong 450, \\ i = 1, 2, 3. \end{array} $ (11)

where, the equality and inequality constraints are all soft ones. Supposing that the corresponding EFMFs have already built by the DM as follows.

$ {\mu _g}\left( {{x_i}} \right) = \left\{ \begin{array}{l} 1, \;\;\;\;\;\;\;g\left( {{x_i}} \right) \le 400\\ 0.9, \;\;\;\;400 < g\left( {{x_i}} \right) \le 409.2\\ 0.72, \;\;409.2 < g\left( {{x_i}} \right) \le 416.2\\ 0.38, \;\;416.2 < g\left( {{x_i}} \right) \le 427.8\\ 0.1, \;\;\;\;427.8 < g\left( {{x_i}} \right) \le 442.9\\ 0, \;\;\;\;\;\;\;442.9 < g\left( {{x_i}} \right) \end{array} \right. $ (12)
$ {\mu _h}\left( {{x_i}} \right) = \left\{ \begin{array}{l} 0, \;\;\;\;\;\;\;\;\;\;\;\;h\left( {{x_i}} \right) < 420.8\\ 0.3445, \;\;\;\;420.8 \le h\left( {{x_i}} \right) < 433.1\\ 0.7, \;\;\;\;\;\;\;\;\;433.1 \le h\left( {{x_i}} \right) < 440.8\\ 0.9, \;\;\;\;\;\;\;\;\;440.8 \le h\left( {{x_i}} \right) < 447\\ 1, \;\;\;\;\;\;\;\;\;\;\;\;447 \le h\left( {{x_i}} \right) \le 453\\ 0.9, \;\;\;\;\;\;\;\;\;453 < h\left( {{x_i}} \right) \le 459.2\\ 0.7, \;\;\;\;\;\;\;\;\;459.2 < h\left( {{x_i}} \right) \le 466.9\\ 0.3445, \;\;\;\;466.9 < h\left( {{x_i}} \right) \le 479.2\\ 0, \;\;\;\;\;\;\;\;\;\;\;\;479.2 < h\left( {{x_i}} \right) \end{array} \right. $ (13)

The function figures are depicted in Fig. 8 and Fig. 9 respectively.

Fig.8 The echelon form membership function of g(xi)
Fig.9 The echelon form membership function of h(xi)

In order to build the objective membership function, the optimum solution of the corresponding crisp optimization problem should be initially obtained as: z=1252.658. By means of specifying the expectation value of the objective function as 1350, the objective membership function can be obtained as follows.

$ {\mu _z} = \frac{{z\left( {{x_i}} \right)-1252.658}}{{1350-1252.658}} $ (14)

Thus, the fuzzy programming model can be constructed with formula (10) above.

$ \begin{array}{l} {\rm{Max}}\;\;\;\lambda {\rm{, }}\\ {\rm{s}}{\rm{.t}}{\rm{.}}\;\;\;\;\lambda \le {\mu _g}\left( {{g_1}} \right) + \sum\limits_{j = 2}^5 {\left( {{\mu _g}\left( {{g_j}} \right)- {\mu _g}\left( {{g_{j- 1}}} \right)} \right)} \\ \left\lceil {\frac{{\left| {g\left( {{x_i}} \right)- {g_{j - 1}}} \right| + g\left( {{x_i}} \right) - {g_{j - 1}}}}{{2\left( {{g_5} - {g_1}} \right)}}} \right\rceil, \\ \lambda \le {\mu _h}\left( {{h_1}} \right) + \sum\limits_{j = 2}^4 {\left( {{\mu _h}\left( {{h_j}} \right) - {\mu _h}\left( {{h_{j - 1}}} \right)} \right)} \\ \left\lceil {\frac{{\left| {h\left( {{x_i}} \right) - {h_j}} \right| + h\left( {{x_i}} \right) - {h_j}}}{{2\left( {{h_7} - {h_1}} \right)}}} \right\rceil + \sum\limits_{j = 6}^8 {\left( {{\mu _h}\left( {{h_j}} \right) - {\mu _h}\left( {{h_{j - 1}}} \right)} \right)} \\ \left\lceil {\frac{{\left| {h\left( {{x_i}} \right) - {h_{j - 1}}} \right| + h\left( {{x_i}} \right) - {h_{j - 1}}}}{{2\left( {{h_7} - {h_1}} \right)}}} \right\rceil, \\ \lambda \le {\mu _z}, \\ g\left( {{x_i}} \right) = x_1^2 + x_2^2 + x_3^2 + {x_1} - {x_2} - {x_3}, \\ h\left( {{x_i}} \right) = 2x_1^2 + x_2^2 + x_3^2 + 2{x_1} - {x_2}, \\ \left[{{g_1}, \cdots, {g_5}} \right] = \left[{400, 409.2, 416.2, 427.8, 442.9} \right], \\ \left[{{h_1}, \cdots, {h_8}} \right] = \left[{420.8, 433.1, 440.8, 447, 453, } \right.\\ \left. {459.2, 466.9, 479.2} \right], \\ i = 1, 2, 3. \end{array} $ (15)

With the GAMS solver, the optimal solutions can be achieved at: λ=0.7, x1=0.289, x2=1.231, x3=20.891, z=1320.788.

In the fuzzy mathematical programming problem (11), the EFMF has been chosen as the membership functions. However, the discrete functions (12), (13) cannot be modeled by traditional methods. On the basis of the given approach, the EFMF can be transferred into a continuous form firstly, and then the programming problem can be modeled as a solvable form (15). Finally, the optimal solutions can be obtained easily through the GAMS solver.

The value of the two constraint functions can be calculated from the optimal solutions as: g=416.1997, h=437.463. Mark the points (416.1997, 0.7), (437.463, 0.7) in Fig. 8 and Fig. 9, and they are accurately located in the third and second (from left to right) segment respectively, meaning the optimal solutions are extremely consistent with the EFMF and the problem is solved effectively.

3 Conclusion

In this paper, the EFMF and its construction method are introduced firstly. Then, the absolute value representation method for EFMFs, which can realize the membership degree value changing by means of the sign switch controlled by absolute value symbol, is suggested. Taking advantage of the method, the modeling algorithm for fuzzy programming with EFMFs is proposed to fill the blank of relative approaches. Finally, the solving and analysis of a numerical example is carried out. After obtaining the results with the given method, the validity is proved by the analysis of the result locations in according membership functions.

References
[1] Zimmermann H J, Fuzzy programming and linear programming with several objective functions[J]. Fuzzy Sets and Systems, 1978, 1: 45-55. DOI:10.1016/0165-0114(78)90031-3
[2] Zadeh L A, Fuzzy sets[J]. Information and Control, 1965, 8(3): 338-353. DOI:10.1016/S0019-9958(65)90241-X
[3] Daneshvar M, Aminifar S, Microelectronic implementation of membership function:a review[J]. American Journal of Scientific Research, 2012, 46: 5-13.
[4] Chen T, A fuzzy integer-nonlinear programming approach for creating a flexible just-in-time location-aware service in a mobile environment[J]. Applied Soft Computing, 2016, 38: 805-816. DOI:10.1016/j.asoc.2015.10.049
[5] Kaur P, Kumar A, Linear porgramming approach for solving fuzzy critical path problems with fuzzy parameter[J]. Applied Soft Computing, 2014, 21: 309-319. DOI:10.1016/j.asoc.2014.03.017
[6] Pishvaee M S, Khalaf M F, Novel robust fuzzy mathematical programming methods[J]. Applied Mathematical Modelling, 2016, 40: 407-418. DOI:10.1016/j.apm.2015.04.054
[7] Azadeh A, Raoofi Z, Zarrin M, A multi-objective fuzzy linear programming model for optimization of natural gas supply chain through a greenhouse gas reduction[J]. Journal of Natural Gas Science and Engineering, 2015, 26: 702-710. DOI:10.1016/j.jngse.2015.05.039
[8] Lv Z, Zhao J, Liu Y, et al. A multi-objective clustering-based membership functions formation method for fuzzy modeling of gas pipeline pressure[J]. IFAC-PapersOnLine, 2017, 50(1): 12823-12828. DOI:10.1016/j.ifacol.2017.08.1931
[9] Chung J H, Pak J M, Ahn C K, et al. Particle filtering approach to membership function adjustment in fuzzy logic systems[J]. Neurocomputing, 2017, 237: 166-174. DOI:10.1016/j.neucom.2016.10.006
[10] Sun W, Huang G H, Lv Y, et al. Waste management under multiple complexities:inexact piecewise-linearization-based fuzzy flexible programming[J]. Waste Management, 2012, 32: 1244-1257. DOI:10.1016/j.wasman.2012.01.019
[11] Muhuri P K, Shukla A K, Semi-elliptic membership function:representation, generation, operations, defuzzification, ranking and its application to the real-time task scheduling problem[J]. Engineering Applications of Artificial Intelligence, 2017, 60: 71-82. DOI:10.1016/j.engappai.2016.12.020
[12] Lam H K, A review on stability analysis of continuous-time fuzzy-model-based control systems:from membership-function-independent to membership-function-dependent analysis[J]. Engineering Applications of Artificial Intelligence, 2018, 67: 390-408. DOI:10.1016/j.engappai.2017.09.007
[13] Chen S H, Operations of fuzzy numbers with step form membership function using function principle[J]. Journal of Information Sciences, 1998, 108: 149-155. DOI:10.1016/S0020-0255(97)10070-6
[14] Chen S H, Wang C C. Representation, ranking, distance, and similarity of fuzzy numbers with step form membership function using k-preference integration method[C]//IFSA World Congress and 20th NAFIPS International Conference. Vancouver, Canada, 2001: 801-806.
Chen S H, Wang C C. Representation, ranking, distance, and similarity of fuzzy numbers with step form membership function using k-preference integration method[C]//IFSA World Congress and 20th NAFIPS International Conference. Vancouver, Canada, 2001: 801-806.
[15] Wen B, Li H G, A PLMF-based decomposition-coordination algorithm for fuzzy linear programming[J]. The Arabian Journal for Science and Engineering, 2014, 39: 7467-7474. DOI:10.1007/s13369-014-1362-6
[16] Wen B, Li H G, Approaches to building piecewise linear membership functions in nonlinear fuzzy programming[J]. CIESC Journal, 2011, 62(8): 2258-2264.