Spatial Filtering Using the Active-Space Indexing Method Traditionally most camera-based position estimation systems use only a few points to calibrate cameras. In this paper, we investigate a novel and alternate approach for 3D position estimation by using a larger number of points arranged in a 3D grid. We present an implementation of the active-space indexing mechanism which uses three cameras. Given the corresponding points in camera images, a precise estimation of the position can be obtained. The active-space indexing method can be also used as a spatial filter to eliminate the large number of possible corresponding pairs from consideration. This capability, unique only to the active-space indexing method, provides a tractable algorithm to the otherwise intractable situation. There are many major benefits to camera-based techniques which make them desirable for virtual environments [1, 3] . One of the main benefits is that participants do not wear any encumbering tracking devices. However, camera-based virtual environments must resolve 2 SEMWAL AND OHYA the correspondence problem across multiple camera images. This may involve: (a) Identifying corresponding pairs across two or more camera images and then (b) estimating the 3D point for a corresponding pair. There have been several compromises made to resolve the issue of correspondence over the past several decades. This has led to much interesting research performed in the areas of vision [5, 10] , active vision [6] , object recognition [7] , and motion analysis [8, 11] , to name just a few.. Excellent surveys on methods for tracking human participants in virtual environments [24, 25] have appeared recently. So, to avoid unnecessary duplication, we simply ask interested readers to refer them. In this paper, we briefly mention the most recent efforts in this area. Narayanan et al. [23] use depth (range) images to create visible surface models but have Au: OK as in refs? problems with holes and inconsistencies. Moezzi et al. [12] used a color-based, marching Au: "Matching" cube algorithm meant?. cube algorithm with only limited success; Shoichiro et al. [19] used silhouette and obtained only approximate results; Haritaoglu et al. [20] developed an intensity-based discrimination to provide simple (called cardboard) human figures; Wren et al. used blob models [13] in the Pfinder, but their system tracks essentially the 2D information.. One difficulty that camera-based systems face is the variation of color (intensity) values, as they may differ from one camera to another. So, it is very likely that even if we have identified corresponding points in multiple camera images so that they point to the same point in 3D, they may not have the same RGB values. Thus color-based information poses severe reliability problems when it is used for determining the correspondence across multiple cameras. Ambiguities abound due to variations of shadows, noisy and blurred images, placement of light sources, occlusion, and the camera covering different areas of 3D space. Thus, it is highly likely that the projection-pairs belonging to a 3D point may not have similar colors. For example, consider transparent objects, and their corresponding images, may not have the color information as the background scenes may be completely different behind the transparent objects. Indeed, correspondence and occlusion still remain grand challenges.. Occlusion creates tremendous ambiguity and erroneous results in possibly every algorithm developed until today. Additional ambiguity also exists when multiple cameras are used as they almost never cover the identical visible areas. As a result a pixel in one image may not have a corresponding pixel existing in another camera image. The current direction of research has been to find structures from images, for example, identifying a few significant points in [13, 19, 20, 23] , and many others, and resolve correspondences among them, once these limited number of points are obtained. Using calibrated cameras, 3D positions can be estimated, and in some cases mapped onto a synthetic, human-like actor to represent an avatar of the participant. These approximations can add preciseness and robustness problems, as estimation of correspondences may not be reliable. Recently, a second research direction has been emerging as mentioned in [24, 25] . Basically, combinations of several tracking methods are suggested for resolving the correspondence problem. Some methods have already been implemented, for example, the Constellation system in [21] , and the multisensor fusion approach in [22] .. We are pursuing a third alternative toward resolving correspondences. It is hoped that the proposed alternative approach provides complimentary support to the other two approaches discussed above and would lead to the solution of the correspondence problem. Our belief is that, for accurate correspondence resolution, we must consider every pixel of related camera images. As will be explained below, a large number of unique pixel combinations can be generated from just three camera images. Our approach is to simply check all the pixel combinations without extracting any structures. We believe that this method provides the best strategy for resolving correspondence. We also want to develop algorithms which are easy to parallelize in the future, similar to algorithms in [14] . Since we are using three cameras at this time, we should look at the enormity of combinations which we wish to examine for correspondence. Since every possible pixel combination is to be now examined, let us analyze the worst-case approach for such an attempt. Let us assume that every image is 640 × 480 pixels, giving us a total of 307,200 pixels in one image. Since there are three images, we have (307, 200) 3 , that is, 2.8 × (10) 16 possible combinations for a brute force method. This worst case is intractable. We have implemented a tractable solution using the active-space indexing method. In this paper, we show that the major benefit of the active-space indexing method is that it can be used as a spatial filter so that many combinations can be quickly avoided or not be even generated. The new algorithm terminates in a few (4 to 6) min on an Onyx-SGI machine, thus providing a tractable solution. Further improvements are expected by implementing the proposed algorithms on specialized hardware.. The active-space indexing method was originally developed for the Scan & Track system [16] . In this paper, only a brief explanation of the active-space indexing method is in Section 2. For details of Scan & Track and other related information please refer to [15] [16] [17] . Our motivation in developing the active-space indexing method was to recover the 3D position of corresponding pairs to be as accurate as allowed by any camera-based system. We explain a highly accurate method for estimating the 3D position, called the active-space indexing method in Section 3. We have obtained robust and accurate 3D position estimates for both the three-camera and two-camera implementation of the active-space indexing method. In this paper, we will only present the details of our three-camera implementations in Section 3. Interested readers should consult [18] for the details of the two-camera system. In Section 4, we discuss an important application of the active-space indexing method, that of providing a tractable solution for an intractable problem. In particular, we show that the active-space indexing method can be used as a spatial filter as it eliminates a large number of corresponding pairs from consideration. Results in Section 5 show that our technique is capable of predicting the 3D position precisely, as well as acting as a spatial filter.

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


Secure and efficient protocol for mobile payments Electronic Payments have gained tremendous popularity in the modern world. Credit/debit cards and online payments are in widespread use. Bringing electronic payments to the mobile world offers huge utility for mobile users. Lack of standardized protocols, interoperability and security are major roadblocks in developing a mobile payment infrastructure. A scheme called SEMOPS (Secure Mobile Payment Service) has already been proposed by A. Vilmos and S. Karnouskos. This proposed SEMOPS architecture addresses these problems. However, it will work inefficiently for micropayments due to a lot of computation and communication for every payment. Good micropayment support is extremely important for mobile payment systems to succeed. This work focusses on enabling efficient micropayment support in SEMOPS scheme. An analysis of the security and efficiency of the proposed method is given in this paper. Our new proposed method has been found to be very efficient for micropayments in SEMOPS. Mobile payments sytems have tremendous potential to offer many more services and much more convienience that electronic payment systems cannot offer. Mobile payment systems are already in use. However, some of them lack adequate security. They are proprietary and so are not interoperable. This lack of interoperability is the main reason why mobile payment systems have not really become popular. Some standardization which allows various competing service providers/banks to come together and offer a mobile payment service is required. A system called SEMOPS (Secure Mobile Payment Sevice) has been proposed by A. Vilmos and S. Karnouskos [1] . This proposal has the potential to provide a secure platform where competing service providers will give secure mobile payment services. This provides a really good interoperable mobile payment system. However, payment is made immedietely in each and every transaction in this method. This method is useful for macropayments (a payment in which the payment value is so large that payment cost overhead is negligible compared to it). In case of micropayments [2] (small value payments in which the payment cost overhead become comparable to the payment value) this system will be inefficient. Efficient support for micropayments is extremely important if mobile payment systems are to become a success. This paper proposes a scheme to enable micropayments efficiently in SEMOPS architecture. A micropayment scheme has been fitted in SEMOPS architecture with no significant modifications to the original architecture. Efficiency in handling micropayments is achieved by aggregating micropayments to form a macropayment and the macropayment amount is paid thus reducing the overall cost per payment. An analysis of the security and efficiency achieved by the proposed scheme has also been done.. The rest of the paper is organized as follows. Section 2 gives an overview of what work has taken place in mobile payment systems. Section 3 describes the architecture of SEMOPS proposal and shows why micropayments will be inefficient in it. Section 4 gives the principle used by us to incorporate micropayments in SEMOPS. Section 5 elaborates on our proposal to provide efficient micropayment support in SEMOPS. Section 6 describes some security and efficiency considerations of our proposal. Section 7 gives a mathematical analysis of our proposal and we conclude in Section 8. We have shown that micropayments can be efficiently made using existing SEMOPS architecture with minor changes to the already proposed architecture and by adding the above explained micropayment mechanism. This architecture retains the same macropayment mechanism. Unlike many other micropayment mechanisms, the suggested approach for micropayments makes use of intermediaries to aggregate micropayments thus achieving efficiency. The suggested approach does not put the burden of any computationally complex operation on the mobile phone. This is very important in a mobile commerce environment. The micropayment protocol developed saves considerably on the amount of computation and number of messages passed per micropayment. This reduces the total cost of each micropayment. Dahlberg, Mallat, Ondru and Zmijewska [3] present a discussion on mobile payment market which gives factors to be considered from a market point of view in mobile payment systems. According to Delic N. and Vukasinovic, Ana [4] there are three different ways of designing mobile payment systems. One is using SMS based applications, the second is Point of Sale device and the third one is a mobile commerce application. The drawback in the SMS based application is that the SMS will be stored on the user's phone and can be viewed by some one else. Also, it can be viewed while typing which may leak confidential information. In SMS based applications, there is a lot of trust on the mobile service provider's network. In case the SMS is in a decrypted form at some node on the network, hacking that node will reveal all user's financial information. Also, in SMS based systems, only a fixed amount of money can be transferred in order to be charged on the mobile phone carrier bill. In Point of sale applications, the mobile phone should synchronize with the merchant system. The disadvantage of this is that mobile phones will require a modification and merchants will have to install devices in their payment systems. In the third approach, the user chooses what he wants to buy and conducts transactions with a secure mobile payment system. The main advantage of this method is the remarkable convenience it gives to the user. However, present technology is not very well equipped to handle this. Mobile communication technologies themselves pose some security challenges. Chales Brookson [5] says that GSM provides over the air security but data can be stolen at intermediate nodes in case of an intrusion there. Also, network is not authenticated in GSM. So, it is possible to set up a fraud BTS and listen to others' communication. So, we cannot rely on security provided by GSM networks. There are solutions available for mobile payments. However, security is a big and not very well addressed concern in these systems. Karnouskos, Kauffman, Lawrence and Pousttchi [6] give research advances in mobile payment area. They show efforts that have been put in to build mobile payment systems and analyze them. Tsalgatidou, Veijalainen and Pitoura [7] present challenges in mobile commerce from a business and technology viewpoint. According to them, characteristics of wireless communication, device constraints and mobility are key challenges encountered while building mobile payment systems. Jan and Pigneur [8] assess Near Field Communication(NFC) as an option for mobile commerce. However, NFC limits the scope of usage of a mobile payment system. A NFC payment device should always be present for it. Xi and Han-ping [9] give a very high level architecture of a mobile payment system. However, this architecture is too general but does give a good picture about how mobile payment systems should look like. Fourati, Ayed and Benzekri [10] give a SET based approach for mobile payment. However, it is heavily reliant on security provided by WAP and WTLS and so not flexible enough to assimilate other technologies. Zhang, Moita, Mayes and Markantonakis [11] also propose a mobile payment system. However, it relies on biometric fingerprint identification. Mobile payment systems like Paypal and Paybox are in use. However, they are incompatible with each other. A universally acceptable payment protocol that benefits all parties at stake and having a high degree of interoperabiltiy and security is needed. Such a mobile payment system should not be bound to any technology and should make the best use of present/future technologies. SEMOPS [1] is a new system that has been proposed that caters to this need. However, since payment is done for each and every transaction, micropayments will be inefficient in SEMOPS. Good micropayment support is very essential for the success of mobile commerce. A good proposal for efficient micropayments in electronic commerce systems is in [2] . In this mechanism, there is a customer, bank and a merchant. If the fraction of number of micropayments forming a macropayment is s, and each payment is 1 cent, this mechanism says that the bank should transfer 1 s cents to the merchant for every micropayment with probability s. This results in a tremendous saving on payment cost overhead. Three different schemes MR1, MR2 and MR3 have been suggested in this paper. However, in MR1 scheme, there is a risk that some customers may be overbilled and some underbilled. In MR2 and MR3 scheme, the bank may run out of money since the rate at which it gives money to merchants is far higher than the rate at which it recieves money from customers. However, [2] gives good insight into how micropayments should be performed and this insight drawn has been used in this work.

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


Pretty printing with lazy dequeues There are several purely functional libraries for converting tree structured data into indented text, but they all make use of some backtracking. Over twenty years ago, Oppen published a more efficient imperative implementation of a pretty printer. This article shows that the same efficiency is also obtainable without destructive updates by developing a similar but purely functional Haskell implementation with the same complexity bounds. At its heart lie two lazy double ended queues.

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


On the geometry of tensor network states Abstract. We answer a question of L. Grasedyck that arose in quantum information theory, showing that the limit of tensors in a space of tensor network states need not be a tensor network state. We also give geometric descriptions of spaces of tensor networks states corresponding to trees and loops. Grasedyck's question has a surprising connection to the area of Geometric Complexity Theory, in that the result is equivalent to the statement that the boundary of the Mulmuley-Sohoni type variety associated to matrix multiplication is strictly larger than the projections of matrix multiplication (and re-expressions of matrix multiplication and its projections after changes of bases). Tensor Network States are also related to graphical models in algebraic statistics.

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


Maximum likelihood estimation for filtering thresholds Information filtering systems based on statistical retrieval models usually compute a numeric score indicating how well each document matches each profile. Documents with scores above profile-specific dissemination thresholds are delivered.An optimal dissemination threshold is one that maximizes a given utility function based on the distributions of the scores of relevant and non-relevant documents. The parameters of the distribution can be estimated using relevance information, but relevance information obtained while filtering is biased. This paper presents a new method of adjusting dissemination thresholds that explicitly models and compensates for this bias. The new algorithm, which is based on the Maximum Likelihood principle, jointly estimates the parameters of the density distributions for relevant and nonrelevant documents and the ratio of the relevant document in the corpus. Experiments with TREC-8 and TREC-9 Filtering Track data demonstrate the effectiveness of the algorithm. Information filtering systems monitor a document stream to find documents that match the information needs described by profiles consisting of queries and related context or history. Filtering systems based on statistical models (e.g., vector space, probabilistic, inference network) use a numeric score to indicate how well a document matches a profile, and only disseminate a document when its score is above some threshold (the dissemination threshold).. As the information stream is processed, the system may be provided with relevance judgments for some of the documents it delivers. An adaptive filtering system can learn from this feedback, so that it becomes more accurate over time.. Generally, an adaptive filtering system that can learn from user feedback has three important subtasks:. 1. Learning corpus statistics, such as idf for each term; 2. Learning filtering profiles, for example, adding or deleting terms and adjusting term weights; and 3. Learning dissemination thresholds.. Most of the prior research on adaptive filtering has been focused on learning filtering profiles. A common approach to learning profiles is to use an incremental version of the Rocchio algorithm where Q is the initial profile vector, Q' is the new profile vector, R is the set of relevant documents, NR is the set of non-relevant documents, D i is a document vector, and α, β, and γ are constants indicating the relative value of each type of evidence. Machine learning algorithms for text classification have also been used for this task, for example, k-nearest neighbor, naive Bayes and boosting [6] [7] [8] [18] [19] .. The problem of how to set filtering thresholds received little attention until recently, in part because many operational environments relied upon Boolean retrieval models and profiles that either matched or did not. Researchers working with statistical algorithms could delay dissemination decisions while scores were computed for each document in the stream, sort documents by their scores, and then disseminate the top N documents, as was done in the TREC Routing task. This approach is effective when it is not necessary to disseminate information quickly. When dissemination decisions cannot be delayed, it is necessary to find dissemination thresholds for each profile.. The problem of setting dissemination thresholds can be described as finding a threshold that maximizes a utility metric in which each relevant document is associated with some reward and each non-relevant document is associated with some penalty, as in recent TREC Filtering Track evaluations [6] [14] . Much of the recent research on setting dissemination thresholds is based either on heuristics or regression methods [6] [22] . For example, CLARITECH used a heuristic that allowed the threshold to vary between a lower bound utility value (zero) and an upper bound optimal value [20] . Microsoft Cambridge mapped a Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGIR'01, September 9-12, 2001 , New Orleans, Louisiana, USA. Copyright 2001 ACM 1-58113-331-6/01/0009...$5.00. document score s d to the a probability of relevance score p d using the formula:. where γ is set according to another corpus, β is learned adaptively, and ast1 is the average score of the top 1% of retrieved documents [15] . KUN assumed a Gaussian distribution for the scores of relevant documents and an exponential distribution for the scores of non-relevant documents, and then found the threshold that maximized a given linear utility measure This approach was extremely effective, achieving the best result for utility oriented runs in the TREC9 Filtering Track evaluation [2] .. One potential weakness with the KUN approach is that it assumes that the training data accurately represents the distribution of relevant and non-relevant document scores. This assumption is not true in an adaptive filtering environment, because relevance information is obtained only for documents that are actually disseminated.. Relevance information is not available for documents that have scores below the threshold, so the training data is inherently biased. This paper presents a new method for setting dissemination thresholds that, like the KUN method, assumes that relevant document scores are distributed normally and non-relevant document scores are distributed exponentially [2] . However, our algorithm explicitly models the sampling bias, and uses the maximum likelihood principle to find unbiased estimates of the parameters. It jointly estimates the parameters of the two density distributions and the ratio of the relevant documents in the corpus. Experiments indicate that this new method produces dissemination thresholds that are significantly more accurate than the baseline KUN method in some cases.. This following section describes the use of Maximum Likelihood Estimation (MLE) for modeling score distributions. Section 3 describes our experimental methodology and our new algorithm for setting dissemination thresholds based on these score distribution. Section 4 reports experimental results. Finally, Section 5 concludes. We have developed an effective algorithm for setting dissemination thresholds while filtering documents. Using a Gaussian distribution for the scores of relevant documents and an exponential distribution for the scores of non-relevant documents, a threshold that maximizes a given utility measure can be derived based on the parameters of the distribution.. Due to the fact that only relevance judgments of delivered documents are available, the method of estimating score density parameters proposed by [2] is biased and results in a threshold higher than optimal. We proposed an unbiased algorithm based on the maximum likelihood principle to jointly estimate (i) the parameters of the two density distributions, and (ii) the ratios of relevant and non-relevant documents. The new algorithm explicitly models the inherent bias in the filtering environment, where training data consists only of documents with scores above a threshold that changes constantly. We believe this is the first paper that solves the sample bias problem for information filtering. Our new method obtained significant improvements on the TREC-9 Filtering task.. In our experiments, filtering profiles were not updated while filtering. Although the effectiveness of the system is already very competitive, we believe combining threshold updating with profile updating will achieve better performance. One difficulty of combining our algorithm with profile updating is adjusting training data The YFilter information filtering system [22] was used for our experiments. It processes documents by first removing unusual symbols (such as punctuation and special characters), excluding the 418 highly frequent terms listed in the default INQUERY stop words list [3] , and then stemming using the Porter stemmer [9] . Processed documents are compared to each profile using the BM25 tf.idf formula [17] to measure the similarity of the document and user profile.. For each topic, the filtering system created initial filtering profiles using terms from the TREC topic Title and Description fields, and set the initial threshold to allow the highest-scoring δ = 3 documents in the training dataset to pass. For simplicity, the filtering profile term weights are not updated while filtering.. Because the first two relevant documents given to the system were not sampled under the constraint that their scores must exceed the dissemination threshold, their probabilities are simply In Section 2.3, for simplicity we set the prior probability of ) (Η P to be uniform. However, in the real filtering task, especially during the early stage of filtering where there are only a small number of samples, this may cause problems. For example, if only non-relevant documents are delivered, the estimate of p will be 0 without a prior. Or, if all the relevant documents have the same score, the variance will be 0. Smoothing using a prior of parameters can solve these problems. The prior needn't be very accurate, because as the amount of sample data increases, the influence of the prior decreases. In our experiments, we set the prior of p as a beta distribution 2 : 12). This is especially common at the beginning of filtering, so a minimum delivery ratio was introduced to avoid this problem. If a profile has not achieved the minimum delivery ratio, its threshold will be decreased automatically. This corresponds to the second and fourth runs. In our experiments, the minimum delivery ratio was set to let approximately 10 documents be disseminated to each profile.

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


A Sublinear-Time Approximation Scheme for Bin Packing The bin packing problem is defined as follows: given a set of n items with sizes 0 < w 1 , w 2 , . . . , w n ≤ 1, find a packing of these items into minimum number of unit-size bins possible.We present a sublinear-time asymptotic approximation scheme for the bin packing problem; that is, for any > 0, we present an algorithm A that has sampling access to the input instance and outputs a value k such that C opt ≤ k ≤ (1 + )·C opt + 1, where C opt is the cost of an optimal solution. It is clear that uniform sampling by itself will not allow a sublinear-time algorithm in this setting; a small number of items might constitute most of the total weight and uniform samples will not hit them. In this work we use weighted samples, where item i is sampled with probability proportional to its weight: that is, with probability w i / i w i . In the presence of weighted samples, the approximation algorithm runs inÕ( √ n · poly(1/ )) + g(1/ ) time, whereis an exponential function of x. When both weighted and uniform sampling are allowed, O(n 1/3 · poly(1/ )) + g(1/ ) time suffices. In addition to an approximate value to C opt , our algorithm can also output a constant-size "template" of a packing that can later be used to find a near-optimal packing in linear time. The bin packing problem is a classical combinatorial optimization problem and defined as follows: given a set X of n items with sizes 0 < w 1 , w 2 , . . . , w n ≤ 1, find a packing of these items into fewest unit-size bins possible. Bin packing has many applications in industry whenever certain items (paper, wood, pipes, etc.) can be bought only in a fixed given length and have to be cut to the lengths needed in the application. The bin packing problem is N P -hard and therefore, a number of approximation algorithms and heuristics have been developed: for example, first fit, best fit, sum-of-squares, or Gilmore-Gomory cuts [1, 6, 7, 14, 15] .. Although these heuristics typically perform well in practice, it would be good to also have an estimate of the cost of an optimal solution in order to detect cases where the heuristic does not provide a good solution. However, we also do not want to spend much time on computing such a value. Ideally, we would like to compute such a value by taking a small sample of the input set and analyze only this sample set. In this paper we address this question of designing a sublinear-time algorithm to approximate the optimal value of a solution to the bin packing problem. We also believe that the (non-uniform) sampling process used to compute a sample set gives important insights how to obtain representative sample sets for this problem. In particular, it could be interesting to combine our sampling methods with known heuristics to approximate the cost of a solution quickly.. Our results. We present a sublinear-time approximation scheme for the cost of the bin packing problem. We assume that the algorithm has access to an oracle that gives weighted samples of the input items; that is, the probability that the oracle returns item (i, w i ) is w i / j w j . We assume that the algorithm receives both the index and the weight of the item so that it can distinguish between different items of same weight. Our algorithm takesÕ( √ n · poly(1/ )) weighted samples from the input and returns an integer k such that. where C opt is the optimal value for the given problem instance. It is clear that in the absence of an oracle that gives weighted samples as described above, a sublinear-time algorithm taking uniform samples from the input items may fail to identify the items of large size, hence, fail to output a good approximation to the number of bins needed. Note that we do not require that the algorithm knows the total weight of the items. In fact, the total weight of the items gives a 2-approximation to the optimal solution since in the optimal packing, all but one of the bins are guaranteed to be half full. We will show that one can approximate the total weight of the items using samples. Moreover, if the total weight of the items is part of the input, then our algorithm yields a constant-time approximation scheme for bin packing.. It is a simple application of Chernoff-Hoeffding bounds to show that we can estimate the total weight with a sample size that is linear in the reciprocal of the average weight. However, when the total weight is small, which corresponds to an instance that fits in a small number of bins, this approach might be very inefficient. Therefore, we propose another method to estimate the total weight that usesÕ( √ n) weighted samples regardless of the average weight. We then show that the uniform samples can be helpful when used together with weighted samples. We present an algorithm that has access to both uniform and weighted samples and approximates the total weight usingÕ(n 1/3 · poly(1/ )) weighted and uniform samples. Both of these results are tight up to polylogaritmic factors in terms of n.. As it is a sublinear time algorithm, our algorithm cannot output a description of a packing that achieves a near-optimal cost. However, it is still possible to extract a constant-size description of a "template" packing from our algorithm that can be used to find a packing (with the same cost as output) in linear time.. Related Work Our bin packing algorithm is based on the linear-time (1 + )-approximation algorithm of Fernandez de la Vega and Lueker [12] . The main idea behind that algorithm is to simplify the input instance by grouping all the items into a constant number of groups and using a single weight value for each item in a group. This new input instance with only a constant number of different weights is then used to obtain an approximation to the optimal value for the original input. For a survey about bin packing algorithms, see [13] .. The field of sublinear algorithms studies the question how to approximate the output for a given problem by only looking at a small random sample of the input. Sublinear algorithms are known for a number of problems from different areas. For instance, property testing algorithms are sublinear algorithms that solve relaxations of the standard decision problems. Decision algorithms typically distinguish between the input instances that has a specific property and the input instances that does not have the property. The goal of a property testing algorithm is to distinguish between the input instances that has a specific property and the input instances that are far from any input instance that has the property. Such a relaxation allows them to run in sublinear time. Hence, they query randomly chosen parts of the input and decide. Although property testing adopts this "dual" notion of approximation, the algorithms may also lead to approximations in the standard sense. For example, the property tester of Goldreich et al. [16] for ρ-cut problem yields a constant-time approximation scheme for Max-Cut problem on dense graphs. In a graph with average degree d and n vertices, it is known that one can estimate the number of connected components up to an additive error of n in time polynomial in 1/ [17] . Based on this idea, an algorithm to estimate the weight of the minimum spanning tree has been developed, since this weight can be expressed as the sum of the number of connected components in certain subgraphs [4] . Variants of this algorithm have been designed to estimate the weight of Euclidean and metric minimum spanning trees in sublinear time [8, 10] . It is also possible to estimate the average degree [18, 11] of the vertices in a graph and the cost of a minimum vertex cover [25] in sublinear time.. In the area of clustering it is known that one can compute an approximate solution for the k-median and k-means problems in O(nk) time for the metric variant of the problem [20, 22, 26] . Notice that this is also sublinear in the input size because the description size of an arbitrary metric space is Θ(n 2 ). For the same setting, one can also approximate the cost of a basic facility location problem in O(n) time [2] . The quality of a uniformly distributed random sample has been analyzed for a number of clustering variants [23, 9] . Also, for the min-sum 2-clustering problem, a sublinear time (1 + )-approximation algorithm is given [21] .. In the context of property testing of distributions, Batu et al. [3] give a sublinear-time algorithm that takes samples from a discrete distribution on n items and outputs a (1 + )-approximation to the (Shannon) entropy of the distribution. In fact, we borrow some techniques from [3] to obtain our results in this paper.. Independently from our results, the authors of [24] present algorithms to approximate the sum of n weighted variables using weighted sampling. Their upper bounds on the sample complexity (Õ( √ n) for weighted sampling andÕ(n 1/3 ) if both uniform and weighted samples are used) are the same as our bounds. However, their algorithm is quite different from ours. The main idea of our algorithm is as follows. We divide the interval [0, 1] into k sub-intervals of geometrically growing lengths, for a suitable chosen k. We assign one bucket to every interval. Then, we sample items according to their weight and sort them into the corresponding buckets. Finally, for every bucket, we use the sample frequencies to estimate the total weight contribution of items falling into the bucket. The sum of these weight contributions is used as an approximation for the total weight of all items. The main idea of the algorithm in [24] is as follows. The authors first guess a total weight αn and fix a uniform bucket size α accordingly. Every input item is then broken down into pieces of that uniform size. If the guess αn is now approximately correct, this should result in roughly n uniform sized buckets. The authors use weighted sampling to sample from these uniform sized buckets, and use number of samples they need until they see a repeated bucket to decide if the initial guess is correct or not. If it is correct, they output αn, otherwise they try another guess. The sample complexity for both results are roughly the same. For the case of weighted samples only, we need O( √ n · (log n + log(1/ ))/ 3 ) samples, whereas the approach of [24] uses O( √ n · log n · (log log n + log(1/ ))/ 3.5 ) many samples. For the case of uniform and weighted samples, we need O(n 1/3 · (log n + log(1/ ))/ 3 ) samples, whereas the approach of [24] uses O(n 1/3 · log n · (log log n + log(1/ ))/ 4.5 ) many samples.

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


Circuit-Level Modeling for Concurrent Testing of Operational Defects due to Gate Oxide Breakdown As device sizes shrink and current densities increase, the probability of device failures due to gate oxide breakdown (OBD) also increases. With decreasing feature dimensions and increasing transistor counts in typical designs, the reliability of semiconductor devices is an increasing concern. One emerging reliability problem is gate oxide breakdown (OBD). The technology trend towards decreasing gate oxide thicknesses results in a greater probability of oxide degradation and breakdown during the lifetime of the devices.due.. Most fault tolerance techniques, such as error correcting codes or high level redundancy, work at the behavioral level without the assumption of any fault model. However, this generality typically imposes high overheads in terms of hardware, performance, and power consumption. Circuit level fault tolerance methods, such as dynamic memory repair, on the other hand, rely on traditional fault models, such as the stuck-at fault model, or coupling fault model. Thus, they may be incapable of detecting errors due to operational defects that do not manifest themselves in traditional ways. To provide fault tolerance at the circuit level, we must investigate the underlying physical defects and understand their manifestations at the circuit level.. The OBD phenomenon has been studied extensively at the device level, yet little research has explored OBD's circuit level implications. It may appear that new fault models are not needed, since oxide breakdown does not result in logic errors at its early stages of soft breakdown, and it results in a simple stuck-at logic error when the final hard breakdown happens. However, OBD affects the dynamic behavior of the circuit long before the final hard breakdown, starting from the early stages of the process. Soft OBD causes much longer delays than expected for the circuit and can thus introduce logic errors. Despite the manifestation of logic errors, traditional fault models may not predict the behavior of such defects accurately. Section 2 discusses related previous work in fault modeling, and it focuses on existing circuit-level fault modeling and the recent device-level modeling of OBD.. In the context of operational defects due to OBD, we address the issues of fault modeling and testing. We show that, for both issues, OBD operational defects demand careful circuit-level consideration. Our contributions in these two areas are the following:. • Fault modeling (Section 3): We show that circuit behavior in the presence of OBD defects exhibits similar aspects to general transition or delay faults, but differs in important ways. Based on published data at the device level, we develop a circuit-level model that closely matches the underlying physical phenomenon.. • Concurrent testing (Section 4): We show that OBD defects require more sophisticated approaches for fault excitation and detection. Particularly, the window of opportunity for detecting OBD defects before they reach their final hard breakdown status depends on the latency of the detection mechanism and the delay caused by these defects. We develop the necessary input conditions for a NAND gate and infer conclusions for other gates. We show that the derived input conditions and output behavior can be propagated to the primary inputs and outputs of a combinational circuit in a manner similar to traditional ATPG. Traditional fault modeling techniques that focus only on static behavior or only on the transition of inter-gate nodes may fail to target emerging defects due to gate oxide breakdown. Detecting the faults caused by such defects is particularly important for safety critical applications and applications that need to run autonomically for long periods of time. In this study, we have used a NAND gate to show that to target such defects, the circuit-level implications need to be considered for test generation. Physical Causes of Faults. The reliability of electronic devices under discrete environmental stress, such as radiation [20] , and continuous functional stress due to applied electric fields [14, 22, 2] has been studied since the early days of semiconductor manufacturing. Extensive research has been conducted on the failure-causing physical phe-nomena, such as electromigration (EM) [22, 2] and OBD [6] . The effect of OBD at the circuit level is a shift in the LOW and HIGH voltage values and eventually bit errors for CMOS devices [21, 15, 16] .. OBD defects have been studied in the past decade, although this research has focused on hard breakdowns (also known as gate oxide shorts or GOS). Segura et al. manufacture circuits with intentional hard OBD defects and measure their characteristics [19] . They also study the distinct responses of NMOS and PMOS transistors to hard OBD defects [18] , and they propose test patterns for I DDQ measurements to detect these defects. Renovell et al. [12] develop a transistor-level model for hard OBD defects that does not rely on splitting transistor dimensions. They also propose test patterns for detecting hard OBD defects through delay testing [13] . While hard OBD defects, which are typically tested after manufacturing, are identical to the final stage of the OBD defects that we analyze here, our goal is to create a model to help us develop concurrent test/ diagnose/repair mechanisms for OBD defects before final hard breakdown occurs. Since hard OBD can potentially harm the rest of the circuit, modeling OBD progression is essential to ensure fault-tolerant operation.. Fault Modeling. Several structural fault models have been developed for logic circuits and storage components over the past few decades [1] . The stuck-at fault model is the most commonly used model in VLSI testing and fault tolerant design. In this model, a defect manifests itself as a signal consistently having a certain value (zero or one) independent of the input. For example, an unintended short circuit between the two inputs of an XOR gate results in a stuck-at-zero fault at the output. The coupling fault model-in which a write to a certain memory location always prompts a write to a neighboring location or locations-has been defined for storage components [4] .. The path delay fault model [10, 9] and the transition fault model [11, 5, 23, 17] have been used to test for manufacturing defects and process variations. In the path delay fault model, unexpectedly high process variations as well as point defects increase the overall delay of a path beyond the designated clock period. Paths with the highest logic depth are most likely to incur logic errors. Transition faults are based on point defects as opposed to the collective defects in the path delay fault model. In the transition fault model, resistive connections cause a circuit node to rise or fall too slowly. While both transition and path delay fault models are dynamic, they do not differentiate among the underlying physical defect locations and types. Thus, test generation methods targeting these faults are insensitive to which input combinations cause the desired transition at the fault location. For example, for a NAND gate, input transitions (11,00), (11, 01) , and (11, 10) are identical in testing for a slow-to-rise transition fault at the output.. While the physical phenomena causing OBD have been studied in detail, limited work has been devoted to investigating the circuit level manifestations and modeling of these defects. Some recent work [16, 15] models the oxide breakdown phenomenon for an inverter using SPICE circuit elements. This work matches the model data to the measured data for the transfer characteristics of the inverter. Based on this circuit model, it is clear that oxide breakdown progressively impacts the circuit behavior and finally results in a logic error.

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


Reducing working memory load in spoken dialogue systems We evaluated two strategies for alleviating working memory load for users of voice interfaces: presenting fewer options per turn and providing confirmations. Forty-eight users booked appointments using nine different dialogue systems, which varied in the number of options presented and the confirmation strategy used. Participants also performed four cognitive tests and rated the usability of each dialogue system on a standardised questionnaire. When systems presented more options per turn and avoided explicit confirmation subdialogues, both older and younger users booked appointments more quickly without compromising task success. Users with lower information processing speed were less likely to remember all relevant aspects of the appointment. Working memory span did not affect appointment recall. Older users were slightly less satisfied with the dialogue systems than younger users. We conclude that the number of options is less important than an accurate assessment of the actual cognitive demands of the task at hand. Spoken dialogue interfaces can make phone-based services far more intuitive to use. If users can simply say the required option, there is no need to remember which option is mapped to which key on the telephone keypad.. Menu-driven systems can suggest commands that describe the option, such as ''Say 'listen' if you want to listen to your voice mail" (Perugini et al., 2007) . Systems with more advanced natural language understanding can even dispense with commands altogether, simply asking users ''How can I help you?" (Suhm et al., 2002; Lai et al., 2008) .. Spoken dialogue systems (SDS) consist of five main components. Automatic speech recognition (ASR) converts audio signals of human speech into text strings, natural language understanding (NLU) determines the meanings and intentions of the recognised utterances, dialogue management (DM) controls the interaction, natural language generation (NLG) generates system responses, and text-to-speech synthesis (TTS) converts the system utterances into actual speech output. In this context, we encounter many problems that do not arise in the touch-tone world. For example, how can systems recover gracefully from speech recognition errors (Hockey et al., 2003) ? How can users be encouraged to use phrases that the NLU component can interpret correctly (Zoltan-Ford, 1991; Sheeder and Balogh, 2003) ? How can we ensure that users understand and retain the key information presented in a dialogue (Walker et al., 2005) ?. In this study, we investigate how phone-based services can be made more usable for a particular group of users, older people. Designing interfaces for older users is notoriously challenging (Gregor et al., 2002; Zajicek, 2006) . Not only do cognitive and perceptual abilities decline with age (Baeckman et al., 2001; Fozard and Gordon-Salant, 2001 ), but the spread of abilities in older people is far larger than in any other segment of the population (Rabbitt and Anderson, 2006) . Although many strategies have been suggested in the speech technology and computational linguistics literature for making spoken dialogue systems more reliable (e.g. Walker et al., 2001; Bohus and Rudnicky, 2005) , almost all of the solutions that have been tested experimentally were evaluated with younger or middle-aged users, not with older adults.. Existing work on adapting SDS to older people tends to fall into two main categories: experimental assessments of full end-to-end systems Black et al., 2005a; Giorgino et al., 2005) and guidelines that are largely based on laboratory studies 0953-5438/$ -see front matter Ó 2009 Elsevier B.V. All rights reserved. doi:10.1016/j.intcom.2009.05.009 (Hawthorn, 2000; Petrie, 2001 ). Very few studies have systematically compared the impact of different design choices on users' performance, because such experiments take a long time to set up properly. But such systematic comparisons are key to translating theoretical results from cognitive psychology into workable design guidelines. In fact, guidelines for accommodating working memory capacity are notorious for being based on misconceptions (Bailey, 2000; Sharp et al., 2007) . For example, the seminal work of Miller (1956) on the magic number 7 ± 2 is often interpreted as an upper limit on the number of options that can be presented at any one time. Instead, the optimal number of options depends on many other factors such as the modality in which they are presented or their complexity.. In this paper, we assess whether two approaches for reducing working memory load in voice interfaces will benefit older users and/or users with lower working memory capacity:. 1. reducing the number of options, 2. repeating information in confirmations.. Limiting the number of options makes it easier to remember all of the options in order to select the right one, while providing confirmations reinforces information provided during the dialogue.. The rest of this paper is structured as follows. First, we summarise previous work on SDS for older users with particular attention to the effects of cognitive ageing (Section 2). We then describe the rationale, design, and methodology of our study (Sections 3 and 4). Our results, which are reported in Section 5, are organised according to the three main dimensions of usability according to ISO 9241 (ISO, 1998) , effectiveness (Section 5.1), efficiency (Section 5.2), and user satisfaction (Section 5.3) . Surprisingly, the two approaches we tested did not differ significantly in either effectiveness or user satisfaction, only in efficiency. We discuss the implications of this result for further work on spoken dialogue interfaces in Section 6 and conclude with a plan of further work in Section 7. Our results show that both older and younger users became more efficient in their interactions with our appointment scheduling system when they were presented with the maximum number of options (four) at a time and when choices were not confirmed explicitly. Notably, this increased efficiency did not come at a price: task success remained at a similar, high level when the number of options was increased. Our detailed questionnaire revealed that users judged the appointment scheduling system along six main dimensions: system reliability, satisfaction, look and feel, perceived efficiency, perceived cognitive load, and unpredictability. These criteria were important to both older and younger users.. A more detailed analysis of the interactions between system and users shows significant difference in interaction styles between older and younger users ). In future, we plan to annotate the interactions in more detail using the schema outlined by to uncover usability issues related to misunderstandings, user errors, and system errors.. We also intend to investigate how performance of different modules of end-to-end spoken dialogue systems, such as natural language generation, dialogue management, or automatic speech recognition, affects system ratings on these six high-level factors, using a statistical regression analysis along the lines of, e.g., Walker et al. (1998) and . In particular, we expect to see significant effects of speech recognition performance, since recognising the speech of the older users in our corpus is more difficult than recognising younger users' speech, even when an appropriate language model is used (Vipperla et al., 2009 ). In our work on improving the design of spoken dialogue systems for older people, we plan to investigate the benefits of user modelling (Moore et al., 2004; Polifroni and Walker, 2006) and strategies for accommodating user initiative (Cohen et al., 1998) .. For these experiments, we intend to work with different segments of the older population. Although the users we recruited for this study match the typical population of undergraduates that is often used in HCI experiments, neither undergraduates nor their older equivalents are particularly good representatives of their generation, since they are generally healthy and well-educated. Moreover, the kind of older person who volunteers for experiments with new technologies may well be likely to be more open to experience and more active than other older people-and hence more likely to age better.. Another aspect we need to account for is previous exposure to technology, in particular speech technology, users' experiences with these systems, and users' attitude to technology in general . We plan to address these issues through a mix of questionnaires and semi-structured interviews. In this study, we attempted to accommodate users with low WMS by combining two approaches: using confirmations to reinforce aspects of the appointment that had already been agreed upon, and reducing the number of options presented in a single system turn. Neither strategy had a measurable effect on users' performance, even though our participants had a wide range of WMS (cf. Table 2 ). If anything, older users benefited from being presented with more options and fewer explicit confirmationsparticularly in terms of efficiency. Despite overall high performance levels, we found clear correlations between measures of cognitive ageing and performance: Users with a slower information processing speed found it more difficult to remember all relevant aspects of the appointment. Contrary to expectations, we found no effect of WMS.. Our study clearly benefited from a rigorous, comprehensive cognitive assessment battery. It not only highlighted the area where older people have an advantage over their younger counterparts, crystallised intelligence, but also pointed to a possible explanation of our findings in the shape of the clear correlation between speed of information processing and appointment recall.. In fact, this correlation suggests a possible reason why our strategies did not affect the performance of users with low WMS. The central challenge in our appointment scheduling task was not to remember all available appointments, but to monitor one's own schedule and detect the option that fits. Since slots were only Reliability: The information provided by the booking system was clear; the information provided by the booking system was incomplete; the booking system is unreliable; the booking system made a lot of errors.. User Satisfaction: Overall, I am satisfied with the booking system; using the booking system to book healthcare appointments was comfortable; I would use the booking system again in the future; using the booking system was worthwhile.

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


An approach to interactive media system for mobile devices The interactive system which interacts human with computer has been recognized as one direction of computer development for a long time. For example, in cinema, a person gets information he wants or plays the media data while moving by using a mobile device. As the development of this system, we designed and implemented the system interacts with users in a small terminal. Our study has three categories. The first category is the development of new interactive media markup language (IML) for the writing interactive media data. The second category is the IML translator which translates IML into the best form to be played on mobile device. And the third category is the IM player, which plays the transferred media data and interacts with user. IML was designed for controlling vector graphics and general media objects in detail and supporting synchronization. Also, it was designed to be operated in small mobile device as well as desktop PC or set-top box which has high CPU performance. The player, implemented finally, is operated on PDA (HP iPAQ) and plays the multimedia data consist of vector graphics (OpenGL), H.264 and AAC etc. according to the choice of user. This system can be used in the ways of interactive cinema and interactive game, and can substitute new interactive web services for existing web services. Interactive media which is served by user interaction has recently become a hot topic in the areas of human-computer interaction (HCI). Though information service on mobile device has became commonplace, most research of interactive media targeted desktop PC and TV set-top box platform on wired network [1] . So, it is becoming very attractive to offer interactive media system on mobile platform. For these reason, we designed whole interactive media system and implemented it. First, we designed a new markup language in detail for supporting interactive media service which is most suitable for mobile device. IML (Interactive Multimedia Language), which is designed for user interaction, has sync-information to synchronize various media objects and descript information of those objects. And it can control each media object directly by supporting raster graphic module and core OpenGL, which is based on vector graphic, on language level. For example, it can represent video content on a face of 3-dimensional rotate cube composed of vector graphic. Second, we designed and implemented IML Translator which takes a charge of midway process for playing IML contents on mobile device which has low resources. Through this process, we could eliminate XML parser in mobile device and save memory and CPU resource. Third, we also designed and implemented player for viewing these intermediate contents on PDA. To support this, we ported codecs of OpenGL, H.264 (MPEG-4 Part 10), AAC (Advanced Audio Codec) to PDA. After these all, we made some interactive media contents (e.g. Interactive Cinema, Interactive Game, and Psychological Test) for demonstrating at ubiquitous area workshop.. In this paper, we will discuss a method for supporting interactivity to media on mobile device and describing internal system architecture in detail. In this paper, we have presented an interactive media system on mobile environment. It is an interactive, lightweight, and resource-efficient system. The first contribution of this research is that it is not a one-way system but an interactive system, and the second one is that it is designed for mobile device like a PDA in the first beginning time unlike the other systems are designed for high powered desktop PC or home server. Therefore, a user can be enjoyed for interactive media service as his opinion while he is moving. To put it more concretely, since a content written in IML is converted to binary format, it has a lower data size. Moreover, it also needs a lower network bandwidth and need not XML parser which is a burden for memory and CPU resources. Another merit of IML is that it can control each media object directly, because it has video control module and OpenGL control module in its internal library. Consequently, objects written in internal vector graphic interface can be reused and reduce network connection cost.. In a point of wide view, we defined a novel interactive markup language IML, implemented IML translator and IML player in this research. Examples of practical application of our developed system are interactive cinema and interactive game player on mobile device. Moreover, it can be applied to many media fields without complicated programming if sensor or voice is used for an input event, and can substitute new interactive web services for existing web services.

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


Routing With Minimum Wire Length In The Dogleg-Free Manhattan Model Is NP-Complete Abstract. The present article concentrates on the dogleg-free Manhattan model where horizontal and vertical wire segments are positioned on different sides of the board and each net (wire) has at most one horizontal segment. While the minimum width can be found in linear time in the single row routing, apparently there was no efficient algorithm to find the minimum wire length. We show that there is no hope to find such an algorithm because this problem is N P-complete even if each net has only two terminals. The results on dogleg-free Manhattan routing can be connected with other application areas related to interval graphs. In this paper we define the minimum value interval placement problem. There is given a set of weighted intervals and w rows and the intervals have to be placed without overlapping into rows so that the sum of the interval values, which is the value of a function of the weight and the row number assigned to the interval, is minimum. We show that this problem is N P-complete. This implies the N P-completeness of other problems including the minimum wire length routing and the sum coloring on interval graphs.

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


Using simulated annealing for producing software architectures Automatic design of software architecture by use of genetic algorithms has already been shown to be feasible. A natural problem is to augment -if not replace -genetic algorithms with some other search method in the process of searching good architectures. The present paper studies the possibilities of simulated annealing in designing software architecture. We start from functional requirements given as a graph of functional responsibilities and consider two quality attributes, modifiability and efficiency. It is concluded that simulated annealing as such does not produce "natural" architectures, but it is useful as a method of producing initial populations for genetic algorithms. The ultimate goal of software engineering is to be able to automatically produce software systems based on their requirements. For the time being, we pass the synthesis of executable programs, and concentrate on the automated derivation of architectural designs of software systems. This is possible because architectural design largely means the application of known standard solutions in a combination that optimizes the quality properties (like modifiability and efficiency) of the software system. These standard solutions are well documented as architectural styles [14] and design patterns [5] . In addition, architectural design is guided by general principles like decomposition and usage of interfaces.. Genetic algorithms (GAs) are shown to be a feasible method for producing software architectures from functional requirements [12, 13] . It is then natural to ask if other search methods are capable of producing equally good architectures alone or in cooperation with genetic algorithms. The purpose of the present paper is to study the possibilities of simulated annealing in the process of searching good architectures when functional requirements are given.. Contrary to genetic algorithms, simulated annealing (SA) is a local search method which intensively uses the concept of neighborhood, i.e., the set of possible solutions that are near to the current solution. The neighborhood is defined via the transformations that change an element of the search space (in our application, software architecture) to another. In our application the transformations mean implementing a design pattern or an architectural style. This paper proceeds as follows. In Section 2 we sketch current research in the field of search algorithms in software design that is relevant for the present paper. In Section 3 we cover the basics of implementing a simulated annealing algorithm. In Section 4 we introduce our method by defining the input for the SA algorithm, the transformations and the evaluation function. In Section 5 we present the results from our experiments related to an e-home application. In Section 6 we discuss the findings and in Section 7 we give a conclusion of our results. We have presented an approach that uses SA in software architecture design. A responsibility dependency graph is given as input and architecture styles and design patterns are used as transformations when searching for a better solution in the neighborhood. The solution is evaluated with regard to quality and efficiency. The experimental results achieved with this approach show that although extremely high quality values are achieved with this approach, their "true" quality as evaluated by examining the UML class diagrams is not actually as good. However, when combining the solution achieved with SA with a GA implementation, the actual quality of the produced solutions increases as well as the calculated metric values. This would suggest that further work should be done with studying the combination of these two algorithms in software architecture design. Studying the definition of evaluation functions for simulated annealing and genetic algorithm should be done as well, as using the same function apparently gives quite different types of solutions when using the different algorithms.. Our future work attend to these questions as well as deriving real test cases to further evaluate the approach, and adding more design patterns to cover a larger search space of possible architectures. We also plan to implement a multi-objective fitness function primarily for the GA implementation. In Section 5 we presented the quality curves of different experiments made with the simulated annealing algorithm. However, as discussed in Section 4.3, evaluating software architecture is extremely difficult, and even more so when the evaluation must rely on raw numbers. Thus, the actual UML graphs given as output should also be examined to get a wholesome idea of whether the results with extreme quality values are actually good. The evaluation of these graphs is bound to be subjective, but some general guidelines were used as to whether to consider one design better than the other. Firstly, use of patterns should be "sensible". Secondly, there should not be any "god classes", nor should each responsibility be in a class of its own, but some sensible grouping should be seen. Finally, and most importantly, the dependencies between classes must be "structured". Failing in the first two points will definitely result in an overall messy graph, if the dispatcher is used without caution, there are patterns used everywhere and each responsibility is in a class of its own. This will produce a graph that will also fail in the third point and will be extremely unpleasant to interpret.. When examining the graphs achieved by using only simulated annealing, it could be seen that the high quality values were achieved by excessive use of the dispatcher architecture style. Especially in the test runs were the starting temperature was 10000 (and the cooling factor 0.05), nearly every dependency between the responsibilities was communicated through the message dispatcher, the responsibilities were nearly all in their own classes, and there was heavy use of the proxy and strategy patterns. With lower starting temperatures the use of the dispatcher was somewhat more restricted, and in the tests with a temperature of 5000, some bigger classes could already be seen, which clarified the graph to some extent as there were not as many dependencies. As for the different cooling factors, slower annealing seems to favor the message dispatcher style, while the tests with a larger cooling factor (i.e., faster annealing) favored the strategy and proxy patterns more. The dispatcher was also used, but not as much, and the relative amount of the other patterns was bigger.. The graphs achieved with using a GA base and continuing to develop that solution with the simulated annealing were inconsistent in quality. Some graphs were extremely "messy", while a few contained some structure. This could be seen as a result from the GA solution containing larger classes, as was seen in results obtained by using only GA. This also reflects the fundamental problem of using software metrics: although the used metrics, modifiability and efficiency, gained steadily improving values as measured by the fitness function, the overall "goodness" of the solutions as evaluated by a human observer did not improved accordingly. That is, the metrics do not always catch something essential in the architectures.. Finally, the approach using SA as a base for GA, which gave the highest quality values, also performed the best from all the approaches using SA. Using the GA to refine the solution achieved by the SA had a "structuring" effect on the architecture. Responsibilities were better grouped in classes, the proxy and strategy patterns that were used were clear, and although the message dispatcher was still very central in the solutions, the connections through it were more "structured", and the overall appearance of the UML graph was noticeably better than in the results achieved with plain simulated annealing. Traditionally, search-based software engineering has focused on problems like software clustering and refactoring, see, e.g., [4, 6] . More recently, approaches dealing with higher level structural units, such as patterns, have gained more interest. For example, Amoui et al. [1] have applied genetic algorithms for finding the optimal sequence of design pattern transformations to increase the reusability of a software system.. Simons and Parmee [15, 16] take use cases as the starting point for system specification. Data is assigned to attributes and actions to methods, and a set of uses is defined between the two sets.. The notion of class is used to group methods and attributes. Each class must contain at least one attribute and at least one method. Design solutions are encoded directly into an object-oriented programming language.. Copyright is held by the author/owner(s). GECCO'09, July 8-12, 2009 , Montréal Québec, Canada. ACM 978-1-60558-505-5/09/07. Räihä et al. [12] have taken a more advanced approach to designing software architecture than Simons and Parmee [15] by starting the design from a responsibility dependency graph and developing the architecture further than the class distribution of actions and data. A GA is used for the automation of design. In this solution, each responsibility is represented by a supergene and a chromosome is a collection of supergenes. The supergene contains information regarding the responsibility, such as dependencies of other responsibilities, and evaluated parameters such as execution time and variability. Mutations are implemented as adding or removing an architectural design pattern or an interface or splitting or joining class(es).. Räihä et al. [13] have also applied genetic algorithms in model transformations that can be understood as pattern-based refinements. In MDA (Model Driven Architecture), such transformations can be exploited for deriving a Platform Independent Model from a Computationally Independent Model. The approach uses design patterns as the basis of mutations and exploits various quality metrics for deriving a fitness function. They give a genetic representation of models and propose transformations for them. The results suggest that genetic algorithms provide a feasible vehicle for model transformations, leading to convergent and reasonably fast transformation process.. Other approaches to search-based software design are widely covered in a survey by Räihä [11] . We begin with a set of responsibilities (requirements) that can be given some relative values regarding modifiability and efficiency. Using the information given on the dependencies between the responsibilities, this set is then formed into a responsibility dependency graph. The graph is encoded as to a form that can be processed by the selected search algorithm (implemented with Java). The algorithm produces software architecture for the given requirements by implementing selected architecture styles and design pattern, and produces a UML class diagram as the result. In this section we present the results from the preliminary experiments done with our approach, using the example system introduced in subsection 4.1. The calculated quality value for each curve is the average value from five test runs. The SA algorithm was run with different starting temperatures and cooling ratios to determine what kind of effect they would have on the quality of the produced architecture and the actual UML diagrams. All tests were made with the constant r set to 20. The weights for all sub-functions of the quality evaluation function were set to the same (i.e., all weights wi were set to 10). The run time for tests with a starting temperature of 7500 and cooling factor of 0.05 was approximately 15 minutes. The "standard" starting temperature was chosen to be 7500 with which the tests with different ratios were run and the "standard" cooling ratio was chosen to be 0.05 with which tests with different start temperatures were run. Figure 2 depicts the quality curve of the "standard" test run with starting temperature 7500 and cooling ratio 0.05. As can be seen, the development of quality is quite slow in the beginning, but develops rapidly after the temperature cools below 200. The quality function also achieves very high values.

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