Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Towards a Model for Quantitative Reasoning in Cognitive Nodes Christian Facchini, Fabrizio Granelli Department of Engineering and Computer Science (DISI) – University of Trento Via Sommarive 14, I-38123 Trento, Italy Email: {facchini,granelli}@disi.unitn.it Abstract—Cognitive networks are proposed in the framework of evolution of network architectures as novel paradigms to provide autonomous in-network reasoning to support end-toend goals. While several approaches are available that propose different approaches, still the problem of reasoning represents a challenging issue. The paper aims at proposing a mathematical model, based on fuzzy cognitive maps, to support and provide a quantitative tool for implementing reasoning in nodes of a cognitive network. In particular, the idea is to provide a methodology to enable network nodes to represent the complex interactions that happen within their protocol stacks and across the network. The potential utility of the proposed scheme is then preliminarily validated on a sample scenario, outlining good results and relevant potential for future developments. Index Terms—cognitive networks, network modeling, crosslayer modeling I. I NTRODUCTION Following the current evolution of communication networks, the Future Internet is expected to become service-oriented and to provide support for a wide variety of applications, ranging from browsing and data transfer to more complex and interactive applications that go far beyond the tripleplay service vision—e.g. data, voice and video—and including augmented and virtual reality interactions, HDTV broadcasting and video on demand, online gaming experience, etc. However, different services are characterized by different quality constraints on the communications infrastructure, yet bound to the rigid layered architecture designed in the ’70s. In such framework, performance assurance and optimization represents a hard task, due to the fact that each protocol is designed to work with different goals and without being aware of the behavior of the other protocols either in the network as well as within the same node. Indeed, interactions among protocols at different layers of the protocol stack can potentially jeopardize the overall performance, and are difficult to quantify, foresee and control. It is clear that single layer optimization does not represent a suitable approach to provide controlled quality (being performance dependent on the interaction of all layers). Moreover, cross-layering (as it is usually found in the literature) is not going to be the ultimate solution, since it is often “static” and This work has been partially supported by the Italian National Project: Wireless multiplatfOrm mimo active access netwoRks for QoS-demanding muLtimedia Delivery (WORLD), under grant number 2007R989S focused on specific objectives, not considering the dynamics of the networking infrastructure but also the variable and evolving needs of the user applications and services. In addition to ”internal” interactions described above, performance is heavily influenced by the complex interactions among network elements (end-systems, routers, etc.), requiring proper coordination of devices along the data path to support QoS constraints. Clearly, the need for suitable architectures to provide endto-end service-oriented performance control and optimization is emerging as a central point in the design of the Future Internet. To this aim, a new networking paradigm has been recently proposed in the literature, i.e. “cognitive networking” [1]. Cognitive networks are composed of intelligent nodes, capable of reasoning about the environment they live in and acting in order to meet a global end-to-end goal, while continuously learning about the operating context and consequences of its actions. Cognition should enable to reduce the complexity of management of the network by supporting its dynamic adaptation and self-configuration in order to support the timevarying requests of the users. This “cognition loop”, graphically represented in Fig. 1, is central to any cognitive architecture. According to this cycle, during the sensing stage a cognitive entity acquires knowledge about the environment and pre-processes it. Afterward, the reasoning, driven by end-to-end principles, takes place during the planning stage while the actual decision is taken in the decision stage. Finally, in the acting stage, actions are executed and their effect evaluated, by sensing the environment again. Cognitive networking clearly needs cross-layering to operate. In this framework, cross-layering represents the mean to provide optimization, while the “cognitive engine” represents the learning, adaptation and decision process which drives it to achieve end-to-end goals. Several cognitive network architectures are available in the literature, dealing with different stages of the cognition loop. Among the others, planning, i.e. reasoning, and learning are the parts of the cycle that have received by far the most attention. Relevant considerations are drawn in [3], where Langley et al., discussing the research challenges related to cognition, argue that in order to support reasoning, cognitive architectures must be capable of “representing relationships Sense Env. Plan Learn Act Fig. 1. Decide The cognition loop (adapted from [2]) among beliefs”. In the authors’ opinion, such skill can be developed by means of tools like Bayesian networks, neural networks, and first order logic. A more practical perspective is provided by Thomas et al. [1], who list some other machine learning algorithms apt to be used for the reasoning process, such as genetic algorithms, learning automata, and expert systems. However, rather than giving some indications about which particular technique should be used, they offer two insightful guidelines: (i) they suggest that the choice of the right technique (or techniques) largely depends on the problem to be solved, and (ii) whatever the algorithm chosen, it needs to converge before environmental conditions change. Also in [4], the authors advance the idea that more than one reasoning technique could be selected for a particular situation and propose to equip cognitive networks with a whole set of tools, rather than just a single tool. However, no explicit mention is given on how to build such a set of tools. A remarkable approach is provided in [5], where the use of fuzzy logic is motivated by the idea of reproducing the way human beings reason. As correctly summarized in [2], the techniques used in cognitive networks for reasoning purposes are limited in number and often not justified over other available alternatives. In addition, it appears that the cognitive networks proposed in the literature, when addressing the reasoning problem, do not explicitly consider cross-layer relations. In this framework, the paper introduces the usage of graphlike structures, commonly known as fuzzy cognitive maps, to explicitly represent cross-layer and network-wide interactions, and use such information as a base for the reasoning process. The remainder of this paper is organized as follows. We begin Section II by describing the basics of fuzzy cognitive maps. In Section III we analyze how this tool can be employed to foster reasoning in a cognitive network node. Section IV presents a possible application of FCMs in a cognitive node. Finally, we draw our conclusions in Section V. II. F UZZY C OGNITIVE M APS Fuzzy cognitive maps (FCMs) were conceived in 1986 by Kosko [6] as a means for modeling (possibly dynamical) systems through the causal relationships that characterize them. Graphically, an FCM is rendered as a direct graph, in which a node represents a generic concept (e.g. an event or a process) and edges between any two concepts mean that there is a causal relation between them, the cause being the node from which the arrow starts. Nodes and edges can in principle be fuzzy, in that they may take any value in the continuous sets [0, 1] and [−1, 1], in order. However, it is often the case that FCMs have both concepts and edges in the discrete sets {0, 1} and {−1, 0, 1}. Such maps are better known as simple FCMs and are particularly convenient for outlining quickly the behavior of a model. A zero-valued concept denotes that the concept is ‘off’, ‘inactive’ or in a ‘low’-state, whereas a concept set to one means the opposite. As for edges, a null value indicates that there is no causal relation whatsoever, whereas positive and negative values reveal a positive and a negative causality, respectively. Also, no concept can cause itself, hence edges leaving and entering the same node cannot exist. The state of a system having n distinct concepts is a vector of dimensions 1-by-n. In the inference process, this vector is repeatedly multiplied by the FCM matrix and the result thresholded each time, until it converges either to a fixed point or to a limit cycle. Most notably, inference is guaranteed to converge to either one of the two cases if concepts take value in any finite discrete set [7]. FCMs have some strong points that make them favorable when compared to other reasoning formalisms. With respect to Bayesian networks, FCMs are more powerful, for they allow for the presence of feedback loops. Although this restrains us from using the inference techniques applicable in loop-free structures, is not a major problem thanks to the straightforward inference method peculiar to FCMs (based on just multiplication and thresholding operations). Furthermore, it may be questioned that also other techniques exists that can approximate any dynamic system, such as neural networks. However, in a neural network trained to model a particular system, its inner configuration does not reproduce faithfully the relationships occurring among the entities the system is composed of. Conversely, FCMs rely on the causal relationships tying together system internals. Another considerable advantage is the possibility of merging together multiple FCMs: the combined FCM is a (possibly weighted) sum of the original FCMs. This has its roots in the primary purpose for which FCMs were created: to allow experts to represent their causal knowledge about some situation. Different experts, however, may have different opinions about the same matter, and thus may encode differently their beliefs, hence drawing conflicting FCMs. Merging helps to smooth discrepant biases and weights can be employed to give more or less credit to each expert. However, there exist some disadvantages as well. One major drawback concerns the automatic synthesis of FCMs: as pointed out in [8], inferring causality between events based on observational data (without any a priori knowledge) is not immediate and it differs substantially from the process of inferring a simple correlation. Another drawback regards abductive reasoning, i.e. the process of stating which causes are responsible for a given effect: such a task is shown to be NP-hard [9]. Despite such problems, FCMs have been used in different domains for many different purposes, including for instance the creation of medical decision support systems [10] and the simulation of virtual words [11]. The interested reader can find a more thorough survey in [12]. III. F UZZY C OGNITIVE M APS FOR C OGNITIVE N ODES FCMs represent a suitable model for dynamic systems and can also represent (or embed) cross-layer and network-wide interactions, thereby enabling a truly holistic approach to the problem of cognition in intelligent networks. Moreover, FCMs have an inherent mergeable property: potentially, combining several FCMs allows to exchange knowledge. The following paragraphs discuss issues related to the usage of FCMs to support reasoning in cognitive nodes. A. Reasoning The purpose of a cognitive network is to enable end-to-end performance optimization. As performance depends on several interacting factors and parameters associated to different layers of the protocol stack, the focus of the present work is on crosslayer interactions. In this scenario, it appears logic to map concepts to communication protocol internals. To this end, we propose to distinguish three classes of concepts. A first class comprises the concepts related to quality-of-service metrics the system pursues; concepts in this class may be ‘throughput’ and ‘endto-end delay’. A second class of concepts includes all the concepts related to the environment in which the cognitive entity is; concepts such as ‘bad channel conditions’ and ‘congestion’ belong to this category. A third class includes the set of actions (or a subset) that each protocol can perform; concepts like ‘use of RTS/CTS’ and ‘fragmentation’. Mathematically, the system state vector s is composed of three sub-vectors representing the three classes discussed before (q, e, a). This representation allows for the reformulation of the tenets introduced in [1]: the FCM needs to converge to a solution state s∗ = (q, e, a∗ ) by finding a vector a∗ such that the constraints expressed by q are satisfied before environmental conditions e change. This means that the FCM is used to find which causes generate a specific effect, or in more general words, to perform abductive reasoning [3], which, as previously mentioned, is shown to be a NP-hard problem [9]. However, this issue can be mitigated, by noticing that the search space is reduced: only the elements of a∗ are to be found, since both q and e are given. Furthermore, as the cognitive node gains experience, a parallel module could be employed to keep track of the most likely combinations of a∗ , so that they can be evaluated according to their probability. However, this issue is out of scope of the paper and will be considered in future work on the topic. Another issue deals with the domain concepts are mapped to. To begin, it is worth noting that the domain of some concepts is clearly binary. For instance ‘fragmentation’ is a dichotomy: either it is used or it is not. No other situation is acceptable. However, other concepts may not be well mapped to binary sets. Let us suppose we want to use the concept ‘TCP congestion window’. Clearly it is not possible to identify situations where congestion window is used and situations where it is not. Also, modeling situations in which the congestion window is increasing or non-increasing may be not precise enough. Rather, situations in which the congestion window increases, decreases or remains stable are undoubtedly more realistic. Such concepts may be expressed effectively by trivalent variables, taking values in the set {−1, 0, 1} [7]. This reasoning can be extended even further, by taking into account more levels: a hypothetical congestion window may increase much, not so much, remain stable, decrease a little, or decrease very much. Anyway, we cannot be sure that a nlevel concept leads to more accurate reasoning than a m-level concept. Nor can we say anything about the accuracy of FCMs with mixed concepts (e.g., binary and ternary), as, to the best of our knowledge, they have not been studied in the literature. It is clearly preferable to have a mapping of a small number of concepts to a small number of levels, since the inference process is assured to converge within lc steps, c and l being the number of concepts and the number of levels, in order [7]. Also, the fact itself of mapping virtually boundless concepts to bounded sets may be problematic. For instance ‘end-to-end delay’ has a trivial lower bound, yet no upper bound at all. Even if a simple piecewise-linear mapping were adopted, so to set to the boundary value all the values higher than a threshold, the problem would concern how to correctly choose such a threshold. Another question is whether it is possible to comprise mutually exclusive concepts. This is the case, for instance, of a node equipped with two different implementations of TCP, which clearly cannot be used at the same time. In such case we could resort to the formalism used in Competitive FCMs [10], in which such concepts are linked to each other by means of totally negative edges: this way when either one of the concepts is triggered, the other is deactivated. B. Learning Cognitive nodes must perform continuous learning— making it possible to spot which concepts are causally related to one another and which are not. Redundant concepts could also be detected. One of the simplest algorithms to learn, i.e. to update an FCM, is Differential Hebbian Learning (DHL), derived from the observation that human beings infer causality when they witness some variation between two variables [13]. According to this learning algorithm, the variation of edge fij is updated proportionally to the product of the time derivatives of the concepts Ci and Cj : derivatives encode changes and the product correlates these changes. Formally, the variation of such edge at time step t is given by: t−1 t = −fij + Ċit Ċjt f˙ij (1) Where the dot notation indicates the derivatives. The first term in the right-hand side of (1) is necessary to set to zero an edge when there is no variation in the relative concepts. Accordingly, the edge fij at step t is computed as the value it had at time step t − 1 plus the variation: t−1 t t fij = fij + f˙ij = Ċit Ċjt (2) Also, a parameter η to modify the responsiveness of the learning algorithm can be defined. This parameter, called “learning rate”, usually belongs to the set (0, 1] and smooths the edge variation: values close to zero result in a slowly changing FCM, while values close to unity produce a highly responsive FCM. Hence, the final equation is:   t−1 t−1 t (3) = fij + η −fij + Ċit Ċjt fij C. The Proposed Approach Summarizing the discussion above, in order to implement FCMs within cognitive nodes it is necessary to follow three steps: 1) To identify which specific variables of the various communication protocols could be of interest for the intended application. In particular, concepts should be categorized according to what they represent: everything that can be tuned should belong to the ‘action’ class, everything that cannot be controlled directly and conveys a QoS-related meaning should belong to the ‘QoS’ class, and everything else (basically variables that cannot be controlled and are not QoS-related) should belong to the ‘environment’ class. As an example, let us suppose we want to model the behavior of TCP over the wireless medium. Some concepts that can be used are: the TCP congestion window, the packet error probability, and the throughput. If we are allowed to drive the congestion window, then such a concept belongs to the ‘action’ class. No direct control can be exercised on the error probability, which should therefore be classified as an ‘environment’ concept. Finally, the throughput represents a measure of the performance and should belong to the ‘QoS’ class. If we label the concepts with the letters w, e, and t, in order, the resulting preliminary FCM will be: ⎞ ⎛ 0 fwe fwt 0 fet ⎠ (4) F ′ = ⎝few ftw fte 0 It should be noticed that the elements on the diagonal are set to zero by default, as concepts cannot cause themselves. Instead, all the other elements can be non-zero, at least in principle. 2) To define the domain of each variable, avoiding continuous sets and keeping discrete sets as small as possible (or else being prepared to increased computational complexity). In finding the right domain for boundless concepts, it could be of help to think of a threshold, so that greater (or lower) values entail the same causality as the threshold value. With respect to the example we have introduced in 1), the domain of the TCP congestion window could be the discrete set {−1, 0, 1}, useful to represent situations when the window increases, decreases or remains stable. The error probability could instead be mapped to the discrete set {0, 1}, indicating absence or presence of errors; however, a proper threshold has to be chosen (for instance, according to the transmission modulation used), so to distinguish values of the error rate that affect the system behavior from values that do not affect it. Finally, the same domain could be apt for representing the throughput: the lowest value indicates non-satisfactory situations, the highest a favorable situations. 3) To design and implement the algorithm for building and updating the FCM, embedding into the matrix any available a priori knowledge. As it will be shown in the next section, the choice and configuration of the algorithm is critical for achieving good results. For instance, the fact that the throughput does not cause changes in neither one of the other concepts is translated by setting to zero the last row of the FCM in 4. The possible final version of the FCM can then be written as follows: ⎞ ⎛ 0 fwe fwt 0 fet ⎠ (5) F ′′ = ⎝few 0 0 0 It should be noted that the first two points are more similar to a pre-processing stage, rather than the reasoning stage itself. However, the two stages cannot be separated from one another and have to be accomplished in a jointly fashion. IV. T EST C ASE In order to provide a preliminary validation of the proposed approach, this section proposes its application in a sample scenario. The test case is based on the data produced for the experiments in [14], where the performance of a VoIP Wi-Fi system is investigated. More specifically, experiments are conducted to measure how many VoIP calls the system supports given specific quality constraints, as a function of four inputs at different layers, e.g. data rate at physical layer, maximum number of retransmissions and packet error rate at MAC layer, voice packet interval at application layer. The first step is to classify the concepts. Physical data rate, voice packet interval and maximum number of retransmission all belong to the ‘action’ class. The only output, i.e. the number of calls supported, is also the only concept in the ‘QoS’ class. Packet error rate depends on uncontrollable parameters (i.e. behaviour of the wireless link, modulation, etc.), therefore it is classified in the ‘environment’ set. The second step is concerned with finding suitable domains for the concepts. All concepts in the data base can be mapped to a binary domain: either we have a high physical data rate p r d i t Fig. 2. The FCM adopted in the test case. p, d, r, i, and t stand for packet error rate, physical data rate, maximum number of retransmissions, voice packet interval, and throughput, respectively. or a low one, either we have a long voice packet interval or a short one, and so on. To further distinguish between highand low-concepts we have decided to keep all the entries that are unambiguously high or low. For instance, in the case of physical data rate, only the entries at 11 or 1 Mb/s, corresponding to the maximum and the minimum, have been held (values of 2 and 5.5 Mb/s have been deleted). Also, the number of calls has been filtered and mapped to the domain {0, 1}, equivalent to low- and high-throughput situations. Finally, step three deals with the actual implementation of the FCM. The a priori knowledge we have embedded in the FCM regards the number of calls and the packet error rate concepts. We assume that the number of calls cannot cause any other concept, as they represent the ”output” of the system: this is translated by setting to zero all the elements in the row corresponding to the number of calls. Also, it makes more sense that packet error rate implies some change in the other concepts, rather than the other way round. This means that no edges in the FCM point to the packet error rate concept; instead, the packet error rate concept points to all the others. Ultimately, physical data rate, maximum number of retransmissions, and voice packet interval are controllable parameters and thereby can be assumed as independent from one another. The resulting FCM is depicted in Fig. 2. Its mathematical equivalent is: ⎞ ⎛ 0 0 0 0 fdt ⎜ 0 0 0 0 frt ⎟ ⎟ ⎜ ⎜ 0 0 0 fit ⎟ (6) F =⎜ 0 ⎟ ⎝fpd fpr fpi 0 fpt ⎠ 0 0 0 0 0 An important feature of this particular FCM is that no loops are present. This, in particular, means that the inference process converges in just one step. To validate the FCM, we shuffled the data base, in order (i) to avoid that similar situations were placed in the same area, and (ii) to randomize the experiment. We started by implementing the algorithm for updating the FCM at each step. Results are presented in Fig. 3, where the effect of only two causes, namely the physical data rate and the number of retransmissions, has been studied (for clarity’s sake). In each subfigure the graph at the top shows what the real throughput is (continuous line) and what the throughput is according to the FCM (dashed line). The graph in the middle depicts how reliable is such predicted throughput, by performing the XNOR operation between the real data and the predicted data: if the FCM predicts a high throughput (or low throughput) and the real throughput is actually high (or low) the graph shows a high logical value (correct prediction); in the opposite case, the graph shows a low logical value (wrong prediction). The graph at the bottom shows how the edge of the FCM vary as a function of time: a continuous adaptation of the FCM leads to a worse performance and a more unstable FCM. Better results can be achieved by changing the FCM edges only when prediction fails. However, this assumes some external knowledge, capable of comparing what has been forecast to what actually happened, thereby enabling or disabling the DHL algorithm. A more thorough situation is reproduced in Fig. 5, where the effects of all the causes are investigated at the same time. Notably, the number of calls has been mapped as a threevalued concept, meaning the FCM could predict not only low- and high-throughput values, but medium values as well. Due to the greater complexity, predictions are less accurate, and heavily depend on the thresholds used for the mapping operation. The impact of different values for the learning rate parameter η is investigated in Fig. 4. Apparently, for the specific scenario, a less dynamic FCM (η ∈ [0.1, 0.4]) is able to achieve better results than a more dynamic FCM. Fig. 4 shows the evolution of the performance as a function of the learning rate parameter η. Specifically, it shows what is the performance obtained guessing the throughput value by means of the FCM (continuous line) and that obtained by applying a static decision, e.g. deciding that the throughput availability is always high (dashed line). V. C ONCLUSIONS The paper proposes a novel tool to support reasoning in cognitive nodes, using the Fuzzy Cognitive Maps framework able to represent information about correlation among operating parameters at different layers—thus providing a way to embed information about cross-layer interactions within the cognitive cycle of a node. However, the paper only represents the first step in the direction of enabling quantitative reasoning in cognitive networks. As a next step, ongoing work is focused on evaluating the ability of cognitive nodes to merge the FCM provided by neighboring nodes and assess costs and benefits associated: even if it is straightforward to combine multiple maps with one another [13], it is not that obvious that this operation will lead to greater performance achievements. Moreover, a particular format that unambiguously represent FCMs has to be devised, as well as a proper signaling method for their exchange. Finally, in order for this tool to be implemented in real networks, its effectiveness has to be improved: reasoning has to be able to include not only intra-flow interactions but also inter-flow and inter-nodes interactions. (a) Fig. 4. Impact of the learning parameter η on the prediction reliability. Confidence intervals computed with p = 0.995, DoF= 49. (b) Fig. 3. Performance achieved enabling the FCM update: a) at each step, and b) only in case of prediction errors. The subgraph in the middle shows that, by updating the FCM only when errors occur, predictions are more reliable. η = 0.5. Fig. 5. R EFERENCES [1] R. W. Thomas, L. A. DaSilva, and A. B. MacKenzie, “Cognitive networks,” in First International Symposium on New Frontiers in Dynamic Spectrum Access Networks (DySPAN 2005), Nov. 2005, pp. 352–360. [2] C. Fortuna and M. Mohorčič, “Trends in the development of communication networks: Cognitive networks,” Computer Networks, vol. 53, no. 9, pp. 1354–1376, 2009. [3] P. Langley, J. E. Laird, and S. Rogers, “Cognitive architectures: Research issues and challenges,” Cognitive Systems Research, vol. 10, no. 2, pp. 141–160, 2009. [4] P. Mähönen, M. Petrova, J. Riihijarvi, and M. Wellens, “Cognitive wireless networks: Your network just became a teenager,” in Proc. of the 25th Conf. on Computer Communications (INFOCOM 2006), Barcelona, Spain, 2006. [5] N. Baldo and M. Zorzi, “Cognitive network access using fuzzy decision making,” in IEEE International Conference on Communications (ICC ’07), Jun. 2007, pp. 6504–6510. [6] B. Kosko, “Fuzzy cognitive maps,” Int. J. Man-Mach. Stud., vol. 24, no. 1, pp. 65–75, 1986. [7] A. K. Tsadiras, “Comparing the inference capabilities of binary, trivalent and sigmoid fuzzy cognitive maps,” Information Sciences, vol. 178, no. 20, pp. 3880–3894, 2008, special Issue on Industrial Applications [8] [9] [10] [11] [12] [13] [14] Throughput as a three-valued concept. η = 0.1. of Neural Networks, 10th Engineering Applications of Neural Networks 2007. D. Fletcher, D. Nguyen, and K. Cios, “Autonomous synthesis of fuzzy cognitive maps from observational data: Preliminaries,” in IEEE Aerospace Conference, 2005, pp. 1–9. Y. Miao and Z.-Q. Liu, “On causal inference in fuzzy cognitive maps,” IEEE Trans. Fuzzy Syst., vol. 8, no. 1, pp. 107–119, 2000. C. D. Stylios, V. C. Georgopoulos, G. A. Malandraki, and S. Chouliara, “Fuzzy cognitive map architectures for medical decision support systems,” Applied Soft Computing, vol. 8, no. 3, pp. 1243–1251, 2008, forging the Frontiers – Soft Computing. J. A. Dickerson and B. Kosko, “Virtual worlds as fuzzy cognitive maps,” in IEEE Virtual Reality Annual International Symposium, Seattle, WA, USA, 1993, pp. 471–477. J. Aguilar, “A survey about fuzzy cognitive maps papers,” International Journal of Computational Cognition, vol. 3, pp. 27–33, 2005. B. Kosko, Neural Network and Fuzzy Systems. Prentice-Hall, 1992, ch. Synaptic Dynamics I: Unsupervised Learning, pp. 152–159. F. Granelli, D. Kliazovich, J. Hui, and M. Devetsikiotis, “Performance optimization of single-cell voice over WiFi communications using quantitative cross-layering analysis,” in Managing Traffic Performance in Converged Networks, ser. Lecture Notes in Computer Science. Springer Berlin, 2007, vol. 4516/2007, pp. 386–397.