Specification of Service Level Agreements: Problems, Principles and Practices Abstract. Software intensive systems (SIS) increasingly influence the ability of enterprises to be competitive in continuously changing market situations. The integration of these systems into organizations, and in particular the subsequent exploitation, maintenance and service activities, have become of utmost importance. Unfortunately the area of exploitation and operation, also known as service management, is still rather immature. Service management covers services such as performance and availability support, end-user and help desk support, education, and maintenance. One of the main concepts of service management is the Service Level Agreement (SLA). The goal of an SLA is to bridge the gap between service provider and users or customers. However, there exist many problems and unsolved questions regarding the specification and the quantification of SLAs. This paper addresses the specification of SLAs on the basis of three well-founded service management principles, respectively: 'continuity in service management,' the pit/shell principle of a service, and the principle of specifying the quality of both a service process and a service object. Finally, the paper addresses the validation of these principles in practice. Software intensive systems (SIS) increasingly influence the ability of enterprises to be competitive in continuously changing market situations. Over the last ten years the primary processes of many organizations have become strongly dependent on them. As a consequence the integration of these systems into organizations, and in particular the subsequent exploitation, maintenance and service activities, have become of utmost importance. Unfortunately the area of exploitation and operation, also known as service management, is still rather immature in comparison with other SIS areas, such as for instance systems analysis and design (Robertson and Robertson, 1999) . Although many structured methods and techniques exist for the structured development of SIS there are hardly any approaches and instruments for the specification of services for SIS.. Regarding integration and exploitation the relatively new domain of service management has emerged rapidly. This is amongst others reflected by the amount of effort and resources that are spend on service management. Service management covers services such as performance and availability support, end-user and help desk support, education, and maintenance. Organizations often need various kinds of specialised support during the operation and the exploitation of their SIS. It is estimated that large companies spend up to 50% of their investment portfolio on SIS related investments (Renkema, 1997) . Generally it is assumed that only 20% from these investments are directly spent on SIS development. The remaining 80% consist of the costs of integration, maintenance and exploitation of SIS. These costs are referred to as service costs.. Over a large number of years important work has been carried out by CTTA (1987) . A collection of best practices, which is called Information Technology Infrastructure Library (ITIL), focuses in particular on the investigation of the various aspects of Service Management and introduces as one of the main concepts for Service Management the Service Level Agreement (SLA). However, the quality of services in service level agreements and its metrification are not addressed. In the Capability Model for ITenabled Outsourcing Service Providers (eSCM) (Siegel and Gopal, 2002 ) a framework and an improvement path is described that customers should expect service providers to progress along from the minimum level of having the capability to deliver a service that meets client requirements, up to the highest level of enhancing value through continuous innovation. In this Capability Model, which has five levels of improvement, customer requirements management and measuring and control of service processes are explicitly addressed. For example, on the maturity levels 2 and 3 it is stated that procedures for SLA specification, measurement and control should be developed and implemented.. Over the last years more and more publications on SLAs can be found in various journals and magazines, see, e.g. (McBride, 1998; Passmore, 1996; Sasser et al., 1978) . One of the most important trends is the shift of the goal of an SLA from being a financial and technical contract towards an instrument for the management of the customer's expectations. However, there still exist many unsolved questions in the SIS Service Management area, e.g., regarding the definition of services and the specification of SLAs.. In approaches for assessing process capability (e.g., ISO15504 based on the SPICE project (Solingen et al., 2000) ) the quality of (service) processes is the central issue. In this type of approaches process capabilities such as customer satisfaction, formal service contracts, etc., are assessed and are rated in a well-founded and structured way. Although well-defined terms can be found for (service) process quality concepts there are no methods or techniques given that support the specification and metrification process of service quality in service level agreements. Approaches that are more directly related to the specification of service quality are on the one hand wellknown methods, from the general industrial manufacturing domain, for the identification and specification of customer requirements, e.g., Quality Function Deployment (QFD) (Cross, 2000) , and on the other hand software analysis and design methods from the software requirements engineering domain, e.g. (Robertson and Robertson, 1999) . In approaches of these types the requirements elicitation process, the collaboration process between engineers and customers, and the translation process of qualityfrom-a-customer perspective into quality-from-an-engineering perspective are extensively addressed. This paper is in particular inspired by these types of approaches. This paper will focus on the basic concepts for defining and specifying SLAs. In Section 2 some main problems with current SLA specification approaches will be addressed. In Section 3 the basic concepts for SLA specification will be introduced. Section 4 reports about the application of these basic SLA concepts in a practical case study. Finally in Section 5 the main conclusions are given and future research topics are addressed. Service level agreements for SIS, which are useful for both customers and providers, are rarely seen in practice. Reaching consensus between customers and providers on services to be delivered is a difficult and time-consuming task. This paper presents first steps towards a structured approach for the specification of service level agreements in order to speed up the process of service level agreement specification, and to improve the effectiveness of SLAs for both customers and users. Therefore three principles for service level agreements specification have been developed. These principles have been made operational and have been applied and validated in a practical case study. The first principle of continuity (the lemniscate) stresses the need for a step-by-step development and improvement of the SLA. It also offers a framework for the communication and the collaboration between customer and service provider. The lemniscate is understandable for each party and shows in one figure the bridging of the service gap between customer and provider. The second principle of the distinction between a SIS service object and a service process, as being two complementary service aspects, appears to be fruitful regarding the precize definition and specification of a service. The third principle of recognizing quality characteristics for both the SIS service objects and the service process showes that service level agreement should and can be specified in an objective and quantifiable way. The quality characteristics of a SIS service can be made measurable in a joint cooperation between customer and service provider in practice.. Although interesting results have been gained in our SLA research we state that there is currently a lack of formalism in the specification and metrification approach. For example, the definitions and the metrics on service quality characteristics have to be improved further. In our near future research on SLA specification and metrification we will strive in particular at the quantification of the presented service principles and practices.. Jos J.M. Trienekens is an Associate Professor at TU Eindhoven (University of Technology-Eindhoven) in the area of ICT systems development. He is responsible for a research program on ICT driven business performance and is an associate member of the research school BETA at TUE that focuses at operations management issues. Jos Trienekens published over the last ten years various books, and papers in international journals and conference proceedings. He joined several international conferences as PC member and member of the organization committee. He also has experience as project partner in several European projects (ESPRIT/ESSI) and is on a part-time basis with KEMA Quality, a service organization and certification body in The Netherlands.

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 B I 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 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 B I 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 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 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 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 B I 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Techniques for Computing Fitness of Use (FoU) for Time Series Datasets with Applications in the Geospatial Domain Abstract Time series data are widely used in many applications including critical decision support systems. The goodness of the dataset, called the Fitness of Use (FoU), used in the analysis has direct bearing on the quality of the information and knowledge generated and hence on the quality of the decisions based on them. Unlike traditional quality of data which is independent of the application in which it is used, FoU is a function of the application. As the use of geospatial time series datasets increase in many critical applications, it is important to develop formal methodologies to compute their FoU and propagate it to the derived information, knowledge and decisions. In this paper we propose a formal framework to compute the FoU of time series datasets. We present three different techniques using the Dempster-Shafer belief theory framework as the foundation. These three approaches investigate the FoU by focusing on three aspects of data: data attributes, data stability, and impact of gap periods, respectively. The effectiveness of each approach is shown using an application in hydrological datasets that measure streamflow. While we use hydrological information analysis as our application domain in this research, the techniques can be used in many other domains as well. The focus of this paper is not on the computation of traditional data quality, but on their fitness of specific applications. Specifically, we seek to incorporate the FoU in knowledge discovery and data mining (KDD) approaches and apply this to geospatial datasets. In this section, we first differentiate between traditional data quality and the FoU measure. Then, we discuss approaches to computing the FoU in geospatial time series datasets.. Though related, traditional data quality and the FoU are different. Previous studies addressed data quality as a multi-dimensional concept [9] [10] [11] [12] [13] . Data quality is commonly evaluated along five major dimensions [3] : (1) accuracy that measures the conformity of the recorded value with the actual value, (2) precision which is the degree of detail that can be recorded, (3) resolution which is the level of detail that can be represented, (4) consistency which means that the representation of the data is in the same format, and (5) completeness which implies that all values for a certain variable are recorded. Furthermore, data quality may also include data accessibility, appropriate amount of data, data believability, data completeness, data representation, ease of manipulation, data interpretability, data reputation, data security, and data timeliness [11] . In some GIS-based analysis, the quality of geospatial data has been evaluated with uncertainty as the basis of quality [14] . Data quality is therefore expressed as the degree of discrepancy between the data in GIS and the data in the geographic reality. In [15] , [16] , the quality of geospatial data was investigated by detecting the errors and inconsistencies in spatial datasets.. On the other hand, the definition of the FoU measures the "quality" of data from the viewpoint of its suitability for a specific application. For example, a value with precision of three decimal points is more accurate than the same value rounded to two decimal points. However, both values may have the exactly the same FoU in an application, in which the values are used as integers. In [17] , the FoU was derived from the aspects of metadata quality, data availability, data resolution, data collection methods, data classification methods, and cost of accessing data. In [18] , the authors studied the FoU obtained from multiple sources with different levels of reliability. Compared to these studies, our work is focused on metadata quality and considers a single data source, e.g., streamflow measurements.. Considering the complex nature of geospatial time series datasets and the limitation of methods used to capture the data, different models have been proposed to model errors and inconsistencies, on which the FoU is based. In [19] , [20] , the probability theory was used to evaluate the uncertainty in the capture of geospatial data. The probability theory is especially powerful when dealing with uncertainty that is introduced by randomness (e.g., digitization of a point using GIS [14] ). However, the appropriateness of probability theory becomes questionable when dealing with the uncertainty that is caused by fuzziness [21] (e.g., the creation of a map using remote sensing classification techniques [14] ). The possibility theory, on the other hand, shows efficiency in calculation of uncertainty that is introduced due to fuzziness but is less efficient in dealing with uncertainty caused by randomness. In [22] , the possibility theory was used in FoU evaluation. In [23] , the authors studied the uncertainty using various mathematical models, e.g., normal or Gaussian distributions. Such uncertainty analysis is not used in our study because we focus only on the data but not the quality of the instruments used to capture data.. KDD techniques are designed to extract interesting information and knowledge from vast amounts of data and can play a major role in affecting the FoU of the data. Steps in a typical KDD application are: (1) data gathering, (2) data storage, (3) data retrieval, (4) data mining, and (5) knowledge delivery [24] . During the data gathering stage, the FoU can be affected by the manual entry (e.g., duplicate data entry, error of measurement equipment). At the data storage stage, inappropriate data model or structure and untimely updates may lower the FoU. At the data retrieval stage, the problems include computational constraints and inefficient use of memory. Data mining can be used to compute the FoU [25] , [26] . For example, mining of association rules were employed to detect, quantify, explain and correct data quality deficiencies in databases. In [27] , a machine learning algorithm, namely C4.5, was used to design a data auditing generator. The data auditing generator can systematically generate and pollute an artificial benchmark that is used to audit a database. Statistical methodologies (e.g., standard statistical tests) for detecting abnormal or missing data and profiling the quality of a dataset have been developed [28] , [29] . In [30] , a module was developed to capture data quality problems in database systems by performing data extraction, data transformation and data loading. In [31] , a data quality model was developed to improve the query performance of database management systems.. To summarize, the focus of our work is in computing the FoU of a dataset and not the traditional aspect of data quality. Many previous studies have investigated geospatial data by only considering a single dimension, e.g., scale incompatibility or error detection, or by analyzing multiple dimensions separately. Our study evaluates the fitness of use as a whole by making use of an information fusion approach to combine the impact from all the related data aspects/attributes into a single measurement. For example, data gap (interruptions in measurements) is an important data attribute in FoU evaluation, which was considered in [32] and [33] . However, those studies did not provide a systematic approach for combining data gap with other related factors (as suggested by [34] ). Specifically, our research investigates the FoU by incorporating the impact from data gap, data stability factors, and other data attributes. This is particularly important for analyzing geospatial time series data, where gaps in measurement may be a significant issue. Our proposed approach is based on the Dempster-Shafer belief theory which has been used by Eastman for uncertainty management for decision support tools [35] .

O O O B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Carving differential unit test cases from system test cases Unit test cases are focused and efficient. System tests are effective at exercising complex usage patterns. Differential unit tests (DUT) are a hybrid of unit and system tests. They are generated by carving the system components, while executing a system test case, that influence the behavior of the target unit, and then re-assembling those components so that the unit can be exercised as it was by the system test. We conjecture that DUTs retain some of the advantages of unit tests, can be automatically and inexpensively generated, and have the potential for revealing faults related to intricate system executions. In this paper we present a framework for automatically carving and replaying DUTs that accounts for a wide-variety of strategies, we implement an instance of the framework with several techniques to mitigate test cost and enhance flexibility, and we empirically assess the efficacy of carving and replaying DUTs. Software engineers develop unit test cases to validate individual program units (e.g., methods, classes, packages) before they are integrated into the whole system. By focusing on an isolated unit, unit tests are not constrained by other parts of the system in exercising the target unit. This smaller scope for testing usually results in significantly more efficient test execution and fault isolation relative to whole system testing and debugging [1, 18] . Unit test cases are also used as a component of several popular development methods, such as extreme programming (XP) [2] , test driven development (TDD) practices [3] , continuous testing [35] , and efficient test prioritization and selection techniques [31] .. Developing effective suites of unit test cases presents a number of challenges. Specifications of unit behavior are usually informal and are often incomplete or ambiguous, leading to the development of overly general or incorrect unit tests. Furthermore, such specifications may evolve independently of implementations requiring additional maintenance of unit tests even if implementations remain unchanged. Testers may find it difficult to imagine sets of unit input values that exercise the full-range of unit behavior and thereby fail to exercise the different ways in which the unit will be used as a part of a system. An alternative approach to unit test development, that does not rely on specifications, is based on the analysis of a unit's implementation. Testers developing unit tests in this way may focus, for example, on achieving a coverage-adequacy criteria of the target unit's code. Such tests, however, are inherently susceptible to errors of omission with respect to specified unit behavior and may thereby miss certain faults. Finally, unit testing requires the development of test harnesses or the setup of a testing framework (e.g., junit [17] ) to make the units executable in isolation.. System tests are usually developed based on documents that are commonly available for most software systems that describe the system's functionality from the user's perspective, for example, requirement documents and user's manuals. This makes system tests appropriate for determining the readiness of a system for release, or to grant or refuse acceptance by customers. Additional benefits accrue from testing system-level behaviors directly. First, system tests can be developed without an intimate knowledge of the system internals, which reduces the level of expertise required by test developers and which makes tests less-sensitive to implementationlevel changes that are behavior preserving. Second, system tests may expose faults that unit tests do not, for example, faults that emerge only when multiple units are integrated and jointly utilized. Finally, since they involve executing the entire system no test harnesses need be constructed.. While system tests are an essential component of all practical software validation methods, they do have several disadvantages. They can be expensive to execute; for large systems, days or weeks, and considerable human effort may be needed for running a thorough suite of system tests [23] . In addition, even very thorough system testing may fail to exercise the full-range of behavior implemented by system's units; thus, system testing cannot be viewed as an effective replacement for unit testing. Finally, fault isolation and repair during system testing can be significantly more expensive than during unit testing.. The preceding characterization of unit and system tests, although not comprehensive, illustrates that system and unit tests have complementary strengths and that they offer a rich set of tradeoffs. In this paper, we present a general framework for carving and replaying of what we call differential unit tests (DUT) which aim at exploiting those tradeoffs. We termed them differential because their primary function is detecting differences between multiple versions of a unit's implementation. DUTs are meant to be focused and efficient, like traditional unit tests, yet they are automatically generated along with a custom test-harness, making them inexpensive to develop and easy to evolve. In addition, since they indirectly capture the notion of correctness encoded in the system tests from which they are carved, they have the potential for revealing faults related to complex patterns of unit usage.. In our approach, DUTs are created from system tests by capturing components of the exercised system that influence the behavior of the targeted unit, and that reflect the results of executing the unit; we term this carving. Those components are automatically assembled into a test harness that establishes the pre-state of the unit that was encountered during system test execution. From that state, the unit is replayed and the resulting state is queried to determine if there are differences with the recorded unit post-state.. Ideally DUTs will (a) retain the fault detection effectiveness of system tests on the target unit, (b) only report small numbers of differences that are not indicative of differing system test results, (c) be executed faster than system tests, and (d) be applicable across multiple system versions. We empirically investigate DUT carving and replay techniques with respect to these criteria through a controlled study within the context of regression testing where we compare the performance of system tests and carved unit tests. The results indicate that carved test cases can be as effective as system test cases in terms of fault detection, but much more efficient.. When compared against emerging work on providing automated extraction of powerful unit tests from system executions, [25, 28, 33] , the contributions of this paper are: (i) a framework for automatically carving and replaying DUTs that accounts for a widevariety of implementation strategies with different tradeoffs; (ii) a new state-based strategy for carving and replay at a method level that offers a range of costs, flexibility, and scalability; and (iii) an evaluation criteria and an empirical assessment of the efficiency and effectiveness of carving and replay of DUTs on multiple versions of a Java application. We believe these contributions lay a solid and general foundation for further study of carving and replay of DUTs and we outline several directions for future work in Section 6. In the next Section, we present our framework for carving and replay testing. Section 3 details the implementation of one of those instantiations. Section 4 describes our study and results. In this section we provide the results addressing each research question regarding carving and replaying efficiency, fault detection effectiveness, and robustness and sensitivity of the DUTs suites. Our work was inspired by Weide's notion of modular testing as a means to evaluate the modular reasoning property of a piece of software [36] . Although Weide's focus was not on testing but on the evaluation of the fragility of modular reasoning, he raised some important questions regarding the potential applicability of what he called a "modular regression technique" that led to our work.. Within the context of regression testing, our approach is also similar to Binkley's semantic guided regression testing in that it aims to reduce testing costs by running a subset of the program [5, 6 ]. Binkley's technique proposes the utilization of static slicing to identify potential semantic differences between two versions of a program. He also presents an algorithm to identify the system tests that must be run on the slices resulting from the differences between the program versions. The fundamental distinction between this and our approach is that we do not run system level tests, but rather smaller and more focused unit tests. Another important distinction is that the testing target are not the semantic differences between versions, but rather methods in the program.. The preliminary results from our original test carving prototype [28] evidenced the potential of carved tests to improve the efficiency and the focus of a large system test suite, identified challenges to scale-up the approach, and defined some scenarios under which the carved test cases would and would not perform well. We have built on that work by presenting a generic framework for differential carving, extending the type of analysis we performed to make the approach more scalable, and by developing a full set of tools that can enable us to explore different techniques on various programs.. We are aware of two other research efforts related to the notion of test carving. First, Orso et al. prototyped the notion of selective record and replay mechanisms of program executions by capturing the interactions between the observed subsystem and its context, and then replaying just the result of those interactions [25] . Second, the test factoring approach introduced by Saff et al. takes a similar approach to Orso's with the creation of what they called mock objects that serve to create the scaffolding to support the execution of the test unit [34] . The same group introduced a tool set for fully-featured Java execution environments that can handle many of the subtle interactions present in this programming language (e.g., callbacks, arrays, native methods) [33] . In terms of our framework, both of these approaches would be considered action-based CR approaches. We have presented, what is to the best of our knowledge, the first state-based approach to CR testing.. Saff et al. describe their approach in detail allowing us to provide a more in depth comparison with our approach. While carving a method test case, their infra-structure records the sequence of calls that can influence the method and then they record the sequence of calls made by the method and the return values and unit state side-effects of those calls. In our framework, this would amount to calculatingσ such that s(σ) = spre for the method of interest and then calculating summarizing tracesσ call i that reflect the return value and side effects for each call out of the method and carving spre i , the relevant pre-state for each call. During replay the same sequence of calls with the same parameters is expectedany deviation results in a report of a difference during replay. In our framework, we would identify the points at which the, n, calls out of the method occur as post-state locations to define a DUT of the form (σ, (spre 1 , . . . , spre n )).. Both of these action-based approaches, capture the interactions between the target unit and its context and then build the scaffolding to replay just those interactions. Hence, they do not incur in costs associated with capturing and storing the system state for each targeted unit. On the other hand, this approach may generate tests that are too sensitive to simple changes that do not effect meaning of the unit, e.g., changing the order of independent method calls. Saff et al. have identified this issue and propose to analyze the lifespan of the factored test cases across sequences of method modifications [33] . This is a critical factor in judging the cost-effectiveness of CR testing and we have started to study this issue in Section 4.5.. These two related efforts have shown their feasibility in terms of being able to replay tests and the latter approach has provided initial evidence that it can save time and resources under several scenarios. Neither approach, however, has been evaluated in terms of its fault detection effectiveness which ultimately determines the value of the carved tests, or in the context of regression testing.. Our work also relates to efforts aimed at developing unit test cases. Several frameworks grouped under the umbrella of Xunit have been developed to support software engineers in the development of unit tests. Junit, for example, is a popular framework for the Java programming language that lets programmers attach testing code to their classes to validate their behavior [17] .. There are also multiple approaches that automate, to different degrees, the generation of unit tests. For example, commercial tools such as Jtest develops unit test cases by analyzing method signatures and selecting test cases that increase some coverage criteria [20] . Some of these tools aim to assess software robustness (e.g., whether an exception is thrown [12] ). Others utilize some type of specification such as pre and post conditions or operational abstractions, to guide the test case generation and actually check whether the test outcome meets the expectation results [7, 11, 26, 38] . Interestingly enough, Parasoft new version of JTest enhances the unit test case generated with "Sniffer", a tool that monitors running applications to pick interesting values to exercise the target unit [20] , which can be perceived as a primitive type of carving projection.. Although carving also aims to generate unit test cases, the approach we propose is different from previous unit test case generation mechanisms since it consists of the projection of a system test case onto the targeted software unit. As such, we expect for carved unit tests to retain some of the interesting interactions exposed by systems tests that are harder to design into regular unit test cases that often fail to consider the system's context.. As stated, the post-state differencing functions that regulate the detection of differences between encodings of unit behavior belongs to a larger body of testing work on differential-based oracles. For example, the work of Weyuker [37] on the development of pseudo-oracles, Jaramillo et al. [19] on using comparisons to check for optimization induced errors in compilers, or the comparison of program spectra [29] are instances of utilizing differencingtype oracles at the system or subsystem level. When focusing at the unit level of object oriented programs, as we are doing, Binder suggests the term "concrete state" oracles, which aim to compare the value of all the unit's attributes against what is expected [4] . Briand et al. refer to this type of oracle as a "precise" oracle because it was the most accurate one employed in their studies [8] . Overall, the notion of testing being fundamentally differential has long been understood [37] , since the pseudo-oracles against which systems are judged correct are themselves subject to error. Thus, the question we aimed to answer is not whether our CR method judges a system correct or incorrect, but rather whether it is capable of cost-effectively detecting differences between encodings of system behavior that developers can easily mine to judge whether the difference reflects an error.

O O O B 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 B O O O O O O O O O O O O O O O O O B B O B O B 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 B O O O B 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 B B 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 B O O B 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 B 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 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 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 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 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 B 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 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 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 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 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 B 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 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 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 B I I 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 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 B 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 B I 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 B 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 B I I O O O O O O O O O O O O O O O O O O O O B 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 B 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 I 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 B 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 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 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 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 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 B 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 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 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 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 O O 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 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 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 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 B 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 B 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 B B O O O O O O O O O O O B B 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 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 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 B O O O O O O O O O O O O O


Augmenting user interfaces with adaptive speech commands We present a system that augments any unmodified Java application with an adaptive speech interface. The augmented system learns to associate spoken words and utterances with interface actions such as button clicks. Speech learning is constantly active and searches for correlations between what the user says and does. Training the interface is seamlessly integrated with using the interface. As the user performs normal actions, she may optionally verbally describe what she is doing. By using a phoneme recognizer, the interface is able to quickly learn new speech commands. Speech commands are chosen by the user and can be recognized robustly due to accurate phonetic modelling of the user's utterances and the small size of the vocabulary learned for a single application. After only a few examples, speech commands can replace mouse clicks. In effect, selected interface functions migrate from keyboard and mouse to speech. We demonstrate the usefulness of this approach by augmenting jfig, a drawing application, where speech commands save the user from the distraction of having to use a tool palette. Spoken input has great potential value as an augmentation to standard graphical user interfaces. In a drawing application, for example, the user can speak commands that would otherwise require him or her to search tool palettes and menus, pulling attention away from the drawing task at hand. A straightforward way to add speech input to an interface is to specify a vocabulary of commands that are mapped to interface actions. To use such an interface, the user must learn (memorize) the vocabulary and associated actions. As an alternative, we have reversed the roles and put the burden of learning vocabulary and associated actions on the system. By doing so, the user is able to shape the system to understand words of his or her choice.. In this paper, we propose an adaptive speech input augmentation to any standard graphical user interface. With this speech layer added to the interface, the user may continue to use the system as before, controlled solely with keyboard and mouse. However, he or she can also use speech to name interface actions such as button clicks. A phoneme recognizer produces a phonetic representation of the utterance, which is associated with the interface action that occurs closest in time. After a few consistent examples, the user can speak the name he or she chooses for the action instead of using the mouse or keyboard.. We show in this paper that training speech commands in this manner is quick, robust, and can occur while the user continues to use the application in a normal way. By monitoring the event queue of Java applications, our system can be attached to any application written in this language without the need to have access to the source code of the application. In this paper, we use jfig, a vector based drawing program written in Java, as an example. Figure 1 shows a typical jfig screen as well as the feedback panel for our speech augmentation system. Our approach is inspired by work in computational modelling of infant language acquisition [9] . This approach relies on correlation of the visual and the speech modality. We simplify the speech learning problem to only include full utterances delimited by silence, and replace the visual input with user interface events. Treating the multimodal input learning problem as a problem of acquisition of semantics for speech commands distinguishes this research from other multimodal interface approaches. Other approaches typically presuppose full vocabulary speech and pen gesture recognition, as well as a mapping to an existing semantic encoding. Adaptation in these systems, when attempted at all, refers to adapting to the user's input behaviours (e.g. speech timing) or the environment (e.g. noise level) [6] . In contrast, we propose learning the meaning of the user's actions through cross-modal analysis. This work is part of our larger effort to build grounded conversational systems [2] .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Phase tracking and prediction In Modern processors can execute upwards of 5 billion instructions in a single second, yet most architectural features target program behavior on a time scale of hundreds to thousands of instructions, less than half a µS. While these optimizations can provide large benefits, they are limited in their ability to see the program behavior in a larger context.. Recently there has been a renewed interest in examining the run-time behavior of programs over longer periods of time [10, 11, 19, 20, 3] . It has been shown that programs can have considerably different behavior depending on which portion of execution is examined. More specifically, it has been shown that many programs execute as a series of phases, where each phase may be very different from the others, while still having a fairly homogeneous behavior within a phase. Taking advantage of this time varying behavior can lead to, among other things, improved power management, cache control, and more efficient simulation. The primary goal of this research is the development of a unified run-time phase detection and prediction mechanism that can be used to guide any optimization seeking to exploit large scale program behavior.. A phase of program behavior can be defined in several ways. Past definitions are built around the idea of a phase being an interval of execution during which a measured program metric is relatively stable. We extend this notion of a phase to include all similar sections of execution regardless of temporal adjacency. Simply put, if a phase of execution is correctly identified, there should only be small variations between any two execution intervals identified as being part of the same phase. A key point of this paper is that the phase behavior seen in any program metric is directly a function of the way the code is being executed. If we can accurately capture this behavior at run-time through the computation of a single metric, we can use this to guide many optimization and policy decisions without duplicating phase detection mechanisms for each optimization.. In this paper, we present an efficient run-time phase tracking architecture that is based on detecting changes in the proportions of the code being executed. In addition, we present a novel phase prediction architecture that can predict, not only when a phase change is about to occur, but also the phase to which it is will transition. Since our phase tracking implementation is based upon code execution frequencies, it is independent of any individual architecture metric. This allows our phase tracker to be used as a general profiling technique building up a profile or database of architecture information on a per phase basis to be used later for hardware or software optimization. Independence from architecture metrics allows us to consistently track phase information as the program's behavior changes due to phasebased optimizations.. We demonstrate the effectiveness of our hardware based phase detection and classification architecture at automatically partitioning the behavior of the program into homogeneous phases of execution and to identify phase changes. We show that the changes in many important metrics, such as IPC and energy, correlate very closely with the phase changes found by our metric. We then evaluate the effectiveness of phase tracking and prediction for value profiling, data cache reconfiguration, and re-configuring the width of the processor.. The rest of the paper is laid out as follows. In Section 2, prior work related to phase-based program behavior is discussed. Simulation methodology and benchmark descriptions can be found in Section 3. Section 4 describes our phase tracking architecture. The design and evaluation of the phase predictor are found in Section 5. Section 6 presents several potential applications of our phase tracking architecture. Finally, the results are summarized in Section 7. In this paper we present an efficient run-time phase tracking architecture that is based on detecting changes in the code being executed. This is accomplished by dividing up all instructions seen into a set of buckets based on branch PCs. This way we approximate the effect of taking a random projection of the basic block vector, which was shown in [21] to be an effective method of identifying phases in programs.. Using our phase classification architecture with less than 500 bytes of on-chip memory, we show that for most programs, a significant amount of the program (over 80%) is covered by 20 or less distinct phases. Furthermore, we show that these phases, while being distinct from one another, have fairly uniform behavior within a phase, meaning that most optimizations applied to one phase will work well on all intervals in that phase. In the program gcc, the IPC attained by the processor on average over the full run of execution is 1.32, but has a standard deviation of more than 43%. By dividing it up into different phases, we achieve much more stable behavior, with IPCs ranging between 0.61 and 1.95, but now with standard deviations of less than 2%.. In addition to this, we present a novel phase prediction architecture using a Run Length Encoding Markov predictor that can predict not only when a phase change is about to occur, but to which phase ID it will transition to. In using this design, which also uses less than 500 bytes of storage, we achieve a phase prediction miss rate of 10% for applu and 4% for apsi. In comparison, always predicting that the phase will stay the same results in a miss rate of 40% and 12% respectively.. We also examined using our phase tracking and prediction architecture to enable new phase-directed optimizations. Traditional architecture and software optimizations are targeted at the average or aggregate behavior of a program. In comparison, phase-directed optimizations aim at optimizing a program's performance tailored to the different phases in a program. In this paper, we examined using phase tracking and prediction to increase frequent value profiling coverage, and to provide energy savings through data cache and processor width re-configuration.. We believe our phase tracking and prediction design will open the door for a new class of run-time optimization that targets large scale program behavior. Even though we present a hardware implementation for phase tracking, a similar design can be implemented in software to perform phase classification for run-time optimizers, just-in-time compilation systems, and operating systems. Hardware and software optimizations that can potentially benefit the most from phase classification and prediction are (1) those that need expensive profiling/training before applying an optimization, (2) those where the time or cost it takes to perform the optimization is either slow or expensive, and (3) those that can benefit from specialization where they have the same code/data being used differently in different phases of execution. By using our dynamic phase tracking and prediction design, phase-behavior can be characterized and predicted at the largest of scales, providing a unified mechanism for phase-directed optimization. In this Section we describe work related to phase identification and phase-based optimization.. In [19] , we provided an initial study into the time varying behavior of programs, showing that programs have repeatable phase-based behavior over many hardware metrics -cache behavior, branch prediction, value prediction, address prediction, IPC and RUU occupancy for all the SPEC 95 programs. Looking at these metrics over time, we found that many programs have repeating patterns, and that important metrics tend to change at the same time. These places represent phase boundaries.. In [20] , we proposed that by profiling only the code that was executed over time we could automatically identify periodic and phase behavior in programs. The goal was to automatically find the repeating patterns observed in [19] , and the lengths (periods) of these patterns. We then extended this work in [21] , using techniques from machine learning to break the complete execution of the program into phases (clusters) by only tracking the code executed. We found that intervals of execution grouped into the same phase had similar behavior across all the architecture metrics examined. From this analysis, we created a tool called SimPoint [21] , which automatically identifies a small set of intervals of execution (simulation points) in a program to perform architecture simulations. These simulation points provide an accurate and efficient representation of the complete execution of the program.. The work of Dhodapkar and Smith [10, 9] is the most closely related to ours. They found a relationship between phases and instruction working sets, and that phase changes occur when the working set changes. They propose that by detecting phases and phase changes, multi-configuration units can be re-configured in response to these phase changes. They have used their working set analysis for instruction cache, data cache and branch predictor re-configuration to save energy [10, 9] .. The work we present in this paper identifies phases and phase changes by keeping track of the proportions in which the code was executed during an interval based upon the profiler used in [20] . In comparison, Dhodapkar and Smith [10, 9] track the phase and phase changes solely upon what code was executed (working set), without weighting the code by its frequency of execution. Future research is needed to compare these two approaches.. Additional differences between our work include our examination of architectures for predicting phase changes, and different uses from [10, 9] , such as value profiling and processor width reconfiguration. We provide an architecture that can fairly accurately predict what the next phase will be, along with predicting when there will be a phase change. In comparison, Dhodapkar and Smith do not examine phase-based prediction [10, 9] , but concentrate on detecting when the working set size changes, and then reactively apply optimization.. Merten et al. [15] developed a run-time system for dynamically optimizing frequently executed code. Then in [3] , Barnes et al. extend this idea to perform phase-directed complier optimizations. The main idea is the creation of optimized code "packages" that are targeted towards a given phase, with the goal of execution staying within the package for that phase. Barnes et al. concentrate primarily on the compiler techniques needed to make phase-directed compiler optimizations a reality, and do not examine the mechanics of hardware phase detection and classification. We believe that using the techniques in [3] in conjunction with our phase classification and prediction architecture will provide a powerful run-time execution environment. To perform our study, we collected information for ten SPEC 2000 programs applu, apsi, art, bzip, facerec, galgel, gcc, gzip, mcf, and vpr all with reference inputs. All programs were executed from start to completion using SimpleScalar [5] and Wattch [4] . Because of the lengthy simulation time incurred by executing all of the programs to completion, we chose to focus on only 10 programs. We chose the above 10 programs since their phase based behavior represents a reasonable snapshot of the SPEC 2000 benchmark suite, along with picking some of the programs that showed the most interesting phase-based behavior. Each program was compiled on a DEC Alpha AXP-21164 processor using the DEC C, and FORTRAN compilers. The programs were built under OSF/1 V4.0 operating system using full compiler optimization (-O4 -ifo).. The timing simulator used was derived from the SimpleScalar 3.0 tool set [5] , a suite of functional and timing simulation tools for the Alpha AXP ISA. The baseline microarchitecture model is detailed in Table 1 . In addition to this, we wanted to examine energy usage optimizations, so we used a version of Wattch [4] to capture this information. We modified all of these tools to log and reset the statistics every 10 million instructions, and we use this as a base for evaluation.

O B O O O O O O O O O O O O O O O O O O O O O B 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 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 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 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 B B O O O B 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 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 B 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 O O O 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 B 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 B 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 B 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 B 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 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 B 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 B B O O O O O O O O O O O O O O O O O O B B O B O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O B O O O O O O B B 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 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 B 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 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 B 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 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 B O O B O O O O O O B 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 B 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 B 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 B B 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 O O O O O O O O O O O O O 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 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 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 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 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 B O O O O O B O B O O O O O O O O O O O O O O B 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 B O O B 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 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 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 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 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 O O O O O O O O O O O O O B 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 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 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 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 B 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 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


Simplification Techniques for Maps in Simplicial Topology This paper offers an algorithmic solution to the problem of obtaining "economical" formulae for some maps in Simplicial Topology, having, in principle, a high computational cost in their evaluation. In particular, maps of this kind are used for defining cohomology operations at the cochain level. As an example, we obtain explicit combinatorial descriptions of Steenrod kth powers exclusively in terms of face operators. In this paper we deal with problems in the field of Combinatorial Topology. We work with simplicial sets, which provide combinatorial descriptions of topological spaces. A simplicial set (see [16] ) is a graded set K = {K q } q≥0 whose q-dimensional "building blocks" are q-simplices and whose "mortar" is face (∂ i : K q+1 → K q ) and degeneracy (s i : K q → K q+1 ) operators. It is an elementary fact that any composition of face and degeneracy operators of a simplicial set K can be expressed in the "normalized" form:. where j t > · · · > j 1 ≥ 0 and i s > · · · > i 1 ≥ 0, due to certain commutativity properties. Roughly speaking, we are interested here not only in "normalizing" some compositions of face and degeneracy operators, but also in determining which of them involve exclusively face operators. In particular, we simplify compositions that are used for defining important cohomology operations such as Steenrod squares [22] , Steenrod kth powers [23] or Adem secondary cohomology operations [1, 2] . In fact, from a simplicial viewpoint and taking into account that we deal with homological information given in terms of explicit chain homotopy equivalences [20, 6] , the description of invariants in Algebraic Topology can be reduced to the study of compositions of certain specific maps given essentially in terms of face and degeneracy operators. The fundamental maps involved are the AW, EML and SHI operators given in the EilenbergZilber Theorem [5] . This theorem states that there is a chain homotopy equivalence (AW, EML, SHI) from the normalized chain complex C N (K × L) of the cartesian product of K and L to the tensor product C N (K) ⊗ C N (L) of the normalized chain complexes C N (K) and C N (L). Whereas the number of summands in the formula for AW grows linearly, the number of summands in the formulae for EML and SHI grow exponentially, then in order to define "computable" algebraic-combinatorial invariants, it seems that the right strategy is reduced to determine compositions of maps in which the morphism AW is involved. For example, the cup product on cohomology is essentially determined at the cochain level by the morphism AW and the diagonal map. All of this fits well with the results of Kristensen [13, 14] , where a representation result for stable primary and secondary cohomology operations in terms of cochain maps is given; and that of Klaus [11, 12] , extending Kristensen's results to prove that any cohomology operation module p can be described in terms of polynomials of coface operators at the cochain level. This approach is also corroborated in [19] , [7] and [9] where Steenrod squares, Steenrod kth powers and Adem secondary cohomology operations are seen at the cochain level essentially as compositions of the type. where t i are permutations of p factors and AW (p) and SHI (p) are, respectively, the AW and SHI operators given by the Eilenberg-Zilber Theorem for p simplicial sets. It is evident that an algorithm for computing these cohomology operations based on the previous formulation shows extremely high computational costs. Because of this, a normalization of compositions of face and degeneracy operators and a following step of the elimination of those summands of the normalized formula for H with a factor having a degeneracy operator in its expression are done in order. This "simplification" process allows to reach to a combinatorial description for H having the minimum number of face operators involved.. In this paper, we work with a general simplicial expression of type (1) , where the t i can be any permutation. We have developed a software using Mathematica that deduces its "minimal" simplicial formulation. In particular, the solution to this combinatorial problem provides a way to design an efficient algorithm for computing any Steenrod cohomology operation on any cohomology class of any degree. This work has been presented in [10] .. The paper is organized as follows: In Section 2 we review the necessary theoretical background. In Section 3 we develop simplification techniques for obtaining an "economical" formulation for operations of the type (1). Finally, Section 4 is devoted to show an application of our method: an algorithm for computing the Steenrod kth power P k p on the cohomology of any locally finite simplicial set is developed.

O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Separating Models of Learning from Correlated and Uncorrelated Data We consider a natural framework of learning from correlated data, in which successive examples used for learning are generated according to a random walk over the space of possible examples. A recent paper by Bshouty et al. (2003) shows that the class of polynomial-size DNF formulas is efficiently learnable in this random walk model; this result suggests that the Random Walk model is more powerful than comparable standard models of learning from independent examples, in which similarly efficient DNF learning algorithms are not known. We give strong evidence that the Random Walk model is indeed more powerful than the standard model, by showing that if any cryptographic one-way function exists (a universally held belief in cryptography), then there is a class of functions that can be learned efficiently in the Random Walk setting but not in the standard setting where all examples are independent. It is a commonly held belief in machine learning that having access to correlated data-for example, having random data points that differ only slightly from each other-is advantageous for learning. Thus it is a natural research goal to rigorously validate this belief from the vantage point of the abilities and limitations of computationally efficient learning.. We study a natural model of learning from correlated data, by considering a framework in which the learning algorithm has access to successive examples that are generated by a random walk. We give strong evidence that learning is indeed easier, at least for some problems, in this framework of correlated examples than in the standard framework in which no correlations exist between successive examples. In the well-known Probably Approximately Correct (PAC) learning model introduced by Valiant (1984) , a learning algorithm is given access to a source EX D (c) of labeled examples each of which is drawn independently from a fixed probability distribution D over the space of possible instances.. The goal of the learning algorithm is to construct (with high probability) a high-accuracy hypothesis for the target concept c with respect to D. Aldous and Vazirani (1990) introduced and studied a variant of the PAC learning model in which successive examples are generated according to a Markov process, that is, by taking a random walk on an (exponentially large) graph. Subsequent work by Gamarnik (1999) extended this study to infinite Markov chains and gave bounds on the sample complexity required for learning in terms of the VC dimension and certain mixing properties of the underlying Markov chain. Neither Aldous and Vazirani (1990) nor Gamarnik (1999) considered computational issues for learning algorithms in the Random Walk framework.. In this paper we consider an elegant model of learning from Random Walk examples that is well suited for computational analyses. This model was introduced by Bartlett et al. (2002) and subsequently studied by Bshouty et al. (2003) and Roch (2006) . In this framework (described in detail in Section 2), successive examples for the learning algorithm are produced sequentially according to an unbiased random walk on the Boolean hypercube {0, 1} n . The PAC goal of constructing a highaccuracy hypothesis for the target concept with high probability (where accuracy is measured with respect to the stationary distribution of the random walk, that is, the uniform distribution on {0, 1} n ) is unchanged. This is a natural way of augmenting the model of uniform distribution PAC learning over the Boolean hypercube (which has been extensively studied, see, for example, Blum et al. 1994; Bshouty et al. 1999; Bshouty and Tamon 1996; Jackson 1997; Jackson et al. 2002; Kharitonov 1993; Linial et al. 1993; Verbeurgt 1990 and references therein) with the ability to exploit correlated data.. Bartlett et al. gave polynomial-time learning algorithms in this model for several concept classes including Boolean threshold functions in which each weight is either 0 or 1, parities of two monotone conjunctions over x 1 , . . . , x n , and Disjunctive Normal Form (DNF) formulas with two terms. These learning algorithms are proper, meaning that in each case the learning algorithm constructs a hypothesis representation that belongs to the class being learned. Since proper learning algorithms were not known for these concept classes in the standard uniform distribution model, this gave the first evidence that having access to random walk examples rather than uniform independent examples might bestow a computational advantage.. More recently, Bshouty et al. (2003) gave a polynomial-time algorithm for learning the unrestricted class of all polynomial-size DNF formulas over {0, 1} n in the Random Walk model. Since no comparable polynomial-time algorithms are known in the standard uniform distribution modeland their existence is a well-studied open question for which an affirmative answer would yield a $1000 prize (see Blum, 2003) -this gives stronger evidence that the Random Walk model is strictly more powerful than the normal uniform distribution model. Thus, it is natural to now ask whether the superiority of random walk learning over uniform distribution learning can be established under some widely accepted hypothesis about efficient computation.. (Note that it is necessary to make some computational hardness assumption in order to separate these two learning models. It is well known and easy to see that if P=NP, for instance, then the concept class of all polynomial-size Boolean circuits would be efficiently learnable in both these models, as well as in far weaker models, by an algorithm that nondeterministically "guesses" a circuit and then checks consistency with a polynomial-size sample. Thus without some computational hardness assumption, essentially all considerations about the computational complexity of learning would become trivial.)

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 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 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 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 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 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 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


Symbolic Graphs: Linear Solutions to Connectivity Related Problems The importance of symbolic data structures such as Ordered Binary Decision Diagrams (OBDD) is rapidly growing in many areas of Computer Science where the large dimensions of the input models is a challenging feature: OBDD based graph representations allowed to define truly new standards in the achievable dimensions for the Model Checking verification technique. However, OBDD representations pose strict constraints in the algorithm design issue. For example, DepthFirst Search (DFS) is not feasible in a symbolic framework and, consequently, many state-of-the-art DFS based algorithms (e.g., connectivity procedures) cannot be easily rearranged to work on symbolically represented graphs. We devise here a symbolic algorithmic strategy, based on the new notion of spine-set, that is general enough to be the engine of linear symbolic step algorithms for both strongly connected components and biconnected components. Our procedures improve on previously designed connectivity symbolic algorithms. Moreover, by an application to the so-called "bad This work is a revised and extended version of [22, 23] . It is partially supported by the projects PRIN 2005015491 and BIOCHECK. The problems tackled in this paper are two (very) classical ones: strongly connected components computation for directed graphs and biconnected components computation for undirected graphs [13, 26, 39] . The new ingredient motivating and justifying our efforts is the use of a specific symbolic data structure representing the input data and somehow forcing the basic operations performed by our algorithms. The importance of symbolic data structures such as the one we use, Ordered Binary Decision Diagrams (OBDD) [9, 10, 43] , is rapidly growing in many areas of Computer Science where the large dimensions of the input models is a challenging feature: OBDD based graph representations allowed to achieve truly new standards in the dimensions for the Model Checking verification technique [12, 28, 35] .. Many authors have taken into account the problem of precisely characterizing the kind of speed-up which an OBDD-based representation can give. We discuss in some detail such studies and the relative position of our contribution with respect to those works in Sect. 3.2. We point out here that the cost model we use is based on counting the number of symbolic steps (see [37] ) and that the main motivation for using such a model is the practical observation that in applications (for example Model Checking) such cost is coherent with experimental results [4, 5, 12, 28, 37] . At a higher level of abstraction, we observe that when working with succinct representations (e.g., circuits, boolean formulae, OBDD, etc.) it is rather natural to consider basic operations different from the standard ones. In particular, if succinctness is obtained via a sharing mechanism (as in the case of the "Reduce" routine collapsing nodes in Binary Decision Trees to produce OBDDs [9, 10] ), the natural operations to be used in estimating costs must operate on more than one represented object at a time. The post and pre operations-introduced in Sect. 3.1 and producing the set of nodes reachable in one forward or backward step, respectively, from a set of nodes-are natural in the above sense.. From an algorithmic point of view, OBDD representations pose strict constraints on the design techniques. For example, Depth-First Search (DFS) is not feasible (i.e., is not efficient) in a symbolic framework [4, 5, 12, 28, 37] and, consequently, many state-of-the art DFS based algorithms (e.g., connectivity procedures [13, 26, 39] ) cannot be easily rearranged to work on symbolically represented graphs. We devise here a symbolic algorithmic strategy-based on the new notion of spine-set-that is general enough to be the engine of linear symbolic step algorithms for both strongly connected components and biconnected components. As the algorithms we present here exemplify, the notion of spine-set is a sort of a symbolic way to introduce an ordering among (set of) nodes. Exploiting such an order is easy and the complexity analysis results in a linear number of symbolic steps on the ground of a natural amortization of such steps' cost on the output production (see Sects. 5 and 6 ). An additional feature of our approach-which we consider fundamental to obtain good practical performances and to determine a cost model based on symbolic steps-is the fact that the number of variables involved in the OBDDs used by our algorithms is small and remains constant throughout the entire execution (see Sect. 3.2) .. The validity of our approach, which is mainly of theoretical interest for the moment, is witnessed by the lower complexity of our symbolic algorithm for computing strongly connected components (SCC) with respect to the existing symbolic procedures for the same problem [4, 5, 15, 41, 45] . More specifically, our O(V ) symbolic steps SCC algorithm improves on the previous state-of-the-art SCC procedure in [4, 5] , performing O(V log(V )) symbolic steps. We also provide, here, an O(V ) symbolic steps solution to the biconnectivity problem, thereby proving the non singularity of our spine-set based approach. To the best of our knowledge there are not other symbolic algorithms for the biconnectivity problem, despite of its growing importance in areas such as Networks Design, where huge graphs are involved (see, e.g., [46] ). Moreover, our procedures can be used to check the emptiness of various ω-automata and hence to solve the bad cycle detection problem in Model Checking in a linear number of symbolic steps (see Sect. 7).. The paper is organized as follows: Sect. 2 reviews some basic notions concerning graph connectivity. In Sect. 3 we present preliminary material on symbolic graph algorithms and we discuss some related works. In Sect. 4 we introduce the central notion, with respect to our approach, of spine-set. Sections 5 and 6 develop linear symbolic steps procedures for strongly connected and biconnected components analysis, respectively. Finally, in Sect. 7, we reuse spine-sets to solve the bad cycle detection problem for various ω-automata in a linear number of symbolic steps. Preliminary versions of some results presented in this work appeared in [22, 23] . In this paper, we tackled the problem of designing efficient graph connectivity algorithms, assuming a symbolic data representation by means of OBDDs. We devised a symbolic algorithmic strategy, based on the so called spine-set notion, that is general enough to be the engine of linear symbolic steps algorithms for both strongly connected components and biconnected components. Thus, to some extent, spine-sets can be viewed as the symbolic counterpart of the well known DFS preprocessing speedup, fundamental in various classical algorithms. We see our work only as a first step in a wider research, aiming at understanding the relationships between explicit and symbolic algorithms, and at defining a whole set of tools and methods to both analyzing and designing efficient symbolic algorithms.

O O O O O O O O O O O O O O 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 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 B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Does Treewidth Help in Modal Satisfiability? Abstract. Many tractable algorithms for solving the Constraint Satisfaction Problem (Csp) have been developed using the notion of the treewidth of some graph derived from the input Csp instance. In particular, the incidence graph of the Csp instance is one such graph. We introduce the notion of an incidence graph for modal logic formulae in a certain normal form. We investigate the parameterized complexity of modal satisfiability with the modal depth of the formula and the treewidth of the incidence graph as parameters. For various combinations of Euclidean, reflexive, symmetric and transitive models, we show either that modal satisfiability is Fpt, or that it is W[1]-hard. In particular, modal satisfiability in general models is Fpt, while it is W[1]-hard in transitive models. As might be expected, modal satisfiability in transitive and Euclidean models is Fpt. Treewidth as a parameter has been very successful in obtaining Fixed Parameter Tractable (Fpt) algorithms for many classically intractable problems. One such class of problems is constraint satisfaction and closely related problems like satisfiability in propositional logic and the homomorphism problem [8, 30] . There have been recent extensions to quantified constraint satisfaction [6, 27] . In such problems, treewidth is used as a measure of modularity inherent in the given problem instance and algorithms make use of the modularity to increase their efficiency. Understanding the extent to which treewidth can be stretched in such problems is an active area of research [24, 15] . This work explores the applicability of such techniques to modal satisfiability.. Apart from having many applications (reasoning about knowledge [10] , programming [28] and hardware verification [29] etc.), modal logics have nice computational properties [33, 14] . Many tools have been built for checking satisfiability of modal formulae [21, 26] , despite being intractable in the classical sense (Pspacecomplete or Np-complete in most cases). Complexity of modal logic decision problems is well studied [23, 17, 16] . Another motivation for this work is to strengthen the complexity classification of modal logics through the refined analysis offered by parameterized complexity.. Our results: It is known that any modal logic formula can be effectively converted into a Conjunctive Normal Form (CNF) [9, 20] . Given a modal logic formula in CNF, we associate a graph with it. Restricted to propositional CNF formulae (which are modal formulae with modal depth 0), this graph is precisely the incidence graph associated with propositional CNF formulae (see [30] for details). We prove that 1. with the treewidth of the graph and the modal depth of the formula as parameters, satisfiability in general models is Fpt, 2. with treewidth and modal depth as parameters, satisfiability in transitive models is W[1]-hard and 3. with treewidth as the parameter, satisfiability in models that are Euclidean 1 and any combination of reflexive, symmetric and transitive is Fpt.. Since modal formulae of modal depth 0 contain all propositional formulae, bounding modal depth alone will not give Fpt results (unless Ptime=Np). The main idea behind our Fpt results is to express satisfiability of a modal formula in Monadic Second Order (MSO) logic over the formula's associated graph and then apply Courcelle's theorem [7] . Modal formulae with low treewidth are quite powerful, capable of encoding complex problems (see the conclusion for relevant pointers). On the other hand, modal formulae with low treewidth contain propositional CNF formulae of low treewidth, which arise naturally in many practical applications. See [12, Section 1.4] and references therein for some context on this.. Related work: In [16] , Halpern considers the effect of bounding different parameters (such as the number of propositional variables, modal depth etc., but not treewidth) on complexity. In [25] , Nguyen shows that satisfiability of many modal logics reduce to Ptime under the restriction of Horn fragment and bounded modal depth. In [1] , Achilleos et. al. consider parameterized complexity of modal satisfiability in general models with the number of propositional variables and other structural aspects (but not treewidth) as parameters. In [2] , Adler et. al. associate treewidth with First Order (FO) formulae and use it to obtain a Fpt algorithm for model checking.. The Complexity of satisfiability of modal logics follow a pattern. In [18] , Halpern et. al. prove that with the addition of Euclidean property, complexity of (infinitely) many modal logics drop from Pspace-hard to Np-complete. [19] is another work in this direction. Similar pattern is observed in graded modal logics [22] . With treewidth and modal depth as parameters, our results indicate similar behaviour in the world of parameterized complexity -satisfiability in transitive models is W[1]-hard, while satisfiability in Euclidean and transitive models is Fpt, even with treewidth as the only parameter. However, more work is needed in this direction. First, the results in [18, 19] hold for infinitely many cases while we consider only a few fixed cases. Second, satisfiability in general models is Pspace-complete and drops to Np-complete with the addition of Euclidean property. In our setting, satisfiability in general models is already Fpt (but see conclusion for a discussion about why satisfiability in general models is not Fpt unless Ptime=Np, when treewidth is the only parameter).

O B 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 B I 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 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 B 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 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 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 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 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 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 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 B 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 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 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 O O O O O O O O O O O B 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 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 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 B O O O O O O O O O O O O O O B I B 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 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 B O O O O O O O O O B O O O O