Evaluating metaphor reification in tangible interfaces Abstract Metaphors are a powerful conceptual device to reason about human actions. As such, they have been heavily used in designing and describing human computer interaction. Since they can address scripted text, verbal expression, imaging, sound, and gestures, they can also be considered in the design and analysis of multimodal interfaces. In this paper we discuss the description and evaluation of the relations between metaphors and their implementation in human computer interaction with a focus on tangible user interfaces (TUIs), a form of multimodal interface. The objective of this paper is to define how metaphors appear in a tangible context in order to support their evaluation. Relying on matching entities and operations between the domain of interaction and the domain of the digital application, we propose a conceptual framework based on three components: a structured representation of the mappings holding between the metaphor source, the metaphor target, the interface and the digital system; a conceptual model for describing metaphorical TUIs; three relevant properties, coherence, coverage and compliance, which define at what extent the implementation of a metaphorical tangible interface matches the metaphor. The conceptual framework is then validated and applied on a tangible prototype in an educational application. A metaphor is a figure of speech consisting in the expression of a concept of a target domain using another concept in a different domain, called source domain, more familiar in some context of discourse [14, 49] . It is therefore a mapping between two conceptual domains. An interaction metaphor is a mapping between the conceptual domain that describes the interaction, which is the metaphor source, and the application domain in which a digital system is operated, which is the metaphor target. The mapping relates concepts and operations between the two domains so that an interaction in the metaphor source domain corresponds, in the target domain, to the execution of the application and the reception of computation results. Metaphors are thus means to understand how an interface works based on a known domain, and help users to learn concepts, operations and tasks of a digital application by similitude or reference to concepts, operations and tasks in a more familiar domain [10, 11] .. Metaphors are common in HCI since the development of GUIs, the most notable example being the desktop metaphor, introduced by Alan Kay in 1970s [44] , which assimilates the computer monitor to a desk with documents, files and tools mimicking usual office operations: for example, a document icon dragged over the basket causes the document deletion, while a document icon dragged from one folder to another causes the document to be moved from one directory to another. GUI metaphors, and interface metaphors in general, have been discussed extensively in the literature [6, 7, 9, 29, 55] .. Partial and inconsistent metaphors (like the so-called mixed metaphors) have also been analyzed; they are widely accepted in GUIs because they are in use long since and have become a standard pattern of operations: for example, in early Apple Macintosh GUI a disk icon dragged over a basket caused the disk to be ejected, not erased, and a document icon dragged from one folder to a different storage device resulted in copying rather than moving the file, without noticeable differences in the visual representation of the operation. Visual cues have been added in more recent systems to distinguish such different behaviors: the basket icon turns into an eject symbol for disks, while during copy the file icon is marked by a small '+' sign. This is a first example of how metaphors relate to multimodality, since the actual action is made evident by a visual feedback added to the gesture.. The development of multimodal interaction is resulting from the evolution of HCI model. Quoting Price and Jewitt [65, p. 44] "multimodal approaches provide concepts, methods and a framework for the collection and analysis of visual, aural, embodied, and spatial aspects of interaction and environments, and the relationships between these". The latter aspects (spatial aspects and environments) have been even more significant with the raise of new forms of communications, new technologies and growing capabilities of computer systems: advanced forms of HCI have been developed, including mixed and augmented reality, ubiquitous systems and tangible interfaces. Their primary goal is to combine the physical and digital worlds to better support the user's interaction with a system. Concretely, they promote and adopt a smooth integration of physical artifacts, aptitudes and habits into the manipulation and perception of digital concepts and features.. More formally, such interactive systems are implicitly making use of different forms of feedback: kinesthetic feedback results from the grasping of physical object; visual feedback is required to localize the physical artifact used in addition to the visual feedback that may be provided by the application itself; gestures are required to physically act on elements of the environment. They are thus well representing one advanced form of multimodal interaction. More precisely, according to the complementarity, assignment, redundancy, equivalence properties (CARE) defined to characterize the combination of use of different modes in multimodal interfaces [19] , focusing on the user's manipulation of a TUI, a complementary use of different modalities is required to locate the artifacts, manipulate them and feel them. Multiple TUIs can of course be combined to offer also assignment, redundancy and equivalence properties.. The advent of tangible user interfaces (TUIs) has made metaphors even more popular but also difficult to evaluate, due to the presence of an additional layer represented by the physical interface which, in many cases, mediate through a metaphor the functions assigned to interface objects. Advanced interfaces based on gesture interaction in pervasive environments share with TUIs a mixture of real and virtual components, where metaphors can support users shortening the interaction learning process.. The variety of metaphor types and their increasing use in interactive digital applications has raised the issues of evaluating them. Evaluation might concern several facets: the way a metaphor is conceived or selected, to assess if it is suitable for the digital application; the degree of correspondence between the concepts of the source domain and the implementation of the digital application interface; the ease of use, naturalness, appropriateness, consistency, goodness; the affordance of the interaction devices, and so on. Evaluation often relies on an intuitive understanding of such properties in the context of human experience, but formal and structured approaches have been proposed [1, 2] . Indeed, a good metaphor doesn't imply an efficient interface, and viceversa, but a good metaphor can help a user while a bad metaphor could mislead him/her [59] .. In this paper we discuss the description and the evaluation of interaction metaphors with a focus on mixed reality and more specifically on tangible interfaces. Our analysis does not refer to the way a metaphor is designed or created; rather, the goal of our work is to allow designers to evaluate at what extent a tangible interface is a reification of the metaphor [15] , i.e., (1) how the elements of the interface reflect the concepts of the source metaphor domain and (2) at what extent the implementation of a (metaphorical) interface matches the metaphor: assuming the metaphor is well chosen, is it implemented consistently? Does it cover the span of the source domain in terms of concepts, interaction objects, functions, actions, etc? Are the interface objects (i.e., the physical interaction devices) apt in terms of their affordances?. To this end, we propose a conceptual framework based on three components:. • a structured representation of the mappings holding between the metaphor source, the metaphor target, the interface and the digital system; • a conceptual model for describing TUI metaphors, defining the components, structure and role of tangible interface elements and their relations with the digital application; • three relevant properties that help designers to evaluate the quality of a metaphor reification in a tangible system with respect to the system components and to the metaphor definition.. The paper is organized as follows: in Sects. 2 and 3 we review the relevant literature related to TUIs and to the study of metaphors in language and Human Computer Interaction, identifying the concepts of TUI and the relations between the source and target of a metaphor, that are preponderant for describing and understanding a TUI metaphor. Section 4 formulates the problem and introduces a simple case study to highlight the need of a more structured approach for assess-ing metaphors in TUIs. In Sects. 5 and 6 we elaborate a conceptual framework to support the description and evaluation of metaphor reification in a tangible interface: Sect. 5 introduces a conceptual model for describing the mapping of a metaphor to an application interface, while in Sect. 6 the conceptual framework is enriched with the concepts of coherence, coverage and compliance that provide support for evaluating the mapping. In Sect. 7 we use this conceptual framework to discuss a more articulated case study evaluating the quality and potential of the involved metaphor implementation. We draw the concluding remarks in Sect. 8.

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


A Semi-Continuous Version of the Berger-Yeung Problem We present a continuous dual of multiterminal source encoding with one distortion criterion (the \Berger-Yeung problem"). A continuous source X is encoded with \high resolution" (D x ! 0), with the aid of a \helper", i.e., a correlated discrete or continuous source Y , that is encoded separately subject to some arbitrary distortion criterion D y . We nd the asymptotic form of the set of achievable coding rates R(D x ; D y ) of the X -and Y -encoders as D x ! 0. Two extreme cases of our result provide high resolution interpretations to the classical work of Wyner, Ahlswede, Korner and Ziv on source coding with side information. A decoder receives encodings of memoryless correlated sources fX k g and fY k g from separate encoders at rates R 1 and R 2 , respectively, and needs to reconstruct the sources subject to delity criteria D x We give the Berger-Yeung problem a high resolution interpretation. We assume that X k is real valued, has a \smooth" conditional distribution given Y k , and is encoded with small mean squared error D x . We determine the asymptotic form of the region R(D x ; D y ) in the limit as D x ! 0 (or R 1 ! 1). Thus, the assumption of lossless coding of fX k g in the Berger-Yeung problem is replaced here by high resolution coding of the continuous source fX k g. This result extends our earlier work 12] in which both sources are encoded with high resolution.. The following scenarios may motivate this problem:. Y helps X: We are mainly (or only) interested in an accurate reproduction of the source fX k g, but the cost of sending bits through channel 1 is very high, whereas using channel 2 is cheap. Here the encoder of the correlated source fY k g serves as a \helper" to reduce the rate 1 in channel 1, and D y is large (or = 1). X helps Y : We are interested in encoding fY k g, but the cost of sending bits through channel 2 is very high, while the cost of using channel 1 is negligible, allowing a large rate R 1 . In the next section we state our main result. In Section III we consider the two special cases of our problem which correspond to the WZ and the WAK problems. In Section IV we give an explicit characterization of the asymptotic rate region when the sources are jointly Gaussian and delity is measured by the squared error distortion measure. The proof of the main result is given in the last section.

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


Computation of the minimum data storage and applications in memory management for multimedia signal processing Abstract. The amount of the data storage in signal processing systems, whose behavior is described by loop-organized algorithmic specifications, has an important impact on the overall energy consumption, chip area, as well as system performance. This paper presents a methodology based on lattices [25] which can be used to address several memory management tasks for applications with high-level specifications, where the main data structures are multidimensional arrays. This methodology was used in the past for the exact computation of the minimum data storage in applications with procedural, affine specifications [2] . The paper discusses two applications of that technique in the memory management of data-dominated signal processing systems: (1) the evaluation of the impact of loop transformations on the data storage, and (2) the assessment and efficient implementation of models of mapping multidimensional signals into the physical memory. In many signal processing systems, particularly in the multimedia and telecommunication domains, data transfer and storage have a significant impact on both the system performance and the major cost parameterspower consumption and chip area. During the system development process, the designer must often focus first on the exploration of the memory subsystem in order to achieve a cost optimized product.. The behavior of these targeted VLSI systems, synthesized to execute mainly data-intensive applications, is described in a high-level programming language, where the code is typically organized in sequences of loop nests having as boundaries (usually affine) functions of loop iterators, conditional instructions where the arguments may be data-dependent and/or data-independent (relational and/or logic expressions of affine functions of loop iterators). The data structures are multidimensional arrays whose indexes in the code are affine functions of the surrounding loop iterators. The class of specifications with these characteristics are often called affine specifications [4] . A piece of code in this class is shown in Fig. 1 (a) and will be used along the paper as an illustrative example. This paper has presented a methodology operating with polyhedra and images of polyhedra for addressing memory management tasks in multimedia and multidimensional signal processing applications. A central application of this methodology is the computation of the minimum data storage in affine, procedural specifications. The paper has discussed two other memory management applications of this technique during system-level exploration. The first application is the evaluation of the impact of the code transformations on the storage requirement. It has been shown that different variants of code of a same application can be compared one against another in storage point of view, without the need of performing a proper memory allocation for each variant. The second application is the assessment of different strategies of mapping multidimensional arrays into the data memory. Moreover, the paper has shown that the polyhedral framework developed in this work can be used to efficiently implement different mapping models.

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


Lossless trace compression The tremendous storage space required for a useful data base of program traces has prompted a search for trace reduction techniques. In this paper we discuss a range of information-lossless address and instruction trace compression schemes that can reduce both storage space and access time by an order of magnitude or more, without discarding either references or inter-reference timing information from the original trace.The PDATS family of trace compression techniques achieves trace coding densities of about six references per byte. This family of techniques is now in use as the standard in the NMSU TraceBase, an extensive trace archive that has been established for use by the international research and teaching community. For those seeking to understand the behavior of complex systems, simulation is often the tool of choice. Each of the various components of the system under study can be simulated at a level of abstraction appropriate to the degree of interest in its behavior. Simplifying assumptions need be introduced only where dictated by lack of knowledge or of simulation resources. New system configurations can be evaluated quickly merely by changing the parameters of the simulation model of the system. The accuracy of simulation results depends upon the fidelity of the model of the system as well as of the workload applied to the simulated system. In some cases, the workload can be modeled with sufficient fidelity by streams of random numbers having carefully crafted distributions. In other cases, workloads contain patterns of varying scales that can be difficult to accurately model with random number streams; in such cases, simulations are often driven by traces of workloads.. A trace is an ordered sequence of events, sometimes including event timing. Two types of traces are commonly used in the performance evaluation of computer subsystems:. • Memory hierarchy simulations (e.g., cache memories) are driven by address traces.. • CPU simulations, which include the simulation of pipelined ALUs, load-store units, and other functional units, are driven by address and instruction traces. Reduced storage requirements and shorter processing times are of obvious benefit to all users of traces. The PDATS technique described here provides both, while retaining all of the references of the original traces as well as any time stamps present.. Employed alone, PDATS achieves nearly order-of-magnitude improvements in storage space and access time, particularly for RISC processor traces. When Lempel-Ziv compression is applied after the trace-specific compression of PDATS, another half order of magnitude of compression can be obtained, although some of the access time improvement may be lost.. As a result of these findings, PDATS is in use as the standard trace format for a data base of traces established at NMSU for the use of researchers and educators worldwide. (Our goal is to provide easy access to a large body of useful traces so that researchers will be able to reproduce and extend each others' work, a capability long enjoyed by researchers in the physical sciences.). Future investigations will pursue techniques for improved compression. We have observed that offsets between operand references often require four bytes. Our hypothesis is that this occurs when accesses to stack and heap areas occur in alternation. This suggests that the use of additional streams in analyzing a trace (e.g., one for stack references and another for the heap) would reduce the average size of operand reference offsets. Other patterns in reference streams will be studied to identify additional opportunities to remove trace redundancy.. An ongoing application of the PDATS compression scheme is hardware implementations to compress traces "on the fly" during real-time trace acquisition. When combined with some degree of trace filtering, it may be possible to reduce trace data bandwidth to that sustainable by a disk array, allowing the capture of extremely long traces in real time that include user, system, and interrupt activity. We are pursuing this idea in a project called RATCHET. RATCHET III produced PDATS traces in real time from a 20 processor Sequent Symmetry backplane. Similarly, RATCHET IV captures and compresses traces in real time from an IBM F-50 multiprocessor. To individually evaluate the various components of the PDATS technique, the traces were recoded into four different formats: The results of compressing the thirteen example traces are presented below, grouped by original trace format and CPU type. For each group, the sizes of the original and transformed files are shown graphically. A summary of the numerical results for all groups is listed in Table 6 .

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


Classification of Breast Cancer Malignancy Using Cytological Images of Fine Needle Aspiration Biopsies According to the World Health Organization (WHO), breast cancer (BC) is one of the most deadly cancers diagnosed among middle-aged women. Precise diagnosis and prognosis are crucial to reduce the high death rate. In this paper we present a framework for automatic malignancy grading of fine needle aspiration biopsy tissue. The malignancy grade is one of the most important factors taken into consideration during the prediction of cancer behavior after the treatment. Our framework is based on a classification using Support Vector Machines (SVM). The SVMs presented here are able to assign a malignancy grade based on preextracted features with the accuracy up to 94.24%. We also show that SVMs performed best out of four tested classifiers. Breast cancer is the most often diagnosed cancer among women aged 40 to 60. According to the World Health Organization there are 7.6 million deaths worldwide due to cancer each year, out of which 502,000 are caused by breast cancer alone. With such a high rate, breast cancer also is one of the most deadly cancers. For many years researchers have been trying to find the best way to treat breast cancer. Successful treatment is a key to reduce the high death rate. To successfully cure a patient with breast cancer we need to diagnose it as early as possible. Cancers in their early stages are vulnerable to treatment while cancers in their most advanced stages are usually almost impossible to treat.. The most common diagnostic tools are mammography and a fine needle aspiration biopsy (FNA). Mammography, which is a non-invasive method, is most often used for screening purposes rather than for precise diagnosis. It allows a physician to find possible locations of microcalcifications and other indicators in breast tissue. When a suspicious region is found, the patient is sent to a pathologist for a more precise diagnosis. This is when the FNA is taken. A fine needle aspiration biopsy is an invasive method to extract a small sample of the questionable breast tissue that allows the pathologist to describe the type of the cancer in detail. Using this method pathologists can very adequately describe not only the type of the cancer but also its genealogy and malignancy. They can also foresee the course of cancer development by attributing a predictive factor to it. The stage of cancer depends on the malignancy factor that is assigned during an FNA examination. The determination of malignancy is essential when predicting the progression of cancer.. In the literature one can find approaches to breast cancer classification (Wolberg and Mangasarian, 1990; Wolberg, Street and Mangasarian, 1994; Street, 2000; Walker, Albertelli, Titkov, Kaltsatis and Seburyano, 1998; Nezafat, Tabesh, Akhavan, Lucas and Zia, 1998; Schnorrenberg, Pattichis, Kyriacou and Schizas, 1994) . All of these approaches are concentrated on classifying FNA slides as benign or malignant. The system presented in this study classifies a malignancy stage of cancer that is nearly always malignant due to the prescreening process before taking an FNA.. During examination, there are certain features in the cytological slides that are taken into account. These features are used to assign a grade to the diagnosed tissue. One of the most popular and widely used schemes for grading cytological tissue is the Bloom-Richardson grading scheme (Bloom and Richardson, 1957) . This system was originally introduced for grading breast cancer histological pictures. The same scale can easily be used to assess malignancy for cytological smears. According to this system, there are three factors that are taken into account while grading cancerous tissue. Each of the three factors is evaluated on a three-point scale according to the following description:. 1. Degree of structural differentiation (SD): In histopathological slides this is also described as tubule formation, which reflects cell tendency to form tubules. Since in cytological smears tubules are not preserved, the following scoring for this factor is based on the classification of cell groupings within a smear, see, e.g., Fig. 1 :. -One point: cells in the image are grouped regularly.. -Two points: both grouped and single cells can be found within the image.. -Three points: cells are spread irregularly. In Section 2 we presented a framework for breast cancer malignancy grading based on an SVM classifier that was able to classify malignancy and, based on that classification, assign a malignancy grade to fine needle aspiration biopsy slides.. In Section 2.1 the preprocessing part of the system was described. From the previous work (Jeleń et al., 2006) , where the Hough transform approach to nuclei classification was described, we can conclude that the level set approach is a faster method for nuclei segmentation and also provides a good nuclei representation (see Fig. 7 ).. The performance of our system given in Section 3 shows that SVMs are able to classify malignancy with very good results, achieving the highest accuracy of 94.24% for the training set #5, which includes only 30% of G2 cases and 50% of G3 cases. Using only 30% of G2 cases introduces less redundant information, which showed a very good influence on classification results.. The 5.76% error rate is very promising and allows us to further investigate this problem on feature extraction and preprocessing levels to achieve better classification rates. Another possibility to lower the error would be to increase the database to include more malignancy cases, which we are currently investigating. From a pathologist point of view, having a system that is able to assist them during the decision making process is very useful and helpful especially in situations where it is difficult to Classification of breast cancer malignancy using cytological images of fine needle aspiration biopsies 83 decide to which malignancy class a case should belong. Such a system would help to make their diagnosis more objective and precise. In this section we will demonstrate the performance of the framework presented in Section 2 along with results obtained for three other classifiers for comparison. The classifiers were trained and tested with images from our database of FNA slides. All of the images were stained with the Haematoxylin and Eosin techniques (HE), which yielded purple and black stains for nuclei, shades of pink for cytoplasm and orange/red for red blood cells. All the images were obtained with an Olympus BX 50 microscope with a mounted CCD-IRIS camera connected to a PC computer with the MultiScan Base 08.98 software.. Our database consists of 110 fine needle aspiration biopsy images with known malignancy grades collected at the Department of Pathology at the Medical University of Wrocław. There are 44 images with high malignancy (G3) and 66 images with intermediate malignancy (G2). Benchmark grades of the images were assigned by a pathologist and used for verification purposes during the te-sts. Since 2005 none of the performed biopsies has been assigned a low malignancy grade, therefore all cases included in the database are graded as intermediate or high malignancy. Figure 7 shows an example of segmentation that was used for feature extraction and Table 1 shows some of the extracted features along with malignancy grades assigned by an expert pathologist. Figure 8 shows histograms of features for both classes. From the table we can see that features extracted by our framework reflect the tendency of malignant cancer cells, where more malignant cases have larger nuclei and their border is more deformed than those of healthy nuclei. Using such feature vectors, we performed six different tests on our database with different training and testing sets.. The training sets were chosen randomly to contain different numbers of high and intermediate malignancy cases. The remaining cases were used to form the test sets. Table 2 shows the chosen training and testing sets that were used in this study. Using these sets we trained and tested the performance of four different classifiers. We took into consideration four neural networks: a Multilayer Perceptron (MLP), Self-Organizing Maps (SOM), Principal Components (PCA) and Support Vector Machines (SVM), cf. Section 2.3, and compared their performance using our database.. Out of the four classifiers, the MLP showed the best average performance with an average error rate of 17.3%. Although the MLP showed the best average performance, we can conclude that SVMs perform better achieving an error rate of 5.76%, which is the lowest recorded error rate. The highest recorded error rate for the test set #5 was 7.22% for the PCA. For the same training and testing sets, the MLP performed significantly worse than the SVM, achieving a 6.73% error rate. Table 3 and Fig. 10 show the performance of all classifiers for each set taken into consideration in this study. From Fig. 10 one can see that the set #5 achieved the best performance, having the lowest error rates out of all testing sets taken into consideration. In pattern recognition and machine learning, Receiver Operating Characteristics (ROC) are widely used for performance analysis and provide tools to select a possibly optimal classification model. An ROC shows that the SVM performed better that any other tested classifier. When comparing the area under the ROC curve (AUC), one can notice that for the SVM the area is larger than for any other classifier taken into consideration in this study. According to ROC analysis, we choose the classifier with the largest AUC (Bradley, 1997) . This is reflected in Fig. 11, which shows comparative performance of all tested classifiers.. In Fig. 9 we present examples of the misclassified case ( Fig. 9(a) ) and two correctly classified cases (Figs. 9 (b) and (c)). Classification is a task of assigning an item to a certain category, called a class, based on the characteristic features of that item. This task in any classification system is performed by a classifier that takes a feature vector as an input and responds with a category to which the object belongs. A feature vector is a set of features extracted from the input data. Here we make use of neural network classifiers that are a collection of neurons (systems with many inputs and one output that are trained to fire, or not, for particular input patterns) that are connected one to another. Each connection is assigned an initial weight during the training process which are then adjusted to give a proper answer. The final decision is made based on the interaction of weights and the feature vector.. Before we can extract features used for classification, our input data need to be preprocessed and segmented. Preprocessing is a task of removing unimportant information from the data. Segmentation is an operation during which we isolate the boundaries of the important parts of data that are then used for feature extraction and classification.. The classification framework presented here consists of three main blocks: preprocessing, feature extraction and classification. Each of these blocks will be explained in detail in the following subsections. scheme (Bloom and Richardson, 1957) .

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


Programs with lists are counter automata Abstract. We address the verification problem of programs manipulating oneselector linked data structures. We propose a new automated approach for checking safety and termination for these programs. Our approach is based on using counter automata as accurate abstract models: control states correspond to abstract heap graphs where list segments without sharing are collapsed, and counters are used to keep track of the number of elements in these segments. This allows to apply automatic analysis techniques and tools for counter automata in order to verify list programs. We show the effectiveness of our approach, in particular by verifying automatically termination of some sorting programs. The design of automatic verification methods for programs manipulating dynamic linked data structures is a challenging problem. Indeed, the analysis of the behaviour of such programs requires reasoning about complex transformations of data structures involving both creation and deletion of objects as well as modifications of the links between them (pointer manipulations). The heap of such programs may have in fact an arbitrary size and shape (a graph structure). There are several approaches for tackling this problem addressing different subclasses of programs and using different kinds of formalisms for representing and reasoning about infinite sets of heap structures, e.g., [21, 19, 22, 9] .. We consider in this paper the class of programs manipulating linked data structures with a single data-field selector. It corresponds to programs manipulating linked lists with the possibility of sharing and circularities. We propose a new approach for the automatic verification of such programs which is mainly based on using counter automata as accurate abstract (infinite-state) models. These models can be used for checking both safety properties and termination of the considered programs using techniques such as (abstract) symbolic reachability analysis (for safety and invariance checking) and automatic generation of decreasing ranking functions (for termination checking).. Let us present in more details the proposed approach. We start from the observation that if we do not consider garbage (parts of the heap not reachable from the pointer variables of the program), the heap graph is always a finite collection of graphs of a special form close to a tree: it is either a tree (where edges are directed towards the root) or a set of trees having all their roots connected to a simple cycle. The number of such graphs is infinite, but it can be proved that for each of them, the number of vertices where sharing occurs is bounded by the number of pointer variables of the program.. Then, for data-insensitive programs (e.g., a list reversal program), a natural abstraction consists in mapping each sequence of elements between two sharing points into an abstract sequence of some (fixed) bounded size. However, for each given value of the bound, this abstraction is obviously not precise in general. In order to define a precise abstraction, we need in fact to reason about the size of each sequence between two sharing points. This leads to the idea of using counters in order to keep this information in the abstract model (and therefore to use counter automata as abstract models).. In fact, considering counter automata-based models has several advantages. Not only it allows to define accurate abstractions, it allows us also to handle quantitative properties depending on the sizes of some parts of the heap. Thus, we can handle programs with integer variables whose value is somehow related to the contents of the lists (e.g., to their length). Moreover, it provides a powerful way for checking termination which typically requires reasoning about decreasing values (e.g., the size of the part of the list to be treated).. A first contribution of the paper is to define an abstraction mapping from datainsensitive programs to counter automata for which we prove that the (concrete) program and its abstraction are bisimilar. This result is interesting since it means that our abstraction preserves all properties of the class of data-insensitive programs. The control states of the built automaton correspond to abstract shapes (heap graphs where sequences between shared points are reduced to single vertices), and each transition corresponds to the execution of a program statement. It represents a modification in the shape together with a modification on the counters (attached to vertices abstracting sequences between sharing nodes).. The control structure of the built counter automata can be arbitrary in general. However, it turns out that these automata have an important property: we prove that if we consider the evolution of the sum of all counters, the effect of executing any control loop is to increment this sum by a constant which depends on the program. We use this fact to establish a new decidability result for list programs: for every given (datainsensitive) list program, if the control structure of the generated counter automaton has no nested loops, the verification problems of safety properties and termination are both decidable.. Subsequently, we go further by considering the issue of data-sensitivity. We consider the class of programs manipulating objects ranging over a potentially infinite data domain supplied with an ordering relation, and we assume that the only allowed operation on these data values is the comparison w.r.t. this ordering relation. This class of programs includes, for instance, sorting programs. We extend our previous abstraction principle to the heap graphs of these programs by taking into account (in addition to the size) some information about the order of the elements in the abstracted sequences between sharing points, and we provide a construction which associates with each program a counter automaton-based abstract model. We show that this abstraction is sound and complete w.r.t. the choice of ordering predicates.. Finally, we show the application of our approach on three examples of programs (list reversal, insertion sort, and bubble sort). We have derived systematically their counter automata models, and then we used (1) our ARMC tool [10] (and some compile-time techniques) for checking safety properties, and (2) the Terminator tool based on [13] for termination.. Related Work: Programs manipulating singly-linked lists have gained a lot of attention within the past two years, as shown by the fairly large number of recent publications on the subject [5, 7, 20, 4, 9] . Interestingly, the idea of abstracting away all the list segments with no incoming edges is common to many of these works, even though they are independent and use different approaches and frameworks (e.g. static analysis [20] , predicate abstraction [4] . symbolic reachability analysis [5] and proof search [7] ). The fact that the number of sharing points in abstract heap structures is bounded by the number of variables in the program is also behind the techniques proposed in [20, 9] .. In [11] , the authors use an abstract shape model with counters, but their concerns are mostly related to the decidability of a specification logic. The approach that is the closest to ours is [5] . However, it is rather pointed towards showing particular properties such as absence of segmentation faults and memory leak errors, than checking general safety properties, and the work does not address the problem of verifying termination. Moreover, the work reported in [5] offers less automation of the verification than ours. Recently, the same authors have started independently a work [16] on automatic construction of models based on counter automata similar to our approach.. The use of ordering predicates in order to handle sorting programs is similar to the one considered in [15, 22] based on the shape analysis approach.. Termination is tackled by works such as [23, 4] . In all of these works, ranking functions must be given manually, whereas our approach is fully automated. We have presented an approach for automatic verification of programs with 1-selector dynamic linked structures. It is based on using counter automata as accurate abstract models for such programs. These infinite-state models can be handled using various advanced techniques and tools which have been designed recently for their automatic analysis (e.g., [1, 2, 6] ), and in particular concerning checking termination and liveness properties (e.g., [13, 12] ). Indeed, using counters referring to the sizes of parts of the heap structure (e.g., list segments) of a program is a powerful means for dealing with quantitative reasoning about programs, and in particular about their termination. Our future work naturally includes extending this approach to more general linked structures such as doubly linked lists, tree-like structures, etc.

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


Large Deviations and Moments for the Euler Characteristic of a Random Surface We study random surfaces constructed by glueing together N/k filled k-gons along their edges, with all (N − 1)!! = (N − 1)(N − 3) · · · 3 · 1 pairings of the edges being equally likely. (We assume that lcm{2, k} divides N .) The Euler characteristic of the resulting surface is related to the number of cycles in a certain random permutation of {1, . . . , N }. Gamburd has shown that when 2 lcm{2, k} divides N , the distribution of this random permutation converges to that of the uniform distribution on the alternating group A N in the total-variation distance as N → ∞. We obtain large-deviations bounds for the number of cycles that, together with Gamburd's result, allow us to derive sharp estimates for the moments of the number of cycles. These estimates allow us to confirm certain cases of conjectures made by Pippenger and Schleich. The random surfaces that we deal with are defined as follows. Fix k ≥ 3 and let N be divisible by lcm{2, k}. Take N/k filled k-gons, and identify the N edges of their boundaries in pairs to obtain an orientable surface, with all (N − 1)!! = (N − 1)(N − 3) · · · 3 · 1 pairings being equally likely. We are interested in the Euler characteristic χ of the resulting surface. Since the surface pattern has N/k faces and N/2 edges (after identification), we have χ = V − N/2 + N/k, where V is the number of vertices (after identification) in the surface pattern. We shall thus focus our attention on the random variable V .. These random surfaces were first studied, for k = 3, by Pippenger and Schleich [P] , who showed that (the class of permutations all of whose cycles have length k). Then the distribution of V is the same as that of the number of cycles in the random permutation αβ. (The elements of {1, . . . , N } correspond to the edges of the edges of the k-gons, the permutation α corresponds to the pairing of the edges, and the permutation β corresponds to the cyclic ordering of the edges around each k-gon.). Let us focus for now on the distribution of the cycle structure of the random permutation αβ. We denote by αβ the permutation obtained by first performing α, then performing β, but the opposite convention (first β, then α) would yield the same distribution of the cycle structure: since αβ is conjugate to βα = β(αβ)β −1 , they have the same cycle structure. Gamburd [G] , in the theorem cited below, assumes that β is uniformly distributed on the conjugacy class [k N/k ], rather than being a fixed permutation from this class, but this change also yields the same distribution of the cycle structure: if β is a fixed permutation in [k N/k ], and π is uniformly distributed in the symmetric group S N , then πβπ. which has the same distribution as αβ, because π −1 απ has the same distribution as α. This argument also shows that the choice of the fixed permutation β in [k N/k ] does not affect the distribution of the cycle structure. Finally, we observe that the distribution of the cycle structure of αβ actually determines the distribution of αβ, since the distribution of αβ is constant on conjugacy classes: If ̺ and π̺π −1 are conjugate permutations, then Pr[αβ = π̺π. , since π −1 απ has the same distribution as α and π −1 βπ belongs to the same conjugacy class, [k N/k ], as β.. If π is a random variable distributed on the symmetric group S N , we shall denote by P π its probability distribution, the function that maps each event E ⊆ S N to its probability. . If ̺ is another such random variable, we shall denote by P π − P ̺ the total-variation distance between π and ̺, that is, the maximum, over all events E ⊆ S N , of the absolute value of the difference between probabilities assigned to E by P π and P ̺ :. Theorem 1.1: (Gamburd [G] ) Fix k ≥ 3, and let N tend to infinity through values divisible by 2 lcm{2, k}.. Let α be a random permutation uniformly distributed on the conjugacy class [2 N/2 ] of the symmetric group S N , let β be a fixed permutation in [k N/k ], and let τ be uniformly distributed on the alternating group A N .. Then the distribution of αβ tends to that of τ in total-variation distance as N → ∞. More specifically,. (Gamburd assumes that β is uniformly distributed in [k N/k ], but as we have noted above, this does not affect the distribution of αβ. Gamburd also assumes only that N is divisible by k; but N must be even for α to be chosen from [2 N/2 ], and unless N is also divisible by 2k when k is even, and by 4k when k is odd, αβ will be distributed not on A N but on its coset in S N comprising the odd permutations, hence our requirement that N be divisible by 2 lcm{2, k}. In his proof of this theorem, Gamburd derives the estimate. ), from which we obtain our estimate by taking square-roots on both sides.). We are interested in the random variable V of vertices in the surface pattern of a random surface, which has the same distribution as the number C αβ of cycles in the random permutation αβ. The conclusion of Theorem 1.1 is not very useful for estimating the moments of C αβ . If, for example, π is the identity in A N with probability 1/N 1/12 and equal to τ with the remaining probability 1−1/N 1/12 , then. . This example, however, suggests that what is needed is a large-deviations bound for C αβ , and such a bound is provided by the following theorem.. Theorem 1.2: Fix k ≥ 3, and let N tend to infinity through values divisible by lcm{2, k}. Let α be a random permutation uniformly distributed on the conjugacy class [2 N/2 ] of the symmetric group S N and let β be a. N .. (For this theorem we need only the weaker assumption that N is divisible by lcm{2, k}, rather than by 2 lcm{2, k}.) Theorems 1.1 and 1.2 together allow us to relate the moments of C αβ to those of C τ , the number of cycles in a permutation τ uniformly distributed on the alternating group A N . Theorem 1.3: Fix k ≥ 3, and let N tend to infinity through values divisible by 2 lcm{2, k}. Let α be a random permutation uniformly distributed on the conjugacy class [2 N/2 ] of the symmetric group S N , let β be a fixed permutation in [k N/k ], and let τ be uniformly distributed on the alternating group A N . Let p(x) be a polynomial of degree l that is non-negative and non-decreasing for x ≥ 0. Then. (A slightly weaker version of this theorem appears in the thesis of Fleming [F] . Since the proof of this theorem uses Theorem 1.1, we require that N be divisible by 2 lcm{2, k}, and not merely by lcm{2, k}.) Theorem 1.3, together with straightforward estimates of the moments of C τ , yields the following corollary.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 Boolean Measure of Similarity Abstract.We propose a way of measuring the similarity of a Boolean vector to a given set of Boolean vectors, motivated in part by certain data mining or machine learning problems. We relate the similarity measure to one based on Hamming distance and we develop from this some ways of quantifying the 'quality' of a dataset. In this paper we propose a way of measuring the similarity s(x, A) of a Boolean vector x to a set A of such vectors. The measure we propose is based on the absence of certain substrings of x from the set of vectors in A.. In the context of machine learning classification problems, we may think of A as a dataset, a set of observations on which we know the correct classifications. For example, each observation in the data set might arise from a set of medical tests on a patient and may represent, suitably encoded, the absence or presence-or degree of presence-of a number of symptoms the patient may have. We believe that, in this context, the similarity measure provides a natural way of deciding which unseen possible observations it would be plausible to classify with some confidence once a classifier has been found that correctly classifies all (or most of) the observations in the dataset.. Elegant and useful theories of classification error and confidence have been developed, but these usually make probabilistic assumptions about the way in which the observations have been generated. Specifically, the PAC model of learning and its variants (see, for instance [15, 7, 1, 10] ) assume that each observation in the data set has been chosen independently of the others, at random, according to a fixed probability distribution on {0, 1} n , the set of all conceivable observations. Vovk et al. [17, 18, 16] have studied on-line learning in which one wants not only to predict classifications, but to give some indication of how 'credible' such predictions are, or not to predict if the predictions are not to be credible; and this is similar to the type of application we have in mind for the similarity measure. But in these papers, it is also assumed that the observations are generated independently according to the same probability distribution. In practice, what can one do without such probabilistic assumptions? It may be hard to prove anything sensible about classification accuracy in this case. Nonetheless, it might be at least useful not only to determine a classifier and to classify unseen observations with it, but also to attach to such predicted classifications the indication s(x, A) of how similar the observation x is to those in the dataset that we trained on. Equally, one may decide not to classify at all those unseen observations that have a low similarity with the dataset. Empirical investigations (to be reported in [4] ) appear to indicate that a higher classification accuracy is then achieved on the region of the domain {0, 1}. n on which we do decide to classify. We also propose a way of using the extremal values of s(x, A) as an indication of the 'quality' or 'representativeness' of a dataset.. One obvious measure of how similar an observation is to a set of observations is the minimum Hamming distance of the observation from the set. We relate the similarity measure proposed here to this Hamming distance based one.

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


Propagating error in land-cover-change analyses: impact of temporal dependence under increased thematic complexity We examined the impact of temporal dependence between patterns of error in classified time-series imagery through a simulation modeling approach. This research extended the land-cover-change simulation model we previously developed to investigate: (1) the assumption of temporal independence between patterns of error in classified time-series imagery; and (2) the interaction of patterns of change and patterns of error in a postclassification change analysis. In this research, the thematic complexity of the classified land-cover maps was increased by increasing the number of simulated land-cover classes. Simulating maps with increased categorical resolution permitted the incorporation of: (1) higher-order, more complex spatial and temporal interactions between land-cover classes; and (2) patterns of error that better reproduce the complex error interactions that often occur in time-series classified imagery. The overall modeling framework was divided into two primary components: (1) generation of a map representing true change; and (2) generation of a suite of change maps that had been perturbed by specific patterns of error. All component maps in the model were produced using simulated annealing, which enabled us to create a series of map realizations with user-defined spatial and temporal patterns. Comparing the true map of change to the error-perturbed maps of change using accuracy assessment statistics showed that increasing the temporal dependence between classification errors did not improve the accuracy of resulting maps of change when the categorical scale of the land-cover classified maps was increased. The increased structural complexity within the time series of maps effectively inhibited the impact of temporal dependence. However, results demonstrated that there are interactions between patterns of error and patterns of change in a post-classification change analysis. These interactions played a major role in determining the accuracy associated with the maps of change. The presence of a temporal correlation between time-1 and time-2 errors clearly did not improve the accuracy of the resulting map of change when the categorical scale of the LC classified maps was increased. It appears that the increased structural complexity within the time series of maps effectively inhibits the impact of temporal dependence on the accuracy of LCC maps. In the presence of complex interactions between LC classes and LC transitions, as well as the interactions between LC classes and their associated patterns of error, the effects of a temporal relationship between error surfaces are severely attenuated. To determine if temporal dependence could affect the accuracy of the maps of change, an extreme case in which errors were perfectly temporally correlated (r = 1) was simulated. The result for both overall PCC and user's accuracy was a significant gain in accuracy (Tables 1 and 2) .. Overall PCC values increased by an average of 8.3% and user's accuracies increased by an average of 7.1% under perfect temporal correlation. While temporal dependence can affect the accuracy of a map of change, a correlation level not likely observed in real-world LCC analyses is needed for maps depicting structurally complex landscapes. A perplexing result was the continual decline in both PCC values and user's accuracy as the temporal correlation increased. Increasing the temporal dependence between error surfaces not only had no effect on the accuracy of the maps of change, but also decreased the accuracy of the map of change, that is, PCC no . PCC r = 0.2 . PCC r = 0.4 . The explanation may lie in the manner in which the time-2 error-probability surfaces were constructed. Time-2 patterns of error were conditioned on time-1 patterns and did not incorporate the patterns of change. For cases in which the time-1 error and change surface both had higher probabilities of occurrence in the same general locations, increasing the temporal correlation would ensure that the addition of the change probability would be severely overwhelmed by the addition of error.. With regard to the second research question (Section 3), results showed that the simulated pattern of change interacted with the simulated pattern of error to mediate the impact of temporal dependence. The interaction between the change and error pattern played a major role in determining the accuracy associated with the resulting map of change. Differences were observed in both the direction and the magnitude of the change in accuracy values as temporal dependence increased when comparing across the various patterns of change. Models attempting to quantify the propagation of error in analyses of LCC must consider, and explicitly incorporate, these change/error interactions to successfully predict the accuracy of a map of change.. The mediating effect of the pattern of change was clearly demonstrated when comparing results for the LCC scenarios. Increasing the temporal correlation between patterns of error had the greatest impact on the Washtenaw County scenario when examining overall PCC values and the Suburban scenario when examining user's accuracies. The mediating effect was also evident when the temporal correlation was increased to 1. The average gain in user's accuracy was 8.4% for the patterns of change in the suburban landscape scenario, but was only 5.2% for the patterns of change in the Washtenaw County scenario. The primary difference between the scenarios was that change into the Other class was prevented for the Suburban scenario. Reducing the number of transitions within a pattern of change decreased the structural complexity of the time series of classified LC maps leading to a smaller decline in user's accuracy. This simplification of the model allowed the impact of the temporal dependence to become more apparent.. Similarly, user's accuracies were higher under all patterns of error for the suburban landscape scenario. This meant that simplifying the LCC model by reducing the number of transitions played a key role in determining the accuracy of the maps of change. Fewer LC transitions were modeled with greater certainty regardless of the pattern of error considered. Thus, maps of LCC are more likely to succeed at mapping change when fewer transitions are modeled and the patterns of change are relatively simple (i.e., fewer interactions between LCCs). Finally, it was clear that patterns exhibiting a low percentage of overall change had significantly lower user accuracies than their high percentage counterparts. As the percentage of the mapped surface that experienced an LC transition increased significantly (17-24%), the correct prediction of change also increased (average of 12.7%). Clearly, increasing the number of pixels undergoing an LC transition in the final maps of change led to a higher accuracy in predicting their occurrence. This general relationship between increased accuracy with increasing abundance usually holds when trying to map rare phenomena.. The results also lent further support to the usefulness of simulation approaches in modeling the propagation of error in analyses of LCC. The complex interactions observed between the patterns of change and patterns of error would be extremely difficult to model analytically, and the results for the overall PCC values indicate that the accuracy of the maps of change do not necessarily follow recognizable trends. The simulation approach allowed us to (1) isolate and test the impact of increasing temporal dependence; and (2) create a series of 50 combinations of patterns of change and patterns of error, providing a wealth of data to explore our research questions. However, one challenge encountered using the simulation approach was the increased programming and computing time required to produce surfaces reflecting a series of constraints and complex spatiotemporal patterns. It took a desktop computer approximately 1.5 h to create 30 realizations of each error-probability surface for the two LC class case, compared to the 192 h it took a cluster of computers to create 30 realizations of each error-probability surface for the three LC class case.. Several conclusions can be drawn from this research. First, temporal dependence between patterns of error has a limited impact on analyses of LCC with realistic levels of categorical detail. While temporal dependence in error increased the accuracy of a map of change when the classified landscape was relatively simple, its impact was constrained by the complex interactions present in maps comprising multiple LCs. Therefore, the results of this research indicate that the simplifying assumption of temporal independence between classification errors within a time series may not significantly underestimate the overall accuracy of a map of change when the maps are composed of several LC classes. Furthermore, results suggest that a simpler error-propagation model for post-classification change analysis may be appropriate when time-series classified maps contain multiple LC classes. In other words, the added complexity of modeling temporal dependence to assess the uncertainty of a map of change may not be necessary in all cases. However, these conclusions need to be fully supported by empirical evidence before broad-scale recommendations can be made, given previous research that found a positive relationship between temporal dependence and the overall accuracy of a map of change (Burnicki et al. 2007) .. The second major conclusion of this work is that the accuracy of a map of change depends on the interaction between the patterns of change and patterns of error occurring between time-series classified maps. The LCC scenario, amount of change, and the type of change occurring between the time-1 and time-2 classified maps all affected the resulting overall PCC and user's accuracy values. A greater understanding of these interactions is needed to correctly quantify error propagation in analyses of LCC. This requires moving beyond statistical summaries like overall PCC and user's accuracy. Understanding how patterns of change influence the impact of specified patterns of error requires an analysis of the spatial change patterns predicted by the error-perturbed change maps. Pattern-based comparisons of the error-perturbed maps of change with the true map of change will provide a more meaningful description of the impact of this interaction.. This research highlighted many of the complex issues that affect our ability to provide a comprehensive and accurate assessment of the uncertainty in change-detection products. While the impact of temporal dependence between patterns of error was not as significant or as beneficial as the previous research indicated, it is clear that further research is needed to fully understand how error propagates through analyses of LCC.. where O(i) is the objective function, O c (i) is an objective-function component, w c is the weight assigned to component c, C is the total number of objective-function components included in the function, and i is the ith perturbation of the simulated annealing procedure. To produce maps with specific spatial and temporal patterns, five different objective functions were created based on a set of five objective-function components.. The first component incorporated the series of semivariogram and cross-semivariogram models defining the level of spatial continuity within the time series of classified maps. For the initial classification-probability surfaces and error-probability surfaces, three semivariogram models and three cross-semivariogram models were required to define the level of spatial autocorrelation within each LC class and the level of spatial dependence between each pair of LC classes. For the changeprobability surfaces, four semivariogram models and six cross-semivariogram models were required. This first component measured the overall difference between each target (detailed below) and experimental semivariogram or cross-semivariogram value as. where kk 0 ðh l Þ is the target semivariance or cross-semivariance at lag h l , ðiÞ std kk 0 ðhlÞ is the standardized experimental semivariance or cross-semivariance (described below) at lag h l calculated for the ith perturbation, K is the number of semivariogram models included in the objective-function statistic (i.e., 3 or 4), and L is the number of spatial lags (Goovaerts 1997) . Dividing by 2 kk 0 ðh l Þ ensured that more weight was given to semivariogram reproduction for smaller lags. In the above equation, ðiÞ std kk 0 ðh l Þ was calculated by comparing the magnitude of the (cross-) semivariance value to the correlation coefficient between the LC classes of interest. This was done to impose the reproduction of the shape of the (cross-) semivariogram and not its sill. The sill of the (cross-) semivariogram, which is related to the variance of each map under consideration, is not known a priori due to the perturbation process. Therefore, the standardized semivariogram values were calculated in the objective-function as follows:. where r kk 0 equals the correlation coefficient between the LC classes of interest if k Þ k 0 or 1 if k = k 0 (Goovaerts 1997) . The key parameter specified for the variogram models was the range, the distance beyond which pixels no longer exhibit spatial autocorrelation. Specifying the range for each model controlled the overall degree of spatial autocorrelation within and between each LC class or LC transition.. The second objective-function component incorporated the series of histograms defining the distribution of values within each probability surface. In order to keep the methodology as similar as possible between the two and three LC class simulation models, the final probability surfaces needed to follow a normal distribution. This component measured the discrepancy between the normal distribution and the experimental distribution, after standardization to zero mean and unit variance, summed across all simulated probability surfaces (e.g., 3 or 4). It was calculated as the following difference between a series of quantiles discretizing both the target and experimental distributions:. where q lk is the target p l -quantile of the standard normal cumulative frequency distribution,q ðiÞ lk is the experimental p l -quantile of the cumulative frequency distribution calculated for the ith perturbation, L is the number of quantiles considered (e.g., 99 percentiles), and K is the number of probability surfaces included in the objective function (i.e., 3 or 4; Goovaerts 1997) . Dividing by p l · (1 -p l ) in the above equation ensured that more weight was given to the reproduction of the tails of the distribution (i.e., quantiles corresponding to cumulative probabilities p l close to 0 or 1).. The third and fourth objective-function components concerned the reproduction of user-defined proportions of LC categories. The final time series of classified maps, both error free and error perturbed, replicated the following proportions: (1) percentage of pixels assigned to each LC class at time-1; (2) percentage of total pixels undergoing any LC transition between time-1 and time-2; (3) percentage of pixels experiencing each of the individual LC transitions between time-1 and time-2; and (4) percentage of total pixels experiencing an error in classification at time-1 and time-2. The total percentage of error assigned to the classified maps was equally divided among the three LC classes, so additional error percentages for each individual LC class were not necessary. The third objectivefunction component measured the difference between the target global proportion and the experimental global proportion when considering either the total amount of error or the total amount of change defined as:. where s is the target global proportion and ŝ (i) is the experimental global proportion for the ith perturbation. The fourth objective-function component measured the sum of the differences between the target individual proportions and the experimental individual proportions when considering either the proportions of each LC class at time-1 or the proportions of each LC transition defined as:. where t k is the target individual proportion,t ðiÞ k is the experimental individual proportion for the ith perturbation, and K is the number of LC classes or transitions included in the objective function (i.e., 3 or 4).. The fifth objective-function component controlled the reproduction of the linear correlation coefficient between the simulated probability surfaces and secondary variables. This constraint was necessary to create change-and error-probability surfaces that were correlated to LC classification boundaries and error-probability surfaces that were temporally dependent. This component measured the sum of the differences between the target and experimental correlation coefficients for each map set defined as: . where r XYk ð0Þ is the target linear correlation between the previously generated map surface (X) and the probability surface being currently simulated (Y),r ðiÞ XYk ð0Þ is the experimental linear correlation calculated for the ith perturbation, and K is the number of probability surfaces included in the objective-function statistic (i.e., 3 or 4; Goovaerts 1997 ).. Based on components O 1 through O 5 , five different objective functions were specified to produce each set of probability surfaces simulated for the overall model (Table A1 ). More weight was assigned to either the reproduction of the (cross-) semivariogram models or the global or individual proportions. This ensured that the level of spatial continuity and percentage of the map experiencing an LC transition or error replicated user-defined values. Components with relatively small weights (,0.1) were components that were easily reproduced. Unlike results presented elsewhere (Burnicki et al. 2007) , increasing the temporal correlation between the time-1 and time-2 error-probability surfaces did not increase the overall accuracy of the maps of change (Table 1 ). In fact, all but two patterns of change (correlated change for the Washtenaw County scenario) experienced a steady decline in the overall PCC values when time-2 patterns of error were temporally correlated to their time-1 counterparts. This was true when time-1 patterns of error were either random or correlated to the classification boundaries at time-1. However, the decline in accuracy was greater in the latter case. This overall result contradicts findings for the two LC class model, where overall PCC values significantly increased as the temporal correlation increased from 0 to 0.2 to 0.4. Comparing results among the various patterns of change, it is evident that the scenario under consideration played a role in determining the impact of increasing temporal correlation. The Washtenaw County scenario, in general, experienced less severe declines in overall PCC values and had two patterns of change that showed significant increases in PCC values as compared to the Suburban scenario. Another notable observation was that overall accuracies varied widely depending on the amount of total change and the underlying pattern of change. Unlike the two LC class model, there were no overall trends in accuracy values among the patterns of change.. Similar results were observed for user's accuracies in predicting change (Table 2) , with declines in accuracy even more dramatic than PCC values. Every pattern of change experienced a decrease in user's accuracy as the temporal correlation increased, regardless of whether the time-1 pattern of error was random or correlated to classification boundaries. And unlike the results observed for PCC values, decreases in user's accuracy values were not necessarily greater for the set of error maps that had time-1 patterns of error correlated to time-1 classification boundaries.. The user's accuracy values confirmed that the LCC scenario mediated the impact of increasing temporal correlation. The Washtenaw County scenario experienced greater declines in user's accuracy values than the Suburban scenario. This was opposite of the trend observed for PCC values. The patterns of change for the Suburban scenario had higher user's accuracy values than their Washtenaw County counterparts for all patterns of error. Additionally, the percentage of total change simulated played a role in determining the magnitude of the user's accuracy values, unlike PCC value results. All change patterns displaying a low percentage of change had significantly lower user's accuracies than their high change counterparts. User's accuracy in correctly predicting an LC transition varied based on the LCC scenario and the amount of change, and it also varied within each of the three patterns of change. The original experiment (Burnicki et al. 2007 ) was designed to address two main research questions: (1) How do specific patterns of error, particularly patterns with increasing temporal dependence, affect the ability of a map of change to correctly detect LC transitions; and (2) Does the specified pattern of change interact with the pattern of error to mediate the impact of increasing temporal dependence on the accuracy of the map of change? Our current research examined these questions under conditions of increased landscape complexity.. Both questions provide important insights for quantifying the level of uncertainty associated with a map of change and developing an error-propagation model for postclassification change analysis. The answer to the first research question affects how change maps are assessed for accuracy and how error-propagation models are constructed. If a significant increase in overall change map accuracy is observed when a temporal dependence between classification errors exists, simply multiplying the overall accuracies associated with each map in the time series (i.e., assuming temporal independence) will underestimate the accuracy of the map of change. Furthermore, more complex errorpropagation models that incorporate a temporal dependence will be necessary. The answer to the second research question will shed light on whether certain patterns of change are better predicted in the presence of various patterns of error.

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