Customizing AOSE methodologies by reusing AOSE features Future large-scale software development projects will require engineering support for a diverse range of software quality attributes, such as privacy and openness. It is not feasible to create one monolithic methodology to support all possible quality attributes. Instead, we expect AOSE methodologies to be created and reused in a modular way. A modular approach enables developers to build custom project-specific methodologies from AOSE features in the same way applications are built from reusable off-the-shelf components.In this paper, we provide a conceptual framework for creating and reusing modular methodologies. This conceptual framework is based on the concept of an AOSE feature, which performs one or more development activities, such as analysis, and addresses one or more quality attributes, such as privacy. An AOSE feature encapsulates software engineering techniques, models, supporting CASE tools and development knowledge such as design patterns.We illustrate the applicability of our approach by modularizing four existing methodologies, Prometheus, ROADMAP, CaseLP and the conventional OO approach, into AOSE features. Agent technology offers greater potential than conventional technologies in engineering intelligent and adaptive systems in open environments. Such systems have significant commercial value in the software industry, and are generally considered the main application domains for agent technologies. They present new challenges in engineering traditional quality attributes such as security, and demand new quality attributes such as privacy.. One approach to agent-oriented software development is to have an all-embracing methodology in the way that Rational Software promotes the Rational Unified Process. This is problematic for two reasons: (a) it needs to be constantly updated and possibly refactored to take into account new developments, and (b) it promotes lock-in to a particular supplier of a methodology, which is often undesirable.. In this paper we propose an alternative, modular approach to the development of AOSE methodologies. We advocate that each new project has its own custom process, built up from components of other methodologies. If one part of the system requires a stringent view with respect to privacy, then a methodology that incorporates privacy well can be adopted for that part. If team structures need to be modeled in another part, choose a methodology that supports teams for that part. If intricate design of individual agents is needed for yet another part, choose a methodology that has a graphical design tool associated that might help to visualize the features.. In order for this alternative approach to be successful, features need to be isolated from specific methodologies. [7] describes a preliminary attempt to merge two existing AOSE methodologies, Prometheus [14] and ROADMAP [5] , by isolating a set of general-purpose common elements. The remaining parts of the two methodologies were then componentized into special purpose "value-adding" features.. Our vision is to allow the re-use of methodology features much like developers building applications from third party off-the-shelf components. This empowers the developer to assemble a methodology tailored to the given project by adding appropriate features to common elements. We envisage that the methodology becomes a living artifact of the project, and changes according to system requirements. Methodology features can be created to handle particular new quality attributes, such as politeness say, and be introduced into the project when appropriate.. The benefit of a modular approach is clear. Instead of creating incompatible techniques, models and CASE tools for each methodology, modular and reusable solutions can be created once, and shared within different methodologies. Specialized features, such as support for safety in embedded medical applications, can be more accessible to developers than previously, representing significant savings in development cost and learning cost.. The structure of the paper is as follows. Section 2 discusses the new challenges of software quality for intelligent adaptive systems in some detail. Section 3 presents the feature-based conceptual framework. Section 4 discusses how four methodologies can be 'featurised', namely ROADMAP [5] , CaseLP [2, 9, 10, 11] , Prometheus [14] and conventional OO [1] and presents the resulting AOSE features. Section 5 gives an example of how different AOSE features may be used for different aspects of a sample system. Section 6 concludes and outlines future work. In this paper we have described the need and benefit of creating and reusing AOSE methodologies in a modular fashion. We have proposed a conceptual framework for creating and reusing modular methodologies, based on the concept of AOSE features. AOSE features encapsulate techniques, models, tools and development knowledge such as design patterns. They are considered stand-alone units and may be applied with consistent syntax and semantics.. We applied the feature-based approach to four existing methodologies, namely Prometheus, ROADMAP, CaseLP and the conventional OO approach, and obtained six sets of AOSE features. The AOSE features are used in an illustrative example and are shown to address various real-world issues.. In future we intend to further improve and formalize the process of creating and using AOSE features. We also intend to further verify this approach by applying it to other existing AOSE methodologies. AOSE research should address the challenges of engineering intelligent adaptive systems in open environments. To do so, we suggest that methodologies can no longer be monolithic and static. Instead, they should be created as modular features, and used as a dynamic and evolving artifact of a given project.

O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Asymptotic normality of sample covariance matrix for mixed spectra time series: Application to sinusoidal frequencies estimation Abstract-This correspondence addresses the asymptotic normal distribution of the sample mean and the sample covariance matrix of mixed spectra time series containing a sum of sinusoids and a moving average (MA) process. Two central limit (CL) theorems are proved. As an application of this result, the asymptotic normal distribution of any sinusoidal frequencies estimator of such time series based on second-order statistics is deduced. There is considerable literature (e.g., [1] - [4] ) concerning the asymptotic Gaussian distribution of the sample mean and the sample covariance matrix of the real-valued stationary processes xt. Several situations have been considered, among them when x t is a generalized linear process, satisfies mixing conditions, or is Gaussian with a power spectral density. However, few contributions have been devoted to the asymptotic distributions of the sample covariance matrix associated with mixed spectra time series. Subsequent to the revision of this manuscript, [5] was brought to our attention, where this problem is tackled with quite advanced statistical tools such as martingale theory.. We will be concerned with real-or complex-valued 1 Publisher Item Identifier S 0018-9448(01)02885-1. 1 Complex processes appear as complex envelope of bandpass real processes.. respectively in the real and the possibly noncircular 2 independent. In this case, x t is a wide-sense-stationary process. 2) We can assume that k are nonrandom unknown parameters 3 and so x t is not a wide-sense-stationary process.. We are interested in the asymptotic distribution of the sample mean The asymptotic normality of the sample mean mn and sample covariance matrix R R R n is proved in Section II. As an application of this result, the asymptotic normal distribution of any sinusoidal frequencies estimator of such time series, based on second-order statistics, is derived in Section III.. The problem of harmonic retrieval and, more generally, exponential retrieval permeates the applied sciences and engineering. Although one-dimensional (1-D) exponential retrieval is most common (e.g., see [17] and references therein), the multidimensional case appears in a variety of important applications like joint azimuth, elevation, delay, and Doppler estimation in antenna array processing for communications [3] - [6] , synthetic aperture radar (e.g., [7] , [10] and references therein), and also certain signal separation problems in chemistry.. A wide variety of nonparametric and parametric techniques have been developed for the harmonic retrieval problem in one or more dimensions. Underpinning technique and practice of harmonic retrieval is the issue of identifiability, i.e., uniqueness of model parameterization. Owing to the work of Carathéodory [1] and later Pisarenko [11] , this issue is well understood for the case of 1-D harmonics. In the case of multidimensional harmonics (and, more generally, exponentials), one can apply the 1-D result separately in each dimension, but this has two serious drawbacks. First, this approach does not reap the benefits of the rich multidimensional structure, leading to uniqueness conditions that are unnecessarily strict. Second, the association problem (i.e., whether the "pairing" of frequencies along different dimensions is unique) remains.. The uniqueness problem is hard for harmonics in two or higher dimensions. Only partial results are known for the two-dimensional (2-D) case [8] , [10] . For example, [10] considers one possible formulation of the 2-D harmonic retrieval problem wherein the frequencies are assumed to occur at the intersections of certain unknown grid lines in the 2-D frequency domain, and provides sufficient conditions for identifiability. In the case of a single realization of the 2-D harmonic mixture, the conditions in [10] require that one has sufficiently many samples in each dimension for the 1-D result of Carathéodory to kick in.. The contribution of this correspondence is a general uniqueness re-

O O O B I I O B I I I O O O O O O O O O O O O O O O O O O B I I O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Non-adaptability measures in the pseudo-questionnaires context Measuring the degree of non-adaptability of a partition to a criterion, represented by a reference partition, is an essential step in pseudo-questionnaires theory. In this work we characterize axiomatically the measure of non-adaptability in a general context. We base it on pre-orders on the set of all the possible experiences (complete or incomplete partitions). The construction of this measure is crucial for practical applications. It can be done in a natural way starting from the atoms of the partitions and constructing the non-adaptability measure by a process of successive aggregations made by suitable aggregation operators. Picard [14] introduced in 1965 the questionnaire theory in order to formalize the classification processes (such as census) according to the answers given to some questions. In 1970, Terrenoire [18, 19] proposed an extension of this formalization, the pseudo-questionnaires, which allows to deal with the inquiring processes, that is, to assign an element to a subset of a given classification. These studies were later continued by some other authors (see, e.g., [5, 7] ). The main difference between questionnaires and pseudo-questionnaires is that questionnaires always consider direct questions (for instance ''Are you European?'', if we are interested in classifying European and no European people) and pseudo-questionnaires consider indirect questions (for instance ''Do you have headache?'', if we are interested in determining the disease of the patient).. Both, questionnaires and pseudo-questionnaires, have been defined in terms of probabilities of questions and answers. However, in many situations no probability distributions are available and nevertheless classifying processes have to be built up. Thus, some generalizations of questionnaire and pseudo-questionnaire theory have been proposed by Bertoluzza [3] and Bertoluzza and Salas [4] . In these generalizations the answers, which are propositions, are represented, via the Stone Theorem, by subsets of a suitable reference space X. In this framework the questions are described by the expected answers, that is, by a collection of subsets which is a complete or incomplete partition.. In Picard's formalization, the questions determine the ultimate classification, whereas in the Terrenoire approach the desired final partition (the reference partition) is given ''a priori''; questions are used to reach the goal, that is, to assign an individual to a class of the a priori classification.. A classical example of application of the pseudo-questionnaires is given in the medical environment. In this framework, the goal is ''pick out individual diseases''. Thus, the final partition is the class of the sets A i each of which represents the proposition ''the disease is d i '', i = 1,2,. . . , n (A i are supposed to be pairwise disjoint). Questions can be clinical tests, radiographs and so on; in general, they do not reach an unquestionable classification, but only give a sequence of partitions which approximate more and more the right individuation of diseases. The sequence of questions is complete if the obtained partition at certain point is a refinement of the reference partition. Many times, a weaker purpose can be obtained: individuate a particular disease. In this case, the process concludes if we can obtain a path composed of questions (tests) and answers (results) such that the logical conjunction of the answers is represented by a collection of disjoint sets, each of them is contained in a element of the partition.. There exist many problems of this kind in economy, social sciences, physic and so on. They are characterized by the impossibility of making direct questions such as ''Are you in the class A i ?''. In these cases, it is only possible try to guess the result by means of indirect questions.. Since it is very difficult to obtain the complete individuation process, it is natural to ask questions until a partition is obtained, which approximates the reference partition, and therefore a measure of ''fitting'' is needed. Montes et al. [11] [12] [13] proposed a partial answer in the case where the obtained partition and the reference partition have the same number of elements. However, in the general case (in particular in medical tests), the number of elements of both partitions are not equal and nevertheless a measure of ''fitting'' is necessary. The necessity of comparing any two partitions motivated this study. In this paper we present the results obtained in this line of research. Our goal is to provide a proper definition of measure of non-adaptability, as a tool to compare a partition obtained by posing questions with a given one. Apart from the general study, some specific kind of measures of non-adaptability are studied, the compositive ones, in order to use them in practical situations.. Our paper is organised as follows. Section 2 features a brief review of known concepts of partitions, nonadditive measures and some specific aggregation operators: t-norms and t-conorms. In Section 3 we introduce the concept of non-adaptability measure, we relate it with the adaptability order and we find its main and natural properties. This study is concluded in Section 4 with the characterization of left, right-atom and totally compositive non-adaptability measures. In these cases the non-adaptability measure can be built by combining the measure of non-adaptability of each atom, and such combination is done by means of t-norms and t-conorms. A summarizing conclusion is provided. In this work we have introduced a natural measure to quantify the degree of ''non-adaptability'' from the classification obtained by a pseudo-questionnaire to the objective (partition of reference). This measure could allow us to obtain a degree of reliability of a pseudo-questionnaire before its generalized use. Although this was our initial goal, the obtained measures could be considered in any field where a classification is required.. We have presented an axiomatic definition of the concept of non-adaptability measure, starting from some natural requirements. However, in practical situations, an explicit expression is very useful. Thus, we have mainly focused our attention on the non-adaptability measures which present some kind of compositive property. The left-compositive non-adaptability measures are useful to aggregate the ''non-adaptability'' degree of two samples without common elements (for instance, two disjoint families of patients) to a specific objective (a collection of diseases). The right atom-compositive non-adaptability measures are considered when we are interested in aggregating the comparison of one element (for instance, a patient) with an objective (a collection of diseases) and its comparison with another objective (a different collection of diseases). When we consider totally compositive non-adaptability measures, both aggregations can be considered. In these cases, we have proven that the appropriate way of composing the non-adaptability from the atoms is by means of t-conorm (left-compositive) and t-norm (right atom-compositive).. In the future, we will focus our attention on the branching property. As this property characterizes all the uncertainty measures involved in questionnaires and pseudo-questionnaires, it seems to be reasonable to impose this condition also to the non-adaptability measure, as we will use this function in a process, the pseudo-questionnaire, which, at the end, splits subsets in smaller ones. The idea is to characterize the class of measures of non-adaptability such that the difference between the measure of non-adaptability of a partition P 1 to another partition P 2 and the measure of non-adaptability of the subpartition P 0 1 to P 2 only depends on the modified sets, where P 0 1 is obtained by breaking a element of P 1 in two sets.

O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Fast hazard detection in combinational circuits In designing asynchronous circuits it is critical to ensure that circuits are free of hazards in the specified set of input transitions. In this paper, two new algorithms are proposed to determine if a combinational circuit is hazard-free without exploring all its gates, thus providing more efficient hazard detection. Experimental results indicate that the best new algorithm on average visits only 20.7% of the original gates, with an average runtime speedup of 1.69 and best speedup of 2.27 (for the largest example). Asynchronous design has been the focus of renewed interest and research activity because of the potential benefits of improved system performance, low power consumption, and modularity of designs. Several large-scale control and data-path circuits and microprocessors have been designed using asynchronous design [6] .. In designing asynchronous circuits, it is extremely important for correctness to ensure that the circuits are free of hazards in the specified set of input transitions. Much of the original work on combinational hazards was initiated by Huffman, McCluskey, and Unger [9] . This work was further extended by several other researchers: a multilevel hazard analysis technique was proposed by Beister [1] and hazard simulation techniques were proposed based on multi-valued algebra, including 3-valued algebra [3, 10] and 5-valued algebra [5] . Among these efforts, Kung [4] introduced a multi-valued algebra which allows to simulate circuits to detect combinational hazards, both function and logic hazards. Given a circuit with n gates and a set of t input transitions, his method determines the hazard behavior of the circuit in O(nt) time. But even if his method is asymptotically optimal, the algorithm still must traverse the entire circuit (i.e. n gates) once for each of the t specified input transitions, and runtimes may be excessive with large n and t. Therefore, faster hazard detection is desirable.. The contribution of this paper is to introduce two fast algorithms to detect hazards in combinational circuits without exploring all the gates of the circuit. Experimental results indicate that the best new algorithm on average visits only 20.7% of the original gates, with an average runtime speedup of 1.69 and best speedup of 2.27 (for the largest example). These algorithms are the first to be proposed, of which we are aware, which provide systematic techniques for fast combinational hazard detection.. An important motivation of this work is that hazard detection is critical to a recent approach for asynchronous synthesis: using synchronous (i.e. potentially hazardous) CAD tools (e.g. [2] ). Traditional approaches to asynchronous multilevel combinational logic * This work was supported by NSF ITR Award No. NSF-CCR-0086036 and by a grant from the New York State Microelectronics Design Center.. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. synthesis are highly restrictive since only hazard-preserving transformations are allowed [4, 9] . However, depending on the actual set of input transitions, more powerful non-hazard-preserving transformations may lead to better multilevel implementations without introducing any hazards. Furthermore, currently there is a lack of widely available asynchronous (i.e. hazard-free) technology mapping tools. In sum, an asynchronous CAD flow can use existing synchronous multilevel synthesis and technology mapping tools to produce possibly better hazard-free multilevel logic. Hazard detection is then critical to verify the correctness of the resulting circuit.. Interestingly, our initial experimental results indicate that, when synthesizing asynchronous control circuits, synchronous CAD tools may introduce very few combinational hazards, and therefore may be a promising starting point for asynchronous control circuit synthesis. In the future, we intend to develop "hazard repair" algorithms for the few cases where the synchronous flow introduces new hazards.. The hazard detection problem can be formulated as follows. This paper presented two new algorithms for detecting hazards in combinational circuits. These algorithms detect hazards visiting only a small portion of the circuit and run faster than the straightforward Kung simulation algorithm. Furthermore, our initial results indicate that, in practice, synchronous CAD tools may introduce very few combinational hazards, and therefore may be promising in synthesizing asynchronous control circuits. We intend to develop "hazard repair" algorithms to fix the few cases where the synchronous flow introduces hazards. Also, there are recent asynchronous CAD flows [2] which use synchronous technology mapping and Kung-style hazard detection. We plan to incorporate the proposed optimized hazard detection tool into this flow. Combinational Circuits and Hazards. Let B = {0, 1} and Y = {0, 1, * }. A Boolean function f with n inputs and m outputs is defined as a mapping f : B n → Y m . This paper considers combinational circuits implementing Boolean functions, which are represented by logic networks. A logic network is a directed acyclic graph, G = (V, E), with V partitioned into three subsets called primary inputs, primary outputs, and internal vertices [7] . This paper considers combinational circuits having arbitrary finite gate and wire delays (an unbounded wire delay model) [8] . That is, the circuits must be glitch-free under all possible finite delay assignments to the gates and wires. A pure delay model is assumed as well. A pure delay can delay the propagation of a waveform, but does not otherwise alter it. That is, unlike the inertial delay model, this model conservatively assumes that glitches are not filtered out by delays on gates and wires.. An input state with n input variables is represented by a vector A = (a 1 , ··· , a n ) where a i ∈ B. An input transition where k inputs change is represented by a pair of input states (A, B) where values of two states disagree in k of the n variables [1, 8] . An input transition from input state A to B for a Boolean function f is a static transition if f (A) = f (B); it is a dynamic transition if f (A) = f (B). A function f which does not change monotonically during an input 34.5 transition is said to have a function hazard in the transition [1] .. If a transition has a function hazard, no implementation of the function is guaranteed to avoid a glitch during the transition. However, if f is free of function hazards for an input transition, an implementation may still have hazards due to possible delays in the logic realization; such hazards are called logic hazards [1] . Kung's Algebra. Kung's algebra [4] is a multi-valued waveform algebra which allows one to deal with Boolean values that change over time. A single Kung value represents an equivalence class of waveforms with the same basic behavior, i.e. same start value, same end Boolean value, and the same hazard behavior. For example, the Kung value D+ represents a waveform whose start value is 0, whose end value is 1, and includes at least one glitch during the value change, say 0 → 1 → 0 → 1. Similarly, the the Kung value S0 represents a waveform whose start value is 0, whose end value is 0, and includes at least one glitch during the value change, say 0 → 1 → 0. Figure 1 shows the set of Kung values, and the corresponding waveforms represented by these values.. Formally, Kung's algebra is a quintuple (K, +, ·, 0, 1) where K = {0, 1, ↑, ↓, S0, S1, D+, D−} and two operations + and · are defined using a partial order ≤ on K. Intuitively, given a, b ∈ K, a ≤ b means that "b is more hazardous than a" and a + b returns the maximal (with respect to ≤) Kung value that represents a possible waveform generated by "Boolean +" over any waveforms of a and b. a · b can be defined similarly. A Kung value is static if it is either 0 or 1. Otherwise, it is called non-static. If an output wire of a gate u is an input wire of a gate v, we say v is a parent gate or an output gate of u.

O O O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


An Optimal Resource Control Scheme under Fidelity and Energy Constraints in Sensor Networks Abstract-To control congestion, either the traffic from sources should be "reduced" (traffic controlling) or the available resources should be "increased" (resource controlling). Compared to the wired and other wireless counterparts, wireless sensor networks usually have elastic resource availability, and the applications require a certain level of throughput called fidelity. As a result, resource control strategies can not only alleviate congestion but also ensure the required fidelity level during congestion by accommodating higher incoming traffic.In this paper, we first attempt to formally define the resource control framework that adjusts the resource provisioning at the hotspot nodes during congestion. In an effort to find the optimal resource control under the fidelity and energy constraints, we present a resource increase and decrease algorithm called Early Increase/Early Decrease (EIED) that tries to adjust the effective channel capacity quickly to suit the incoming traffic volume in an energy-efficient manner, thereby increasing the fidelity level observed by the application. Under the energy-constrained optimization, we prove this algorithm incurs the lowest overhead of energy consumption for the given fidelity level that is required by the application. We also prove that the EIED algorithm performed in a distributed manner also lowers the energy consumption per packet at an end-to-end level. The effectiveness of the EIED algorithm is verified by simulations based on realistic sensor network configurations. As the technologies in MEMS, processor design, and wireless communication advance, a wide range of remote monitoring applications using networks of sensor nodes receive much attention recently. These networks will usually be left unattended, with each individual node sensing the physical environment such as the behavior of endangered species, fires in a forest, or traffic conditions on a busy highway. The sensed events are processed locally if necessary and reported to the sinks through multihop wireless communication. These networks operate with a low reporting rate before target events (e.g., fires, abnormal phenomenon, etc) occur. As soon as these events are sensed, however, a high reporting rate is necessary so that the events are accurately portrayed by the reported data at the sinks. As a result, sensor networks alternate between periods with a very low traffic volume (referred to as dormant state) and periods with a high traffic volume (referred to as crisis state). In most of the sensor applications, dormant state dominates the network lifetime, during which the network usually only maintains a small amount of available resources, such as battery power in active nodes, in order to extend the network lifetime.. During a crisis state, the traffic volume often exceeds the amount of available resources such as outgoing link capacity [20] , [23] , thus resulting in congestion at various nodes. As a result, the network may enter an unstable state in which packets are randomly dropped, a severe case of which is called congestion collapse. Intuitively, we have two options to alleviate congestion: throttling the incoming traffic volume (referred to as traffic controlling) and increasing the available resources (referred to as resource controlling).. Although traffic control strategies are effective in traditional wired networks and are also suggested in some sensor network scenarios [20] , [23] , [30] , they are unsuitable for our purpose for two main reasons. Firstly, reducing the traffic during a crisis state is unacceptable. The data during a crisis state are of great value, often critical, to the applications such as earthquake or fire monitoring systems. Failure to ship some of these data to the sink can hurt the applications' accurate monitoring, called fidelity, and defeat the very reason why the sensor network was deployed in the first place. Secondly, increasing resource provisioning during congestion is easier in sensor networks due to its elastic availability of resources. There is usually an abundance of resources in sensor networks (unlike its wired or other wireless counterparts) because these networks are usually densely deployed in order to achieve a reasonable network lifetime [1] , [26] , [27] . Therefore, a natural way of managing these limited resources (such as channel capacity, remaining energy, transmission power, etc.) is to conserve as much resources as possible during a dormant state while exploiting them wisely during crises.. Even though congestion control is an important issue for sensor networks, it has received little attention until recently and most of recent studies focus on controlling traffic to alleviate congestion [20] , [23] , [30] . The question, "How should network resources such as wireless channel capacity be systematically controlled in conjunction with the congestion level under fidelity and energy constraints?", has not been studied rigorously even though resource control strategies have the potential of minimizing energy consumption during a dormant state as well as accommodating the traffic surge during a crisis state, thus avoiding congestion and satisfying the fidelity requirement. In this paper, we set out to answer this challenging question.. The remainder of this paper is organized as follows. In the next section, we explain the congestion avoidance performed by the famous traffic increase and decrease algorithm, AIMD. We present the related work in Section III. In Section IV, we formulate the goals of resource controlling along with the performance metrics for the potential resource controls. In Section V, we delve into finding the systematic ways of adjusting resources in the unconstrained sensor network environment. In Section VI, we propose a resource increase and decrease algorithm called Early Increase/Early Decrease (EIED) that incurs the lowest overhead under fidelity and energy constraints. In Section VII, the EIED algorithm is verified by simulation. Section VIII describes the limitations of the EIED algorithm and concludes this paper. Depending on the resource type, adjusting its capacity may not be achieved instantaneously. Even though a fast resource adjustment is possible, it may lead to instability when the incoming traffic volume is fluctuating. To increase the stability of a resource control strategy, the over-provisioned resource capacity should be large enough to accommodate the varying traffic, which, however, lowers the resource utilization. Low resource utilization leads to the waste of energy. In the next section, we present a resource control strategy that incurs the lowest overhead under fidelity and energy constraints. As mentioned earlier, most of prior work have been focused on the efficient usage of traffic control during congestion in sensor networks. A guideline of congestion control in sensor networks was first given by [21] . They suggest that congestion controlling must not only be based on the network capacity, but also on the fidelity level dictated by the applications. In other words, the total data received from M reporting sensors, represented as. is the bit rate of sensor i, should not exceed a certain fraction of the available channel capacity C total , but also be high enough to satisfy the desired fidelity as shown in Equation 3:. C application is the application-specific fidelity level. We can infer from Equation 3 that if applications require a high fidelity temporarily during a crisis state (i.e. if C application exceeds. ) cannot be increased due to the upper bound imposed by αC total , then the available channel capacity C total should be temporarily increased to allow an increased M i=1 b(S i ), therefore to meet the fidelity requirement in Equation 3 .. CODA [23] presents the first detailed study on congestion detection and avoidance in sensor networks. In CODA, as soon as a node detects congestion, it broadcasts a backpressure message upstream. An upstream node that receives the backpressure throttles its outgoing traffic by dropping packets or by forwarding the backpressure message upstream again. CODA also provides a method of controlling traffic in an endto-end manner by requiring constant feedback (ACKs) from the sinks. Sankarasubramaniam, Akan and Akyildiz [20] have proposed an event-to-sink reliable transport (ESRT) protocol, which can serve as a congestion control protocol as well since congestion is considered to be the primary cause for unreliable delivery. In ESRT, the sink reduces the data rates of all sources (i) when the number of received packets within a window is below the desired level; or (ii) when an intermediate node reports possible buffer overflow by marking 1-bit CN field in the header of the delivered packet(s). Hull, Jamieson, and Balakrishnan [11] have studied three congestion control techniques: hop-by-hop traffic control, limiting source rate, and a prioritized medium access control (MAC). They show network congestion can be greatly alleviated when these three traffic control techniques operate in concert rather than in isolation. Ee and Bajcsy [6] proposed a distributed congestion control scheme based on hop-by-hop automatic repeat request (ARQ) in many-to-one routing scenario. To avoid congestion, motes are allowed to generate data at a rate network can handle. For this, each mote individually determines its local maximum transmission rate and divides the transmission rate by total number of upstream motes (children) to give a data generation rate of each upstream mote. The computed data generation rate is compared with the data generation rate propagated from its downstream node (parent). The smaller rate is propagated to its upstream nodes. Woo and Culler [24] proposed an adaptive traffic control scheme in which locally generated traffic and route-through traffic are assigned bandwidth proportionally to provide fairness among the flows with different path lengths, which also avoids congestion. Yi and Shakkottai [30] proposed a hop-by-hop congestion control scheme that allocates bandwidth to various users in a fair manner. They show a hop-by-hop traffic control scheme push-backs and spreads congestion over space, called spatial spreading, leading to scattered small peak loads. This ensures that the required buffer size are spatially spread.. Several multipath routing protocols [5] , [9] , [15] , [22] , [29] can increase the end-to-end channel capacity during congestion. They, however, are developed in the context of reliability, load balancing, and failure recovery rather than congestion control, and are not energy-aware.

O O B I O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B O O O B I O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O


A framework and tool support for the systematic testing of model-based specifications Formal specifications can precisely and unambiguously define the required behavior of a software system or component. However, formal specifications are complex artifacts that need to be verified to ensure that they are consistent, complete, and validated against the requirements. Specification testing or animation tools exist to assist with this by allowing the specifier to interpret or execute the specification. However, currently little is known about how to do this effectively.This article presents a framework and tool support for the systematic testing of formal, modelbased specifications. Several important generic properties that should be satisfied by model-based specifications are first identified. Following the idea of mutation analysis, we then use variants or mutants of the specification to check that these properties are satisfied. The framework also allows the specifier to test application-specific properties. All properties are tested for a range of states that are defined by the tester in the form of a testgraph, which is a directed graph that partially models the states and transitions of the specification being tested. Tool support is provided for the generation of the mutants, for automatically traversing the testgraph and executing the test cases, and for reporting any errors. The framework is demonstrated on a small specification and its application to three larger specifications is discussed. Experience indicates that the framework can be used effectively to test small to medium-sized specifications and that it can reveal a significant number of problems in these specifications. Specification testing can be used to verify and validate formal specifications by testing both generic and application-specific properties. While not offering the same assurance as proofs, specification testing can increase our confidence in the correctness of a specification.. In this article we have presented a framework for systematic specification testing. This framework uses mutants of specifications to analyse the precondition and postcondition of operations, as well as the state invariant, to help us check generic properties of specifications. Test execution is driven by the traversal of testgraphs: directed graphs that model a subset of the states and transitions of the specification being tested. We provide tool support to help users construct testgraphs and automate their traversal as well as tools to generate mutants and the schemas used for checking the mutants. The framework was illustrated using a small integer set example and we also discussed its application to a collection of student assignments and two nontrivial specifications.. Experience with the framework shows that it can be effective for testing small to medium-sized specifications. The development time of test suites is typically significantly less than the time it takes to develop the specification that is being tested. Although test execution time can be significant and needs to be controlled, test execution can be fully automated so that this is not a significant problem. The test suites that we developed revealed a significant number of problems in the specifications we tested, but not all checks were equally useful. In particular, we have found it difficult to test for a weak state invariant with our approach and an approach such as model-checking may be more appropriate for this. While checking for a strong precondition is easy, and this check produced a large number of warnings in the case studies, most of these were not actual errors. Depending on the specification style preferred by the specifier, it may not be worthwhile to include this check. The checks for satisfiability, weak precondition, strong state invariant, and applicationspecific checks all appear to be very worthwhile and revealed problems in all case studies.. Although the framework and tool support were developed for testing Sum specifications, the approach can easily be applied to other model-based specification languages, such as Z, B, and VDM.. Plans for future work include:. -Continue exploring the relationship between testing a specification and testing an implementation of that specification [Miller and Strooper 2003 ]. -Develop appropriate measures of coverage for formal specifications to help us evaluate the adequacy of our testing. Most of the properties outlined in this section are taken from formal development environments and other specification testing methods.. The initialization check is a proof obligation in the B method [Schneider 2001] , and the Pipedream approach [Kazmierczak et al. 2000 ] advocates checking that an initial state exists. Schema satisfiability is a proof obligation in Cogito [Hamilton et al. 1998 ]. The weak precondition and strong state invariant are common checks made on formal specifications. A check on the preconditions is a proof obligation in Cogito, VDM, and the B method. However, the B method requires that all post-states satisfy the state invariant if the precondition holds, not just one.. Different specification languages require different properties to hold on the state invariant. In the B method, the state invariant is not conjoined to the preconditions and postconditions, and a proof obligation is required to show that the state invariant is maintained by each operation. In the Object-Z specification language [Duke and Rose 2000] , some state variables are known as secondary variables, meaning that their values are calculated using other state variables (the primary variables). Therefore, for Object-Z specifications, we may choose to only check the primary variables. But like Sum, Z, and VDM, the state invariant of an Object-Z specification is an implicit part of each precondition and postcondition, so all schemas satisfy the state invariant by definition. Therefore, it is a matter of preference as to whether we check for a strong state invariant.. The weak state invariant and strong precondition were included for completeness. These two conditions may reveal inconsistencies or errors in the specification, but in some cases, they are intentionally violated by the specifier.. It is interesting to note that the weak precondition and strong state invariant overlap. Some cases in which an operation has a weak precondition may also • T. Miller and P. Strooper mean the state invariant is too strong. In an expanded version of this article [Miller and Strooper 2002a] , we prove that:. -An operation with a weak precondition does not necessarily imply that the state invariant is too strong. -A strong state invariant does not necessarily imply that there is an operation with a weak precondition in the specification. -If all operations in a specification are deterministic and if the state invariant is too strong, there exists an operation with a weak precondition in the specification.. The properties outlined in Section 3 are checked for a subset of the possible states, and at each of these states, we thoroughly check the specification to detect problems. However, the weak state invariant check is different from the other checks. This check requires us to search the state space to find a selected set of states. This is similar to the approach taken by model-checkers.. Model-checking [Clarke et al. 1999 ] is an automated technique for verification of formal, state-based specifications. Model-checking involves supplying certain properties to the model-checker that must hold for all states of a specification. The model-checker will then check every possible execution path of the specification, returning true if the specified properties hold, or providing counter-examples that show why the properties do not hold. Due to its exhaustive nature, state explosion is a major problem with model-checking.. Our method for checking the preconditions and for a strong state invariant combines ideas from testing and model-checking. As with other forms of testing, we avoid the problem of state explosion by selecting only a small subset of the states to be tested, but for those states we exhaustively check a large input space as in model-checking. However, for the weak state invariant check, the problem of state explosion arises again because we may have to search the entire state space to determine if certain states are reachable. For the IntSet example, narrowing the search space was straightforward, but for other examples, this has not been the case. We believe an approach such as model-checking may be better suited for detecting a weak state invariant. Several approaches exist for specification verification and validation, including theorem-proving, model-checking, and specification testing. Currently, theorem-proving and model-checking require more sophisticated tool support and specialized knowledge than specification testing. We therefore restrict a detailed comparison to the related work on specification testing, mutation analysis of specifications, and testing using finite state machines (FSMs). In this section, we present the example used throughout this article and introduce the Possum specification testing tool [Hazel et al. 1997 ], which is used as the basis for the tool support in the framework.

O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O


Statistical timing analysis considering spatially and temporally correlated dynamic power supply noise Power supply noise is becoming more and more influential on timing, though noise aware timing analysis has not been well established yet, because of several difficulties such as its dependency on input vectors and dynamic behavior. This paper proposes a static timing analysis considering power supply noise in which the dependency of noise on input vectors and spatial and temporal correlations are handled in a statistical manner. We construct a statistical model of power supply voltage that dynamically varies with spatial and temporal correlation, and represent it as a set of uncorrelated variables. We demonstrate that power voltage variation is highly correlated and adopting principal component analysis as an orthogonalization technique is effective in variable reduction. Experiments confirm the validity of our model and the accuracy of timing analysis. We also discuss the accuracy and CPU time in association with variable reduction. In nano-meter technology era, manufacturing variability fluctuates circuit performance significantly, and variation-aware timing analysis has been intensively studied [1, 2, 3] . In addition, timing verification considering power/ground noise has been eagerly demanded. Power supply noise is expected to become a more and more serious problem on timing in the future because of increasing current consumption and decreased power supply voltage. A severe obstacle for noise aware timing analysis is the difficulty to identify Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ISPD'08, April 13-16, 2008 , Portland, Oregon, USA. Copyright 2008 ACM 978-1-60558-048-7/08/04 ...$5.00. the worst-case noise for timing. Power supply noise depends on given input signals and internal register states, and changes within a clock cycle as well as cycle by cycle. As circuit scale becomes larger, the combinations of input signals and register states increase exponentially, which makes it prohibitively expensive to find the true worst-case noise.. Dynamic timing simulation with power/ground network and input patterns can provide timing information with noise. However, dynamic timing analysis can not cover all paths, and verifies part of path delays, which is a well known drawback. Even if a test pattern that maximizes voltage drop is found, the vector does not necessarily correspond to the worst-case for timing, because the circuit structure and the layout are also associated with the timing. Preparing effective test vectors for noise aware dynamic timing verification is a computationally expensive problem, and it is impossible to solve in a practical time.. To consider the impact of power/ground noise on timing, static timing analysis (STA) is commonly performed supposing that a constant (DC) voltage drop, for example the maximum voltage variation, is given to all gates. This approach is computationally efficient, but there is no systematic way to determine the voltage drop without optimism and excessive pessimism. When the maximum voltage drop is given to all gates, the estimated timing is too pessimistic, which causes timing convergence problem and overdesign. To solve this problem, timing analysis considering dynamic voltage variation has been proposed [4, 5] , and some commercial tools are available. However, it is necessary to obtain or assume the worst-case noise, which means the pattern-dependency problem of power supply noise remains unsolved.. Although finding the exact worst-case noise for timing is extremely difficult, designers have to assure that the designed circuit operates at the target frequency in a quantitative manner before fabrication. Therefore, a systematic technique that can estimate not exact but reasonable worst-case timing is necessary. Path-based methods to estimate the maximum delay have been proposed [6, 7, 8] . These methods, however, have to be applied to many potential critical paths, and hence the computational cost could be very high. Recently, Ref. [9] has proposed an approach to estimate the effect of power supply noise on timing by solving an optimization problem. The problem is formulated as a non-linear delay maximization problem under the given constraints of current consumption. However, the circuit size reported in [9] is limited, and the applicability to larger circuits is not clear. As another approach, a statistical treatment has been introduced into power supply noise aware timing analysis [10, 11, 12] . Reference [10] estimates voltage variation by convolution of statistically modeled current consumption and impulse response of power/ground network. In [11] , first, authors derive the average and the standard deviation of every block and the correlation coefficients between blocks, and then estimate the delay. Reference [12] focuses on spatial correlation of power supply noise and proposes to use principal component analysis (PCA) for modeling of power supply noise. Path delay distribution is then computed with uncorrelated variables. We know an argument that timing failure due to power supply noise must be verified in a deterministic manner, since a certain input pattern necessarily causes a problem. However, an exact verification in a vast input pattern and register state space is impossible, and thus we believe that a statistical approach helps designers estimate timing performance quantitatively and systematically.. In this paper, we propose a statistical timing analysis method considering dynamic power supply noise. The overall flow of the proposed method is shown in Fig. 1 . The proposed method models power/ground noise statistically. Spatially and temporally correlated power supply noise is transformed to uncorrelated variables by using orthogonalization techniques, such as PCA and independent component analysis (ICA). We then perform statistical static timing analysis using the derived statistical power/ground noise model. Statistical timing analysis with a statistical model of power supply noise with PCA has been proposed by Kim[12] , however, it is a preliminary work and several important issues, such as nonGaussian distribution shape of variables and dynamic voltage fluctuation within a clock cycle, remain unsolved or not addressed. Further, variable reduction by PCA due to tight correlation among variables is not aggressively exploited for reducing CPU cost of statistical timing analysis.. In this work, we experimentally demonstrate that PCA-based statistical modeling, with some distribution transformation techniques (e.g. Box-Cox transformation) if necessary, works well, though the distribution of power supply noise is not exactly Gaussian. To take dynamic noise behavior within a clock cycle into consideration, we propose to discretize a clock cycle into several time slots, and assign a random variable to each time slot to construct a statistical model of dynamic power supply noise. We focus on an observation that power supply noise is highly correlated not only spatially but also temporally, and model power supply noise with a small set of random variables, which helps to reduce CPU time for timing verification. We also demonstrate that adaptive spatial discretization for variable assignment reduces PCA cost significantly. You might think that SSTA with PCA is a well-known approach, but this similarity is a big advantage to keep the compatibility to conventional SSTA, and the proposed method can be easily integrated into SSTA tools for manufacturing variability, i.e. statistical timing analysis considering both manufacturing variability and power supply noise is easily realized in a unified approach.. This paper assumes that information on power supply noise needed for the statistical modeling is given. Generally, the estimation of power supply noise is not easy. We, however, think that sophisticated methods, such as impulse response and convolution with logic simulation results for power estimation and functional verification [9] give us the information. An efficient information preparation is another research topic to study, and hence we do not discuss it further in this paper.. This paper is organized as follows. Section 2 discusses difficulties of timing analysis considering power supply noise. We show how to statistically model power/ground voltage variation in Section 3 . Section 4 explains SSTA procedure with the proposed noise model. We demonstrate experimental results in Section 5, and Section 6 concludes the discussion. In this paper, we proposed SSTA considering dynamic power supply noise with orthogonalization technique. We confirmed that dynamic power/ground noise could be modeled statistically with PCA though the distribution of power supply voltage was not rigidly Gaussian. The experiments showed that the proposed method estimated delay variation due to power supply noise accurately. We experimentally demonstrated that a small number of principal components obtained by PCA were capable of accurate delay estimation thanks to spatial and temporal correlation of power supply noise.

B I I O O O O O O B I I B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O B I I O O O O B I I O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O B I I O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B I I O O O O O O O O O O O O O B I I O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I


Better bounds for online scheduling We study a classical problem in online scheduling. A sequence of jobs must be scheduled on m identical parallel machines. As each job arrives, its processing time is known. The goal is to minimize the makespan. Bartal, Fiat, Karloff and Vohra [3] gave a deterministic online algorithm that is 1.986-competitive.~arger, Phillips and Torng [11] generalized the algorithm and proved an upper bound of 1.945. The best lower bound currently known on the competitive ratio that can be achieved by deterministic online algorithms it equal to 1.837. In this paper we present an improved deterministic online scheduling algorithm that is 1.923-competitive, for all m~2. The algorithm is based on a new scheduling strategy, i.e., it is not a generalization of the approach by Bartal et al. Also, the algorithm has a simple structure.Furthermore, we develop a better lower bound.We prove that, for general m, no deterministic online scheduling algorithm can be better than 1.852-competitive. We study a classical problem in online scheduling. A sequence of jobs must be scheduled on m identical parallel machines.. Whenever a job arrives, its processing time is known in advance, and the job must be scheduled immediately on one of the machines, without knowledge of any future jobs. Preemption of jobs is not allowed. The goal is to minimize the rnakespan, i.e., the completion time of the last job that finishes.. Algorithms for this scheduling problem are used in multiprocessor scheduling. Moreover, the problem is important because it is the root of many problem variants where, for instance, preemption is allowed, precedence constraints exist among jobs, or machines run at qMax-Planck-Institut fur Informatik, Im Stadtwald, 66123 Saarbriicken, Germany. E-mail: albers@mpi-sb.mpg.de different speeds. The problem was first investigated by Graham [10] . In fact, Graham studied the ofline version of the problem, when all jobs are known in advance. The problem of computing an optimal offline schedule for a given job sequence in NP-hard [9] . Graham gave a fast scheduling heuristic that achieves a good approximation ratio. He developed the well-known List algorithm that takes the given jobs one by one and always schedules them on the least loaded machine.. Clearly, List is also an online algorithm.. Following [13] , we call a deterministic online scheduling algorithm A c-competitive if, for all job sequences u= Jl, J2, . . ..Jn.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O


The steady-state impedance operator of a linear periodically time-varying one-port network and its determination The main subject of the paper is the description and determination of the impedance operator of a linear periodically timevarying (LPTV) one-port network in the steady-state. If the one-port network parameters and the supply vary periodically with the same period, the network reaches a periodic steady state. However, the sinusoidal supply may induce a nonsinusoidal voltage or current. It is impossible to describe such a phenomenon by means of one complex number. A periodically time-varying one-port network working in a steady-state regime can be described with a circular parametric operator. Within the domain of discrete time, such an operator takes the form of a matrix with real-valued entries. The circular parametric operator can be transformed into the frequency domain using a two-dimensional DFT. This description makes it possible to quantitatively assess LPTV system input and output harmonics aliasing. The paper also presents the derivation and the proof of convergence of an iteration scheme for the identification of circular parametric operators. The scheme may be used to determine the impedance of an LPTV one-port network. Some results of computer simulations are shown. The knowledge of the parameters of an electrical distribution power system is necessary for effective control of electronic compensators, for the localization of harmonic distortion sources, and to observe system behavior . Time-varying circuits, e.g., switching converters or thyristor-driven loads, and non-linear system components, e.g., transformers, saturated chocking coils or diode-equipped loads, change their parameters synchronously with the power voltage and cause deformations in the current. These one-port networks can be treated as single input, single output linear periodically time-varying systems, as depicted in Fig. 1 .. The subject of the paper is the determination of steady-state behavior of linear periodically time-varying (LPTV) one-port networks and, in general, of single input, single output LPTV systems (SISO LPTV). The latter are considered as a bridge between the well-studied linear time invariant (LTI) model and real nonlinear timevarying systems stimulated periodically. The LPTV model is linear, i.e., it meets the superposition principle, and it can generate and shift harmonic components like nonlinear systems. Parameters of an LPTV system change periodically. To obtain the steady state, a common period of LPTV system parameter changes and stimulation signal has to exist. The steady-state current (or voltage) of an LTI one-port network excited by a sinusoidal voltage (or current) is also sinusoidal with the same frequency. The relationship between its terminal signals phasors is described by an impedance (or admittance) phasor, which is a complex number. The situation is different in the case of LPTV one-port networks, which can also reach a periodic steady state, but a sinusoidal supply may give rise to a non-sinusoidal voltage or current. The mathematical description of such phenomena by means of one complex number is impossible. The problem consists in the description of an LPTV one-port network in the steady state, which is similar to the description of an LTI one-port network using an impedance phasor. There are many publications related to LPTV systems used in control systems, multi-rate signal processing and telecommunications. Some common representations of LPTV systems including linear time invariant models obtained by blocking, linear switched timevarying (LSTV) systems and alias-component matrices are described in (Mehr and Chen, 2002) and the references therein. The description of the LPTV system as a time invariant block system is presented in (Meyer and Burrus, 1975) . The so-called system function of a variable network and a bi-frequency system function are used in (Zadeh, 1950) for frequency analysis of variable networks. A state space model with time-varying coefficients is usually in use to describe linear time-varying (LTV) systems universally, e.g., (Kaczorek, 2001; Bru et al., 2004) . A discrete time domain state space model, transition matrices and pseudo-modal parameters are used to describe and identify LTV systems in (Liu, 1997; 1999; Liu and Deng, 2005) . Subspace model identification algorithms that allow the identification of an LTV state space model from a set of input-output measurements are presented in (Verhagen and Yu, 1995) .. A complete and clear picture on time-invariant representations for discrete-time periodic systems is described in (Bittanti and Colaneri, 1999; 2000) , where the concepts of a periodic transfer function and generalized frequency response are used. The following four reformulations are discused: time lifted, cyclic, frequency lifted and Fourier. They are obtained from input-output and state-space representations. The authors emphasize that the reformulation of a periodic system always leads to a particular class of time invariant models. The characteristics of these models (structure, dimensions, etc.) cannot be neglected, otherwise entering a mess of nonfeasibility/noncausality issues. The paper (Hu et al., 2007) presents a new kind of linear model with partially variant coefficients and iterative identification algorithms. In (Mikołajuk and Staroszczyk, 2003; Staroszczyk, 2002; Staroszczyk and Mikołajuk, 2004) , some methods of power system impedance identification as an LPTV model are presented. The LPTV model used requires 2D time-frequency system description. The time-varying ARMA (autoregressive moving average) model is also used. The power system is tested with short (1-3 ms) current impulse excitations. Impedance frequency characteristics are determined by means of a method called the empirical transfer function estimate (EFTE) based on the input/output transformed (using DFT) signals identification experiment. Discrete time LPTV systems can also be modeled by discrete time wavelets. It makes the system identification robust to narrow-band or impulse noise (Doroslovacki et al., 1998) . The papers (Liu et al., 2003; Tam et al., 2006) present an approach to finding steady-state waveforms based on wavelet approximation of power electronics circuits that are described by means of a time-varying state-space equation.. In this paper, the periodic steady state of an LPTV one-port network is taken into consideration. To obtain a periodic steady state, one-port network parameter changes and the power supply should have the same period, which is the least common multiple of the one-port network period and the supply period. It is assumed that the period of stimulation signal changes is an integer multiplicity of the system parameter changes period. This assumption imposes some restrictions on the application space. However, it returns significant simplification and convenience. In this situation, the period of system response is equal to the stimulation period. The relationship between steadystate voltage and current is described by means of the socalled circular parametric operator (CPO). It is a circular form of the description based on the time-varying pulse response. To describe an SISO LPTV system in this way, no restriction on system parameter changes is needed (no restriction was found in references concerned with LPTV systems).. For signal processing, it is better to use the discrete time domain, where the CPO describes the relationship between vectors of samples of one period of input and output signals and takes the form of a matrix with real-valued entries. It is a circular form of the description known as periodic Markov coefficients linked to the pulse response of the system (see, e.g., (Bittanti and Colaneri, 2000) ), and it is a generalization of circular convolution used for LTI systems. The description of an LPTV system by means of a CPO was introduced for the first time by Siwczyński to implement a new numerical operator method for nonlinear systems analysis described in (Siwczyński, 1987) . Later, CPOs were used in algorithms of optimal operational condition determination of real voltage sources with periodically time-varying or non-linear inner impedance and load one-port networks (Siwczyński et al., 1993; Siwczyński, 1995; Siwczyński and Kłosiński, 1997a) .. Discrete time domain description of an LPTV system and signals implies a restriction on signals and parameter changes. Exact discrete representation of signals and system is possible if input signal and parameter changes spectra are bounded. Then, as a result of modulation, the limit of the output spectrum is equal to the sum of input and parameter changes spectrum limits. The sampling frequency should be at least two times greater than this limit. If the spectrum of the system parameter changing 663 is not bounded, it is impossible to obtain an accurate discrete model, but it is feasible to select proper sampling frequency to obtain acceptable accuracy of the discrete model of the LPTV system.. The relation between input and output harmonics complex phasors of the LPTV system can be obtained by means of a two dimensional discrete Fourier transformation. This topic is widely discussed in Section 3.. The impedance or admittance CPO of a one-port network can be determined on the basis of measurements. To obtain the fully identified circular parametric N × N matrix, a set of N pairs of system stimulus and response signals is needed. The stimulus signals have to be linearly independent. Sometimes, it is difficult to obtain such a complete set of measured signals. In these cases, an identification iteration scheme which is presented in this paper may be useful. The proposed method is based on the determination of the CPO describing the system with the smoothest parameter changes. An attempt to apply the iteration scheme to optimal control of a compensation circuit in a simple power system, described in (Kłosiński, 2005) , can be a good example of its effectiveness. The combination of the identification scheme and the optimal current determination algorithm allows optimal compensation in a linear time-varying circuit without previous knowledge of circular parametric operators of the source and load impedance. Their partial on-line identification is sufficient.. If a nonlinear system can achieve a periodic steady state, its parameters change periodically, coherently with the input. In this situation, the behavior of the non-linear system can be described by means of a set of CPOs. For example, CPOs were used to describe a nonlinear current transformer in (Kłosiński and Kozioł, 2007) . From this description, it is possible to estimate the current flowing through the primary of the transformer on the basis of secondary current samples. CPOs describing a real CT were calculated using an identification scheme based on measurements. The obtained results show that the usage of CPOs gave good results.. The CPO identification method applied resembles the algorithm called the smooth periodic escape (SPE), used to design time-varying compensator networks (Siwczyński, 1995; Siwczyński and Kłosiński, 1997a; 1997b) . The derivation and properties of the identification scheme were presented in (Kłosiński, 2005; 2006; 2007) . The identification scheme is iterative, and it was not easy to prove its convergence because of its special construction. In this paper, for the first time the proof of iterative identification scheme convergence to a unique solution is presented. Apart from theoretical deliberations, the paper also presents some results of computer simulations.. In the paper, linear causal single input single output systems are considered. It is assumed that all signals are noise-free, sampled coherently with adequately high sampling frequency. A circular parametric operator can be used to describe the relation between terminal signals of a periodically time-varying one-port network operating in a steady-state regime. Within the domain of discrete time, such an operator takes the form of a matrix with real-valued entries. A spectral circular parametric operator may be used for quantitative assessment of input and output harmonics aliasing, which is a characteristic phenomenon in timevarying and non-linear systems. An important advantage of the representation of an LPTV system by means of the SCPO, at least from the point of view of an electrical en- gineer, is its similarity to the frequency response of an LTI system. However, differences between both representations are visible. The described iterative identification scheme can be used to determine the time-varying oneport network impedance circular parametric operator. The proposed scheme is a convenient way to determine the CPO and the SCPO of a given system from a set of measurements. It yields expected results, provided that the identification data uses includes the required information about the performance of the system being identified.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O