Timesaving techniques for decision of electron-molecule collisions in Monte Carlo simulation of electrical discharges Techniques to reduce the computational load for determination of electron-molecule collisions in Monte Carlo simulations of electrical discharges have been presented. By enhancing the detection efficiency of the no-collision case in the decision scheme of the collisional events, we can decrease the frequency of access to time-consuming subroutines to calculate the electron collision cross sections of the gas molecules for obtaining the collision probability. A benchmark test and an estimation to evaluate the present techniques have shown a practical timesaving efficiency. Collision of electrons with gas molecules is one of the key processes which govern the properties of plasmas and electrical discharges used for applications such as material processing and light sources. In Monte Carlo simulations of such phenomena, the occurrence of the electron collision and the choice of the subsequent physical or chemical processes are the very stochastic events determined by random numbers. The collision probability is given from the electron collision cross section q defined for each reaction of a gas molecule. Because q is usually a function of speed v or energy of the colliding electron, the calculation of q(v), typically consisting of table look-up and interpolation/extrapolation, is often time-consuming. Even with recent progress in the computer technologies, timesaving algorithms are still valuable under an increasing demand on the computational throughput.. Some efficient techniques to reduce the computational load concerned with the decision of the collisional events have been presented. Skullerud [1] introduced an imaginary collision cross section of zero momentum transfer in order to make the total collision frequency ν total seemingly constant, with which the free flight time τ of a particle until the succeeding collision can be given simply. , where ξ is a uniform random number (0 ≤ ξ < 1). Nanbu [2] proposed a method to decide the occurrence of a collision in a simulation time step ∆t and the kind of collision at the same time referring to only one value of ξ. In contrast that the conventional method needs to calculate q(v) for all kinds of collisions under consideration for every ∆t, Nanbu's method needs to calculate only one of them; when the number of the kinds of collision is n, the computational load becomes 1 n of the conventional method. In this paper, we customize Nanbu's method. We begin with showing an overview of the conventional and Nanbu's methods. Next, we compare two criteria on the upper limit of ∆t. One is Nanbu's criterion arising from the algorithm of Nanbu's method itself, and the other is an analytical requirement for the precision in the evaluation of the collision probability. After that, we present three new techniques to reduce the computational load. The first is reduction of the access to the calculation subroutines for q(v). This is applicable to simulations of a gas with a small n (favorably up to [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] . The second is division of large collision probabilities of a gas with a large n (practically over 50) into some portions to evade Nanbu's criterion which would require a shortening of ∆t leading to an increase in the computational cycles in the simulation. The third is an improvement of the detection efficiency of the no-collision case. This can be combined with both of the first and second techniques. By a benchmark test and an estimation, the efficiency of these techniques is evaluated. We have proposed three timesaving customization techniques for Nanbu's method to decide electron-molecule collisional events in Monte Carlo simulations of electrical discharges.. The first is introduction of null collisions. This is applicable to simulations of a gas with a small number n of the kinds of collisions. We can reduce the frequency of the access to time-consuming subroutines for calculation of the electron collision cross section q by increasing n virtually.. The second is a solution to violation of Nanbu's criterion on the simulation time step ∆t. This violation is likely to occur for a gas with a large n, and requires shortening of ∆t, which results in an increase in the computational cycles. However, under a certain condition, we can evade the requirement on ∆t from Nanbu's criterion by dividing large q's into some portions.. The third is an improvement of detection efficiency for the no-collision case. By referring to the maximum value of the collision probability P of a chosen process, the access to the subroutines for q can be reduced. This technique can be combined with either of the first and second techniques.. A benchmark test and an estimation to evaluate the present techniques have shown a satisfactory timesaving effect.. When it is assumed that the number of collisions within ∆t is at most one, the neglected probability of plural collisions, P (X ≥ 2) = 1−P (X = 0)−P (X = 1), is P (X ≥ 2) = 1 − exp(−ν∆t) − exp(−ν∆t)ν∆t . In both of Eqs. (5) and (6), the principal terms which determine the precision of the approximations are n > P k,max for the chosen k, it is obvious that collision k never occurs; at that time, calculation of P k (subroutine call for q(v)) is not necessary.

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


Remote plasma enhanced atomic layer deposition of ZnO for thin film electronic applications This paper describes a systematic approach to analyze the simultaneous impact of various reactant plasma parameters of remote plasma enhanced ALD (PEALD) on the ZnO thin film properties. Particular emphasis is placed on the film stoichiometry which affects the electrical properties of the thin film. Design of Experiment (DOE) is used to study the impact of the oxygen plasma parameters such as the RF power, pressure and plasma time to realize semiconductor quality of ZnO thin film. Based on the optimized plasma condition, staggered bottom-gate TFTs were fabricated and its electrical characteristics were measured. Zinc oxide is a metal-oxide semiconductor with considerable potential for applications in electronics, optoelectronics and sensors due to its wide and direct bandgap of 3.37 eV, large excitonic binding energy of 60 meV and its low cost [1, 2] . There have been many reports on the deposition of ZnO using pulsed laser deposition (PLD) [3] , molecular beam epitaxy (MBE) [4] and chemical vapor deposition (CVD) [5] . However, these depositions require high temperatures and it is difficult to perform large area deposition on low cost substrates. Recent attention has been focused on conventional ALD as the preferred growth method due to the low growth temperature, good crystallinity and good control of thickness, composition and uniformity [6] [7] [8] [9] [10] . ZnO thin film transistors fabricated with ALD ZnO have shown excellent electrical characteristics [6] [7] [8] .. In the ALD process, diethyl zinc, DEZ and water are normally used as metal precursor and reactant, respectively. This is called thermal ALD and has been extensively studied and can be considered as a model system for ALD [6] [7] [8] [9] [10] . Recently, plasma assisted ALD method has been explored [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] and it is found that the use of plasma species as reactants allows more freedom in processing conditions and wider range of material properties compared with the conventional thermal ALD. The use of plasma also significantly reduced the OH impurity which affect the conductivity of the semiconductor film and induce defects in dielectric materials [16] . In the advent of this, remote PEALD has been widely reported to form high quality dielectric films, particularly for high-k dielectric materials [18] [19] [20] . Very few have reported using remote PEALD for semiconductor layer especially ZnO film [11, 12] .. In this work, we study the remote PEALD process to deposit semiconducting and high quality ZnO layer for electronic device applications. Various plasma parameters were varied and their effects on ZnO film properties were investigated. A semiconductor quality ZnO thin film was successfully deposited by remote PEALD. Film stoichiometry is reduced and carbon impurity content is increased by long oxygen plasma exposure time and very low plasma pressure. The results show film resistivity and carrier mobility are affected by presence of carbon impurity. The TFT from the optimized remote PEALD process operates in enhancement mode with threshold voltage of 2.5 V. It has a respectable I ON /I OFF ratio of 5.9 Â 10 7 and excellent output characteristics which exhibits distinct linear and saturation region. Finally, remote PEALD process has a great potential in producing semiconductor quality metal-oxide film.

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


Concept location using formal concept analysis and information retrieval The article addresses the problem of concept location in source code by proposing an approach that combines Formal Concept Analysis and Information Retrieval. In the proposed approach, Latent Semantic Indexing, an advanced Information Retrieval approach, is used to map textual descriptions of software features or bug reports to relevant parts of the source code, presented as a ranked list of source code elements. Given the ranked list, the approach selects the most relevant attributes from the best ranked documents, clusters the results, and presents them as a concept lattice, generated using Formal Concept Analysis.The approach is evaluated through a large case study on concept location in the source code on six open-source systems, using several hundred features and bugs. The empirical study focuses on the analysis of various configurations of the generated concept lattices and the results indicate that our approach is effective in organizing different concepts and their relationships present in the subset of the search results. In consequence, the proposed concept location method has been shown to outperform a standalone Information Retrieval based concept location technique by reducing the number of irrelevant search results across all the systems and lattice configurations evaluated, potentially reducing the programmers' effort during software maintenance tasks involving concept location. Identifying the parts of the source code that correspond to specific system functionality is a prerequisite to program comprehension and is one of the most common activities undertaken by developers. This process is called concept (or feature) location [Wilde et al. 1992] and it is among the key questions that developers ask during software development and maintenance [Sillito et al. 2008] . During software evolution, the existing code is modified in order to add new features or to alter existing ones. This is the context in which we address concept location. During the incremental change of software [Rajlich and Gosavi 2004] , developers use concept location to identify the This work is supported by NSF CCF-0916260, NSF CCF-1016868, NSF CCF-0845706, and NSF CCF-1017263 grants. Any opinions, findings, and conclusions expressed herein are the authors' and do not necessarily reflect those of the sponsors. Authors' address: D. Poshyvanyk; email: dposhyvanyk@gmail.com. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested fromlocation in the source code where they will implement the changes. The input is usually a change request (or a bug report) and the result is the location of the change (for example, a method in source code). Although the goal of incremental change is to identify all the components that need to be changed, the developer must find the location in the code where the first change will be made. For that, programmers search the whole program and various concept location techniques aim at narrowing down this search space. Recent research literature defines this step as finding only one part of the concept implementation, which is the starting point of a change [Gay et al. 2009; Liu et al. 2007; Revelle et al. 2010] . The full extent of the change is then handled by impact analysis, which is methodologically different from concept location, and thus is treated separately in the research literature [Rajlich and Gosavi 2004] . In this article, we explicitly address the identification of methods in software that are part of the implementation of a feature (that is, they are changed when the feature is altered) and can be used as starting points for impact analysis. Concept location is also referred to in the literature as feature identification or concern location. Section 3 discusses in more detail the distinctions between features and concepts. Through the rest of the article we use the term concept location, even when we refer to similar techniques that are named differently. When the context may generate confusion between the uses of the word concept in concept location vs. concept analysis we use feature instead of concept.. One of the most commonly used techniques to support concept location is based on text search in source code, where developers write queries and a search engine returns a list of source code elements relevant to the query. In many cases, only a small fraction of the search result is actually relevant to the concept being located. In these cases, developers either undertake the daunting task to investigate in detail as much as they can from the results, or they reformulate their query to reduce the size of the search results. Eventually, even after a series of refined queries, the user will need to investigate a subset of the results. This type of concept location is an instance of a text retrieval task. In general, it is common in text retrieval and data mining applications to either cluster the data prior to executing queries or to cluster the results after a query is executed [Carpineto et al. 2009 ]. Parts of the software can relate to each other in more than one way (e.g., via data flow, control flow, conceptual similarity, past cochanges, etc.). In consequence it is hard to find a similarity measure that supports partitioning of the entire software in clusters relevant to all of its features. Another problem of preclustering the search space is in establishing the appropriate number of clusters. Given these issues, our choice is to cluster part of the search results, which are already relevant to the concept at hand. Our work aims at helping developers in reducing their efforts by providing additional structure in the search results, such that parts of the source code are grouped based on common topics. Similar approaches are also employed by popular internet search engines, such as Vivisimo 1 and Yippy. 2 Specifically, we augment an existing information retrieval (IR) based technique for concept location [Marcus et al. 2004] with automatic clustering of the search results using formal concept analysis (FCA). This approach is inspired by previous work, which applied FCA to free-text search [Cigarrán et al. 2004] . The IR-based concept location technique uses a search engine based on Latent Semantic Indexing (LSI) [Deerwester et al. 1990 ], which allows users to search source code and related textual documentation by writing natural language queries and retrieving a list of source code elements (that is, classes, methods, functions or files), which are ranked based on their similarity to the query. Based on the ranked results of the search, we automatically generate a labeled concept lattice. Developers can determine whether a node from the concept lattice (that is, a topic or category) is relevant or not to their query by simply examining its label; they can then explore only relevant nodes in the lattice and ignore the other ones, thus reducing their search effort. In this article we proposed a novel solution to address the problem of concept location in source code by combining Formal Concept Analysis and Information Retrieval. In the proposed approach, Latent Semantic Indexing is used to map concepts expressed in textual change requests (e.g., bug reports or feature requests) to relevant parts of the source code, presented as a ranked list of search results. The benefit of our approach comes from automatically selecting most relevant attributes from a subset of source code documents in the search results and organizing them in a concept lattice using Formal Concept Analysis. We evaluated the proposed approach on six opensource systems with several hundred features and bugs for each system and derive our conclusions based on the analysis on different configurations of the corresponding concept lattices.. The proposed concept location method, which combines Information Retrieval and Formal Concept Analysis, provides very good results (e.g., average maximum possible precision gain exceeding 2,000% for configurations of Rhino) when considering a relatively small subset of number of methods (e.g., 100 out of 3,000 in the case of Rhino), hence it is easy to use for software of any size. It should be noted that our primary metric for comparing the proposed technique is based on potential optimistic gain while using concept lattices during concept location. Our approach outperforms in the best case scenario the IR-based concept location technique for all the configurations (e.g., average maximum possible precision gain for all systems range between 71%-2,864% for configurations using 25 terms), whereas the best results are obtained while increasing the number of terms and decreasing the number of documents. Additionally, concept location with concept lattices using corpus stemming outperforms its carbon copy, which does not utilize stemming (as indicated by average improvement of 567% for all systems and configurations considered). Finally, concept lattices are shown to be quite effective (up to 79 times improvement over simple ranking) in terms of grouping relevant information and labeling topics, concepts, and relationships between them, offering the user additional cues when exploring the results of a search. This section outlines research related to our work, where we present existing approaches to feature and concept location, with specific focus on the use of FCA in this context.. Concept location is also referred to in the literature as feature identification or concern location. Features are special concepts (that is, a subset of concepts) that are associated with the user visible functionality of the system. The shared goal of these techniques is to identify the source code units (such as, methods, function, classes, etc.) that implement (part of) a concept of interest from the problem or solution domain of the software. Concept location is an essential part of the software change process [Rajlich and Gosavi 2004] .. Existing approaches to concept location use different types of software and data analyses. They can be broadly classified into static, dynamic, and combined analysis based approaches [Dit et al. 2011b] . Our approach is a static technique, as it uses only the source code (and possibly documentation) without executing the software. We will focus this section on static concept location techniques alone. Based on the information they use for analysis, the static techniques can be further refined into: text-based techniques, which use text searching; structural-based techniques, which navigate the source code using software dependencies; and of course hybrid ones, which combine different information sources. Biggerstaff et al. [1994] introduced the problem of concept assignment in the context of static analysis. They implemented a tool that extracts identifiers from the source code and groups them to support identification of concepts. The simplest and most commonly used text-based static technique relies on searching the source code using regular expression matching tools, such as the Unix utility grep. Modern development environments like Eclipse and MS Visual Studio build many useful add-ons on top of simple pattern matching, including references to class and method names, etc. Similarly, Ratiu and Deissenboeck [2007] use simple matching to map concepts to program elements within their formal framework. A significant improvement over regular expression matching is brought by information retrieval-based [Cleary et al. 2009; Gay et al. 2009; Liu et al. 2007; Marcus et al. 2004; Poshyvanyk et al. 2006b ] and natural language processing Hill et al. 2009; Shepherd 2007; Shepherd et al. 2007 ] approaches, which allow more general textual queries and provide ranking of the results to these queries. Recent approaches also utilized independent component analysis [Grant et al. 2008] , and Latent Dirichlet Allocation [Lukins et al. 2008 ] to support concept location. One common limitation of these approaches is redundancy in the search results that could be reduced by inferring additional structure among the search results and grouping them based on common topics. Our work tackles this limitation of existing IR-based concept location techniques, augmenting them with formal concept analysis to automatically cluster search results.. One of the first structural-based static techniques for concept location is the one proposed by Chen and Rajlich [2000] , which is based on the search of an abstract system dependence graph. This approach has been recently extended [Robillard 2005 [Robillard , 2008 via analysis of dependency topologies to rank elements of interest in source code. Some other methods combine other types of information obtained via static analysis (that is, textual and structural), such as Zhao et al. [2006] who proposed a technique that combines information retrieval with branch-reserving call-graph information (i.e., an expansion of the call graph with information on branches and sequential information) to automatically assign features to respective elements in the source code. Gold et al. [2006] proposed an approach for binding concepts with overlapping boundaries to the source code that is formulated as a search problem using genetic and hill climbing algorithms. A comparison and overview of static feature location techniques can be found in the work of .. Among the techniques that combine static and dynamic information (that is, dependencies and execution traces), of interest is the work of Eisenbarth et al. [2003] , as it uses FCA to relate features together. FCA is applied to formal contexts consisting of computational units, an executable part of the system (e.g., class, module, basic block), as objects and scenarios, a set of user triggered observable events in a system, as attributes, where the relation between objects and attributes identifies computational units exercised by scenarios. Resulting concept lattices identify general and specific computational units as well as relationships between features and computational units. This technique has been recently applied in the industrial setting [van Geet and Demeyer 2009] .. FCA has many uses in software engineering [Lienhard et al. 2005; Snelting 2005; Tonella 2003 ] such as identification of objects in legacy code, however, we discuss here the ones that specifically address concept location. In addition to the work of Eisenbarth et al. [2003] (mentioned earlier), Tonella and Ceccato [2004] use dynamic analysis together with FCA to identify aspects in execution traces. Execution traces, obtained by exercising use cases, are objects and executed class methods are attributes of the formal context. Discovery of candidate aspects entail locating use case specific concepts where the intension contains methods from multiple classes and methods of the concept that also appear in the intension of other use case specific concepts. Mens and Tourwe [2005] apply FCA to mine source code to support various program comprehension tasks, including concept location. In their work objects correspond to classes and methods, and attributes correspond to substrings from class and method names. The resulting concept lattice helps identify design pattern instances, coding and naming conventions, refactoring opportunities and important domain concepts.. Our application of FCA differs from this earlier work. The purpose of FCA, in our case, is to provide automatic clustering and distillation of the search results. We conjecture that inferring and using implicit structure or order in the search results should help reduce the search space and user efforts in terms of locating source code elements related to the concept of interest. We build a formal context, to be used in FCA, by considering source code methods as objects and words (e.g., identifiers and comments) in these methods as attributes.. A comparison of different approaches for feature location in legacy systems is presented by Wilde et al. [2003] . A more up-to-date summary of all existing approaches can be found in the literature [Antoniol and Guéhéneuc 2006; Revelle and Poshyvanyk 2009] , whereas a summary of industrial tools available for feature location is available in the work of Simmons et al. [2006] . In this section we present background information on FCA, a mathematical technique for analyzing binary relations and LSI, an advanced information retrieval method. These two techniques are at the core of our work and come from research fields outside software engineering. We evaluated the proposed technique in the case study with a total of 320 features from six open source systems (see Table II ). The complete details on all the features and bugs used in the case study are supplied in an online appendix. 7 The online appendix also includes the information on the methods that were changed in order to fix the bugs or implemented to introduce the features (these are extracted from the official patches released to fix the bugs and change history of added or modified features). Additionally, the table in the online appendix also shows method ranks in the list of the results obtained with the baseline approach. As explained, the search queries to locate the bugs and features were formulated automatically from the descriptions of the bug reports or features from the available user manuals, thus eliminating any potential bias caused by formulating queries by users. We studied how the number of documents (that is, methods, n) and of terms (that is, attributes, k) affects the size and quality of concept lattices. We also investigated whether stemming of the corpus and queries has an impact on the search results. After an initial study of different lattice configurations with documents and attributes, we decided to keep the number of attributes in the range from 10 to 25 and study the generated concept lattices for the top 80 to 100 documents from the ranked list. Using less than 10 attributes resulted in low clustering capacity in grouping related concepts, while using more than 25 attributes, generated a relatively large number of concept nodes in the lattices making them difficult to navigate. For every concept location task, given a query and a ranked list of the results, we build 24 concept lattices of different configurations: 12 lattices using all possible combinations of documents (that is, 80, 90, and 100) and terms (that is, 10, 15, 20, and 25), which are obtained from the corpus without applying stemming and 12 lattices with the same document-term configurations for the stemmed corpus. In order to perform a fair comparison between concept lattices with varying number of documents and with or without stemming, we only considered queries where the first relevant method appeared in the top 80 for both the stemmed and nonstemmed scenario. Such criteria ensured that metric values for the concept lattices are defined. We derive our analysis results from the concept lattices created for the features of ArgoUML, Freenet, iBatis, JMeter, Mylyn and Rhino (see Table II for the number of concepts located per system).

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


A multiprocessor system-on-chip for real-time biomedical monitoring and analysis: ECG prototype architectural design space exploration In this article we focus on multiprocessor system-on-chip (MPSoC) architectures for human heart electrocardiogram (ECG) real time analysis as a hardware/software (HW/SW) platform offering an advance relative to state-of-the-art solutions. This is a relevant biomedical application with good potential market, since heart diseases are responsible for the largest number of yearly deaths. Hence, it is a good target for an application-specific system-on-chip (SoC) and HW/SW codesign.This research was supported partly by the Swedish International Development Agency (SIDA). Authors' addresses: I. Al Khatib (corresponding author), Royal Institute of Technology (KTH), ICT, KTH, Stockholm, Sweden; email: ikhatib@imit.kth.se; F. Poletti, DEIS, University of Bologna, Bologna, Italy; D. Bertozzi, ENDIF, University of Ferrara, Ferrara, Italy; L. Benini, DEIS, University of Bologna, Bologna, Italy; M. Bechara, H. Khalifeh, ECE, American University of Beirut (AUB), Beirut, Lebanon; A. Jantsch, Royal Institute of Technology (KTH), ICT, KTH, Stockholm, Sweden; R. Nabiev, Karolinska University Hospital, Karolinska, Huddinge, Stockholm, Sweden. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or direct commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (212) We investigate a symmetric multiprocessor architecture based on STMicroelectronics VLIW DSPs that process in real time 12-lead ECG signals. This architecture improves upon state-of-the-art SoC designs for ECG analysis in its ability to analyze the full 12 leads in real time, even with high sampling frequencies, and its ability to detect heart malfunction for the whole ECG signal interval. We explore the design space by considering a number of hardware and software architectural options. Comparing our design with present-day solutions from an SoC and application point-ofview shows that our platform can be used in real time and without failures. Al Khatib, I., Poletti, F., Bertozzi, D., Benini, L., Bechara, M., Khalifeh, H., Jantsch, A., and Nabiev, R. 2008. A multiprocessor system-on-chip for real-time biomedical monitoring and analysis: ECG prototype architectural design space exploration. The advance in embedded systems and multiprocessor trends paves the way for the development of single-chip solutions for computationally intensive biomedical applications with potential health benefits for a large number of individuals. One important application in this respect is the real-time remote and accurate analysis of human heart activity, which has always been a challenging problem for biomedical engineers. Heart disorders like cardiovascular disease (CVD) and stroke are the leading causes of death in the world for both women and men of all ethnic backgrounds [Fuster 1999 ]. In 2003, CVD alone was responsible for 29.2% of the total global deaths, according to the World Health Organization (WHO), and this percentage is increasing every year [Fuster 1999 ]. More than 50% of these deaths can be saved with a reliable combination of cost-effective monitoring and accurate analysis [Fuster 1999 ].. Heart activity is electrically recorded as a set of electrocardiogram (ECG) signals which can readily reveal a number of heart malfunctions [Lo et al. 2005; CIMIT 2006; BIOPAC 1985] . The most reliable ECG analysis technique is the 12-lead ECG, which requires the reading and analysis of 12 different signals sensed from the patient's body. The main challenge arises from the high computational demand for processing huge amounts of ECG data in parallel under stringent time constraints, relatively high sampling frequencies, and life-critical conditions [Haraland et al. 2003 ]. The challenges become even more complex when the patient is mobile and remotely monitored (as in cases of homecare and emergency at the point-of-need) [HSFC 1999 ] because stateof-the-art biomedical equipment for heart monitoring lacks the ability to provide large-scale analysis and remote, real time computation at the patient's location. This necessitates the transmission of huge amounts of life-critical data over a communication link to a large set of computing devices on another location [CIMIT 2006 ]. In cases of mobile patients, this requires a 100% functional always-ON wireless connection, since losing even a few items of heartbeat data may be life threatening.. To overcome the aforementioned challenges and the problem of transmitting life-critical data on a wireless link (that is neither reliable nor secure enough), the solution is to parallel-process the complex biomedical computations of the 12-lead ECG on a wearable MPSoC. Hence, the solution only transmits secure remote-alarm signals and only reports on the results of the analysis. These result reports are much smaller in size (a few bytes) than the ECG data (in Megabytes), and if transmission fails, they can be retransmitted until reception is acknowledged by the healthcare remote-monitoring center, since they are saved on an off-chip memory for every analyzed ECG data chunk.. This technical objective calls for the design of special-purpose SoC architectures featuring increased energy efficiency while providing high computation capabilities. In this article we introduce a novel MPSoC architecture for ECG analysis which improves upon state-of-the-art, mostly for its capability to perform a number of real time analyses of input data with high sampling frequencies, leveraging the computation horsepower and functional flexibility provided by many (up to 12) concurrent DSPs. The proposed architecture addresses usability, security, and safety of the patients in emergency situations and long-term treatments. Comparison between our design and previous work shows the advantages of our design from an SoC performance point-of-view and from an application point-of-view. For instance, the comparison in Section 5 with the relatively old and still presently used Pan-Tompkins algorithm [Pan and Tompkins 1985] shows that the Pan-Tompkins algorithm may fail to detect the correct heart period, while our solution does not. The biochip system builds upon some of the most advanced industrial components for MPSoC design (multiissue VLIW DSPs, system interconnect from STMicroelectronics, and commercial off-the-shelf biomedical sensors), which have been composed in a scalable and flexible platform. Therefore, we have ensured its reusability for future generations of ECG analysis algorithms and its suitability for the porting of other biomedical applications, in particular those collecting input data from wired/wireless sensor networks.. The article goes through all steps of the design methodology, from application functional specification to hardware definition and modeling. System performance has been validated through functional, timing-accurate simulation on a virtual platform. A 0.13μm technology homogeneous power estimation framework leveraging industrial power models is used for power management considerations. We present an application-specific MPSoC architecture for real time ECG analysis as a solution for a large medical problem (CVD and stroke) which leads yearly to the highest number of deaths. Our solution leverages the computation horsepower of many (up to 12) concurrent DSP cores to process ECG data. This solution paves the way for novel healthcare delivery scenarios (e.g., mobility) and for accurate diagnosis of heart-related diseases. We describe the design methodology for the MPSoC and explore the configuration space looking for the most effective solution, both performance and energy-wise. We present three interconnect architectures (single bus, full crossbar, and partial crossbar) and compare them with existing solutions. The sampling frequencies of 2200 Hz and 4000 Hz with 12 DSPs are found to be the critical points for our shared-bus design and crossbar architecture, respectively. We compare our solution with present-day existing solutions in research, in the market, and in many hospitals. Our solutions offer significant advances in SoC HW/SW codesign, and prove no single case of failure when run and tested on the standard MIT-BIH arrhythmia database, while the widely used Pan-Tompkins solution failed in some cases, of which we reveal two. ECG monitoring and analysis have been explored in many companies and research organizations. However, we are not aware of any single-chip real time analysis solution for the full 12-lead ECG, which is able to accurately study the heart rhythmic period and can diagnose all the peaks P, Q, R, S, T, and U and their interpeak intervals to result in a disease diagnosis. Previous work on ECG analysis can be classified into four types of solutions: (i) classical stationary-machine solutions [BIOPAC 1985 ], (ii) SoC solutions [Chang et al. 2004; Freescale 2007] , (iii) handheld device solutions [Hung et al. 2004; Jun and Hong-Hai 2004] ; and (iv) ASIC solutions [Desel et al. 1996] . The Classical solutions do not allow for patient mobility or remote analysis since they are wall-plugged, thus suffer from the need for many beds in the healthcare center. Moreover, in the classical medical technique for ECG analysis, the 12-lead signals are printed on eyeballing paper, making the check of different heart peaks and rhythms difficult and inaccurate due to its dependence on the physician's eyes. On the other hand, when using digital recording and filtering we can determine the peaks more accurately. The SoC solution in Chang et al. [2004] does not run 12-lead analyses, but runs 1 lead per SoC. Consequently, to run 12-lead analyses with this solution means using 12 chips. One commercial solution [Freescale 2007 ] takes 8 input sensor-lines, calculating and analyzing lead signals on the 1 DSP. Hence it is time consuming. It only detects whether the heart is healthy or unhealthy without analyzing diseases, since it only detects the QRS peaks without the P and T. Therefore, it is not scalable. It uses 12 bits for the signals while we use 16 bits, thus we add more accuracy to the analysis. The handheld solutions only read and transmit data. The ASIC solutions are just used for data acquisition before transmission. Biomedical sensors today exhibit increased energy efficiency, therefore prolonged lifetimes (up to 24 hours) as well as higher sampling frequencies (up to 10 kHz for ECG), and often provide for wireless connectivity [Ambu 2007 ]. Unfortunately, a mismatch exists between advances in sensor technology and the capabilities of state-of-the-art heartbeat analyzers [Harland et al. 2003 ]. The latter cannot usually keep up with the data acquisition rate and are usually wall-plugged, thus preventing mobile monitoring. We aim at using state-ofthe-art commercial sensors from the Ambu corporation's silver/silver chloride "Blue Sensor R" [Ambu 2007 ]. Moreover, most present-day solutions look at a part of the ECG signal to detect whether the heartbeat was healthy, hence make no use of the huge amount of information that may be gained from stateof-the-art sensors and the modern advance in electronics (SoC, in particular). For instance, although many hospitals use modern sensors that can give very accurate data recordings; they still use relatively old methods/platforms to analyze the recorded data. Consequently, those relatively old methods may still fail, and even if they don't, they cannot analyze the full ECG signal but only a part of the heart signal. This in turn gives only partial knowledge about the heart, thus keeping many disease cases obscure and dependent on the nurse's eyes (i.e., not as accurate as modern computer processing). Our proposed ECG-analysis algorithm (see Figure 2 ) is conceived as parallel and hence scalable from the ground up. Since each lead senses and analyzes data independently, each lead can thus be assigned to a different processor. So, to extend ECG, analysis to 15-lead ECG, for example, or more, then what is required is just to change the number of processing elements in the system. The program reads a data file in chunks of 4 sec. We discuss next the reason for the choice of 4-sec. chunks. The data file mainly holds values of the ECG at the lead in binary format. So by reading the data continuously every 4 sec., we would be emulating a real sensor sending continuous data to an intermediate buffer that holds 4 sec. of data sampled at a certain frequency, typically 1000 Hz. We used an autocorrelation-function-(ACF) based methodology to calculate the period and other parameters of the heartbeat, since it gives more accurate results than conventional methods to search for the distance between two peaks. The autocorrelation we use as shown in Eq. (11) has a certain number of lags (L) to minimize the computation for our specific application, as discussed next. We validated our algorithm over several medical traces [Physiobank 2000 ].. where Ry is the autocorrelation function, y is the filtered signal under study, n is the index of the signal y, and k is the number of lags of the autocorrelation. L has an effect on the performance due to the high number of multiplications. We run the experiments for n = 1250, 5000, and 50000 relative to sampling frequencies of 250, 1000, and 10,000 Hz, respectively. To run this algorithm with Eq. (11) takes around 1.75 million multiplications. To minimize errors and execution time we use the derivative of the ECG filtered signal, since if a function is periodic then its derivative is periodic. Hence, the autocorrelation function of the derivative can give the period as shown in Figure 3 . In order to be able to analyze ECG data in real time and to be reactive in transmitting alarm signals to healthcare centers (in less than 1 min.), a minimum amount of acquired data has to be processed at one time without losing the validity of the results. For the heartbeat period, we need at least 4 sec. of ECG data in order for the ACF to give correct results.. From a technical viewpoint, real time processing of ECG data would allow a finer-granularity analysis with respect to traditional eyeball monitoring of the paper ECG readout.

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


On the Complexity of Case-Based Planning We analyze the computational complexity of problems related to case-based planning: planning when a plan for a similar instance is known, and planning from a library of plans. We prove that planning from a single case has the same complexity than generative planning (i.e., planning "from scratch"); using an extended definition of cases, complexity is reduced if the domain stored in the case is similar to the one to search plans for. Planning from a library of cases is shown to have the same complexity. In both cases, the complexity of planning remains, in the worst case, PSPACE-complete. Case-based reasoning [23, 1, 32] is a problem solving methodology based on using a library of solutions for similar problems, i.e., a library of "cases" with their respective solutions. Roughly speaking, case-based planning consists into storing generated plans and using them for finding new plans [15, 8, 29] .. In practice, what is stored is not only a specific problem with a specific solution, but also some additional information that is considered useful to the aim of solving new problems, e.g., information about how the plan has been derived [30] , why it works [20, 16] , when it would not work [17] , etc. Different case-based planners differ on how they store cases, which cases they retrieve when the solution of a new problem is needed, how they adapt a solution to a new problem, whether they use one or more cases for building a new solution, etc. The survey papers by Bergmann et al. [8] and by Spalazzi [29] give a detailed introduction to case-based planning.. In this paper, we study the computational complexity of case-based planning, i.e., we characterize the complexity of case-based planning using the theory of the NP-completeness [18] . What makes this analysis different from the other results on the complexity of planning [9, 26, 25, 7, 3, 5, 6, 4] . is that case-based planning is not actually a problem, but rather a family of solutions for a problem. In fact, the theory of computational complexity can only characterize the complexity of problems, not of family of solutions. On the other hand, case-based planning always requires solving some specific subproblems, such as, for example, the adaptation of a plan to a different problem. In this paper, we study the complexity of some problems that are related to case-based planning.. The first problem we consider is that of finding a plan given another plan that works on a slightly different domain. This problem formalizes the task of plan adaptation that case-based planners have to perform. While the formalization of this problem disregards many aspect of plan adaptation in practice (e.g., more plans for similar cases may be available), it nevertheless contains the main requirement of plan adaption: building a new plan given an old one. This problem has been already analyzed by Nebel and Koehler [27, 28] under the constraint of minimal plan change: the new plan should be as similar to the old one as possible; plan adaptation in this case is called conservative. There are some scenarios in which this constraint is reasonable (e.g., we schedule the actions of the old plan before starting planning, and not executing them results in an additional cost); while conservatism is sometimes obtained as a byproduct of algorithms that work by changing an old plan [20] , it is usually not a requirement. On the contrary, not enforcing minimal change has been considered a viable alternative for escaping the high complexity of conservative plan adaptation [2] . The absence of the constraint of conservatism is also evident in the generative case-based planning approach, which differs from the transformational case-based approach outlined above in that the new plan is generated from scratch (rather than from the old plan), and the case is used to guide the choices made during the search [8] .. The main problem of analyzing a solution technique, rather than a specific problem, is that the implemented solutions may greatly differ to each other. While the abstract idea of reusing old plans is part of all case-based planners, even giving a common definition of "an old plan" is not easy. This may be simply a specific plan, but can also be an abstract plan, or a partially ordered plan, and may include additional information [20, 30, 17] . Moreover, the plan adaptation problem may not be tackled at all: planning by derivational analogy [13, 31] uses the traces of the search done for finding a plan, rather than the plan itself; generative case-based planners [8] build a plan from scratch by using information from more than one case, rather than adapting a specific plan. In the opinion of the author of the present paper, the problem of plan adaptation in its simpler formalization is a good starting point for the computational analysis of plan adaptation, even if it is not the problem that is faced in practice.. What makes giving a formalization that is at the same time general and precise a difficult task is that plan adaptation cannot always be separated from the other steps of case-based planning. For example, the plan to adapt is not chosen arbitrarily in the library of plans; it is chosen because it is expected to be adaptable to the new situation; moreover, more cases may be selected, leading to more than one "starting point" for the search of the new plan. Being impossible to precisely formalize the whole case-based planning process and remain general enough, we consider the problem of case-based planning in a very general way, in which the only assumption that is made is that a case, or a library of cases, is a data structure of polynomial size.. The problems that are therefore considered are: planning from a specific known plan, and planning from a "generalized" case or a library of cases. The first problem formalizes the basic plan adaptation step; the second problem formalizes the fact that cases usually contain additional information other than the plan itself; the third problem is a formalization of the whole casebased planning process.. In the analysis of these problems, we do not enforce the constraint of minimal change. The resulting freedom in the search for plans may simplify the algorithms [2] , but makes the computational analysis more complicated. Indeed, the theory of NP-completeness formalizes problems that can be expressed in a scheme like the following one:. Instance: a planning domain;. Question: is there a plan for the domain?. (for some reason not clear to the author, the words "instance" and "question" are often written in "small caps" font.) The fact that this is a decision problem (the solution can only be yes or not) is not a big restriction, as search problems (where the solution can be a more complex data structure) can be usually reduced to a number of decision problems. What makes this formalization restrictive in the setting of plan adaptation is that there is no slot in the scheme where to place the old plan. Indeed, the old plan is not exactly part of the instance, as it presence does not change the definition of the problem. As well, it is not part of the question. The plan adaptation problem would be better formalized by a list of three parts:. Instance: a planning domain;. Hint: a plan for a similar domain;. Question: is there a plan for the new domain? This is still a decision problem (its solution is either yes or not). However, its definition contains a new part, the hint, which is not necessary for answering the question, but can be useful nevertheless. In other words, the existence of a plan only depends on the domain, not on the hint. The difference between the hint and the instance makes the analysis of plan adaptation carried on in this paper different from that of conservative plan adaptation: in the latter problem, the plan for the similar domain is part of the instance, as the new plan to be found depends on the old one [27] . In other words, the instance of conservative plan adaptation contains a plan for a domain, and the question is whether there exists a similar plan for the new domain. Roughly speaking, an hint is something we could disregard while looking for a solution, while the old plan cannot in the case of conservative plan adaptation.. The problems we analyze in this paper are the problem of adaptation from a specific plan, from a plan plus other information, and the problem of planning with a library of cases. In all these cases, we are given an instance of the planning problem and an hint, which can be a plan, a plan plus other information, or a plan library. The technical results of this paper is that plan adaptation of a single specific plan can be as hard as generative planning (i.e., planning "from scratch" disregarding the hint completely); planning from a more general definition of cases may be easier than generative planning in some cases, but is as hard in general. The same results hold for case-based planning, i.e., planning from a library of cases. In this paper, we have proved two kinds of results: first, adapting a specific plan to a new domain is as hard as planning from scratch; second, a case or a library of cases composed of domains, plans, and additional information, can simplify the problem of planning in some cases, but remains hard in general. These results are interesting because they are formally, and not only empirically, proved.. The first kind of results are somehow not surprising, as it has already been observed that even changing a single condition of the initial state or goal may make a plan completely useless. Our results are simply formal proofs of this observation.. The second kind of results are, in the author's opinion, more interesting. The fact that "extended" cases sometimes lower the complexity of finding plans formally validates the trend in case-based planning of storing complex information in cases, rather than simple plans. Nevertheless, this formal result only holds in a very general settings, in which no assumption, besides polynomiality of space, is made about what is stored in the case. How this result extends to specific form of information used in case-based planners, such as abstract plans or derivational traces, is an open question.. The negative results about the complexity of planning from an extended plan or a library of plans are the most interesting ones of this paper. First, they formally prove that case-based planning can be as hard as generative planning; while this phenomena has been empirically observed [8] , it was not yet proved that it is intrinsic to the problem and not related to the specific implementations. Second, compared with the result on "small changes", it proves that there exists a trade-off of efficiency and size of library in casebased planning. Again, what is interesting in this result is that it has formally proved, not only empirically observed.. Let us compare the results of this paper with similar work in the literature. The computational complexity of planning has been deeply investigated by several authors, e.g., Bylander [9, 10] , Nebel [26, 25, 7] , and Bäckström [3, 5, 6, 4] . All these works are on planning from first principles, i.e., are about planning given only a planning domain. More related to the present work are that by Nebel and Koehler [27, 28] , who analyzed the complexity of conservative plan adaptation. Their complexity results are about planning when the constraint to be similar to another known plan is enforced. While there are some scenarios where this constraint is important, it seems not to be enforced often in case-based planning. Some work on plan adaptation has also been done by Bylander [11] , who has shown that, probabilistically, plan modification is simpler than plan generation provided that the domain of the case is similar to the one to be solved.. As it has already been noticed in the introduction, the problem of plan adaptation and that of planning with a library of cases is of a different kind of most problems that are studied in computational complexity, in that the data we are given include an "hint" that can very well be neglected if necessary. Such problem format include other problems, such as case-based reasoning in general. The complexity of other forms of case-based reasoning is an interesting problem which is however out of the scope of this paper. The problem of deciding whether there exists a plan for a STRIPS instance is denoted as PLANSAT, and is known to be PSPACE-complete [9, 10] . If a planning case D o , P o is also known, the problem cannot become more difficult, as we can simply disregard the case and find the plan using D only. Essential to this trivial result is that we do not enforce adaptation to be conservative, as motivated in the Introduction. The problem of plan adaptation is therefore in PSPACE. While a problem cannot be made harder by the presence of an hint, it may become easier. The following theorem shows that this is not the case for plan adaptation. Proof. The problem is in PSPACE, as we can find the a plan for D disregarding the case D o , P o .. We prove that the problem of plan adaptation is PSPACE-hard by showing a reduction from PLANSAT. In other words, we show that, given an instance of PLANSAT P, O, I, G , there exists D o , P o and D such that P o is a plan for D o , the domains D o and D only differ for one condition of the initial state, and D has a plan if and only if P, O, I, G has a plan.. The domains D o and D are obtained from P, O, I, G by adding a single condition a, a single action e = {a}, ∅, M, N , where G = M, N is the goal of the original instance, and possibly modifying the initial state:. The plan P o that is part of the case is e . It can be easily verified that P o is a plan for D o (its preconditions are verified in the initial state of D o , and its consequences are exactly the goal.) As a result, D o , P o and D constitute a valid plan adaptation instance.. A case-based planner, while looking for a plan for D, would first check whether P o works in D and then try to adapt it if it does not. In this case, P o is not executable at all in D, as the precondition a of e is not true in the initial state of D. Moreover, the plan P o is completely useless for solving D, as it requires a to be true, while a is not not initially true in D and cannot even be made true because no action in O ∪ {e} makes it true. As a result, a can be removed altogether from D, along with e that is never executable. After this change, D becomes P, O, I, G , which is exactly the original instance. We can therefore conclude that D has a plan if and only if the original instance has a plan, thus proving the PSPACE-hardness of the plan adaptation problem.. This theorem proves that checking the existence of a case D o , P o does not simplify the check of existence of a plan for a domain D that is similar to D o . Namely, the problem remains PSPACE-complete. We remark that the hardness part of this theorem holds even if the instances are similar, not only in this case. This result is therefore relevant even in those settings in which the choice of the case to reuse is not driven by the similarity of the domain to the one to be solved [19] .. Analyzing the proof, we observe that the reduction used for proving the hardness part can be described as: "given a planning instance P, O, I Proof. The proof is based on the idea of reducing the PLANSAT problem to the plan adaptation problem in which P o is the only plan of D o . By proving that P o is not useful for solving PLANSAT for D, we prove that no plan is, in general, useful.. The proof of Theorem 1 has the only problem that P o = e may not be the only plan of D o . We therefore modify the domain D o to make it so. Given a PLANSAT instance P, O, I, G , the domains D and D o are still based on the set of conditions P ∪ {a}, where a is a new condition. The operators are O ′ ∪ {e}, where:. In words, we add a as a negative precondition of each operator in O. The new action e is defined as in the proof of the previous theorem. The domains D and D o are defined as:. The plan P o is e . This time, P o is the only plan for D o , as all other actions have a as a negative preconditions, while a is initially true and no action makes it false. On the other hand, the action e is not executable in D, as a is initially false and no action makes it true. As a result, we can remove a and e from D, and this makes it identical to the original instance. As a result, D as a plan if and only if P, O, I, G has a plan. This proves that the problem of plan adaptation remains PSPACE-hard regardless of how the plan in the case D o , P o is chosen.. This theorem proves that no plan for D o can be useful in finding a plan for D, even if D and D o only differ for a single condition of the initial state. This result, however, only holds when we assume that a case is exactly a pair D o , P o , i.e., a domain and a plan for it. As explained in the Introduction, case-based planners usually record with plans other information such as derivational traces, abstractions of the plan, information that anticipates when the plan may fail, etc. This additional information can simplify the plan adaptation process. Since case-based planners greatly differ on what information is recorded, we simply assume that the case is recorded as a pair D o , A o , where A o is a polynomial-size data structure. We can prove that such cases may be of help if the new domain to be solved is similar to the one in a case.. The theorem showing this fact, as well as the following one, requires a digression into the topic of problem preprocessing. Problems such as plan adaptation can be formalized as set of pairs D o , D , where the question is: given D o , is there any A o such that solving the question of plan existence of D can be done in polynomial time given D o , A o ? In terms of problem preprocessing, we are given D o , D and ask whether preprocessing D o can result in a data structure A o that makes the PLANSAT problem on D easy to solve, i.e., polynomial-time. Problems for which preprocessing lowers the complexity to P form the class ;P, a.k.a. comp-P, a.k.a. compilable to P. The following lemma shows that the problem of plan adaptation is compilable to P. Proof. Cadoli et al. [12] proved that all problems for which a polynomial number of varying parts (in this case, the number of possible D) that correspond to the same fixed part (in this case, D o ) is a constant, then the problem is compilable to P. This is actually the case, as D and D o only differ for a constant number c of conditions in the initial states or goal; as a result, for any D o there are only |P| c possible D. Since c is a constant, this function |P| c is polynomial in the size of D o and D. As a result, the problem can be compiled to P, i.e., it is in ;P.

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


Automorphisms of the algebra of fuzzy truth values II This paper is an investigation of the automorphisms of the algebra of truth values of type-2 fuzzy sets. This algebra contains isomorphic copies of the truth value algebras of type-1 and of interval-valued fuzzy sets. It is shown that these subalgebras are characteristic; that is, are carried onto themselves by automorphisms of the containing algebra of truth values of fuzzy sets. Some other relevant subalgebras are proved characteristic, including the subalgebra of convex normal functions. The principal tool in this study is the determination of various irreducible elements. This paper continues the investigation begun in [22] of automorphisms of the algebra of truth values of type-2 fuzzy sets. Several signi cant problems left unresolved are settled, the most basic being that the automorphism group of the algebra of fuzzy truth values is isomorphic in a natural way to the product of two copies of the automorphism group of the unit interval. This theorem has several corollaries concerning characteristic subalgebras. The study of subalgebras of the algebra of truth values of type-2 fuzzy sets is relevant because each subalgebra is the basis of a fuzzy theory, where a fuzzy set in this theory is a mapping of a universal set into this subalgebra. The subalgebras considered are typically characteristic. That is, automorphisms of the algebra of truth values induce automorphisms of these subalgebras. Characteristic subalgebras are of special interest because they are \canonical". If an algebra is characteristic, then there is no subalgebra isomorphic to it sitting in the containing algebra in the same way. They are quite special as subalgebras. In some cases automorphisms of the subalgebras are precisely those induced by the containing algebra of all truth values. This situation is investigated for several subalgebras.. Some important subalgebras of the algebra of truth values of type-2 fuzzy sets may be viewed much more simply than as such subalgebras. Speci cally, the basic operations of the algebra of truth values are convolutions of functions, and some subalgebras may be viewed as algebras with much simpler operations, both conceptually and computationally. This is true, for example, for the subalgebra of closed intervals, as pointed out in [21] . Another such subalgebra is the subalgebra of points: the subalgebra of functions whose support is a single point. This subalgebra generalizes in a particular way the truth value algebra of type 1 fuzzy sets and seems a reasonable candidate for applications. Also the basic operations are particularly simple, avoiding complicated computations with convolutions. This algebra will be the subject of a future paper.. Other subalgebras of interest besides those studied in [21] and [22] are the subalgebra of functions with nite support, and the subalgebra of nite sets. Both should be of interest to practitioners. These algebras will also be the subject of future papers.. We begin with a review of relevant de nitions and results from [21] and [22] .

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


A fast method for solving the heat equation by layer potentials Boundary integral formulations of the heat equation involve time convolutions in addition to surface potentials. If M is the number of time steps and N is the number of degrees of freedom of the spatial discretization then the direct computation of a heat potential involves order N 2 M 2 operations. This article describes a fast method to compute three dimensional heat potentials which is based on Chebyshev interpolation of the heat kernel in both space and time. The computational complexity is order p 4 q 2 N M operations, where p and q are the orders of the polynomial approximation in space and time. Boundary integral formulations of parabolic problems involve time convolutions in addition to the usual boundary integral operators. While the finite element or finite difference method are highly popular for this type of problems, the method of layer potentials has distinct advantages, in particular, stability of explicit time stepping and reduction of unknowns to the boundary surface. Boundary element methods that evaluate the time convolution have been discussed in the past decades in several places, such as [4, 9, 11] .. If the time convolution is computed directly the cost quickly becomes prohibitively expensive with increasing problem size which makes the integral equation approach less attractive than competing approaches. However, the situation changes if fast methods for the computation of heat potentials are considered. One such an algorithm is the fast Gauss transform [7] . In this approach the heat kernel is approximated by a Hermite expansion, which leads to an efficient scheme to compute the spatial convolution efficiently. This approach has been combined with re-starts to avoid time convolutions [12] . The original version of the fast Gauss Transform is based on Hermite expansions of the heat kernel. Since the spatial variables of the kernel separate, the translation operator appear in tensor product form, which can be exploited to reduce the computational cost associated with translation operators [13] . Besides Hermite expansions, exponential expansions have been considered as well, in this case translation operators are diagonal [8] .. Another technique that exploits the convolution form of the time integral is to evaluate heat potentials in Fourier domain. This was described for bounded domains in [6] , where the Green's function is expanded in a Fourier series. The method must be combined with nonuniform FFTs since the heat sources are located on a boundary surface. In unbounded domains the kernel appears as a continuous Fourier transform which results in some nontrivial complications, c.f., [5] .. The approach described in this article is more close to the fast Gauss Transform in that the computation is performed in 'physical' and not in Fourier domain. Hence the method is somewhat simpler when the solution must be evaluated in physical space in every time step, which is the case, for instance, when the heat equation is solved via the Green's representation theorem. The main features of the discussed approach are. • The heat kernel is expanded in both space and time. The time convolution is computed using a hierarchical scheme, similar to the FMM for one dimensional source distributions. However, certain modifications are necessary to account for the Volterra form of heat potentials. The cost per time step in this algorithm is almost independent of the length of the time interval.. • The heat kernel is interpolated at the Chebyshev nodes in space and time.. The translation operators of the multipole method can be easily derived and preserve the tensor product form of the kernel.. After discussing heat potentials and their discretization in Section 2 we introduce the Chebyshev interpolation and the resulting translation operators in Sections 3 and 4. This leads to the fast algorithm described in Section 5. Section 6 concludes with numerical results. We have discussed a fast method for solving heat conduction problems with layer potentials. The numerical results are in good agreement with the O(p 4 q 2 N M ) complexity and the O(∆ 3 2 ) quadrature error. It is possible to construct higherorder quadrature schemes that evaluate more terms of the expansion of the local part. The difficulty is that the higher terms involve derivatives of the surface curvature and get very complicated. Table 1 ; coarsest (top) to finest (bottom) mesh.. For the simplicity of exposition, we have restricted the discussion to the homogeneous heat equation and vanishing initial conditions. Source terms lead to volume potentials which can be treated with the same interpolation scheme of the kernel. Non-trivial initial conditions can be included with well-documented algorithms, such as the fast Gauss transform. Table 1 . The cpu times for Meshes 1 and 2 resulted are too short to be measured accurately and are not shown.

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