Virtual memory window for application-specific reconfigurable coprocessors Reconfigurable Systems-on-Chip (SoCs) on the market consist of full-fledged processors and large Field-Programmable Gate-Arrays (FPGAs). The latter can be used to implement the system glue logic, various peripherals, and applicationspecific coprocessors. Using FPGAs for application-specific coprocessors has certain speedup potentials, but it is less present in practice because of the complexity of interfacing the software application with the coprocessor. Another obstacle is the lack of portability across different systems. In this work, we present a virtualisation layer consisting of an operating-system extension and a hardware component. It lowers the complexity of interfacing and increases portability potentials, while it also allows the coprocessor to access the user virtual memory through a virtual memory window. The burden of moving data between processor and coprocessor is shifted from the programmer to the operating system. Since the virtualisation layer components hide physical details of the system, user designed hardware and software become perfectly portable. A reconfigurable SoC running Linux is used to prove the viability of the concept. Two applications are ported to the system for testing the approach, with their critical functions mapped to the specific coprocessors. We show a significant speedup compared to the software versions, while limited penalty is paid for virtualisation. Reconfigurable arrays might increase their relevance in future deep sub-micron technologies. This is due to increasing mask costs and the consequent need of designing in-dividual Application-Specific Integrated Circuits (ASICs) as adaptations of generic platforms. However, in the foreseeable future, FPGAs will not be able to show speed or area efficiency comparable to general processors implemented in ASICs. Therefore, the bulk of computation in future highperformance SoCs will have to be performed by blending the two paradigms-standard processors augmented with reconfigurable application-specific parts [6, 7, 15] . Major vendors of reconfigurable devices now offer systems consisting of processor cores surrounded by peripherals, on-chip memories, and large amounts of reconfigurable logic [1, 17] which may include special features such as embedded memories and arithmetic blocks suited for signal processing (e.g., Stratix family [1] ).. While partitioning applications (between hardware and software) for such devices, designers need to interface the application-specific coprocessor and account for different architectural details-bus hierarchies and protocols, shared and/or multi-ported memories, I/O ports, etc. For instance, programmers should be aware of the availability and size of shared memory accessible by the processor and FPGA; if such memory is smaller than a dataset to be processed, the dataset needs to be partitioned and partition transfers scheduled. Unpredictable memory accesses (e.g., processing objects on the heap) significantly complicate this conceptually easy task. Besides the design complexity, changing a host platform requires heavily redesigning both the software and hardware parts.. We introduce a shallow platform-specific hardware and an Operating System (OS) module that reduce the burden of software programmers and hardware designers. With them, coprocessors can access the user virtual memory through a virtual memory window. User applications and coprocessors become fully platform independent with only a limited penalty. Our contribution reduces the complexity of the programming and hardware-design paradigms and improves the portability of applications for reconfigurable platforms.. This paper is organised as follows: We specify in more detail our goals in Section 2 and introduce our basic idea. In Section 3 we show how such idea can be implemented in practice. The experimental setup used to demonstrate our system and the corresponding results are presented in Section 4. In Section 5 we discuss similarities and complementarities of our work with other memory, interface, and reconfigurable-hardware virtualisation issues. Finally, conclusions are drawn in Section 6. In this paper we add a Virtual Memory Window for virtual memory accesses to a reconfigurable computing platform. It provides a straightforward programming paradigm and makes reconfigurable applications completely portable.. The idea is not to improve the performance of the reconfigurable system; as in most related computer architecture ideas such as virtual memory management, the goal is to pay a minimal performance tag for the ease of programming and portability advantages. To quantify the overall benefits, we have tested the approach on a real system equipped with an operating system; we ran a simple multimedia application and a complex cryptographic algorithm, both enhanced with application-specific coprocessors of different complexity. The overhead incurred due to the presence of the virtualisation layer is generally limited, but we are aiming to reduce it further. In both cases the coprocessors achieve a significant speedup compared to software-only execution, with minimal changes in the application code.. We believe that this first step is a key issue for the future of reconfigurable computing. It helps bringing reconfigurable hardware up to the programming paradigm of general computing-a goal which can be most easily achieved by involving the OS. After lowering the overhead of the translation process, research should address the development of efficient allocation algorithms in the OS. The goal is to expose almost completely the inherent speed-up achievable by specialised hardware execution without the inherent complexity of dealing with the details of the physical components. Memory abstraction and communication interfaces definition are active field of research, motivated by IP-reuse and component-based system design. Many standardisation efforts are made in order to facilitate IP interconnectione.g., standardised buses [2] . Another industry standard [12] provides a bus abstraction which makes the details of the underlying interface transparent to the designer. Some authors show ways of automatically generating memory wrappers and interfacing IP designs [5] . In [10] , an interfacing layer is presented to automate the connection of IP designs to a wide variety of interface architectures. The main originality of our idea, with respect to these works, is not in the standardisation and abstraction of the memory interface details (signals, protocols, etc.) between generic producers and consumers, but in the dynamic allocation of the interfacing memory, buffer, or communication ports between a proces-sor and a coprocessor-that is in the implication of the OS in the process.. Similarly, extensive literature exists on the design and allocation of application-specific memory systems, typically for ASIC design (e.g., [3, 14] ). Mostly, these are compilerbased static techniques consisting in software transformations to exploit better a given memory hierarchy, and in design methodologies for customising the ASIC memory hierarchy itself for specific applications. The former techniques can be used proficiently to enhance the design of coprocessor such as those addressed here, but are rather independent from the actual interface details we handle. On the other hand, a few works have a dynamic flavour and could therefore be used to improve the interface memory allocatorthey are fully complementary to the present techniques [11] . In the area of memory systems for reconfigurable systems, works such as [9] study the generation of optimal access patterns for coprocessors within SoC architectures; the focus is not in portability and abstraction from architectural details, as in this paper. Although we only use simple access patterns for validation, any access pattern could be used in conjunction with the WMU. In this way, their address generation techniques are complementary to our work.. Closer to our concerns is a different form of hardware virtualisation which has received some attention recently. With motivations similar to ours, researchers have considered the OS support required for managing the reconfigurable lattice across tasks [16] -the purpose is to screen the user from the problems introduced by the finite amount of available reconfigurable logic. Similarly, reconfigurable hardware virtualisation is addressed in [4] , where an architecture is introduced to have the OS sharing dynamically the reconfigurable logic between applications. The resource is virtualised and hardware support is developed in order to support the mapping between the virtual and the physical resource. The type of virtualisation we introduce addresses the processor/lattice interfacing rather than the reconfigurable lattice itself; the two problems are therefore orthogonal and complementary-future system may have to implement solutions for both. Finally, in [13] , an OS for reconfigurable platforms is proposed that suggests a task communication scheme based on message passing. It exposes the communication to the programmer and it differs from our approach.

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


Filtered backprojection algorithm can outperform iterative maximum likelihood expectation-maximization algorithm The iterative maximum-likelihood expectation-maximization (ML-EM) algorithm is an excellent algorithm for image reconstruction and usually provides better images than the filtered backprojection (FBP) algorithm. However, a windowed FBP algorithm can outperform the ML-EM in certain occasions, when the least-squared difference from the true image, that is, the least-squared error (LSE), is used as the comparison criterion. Computer simulations were carried out for the two algorithms. For a given data set the best reconstruction (compared to the true image) from each algorithm was first obtained, and the two reconstructions are compared. The stopping iteration number of the ML-EM algorithm and the parameters of the windowed FBP algorithm were determined, so that they produced an image that was closest to the true image. However, to use the LSE criterion to compare algorithms, one must know the true image. How to select the optimal parameters when the true image is unknown is a practical open problem. For noisy Poisson projections, computer simulation results indicate that the ML-EM images are better than the regular FBP images, and the windowed FBP algorithm images are better than the ML-EM images. For the noiseless projections, the FBP algorithms outperform the ML-EM algorithm. The computer simulations reveal that the windowed FBP algorithm can provide a reconstruction that is closer to the true image than the ML-EM algorithm. The iterative maximum-likelihood expectation-maximization (ML-EM) algorithm (or its ordered-subset version) is the most widely used iterative image reconstruction algorithm in nuclear medicine (Shepp and Vardi, 1982) . Many studies have been carried out to compare the ML-EM algorithm with the analytical filtered backprojection (FBP) algorithm (Wilson and Tsui, 1993; Prvulovich et al., 1997; Wang et al., 1998; Gutman et al., 2003) . Except for some parametric imaging studies, the ML-EM algorithm output is usually considered to be better than the FBP algorithm's output (Carson et al., 1994; Oda et al., 2001 ). However, image evaluation and comparison is always task based, and there is not a universal criterion. Using one criterion, algorithm A can be better than algorithm B. While using another criterion, algorithm B can be better and algorithm A. If the task is lesion detection, an algorithm that can provide a smooth background and a high-contrast lesion wins (Tourassi et al., 1991) . Some tasks rely on the image variance and bias tradeoff (Xu et al., 1993) , or resolution and signal-to-noise trade-off.. The FBP algorithm's performance depends on the selection of the window function that is used to regulate the ramp filter. A new window function is suggested in this article, and the motivation for the design of the window function is presented in the Appendix.. If we adopt the criterion that the best image is the one closest to the true image in the sense of the pixel-by-pixel least-squared-error (LSE), then the proposed windowed FBP algorithm can outperform the ML-EM algorithm. The windowed FBP algorithm may not work well in a lesion detection task; but it may find application in quantitative image reconstruction, which is important in, for example, kinetic parameter estimation in dynamic studies.. As the true image must be known to use this criterion, only computer simulations are performed in this article. It is impractical to use real data for the comparison studies, because the true image is unknown. In Table I , the optimal ML-EM images and the optimal windowed FBP images are compared.. By optimal we mean that the images reach the least squared difference from the true image or LSE. The LSE listed in Table I is the average over 100 noise realizations. In Table I , if the ratio LSE(FBP)/LSE(ML) is less than 1, then the FBP image has a smaller LSE than the ML-EM image. Table I shows consistently that FBP images are superior to ML-EM images for different noise levels. However, we do not have a mathematical proof that for any projection data set, a set of parameters k and g may always be determined, such that their associated FBP algorithm will outperform the ML-EM algorithm. One cannot draw definite conclusions just from examples. In other words, we still cannot say that the windowed FBP algorithm is always better than the ML-EM algorithm. Figure 1 shows some examples of the frequency-domain window functions that have been used in the computer simulations reported in Table I . The trend of the window function appears to be to suppress the high-frequency components more and more as the projection data noise gets larger (i.e., the counts become lower). It seems that every noise level corresponds to an optimal shape of the window function, but we have not yet established a mathematical relation between them.. Finally, Table II presents the same comparison results as in Table I, except that the windowed FBP algorithm is replaced by the regular FBP algorithm, which in fact, uses the rectangular window function (Ramachandran and Lakshminarayanan, 1971) . When using very-noisy Poisson projections, the ML-EM images outperform the regular FBP images. Tables I and II imply that optimization of the window function parameters does make a difference.

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


Robot task planning and explanation in open and uncertain worlds A long-standing goal of AI is to enable robots to plan in the face of uncertain and incomplete information, and to handle task failure intelligently. This paper shows how to achieve this. There are two central ideas. The first idea is to organize the robot's knowledge into three layers: instance knowledge at the bottom, commonsense knowledge above that, and diagnostic knowledge on top. Knowledge in a layer above can be used to modify knowledge in the layer(s) below. The second idea is that the robot should represent not just how its actions change the world, but also what it knows or believes. There are two types of knowledge effects the robot's actions can have: epistemic effects (I believe X because I saw it) and assumptions (I'll assume X to be true). By combining the knowledge layers with the models of knowledge effects, we can simultaneously solve several problems in robotics: (i) task planning and execution under uncertainty; (ii) task planning and execution in open worlds; (iii) explaining task failure; (iv) verifying those explanations. The paper describes how the ideas are implemented in a three-layer architecture on a mobile robot platform. The robot implementation was evaluated in five different experiments on object search, mapping, and room categorization. A long-standing challenge robotics poses for AI is how to act in uncertain and unfamiliar environments. As an example, imagine a robot that is switched on in an unfamiliar building, without a map, and given the task of finding a particular object. Questions that roboticists must answer include the following: How should the robot integrate different kinds of information, such as commonsense knowledge and sensory input? How can the robot plan in the face of uncertain knowledge? How can the robot plan to achieve the task when it does not know about all the required objects and places? How can the robot deal with task failure intelligently? This paper gives answers to all these problems, using two core ideas. The first idea is to organize knowledge into three levels, such that knowledge in a higher level enables reasoning about knowledge at lower levels. The second idea is to give the robot models of the effects of its actions on what it knows. One class of knowledge-modifying actions is assumptive actions. We show how planning with assumptions, combined with layered knowledge, solves several problems Fig. 1. (Left) The instance-default-diagnostic (IDD) knowledge schema, showing action models (yellow), general knowledge (cream), instance knowledge about the current state (brown), and predicted state (blue). (Right) Example state information in the concrete instantiation of the IDD schema used in this paper. The blue box represents possible instance knowledge assumed to be true by the planner in order to achieve the robot's goal (find a magazine). The right panel summarizes the robot's belief state at the start of the running example (see Fig. 3 ). (For interpretation of the references to colour in this figure legend, the reader is referred to the web version of this article.) in AI for robotics: (i) planning and acting under uncertainty, (ii) planning and acting in open worlds, (iii) explaining task failure, and (iv) verifying explanations. In this section, the robot implementation is described. We start with the architecture, and follow with brief descriptions of the components for localization and mapping, place categorization, navigation, object search, person search, dialogue, and the sourcing of default knowledge.

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


eStorys: A visual storyboard system supporting back-channel communication for emergencies In this paper we present a new web mashup system for helping people and profes sionals to retrieve information about emergencies and disasters. Today, the use of the web during emergencies, is confirmed by the employment of systems like Flickr, Twitter or Facebook as demonstrated in the cases of Hurricane Katrina, the July 7, 2005 London bombings, and the April 16, 2007 shootings at Virginia Polytechnic University. Many pieces of information are currently available on the web that can be useful for emergency purposes and range from messages on forums and blogs to georeferenced photos. We present here a system that, by mixing information available on the web, is able to help both people and emergency professionals in rapidly obtaining data on emergency situations by using multiple web channels. In this paper we introduce a visual system, providing a combination of tools that demonstrated to be effective in such emergency situations, such as spatio/temporal search features, recommendation and filtering tools, and storyboards. We demonstrated the efficacy of our system by means of an analytic evaluation (comparing it with others available on the web), an usability evaluation made by expert users (students adequately trained) and an experimental evaluation with 34 participants. Hazards and disasters happen. Think of terrorist attacks such as the 9/11 (the suicide attacks by al Qaeda on the United States Twin Towers) or the equally sadly known train bombing at the Atocha station in Madrid (11 March 2004) in which hundreds of people lost their lives or were wounded. Natural disasters such as wildfires, hurricanes, tornadoes or tsunamis destroy everything they encounter and leave people without resources and completely overwhelmed. Emergency management aims at such large scale events.. The multitude of natural and human made disasters we have to face in modern society provides more than enough reasons to justify the governments' efforts for the introduction of agencies addressing emergency situations. However, emergency management planning is not solely a governmental responsibility, but a community activity [27] . At the beginning, every emergency situation, regard less of its entity and extension, is a local event, and local actors firstly deal with the disaster. Palen et al. [25] stated that most of the time ordinary people, for example single or organized in volunteer groups, providing help during a crisis situation by performing useful activities such as rescue people in their houses, communicate and report to authorities, etc. Non governmental public's participation in disaster management demonstrates how significant is the work performed even outside the official response efforts [12, 30, 11] .. During or immediately after an emergency there is a huge number of social interactions taking place: people communicating the emergency status with others, damages evaluation, information request about relatives, and so on. With the advent of Internet and of social network services [10] , non official back channel commu nications [29] became widespread since people are taking advantage of the existing communication technologies by organizing life saving activities among each other, inde pendently, or in parallel with, official national emergency management channels. We refer to [29] for the definition of back channel as an unofficial communication channel between various entities used to supplement official channels.. The growing presence of communications technology, new media and digital devices, in fact, is making public participation more tangible during emergencies. As an example, the proliferation of photo capture devices, such as digital cameras or mobile phones with an integrated camera, has enabled grassroots journalism [13] , allowing first responders and people present to visually document a disaster situation as it is happening. A clear example as been described in [23] , where the case of 2005 London bombings is presented together with the use of Flickr, 1 a photo sharing web service, for creating groups on bomb ings topics (such as the London Bomb Blast Community). These groups shared pictures on the London bombings asking users for posting all the personal photos they had on the bombing sites before and after the accident, in order to inform the world. Moreover, web services like Flickr, permitting users to store, share and retrieve pictor ial content, inspire new forms of communications and self organization during disaster response by viewing the photo sharing activity as a form of social media. During crisis management activities a huge amount of data from heterogeneous sources is generated: pictorial and video feeds, news reports, e mail and text messaging. Most of this data expose geospatial information (i.e. associated metadata) or implicit location references (i.e. the name of a place in a news report). In such a scenario, geocollaboration bears on people working together to solve a geospatial problem taking into account georeferenced data, as described in [27] . So, geography plays an important role in emergency management and a visual representation makes this information tangible and useful.. We present here a novel collaborative mapping mashup, enabling users to visualize, edit and share georeferenced media content, according to spatial temporal features. We refer to the mashup as a web application, combining data and services from different existing systems, into a single integrated tool. Our mashup application gathers pictures (and associated metadata like keywords and tags added by users) from the Flickr online database and employs location metadata to place them on a map. Temporal metadata are considered, providing an interface for efficiently browse large user contributed georeferenced media collections. Despite the existence of different map based photo brows ing online services, to our knowledge, our contribution represents a first effort in combining storyboards with the spatial and temporal dimensions for media retrieval and browsing in such mashup applications. Our main goal is to use the explicitly disclosed location metadata (latitude and longitude) as well as the temporal one (i.e. at what time a photo was taken) to enable users to quickly retrieve photos of a certain place over a certain temporal interval (one day, one week or one month). Moreover, we believe that temporal information in conjunction with locations can be valuable in enhancing geocollaboration. The use of spatio temporal dimensions has been combined with tools enabling the combination of such dimensions. We identified four dimen sions and designed the corresponding tools, for managing these media collections available on the web. These four dimensions are spatial (latitude and longitude), temporal (date and temporal intervals), social (recommendation and collaborative filtering) and situational (storyboards). We show here a collaborative storyboard authoring tool, allowing the user to easily generate and share spatial and temporal photos' sequences exploiting the drag and drop of selected images. Lastly, our application supports social navigation, in the sense that users' past interactions with the system are employed as recommendations, impacting on the way the information is presented during other users' interactions.. The key contribution of our work is to show how current web social media, technologies and services, together with the presence of a huge amount of georeferenced materials over the web, can be easily and successfully exploited to create new geocollaboration tools enabling back channel communications during disaster situations. In the next sections we will describe the preliminary studies we made, the system we developed and the experimental evaluation we conducted. In particular in Section 2, we review litera ture and systems comparable to our approach. In the successive Section 3, we describe the system we present here and the designing choices together with implementa tion. Experiment results are reported in Section 4, where we conducted three different evaluations: one analytic, one heuristic evaluation with experts and one experimental evaluation with 34 participants. Section 5 is about discus sions and conclusions on our research, while Appendices A and B present the evaluation tool (questionnaire design and final implementation). In this paper we presented a mashup system for helping people and professionals to cope with emergencies. Table 3 Average scores on questions from Q4 to Q12. Questions with a ( n ) mean that the question was posed negatively but has been inverted in the graph for a homogeneous overview. In fact, for ( n ) questions: 4 and 5 were positive values, 3 neutral and 1 and 2 negative. Therefore only the mean of Q6 tends to a negative result. The system is developed by using the web mashup techni que but, compared with other systems, it provides specia lized tools such as the spatio/temporal search feature, the recommendation and filtering tool and the storyboarding. Many social networks have been used during different types of emergencies like the Virginia Tech shooting or London bombings but they were general purpose like Facebook or Flickr; nevertheless, these systems resulted very helpful both during the emergency for keeping people in touch or update on the status of the emergency, and immediately after for recollecting data or tracing the events and com munications occurred during the emergency phase. Our system has been compared to others which includes similar information but lack of organization and tools helpful in such critical situations. We identified four dimensions: spatial, temporal, collaborative and situational that are common to mashup systems for emergencies. We categor ized the systems explored in the literature with these four dimensions and highlighted the characteristics and the limitations of each. We used the four dimensions to design our system for being as effective as possible being a georeferenced mashup system for back channels commu nications (based on images) for emergency situations. We evaluated our system by performing three different evalua tions: analytical, based on heuristic and experimental eva luation. From the evaluations, we found that users liked the interface, the information organization, and the system tutorial. Moreover, the system resulted easy to use and with good functionalities integration. This last characteristic is very good being our system a mashup and thus an integration of different sources of information and systems (google maps, flickr, and so on). On the other hand, users criticise the aesthetic of the interface which could be enhanced with their suggestions and the system resulted partially instable when tested on different browsers (this can be due to the peculiarities of the technologies which are always not completely standard when rendered in different browsers). The evaluation clearly shows the potential of our system and the efficacy in the presented scenarios. Further more, we think that our system is helpful both for people involved in an emergency (for retrieving information about relatives, for obtaining visual information about the status of an house or building, etc.) and for emergency profes sionals (a storyboard can be edited representing the photos indicating the status before, during and after an emergency, photos available before the emergency could be used to coordinate aids on site, etc.). Apart from improving the system according to users' evaluations, we are currently implementing new features to include in the mashup visualization additional information, such as 3D mappings produced by GoogleEarth 22 augmented by carving Flickr photos onto the terrain space. Keywords or tags clustering is one of the features that could be of great help in our system as they can be considered a further dimension in the search for information [4] . We are also developing new tools for filtering photos of particular objects of interest like build ings, hospitals, and so on, as elements of interest for an emergency or disaster scenario joining image processing features with tags clustering. Finally, we are considering of integrating other media sources like text and videos taken from other social networks. Table 6 Summary of experimental results.. Positive Users liked the interface and the information organization as well as the tutorial. The completion of proposed tasks was good. The system resulted easy to use. Good functionalities integration. Negative System stability (occasionally behaves in an unexpected ways). a Task 2 seemed difficult to complete.. a All but easy of completion of Task 2 (Q16). 22 earth.google.com In this section we describe the literature and the research we conducted on existing systems and approaches in two main aspects related to our system: back channel communications (in the emergency systems domain) and geospatial Web paradigm together with mapping mashups. Furthermore, we present a classification of existing and reviewed mashup systems based on a set of design dimensions we identified by carefully reviewing the corre spondent literature. We restricted our classification to map based mashup systems. We think that there are many media contents available on the web through different social networks which are not integrated to provide users with an overall view of georeferenced information during emergency situations. Georeferenced information during such emergencies is crucial for a rapid understanding of emergency status, recovery plans, providing local informa tion about damages, etc. Since georeferenced data are complex and require integration of different contents on a map specific tools are required to manage such data as stated in [32] . For the above reasons we focused on mashup systems based on maps providing tools for search and navigate information placed on maps.

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


Using evolutionary algorithms and dynamic programming to solve uncertain multi-criteria optimization problems with application to lifetime management for military platforms Microelectronics are typically critical components in a military platform, some of which may become obsolete, before the equipment life cycle end. Obsolete components may be required for a number of reasons. Components can become obsolete even before production of a platform commences. The selection of solutions for resolving obsolete components throughout a platform can be considered as a multi-criteria optimization problem where the aim is to select the most cost effective solutions for resolving a portfolio of obsolescence arisings. In this paper we consider the case where the criteria with which the options are evaluated are not point values, but probability distributions generated by a Bayesian Belief Network. We propose the use of an evaluation technique called measures of effectiveness (MOE), that can capture and use the probabilistic information associated with potential solutions. This is used with two candidate optimization techniques, Dynamic Programming (DP) and Evolutionary Algorithms (EAs), to identify cost effective solutions for resolving obsolescent components throughout a platform. Both optimization techniques were able to identify a number of solutions at different cost and MOE levels; the solutions that form the DP Pareto front dominate very slightly in places those that form the EA Pareto front. Microelectronics are typically critical components in a military platform, some of which may become obsolete, before the equipment life cycle end. Obsolete components may be required for a number of reasons. Components can become obsolete even before production of a platform commences. This problem has been recognized by the defence industry for some time.. The production of a set of solutions to a portfolio of obsolete microelectronics components across the whole of a complex system or platform can be considered as a multi-criteria optimization problem. Each obsolete component will have a number of options that may be used to resolve the Obsolescence Arising (OA), such as a Last Time Buy of components, or a redesign of the circuit boards containing the obsolete component. Each option for resolving an obsolete component will have a number of criteria (such as acquisition costs, reliability, system availability, time to implement) associated with it that may be used to evaluate the costeffectiveness of that option. The problem is a complex one and requires sophisticated optimization techniques that can be used to maximize the beneficial criteria and minimize the costs across all of the options selected. These are not likely to be wholly complimentary and so a trade-off of the costs against the benefits may be required. Techniques for evaluating a particular option, in the multi-criteria domain, will typically split the criteria into 'costs' and 'benefits', and then aggregate the values for these criteria into a single cost and a single benefit value. Typically the decision process needs to weight the criteria according to their relative importance, and the aggregation consists of a weighted sum of the criteria values. Such problems are referred to as multi-objective as there is more than one objective function to optimize against. The Pareto optimal set is a set of solutions each of which are not dominated by the others in terms of all criteria. Thus the optimal solution in multi-objective problems is to produce the Pareto optimal set. These are presented to a decision maker to make the final choice that provides a desirable trade-off. The traditional optimization technique Dynamic Programming (DP) [1] can be used to obtain a Pareto optimal set of solutions for a two (conflicting) criteria problem by choosing options that maximize benefits for a number of increasing cost bands. Evolutionary Algorithms (EAs) are particularly suitable in the solution of multi-objective optimization problems, as at each iteration they maintain a population of potential solutions and hence can be used to find multiple trade-off solutions [2] . EAs can be used to obtain solutions to true multi-objective optimization problems where each of the individual cost and benefit criteria are kept separate. The problem considered here, however, is further complicated through the presence of uncertain criteria values. This paper describes the use of MOE in combination with DP and EA in order to identify potential solutions for resolving a portfolio of obsolescence arisings for military platforms. MOEs offer a practical method for the evaluation of options using probabilistic criteria values. In initial experiments using a hypothetical scenario, DP produced solutions that dominated those produced by the EA in terms of cost and MOE value. However, DP may not scale well as the problem size increases, as it is a computationally intensive technique. In this case, EAs could provide good, but not necessarily optimal, solutions in a reasonable time. This will require further investigation. The optimization tool is currently being incorporated into a tool for managing uncertainty in microelectronics obsolescence to be tested by potential users in order to ensure the desired functionality is achieved and that the proposed techniques scale well. This will involve testing the tool with real scenarios.

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


Net-based force-directed macrocell placement for wirelength optimization Index Terms-Force-directed method, macrocell placement, net clustering, net length minimization, soft macrocells. In this work, a net-clustering based macrocell placement has been proposed. The novelty of the approach lies in the new net model and the cluster information to derive a rough floorplan. The floorplan further helps in placing the terminals of nets so that net lengths are optimized. The cell placement is derived from such a "net placement" information.. The significant wire length reductions across the benchmark set (with reasonable area penalty) may be attributed to the following factors. 1) Clustering of interdependent nets and floorplanning which give a very good starting point for the force-directed net terminal placement and subsequent macrocell placement. 2) Pin-level force formulation is very effective in optimizing the net lengths.. 3) The possibility for cells to "jump" out of local minima. 4) The bipartite minimum weight matching is effective in reducing the nets involving I/O pins. 5) User prioritization of nets can help optimize the nets on the critical path of the design and hence the overall chip delay characteristics.

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


A fuzzy-set approach to treat determinacy and consistency of linguistic terms in multi-criteria decision making A fuzzy-set-based approach is presented to describe linguistic information in multi-criteria decision making. After having introduced concepts of determinacy and consistency of linguistic terms, the understandable degree and consistence degree of linguistic terms are illustrated by these two concepts. A case study is demonstrated for the proposed decision-making model with an analytical conclusion of both advantages and disadvantages. When we work with uncertain information, we cannot estimate it with an exact numerical value but with natural languages [6] . Experience told us that sometimes we must make a decision in an environment with a great deal of uncertain information. Hence, a realistic strategy is to describe uncertain information by natural languages. So, linguistic approaches have been so far widely studied and applied to information retrieval [2] , clinical diagnosis [27] , risk evaluation in software development [22] , education evaluation [21] , environment sciences [9] , manufacturing systems [19] , especially on decision making [10] [11] [12] [13] [14] [15] 26, [30] [31] [32] 38, 39] .. A multi-criteria decision-making problem or group decision-making problem can be seen as a trade-off among a set of alternatives according to several given evaluation factors, in which (1) there are two or more consultancy experts, each of them evaluates the alternatives by their own perception, attitude, and expertise; (2) the decision-maker makes the selection according to the collected comments from the consultancy experts [6] . Since the information provided by the consultancy experts is often in the form of natural languages, two related issues have gained considerable attention in linguistic approach for decision-making problems, i.e., (1) how to describe and handle linguistic information and (2) how to fusion linguistic information.. Fuzzy sets and linguistic variables [35] [36] [37] are widely used in describing linguistic information because they can efficiently represent the gradually changing of people's recognition of an object or a concept. Hence, fuzzy-sets based linguistic approaches have drawn considerable attention and have been used in ''supply chain management [4, 3] '', ''information aggregation [1, [30] [31] [32] '', ''data warehouse system selection [23] '', ''investments evaluation [5] '', and other application fields.. Except for the aforementioned fuzzy-sets based methods, we noticed that Ho [16] [17] [18] presented the hedge algebra to describe linguistic information and linguistic modifiers. However, due to the lack of efficient process mechanism for inference and computation, it is difficult to apply the hedge algebra directly to develop processing systems. To describe the hierarchical structure of uncertainties, Xu [29] proposed the lattice implication algebra by combining lattice and implication algebra and established the lattice-valued logic by taking lattice implication algebra as a truth-value field. Because the lattice-valued logic can describe incomparable information, it is a potential alternative tool to treat linguistic information.. Roughly speaking, two kinds of techniques, namely, numeric and symbolic approaches, are widely used in integrating linguistic information [10] . In the numeric approach, each linguistic term is represented by a number (or a fuzzy number), and all numbers must be placed symmetrically in totally order. The process is based on the algorithms for those numbers, such as arithmetic operations. Numeric approaches can propose effective computation mechanism and be programmed in computer easily. But, its requirements on all linguistic terms that they must be placed symmetrically and ordered in total-order do not accord with people's experience. Moreover, the linguistic representation of final decision is obtained by selecting the one according to a certain distance, such as the closeness of fuzzy sets. Obviously, numerical approaches over rely on the computation and omit the formal inference in the people's decision-making process. In the symbolic approach, each linguistic term is attached to a numeric index and the real processing is based on the operation on those indexes. Hence, such a symbolic approach is also computation-based numeric approach in a sense.. We can also find that in most existing linguistic approaches for decision making, consultancy experts have no other choice but use the linguistic terms given by the decisionmaker. Although using the predefined linguistic terms will facilitate the decision-maker to process linguistic information, it badly restricts consultancy experts to present their opinions freely. On the other hand, it is common in most existing linguistic approaches that consultancy experts use only one linguistic term to represent their comment on an alternative. Obviously, the used one linguistic term cannot exactly reflect the expert's opinion, because (1) it is selected from the predefined linguistic term set, which may not coincident with the expert's preference; and (2) it may be the result of balancing among several ones. Hence, the collected comments from consultancy experts will be attached with factitious uncertainties.. In our view, to reduce such factitious uncertainties, experts should be allowed to use various linguistic representations or at least be allowed to use more than one linguistic term. Naturally, two questions arise: (1) how to judge the information consistency in several linguistic terms obtained from an expert; and (2) how to process those linguistic terms. In this paper, we introduce the concepts of determinacy and consistency of linguistic terms to resolve these two problems. We shall use them in a typical multi-criteria decisionmaking problem and discuss a model for dealing with linguistic terms directly. In this model, all experts can select linguistic terms they prefer to use and there is no requirement on all linguistic terms that they must be placed symmetrically in totally order. Concretely, the rest of the paper is organized as follows: in Section 2, we introduce some basic concepts in fuzzy sets; in Section 3, we discuss concepts of determinacy, consistency of linguistic terms on the basis of normal triangular fuzzy sets; in Sections 4 and 5, we illustrate how to handle linguistic comments by the determinacy and consistency through a typical decision-making problem; in Section 6, we discuss both advantages and disadvantages of the model and further work on this topic. In this section, we introduce the determinacy and consistency of linguistic terms to a typical multi-criteria decision-making problem. In this model, our discussion is based the following assumptions:. (1) Linguistic terms can be presented by convex, normal and integrable fuzzy sets. (2) Experts can select preferred linguistic terms to evaluate alternatives. Without loss of generality, let Q be a decision-making problem, A = {a 1 , a 2 , . . . , a n } the set of alternatives, E = {e 1 , e 2 , . . . , e m } the set of consultancy experts, and T k ¼ ft k;1 ; t k;2 ; . . . ; t k;l k g the set of linguistic terms of which the consultancy expert e k selected for the question Q, k = 1,2,. . . , m.. The present model includes the following steps:. Step 1: Experts evaluating: experts select linguistic terms, define corresponding fuzzy sets, and evaluate each alternative.. Step 2: Synthesizing individual expert's comments: the decision maker synthesizes each expert's comment for each alternative.. Step 3: Synthesizing group experts' comments: the decision maker synthesizes all experts' comment for each alternative.. Step 4: Making decision: the decision maker forms the final decision according to synthesized group experts' comment for each alternative. In this paper, we introduced the determinacy and consistency of linguistic terms to multi-criteria decision-making problems and presented a fuzzy-set based model to deal with linguistic information. This model has the following advantages:. (1) It permits consultancy experts to select linguistic terms for presenting their opinions by their preference. It is not demanded that all consultancy experts must use the same linguistic terms. (2) It does not require all linguistic terms to be placed symmetrically and to have totally order. So consultancy experts and decision makers have more independent right to present their opinions. (3) It treats each linguistic term as a whole and only concerns on the determinacy and consistency of them. This strategy makes it more flexible to freely assign a fuzzy set to a linguistic term according to the context of real problems.. However, due to the complexity of human natural languages, there are still some unsolved problems in the presented model, such as, (1) how to deal with linguistic terms directly? (2) how to deal with incomparability among linguistic terms? and (3) how to define related weighted vectors?. Because the classical logic is an alternative tool to human reasoning with certainty information, non-classical logics including many-valued logic, fuzzy logic, lattice-valued logic and so on will play the crucial role in the study of uncertainty reasoning. Researches and practices have proved this [7, 8, 28] . In the view of the authors, making decision is a kind of uncertainty reasoning. So, it is rational to deal with decision-making problems on the basis of non-classical logics as complementary to traditional methods.

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


Structured Sparsity and Generalization We present a data dependent generalization bound for a large class of regularized algorithms which implement structured sparsity constraints. The bound can be applied to standard squared-norm regularization, the Lasso, the group Lasso, some versions of the group Lasso with overlapping groups, multiple kernel learning and other regularization schemes. In all these cases competitive results are obtained. A novel feature of our bound is that it can be applied in an infinite dimensional setting such as the Lasso in a separable Hilbert space or multiple kernel learning with a countable number of kernels. We study a class of regularization methods used to learn a linear function from a finite set of examples. The regularizer is expressed as an infimum convolution which involves a set M of linear transformations (see equation (1) below). As we shall see, this regularizer generalizes, depending on the choice of the set M, the regularizers used by several learning algorithms, such as ridge regression, the Lasso, the group Lasso [22] , multiple kernel learning [10] , the group Lasso with overlap [6] , and the regularizers in [16] .. We give a bound on the Rademacher average of the linear function class associated with this regularizer. The result matches existing bounds in the above mentioned cases but also admits a novel, dimension free interpretation. In particular, the bound applies to the Lasso in ℓ 2 or to multiple kernel learning with a countable number of kernels, under certain finite second-moment conditions. Let H be a real Hilbert space with inner product ·, · and induced norm · . Let M be a finite or countably infinite set of symmetric bounded linear operators on H such that for every x ∈ H, x = 0, there is some linear operator M ∈ M with M x = 0 and that sup M∈M |||M ||| < ∞, where ||| · ||| is the operator norm. Define the function · M : H → R + ∪ {∞} by. It is shown in Section 3.2 that the chosen notation is justified, because · M is indeed a norm on the subspace of H where it is finite, and the dual norm is, for every z ∈ H, given by. The somewhat complicated definition of · M is contrasted by the simple form of the dual norm.. Using well known techniques, as described in [9] and [2] , our study of generalization reduces to the search for a good bound on the empirical Rademacher complexity of a set of linear functionals with · M -bounded weight vectors. where x = (x 1 , . . . , x n ) ∈ H n is a sample vector representing observations, and ǫ 1 , . . . , ǫ n are Rademacher variables, mutually independent and each uniformly distributed on {−1, 1}. 1 . Given a bound on R M (x) we obtain uniform bounds on the estimation error, for example using the following standard result (adapted from [2] ), where the Lipschitz function φ is to be interpreted as a loss function.. Theorem 1 Let X = (X 1 , . . . , X n ) be a vector of iid random variables with values in H, let X be iid to X 1 , let φ : R → [0, 1] have Lipschitz constant L and δ ∈ (0, 1). Then with probability at least 1 − δ in the draw of X it holds, for every. A similar (slightly better) bound is obtained if R M (X) is replaced by its expectation R M = ER M (X) (see [2] ).. The following is the main result of this paper and leads to consistency proofs and finite sample generalization guarantees for all algorithms which use a regularizer of the form (1). A proof is given in Section 3.3.. Theorem 2 Let x = (x 1 , . . . , x n ) ∈ H n and R M (x) be defined as in (2) . Then. The second inequality follows from the first, the inequality. (a fact which will be tacitly used in the sequel) and the observation that every summand in the logarithm appearing in the first inequality is bounded by 1.. Of course the second inequality is relevant only if M is finite. In this case we can draw the following conclusion: If we have an a priori bound on X M * for some data distribution, say X M * ≤ C, and X = (X 1 , . . . , X n ), with X i iid to X, then. thus passing from a data-dependent to a distribution dependent bound. In Section 2 we show that this recovers existing results for many regularization schemes. But the first bound in Theorem 2 can be considerably smaller than the second and may be finite even if M is infinite. This gives rise to some appearantly novel features, even in the well studied case of the Lasso, when there is a (finite but potentially large) ℓ 2 -bound on the data. We have presented a bound on the Rademacher average for linear function classes described by infimum convolution norms which are associated with a class of bounded linear operators on a Hilbert space. We highlighted the generality of the approach and its dimension independent features.. When the bound is applied to specific cases (ℓ 2 , ℓ 1 , mixed ℓ 1 /ℓ 2 norms) it recovers existing bounds (up to small changes in the constants). The bound is however more general and allows for the possibility to remove the "log d" factor which appears in previous bounds. Specifically, we have shown that the bound can be applied in infinite dimensional settings, provided that the moment condition (3) is satisfied. We have also applied the bound to multiple kernel learning. While in the standard case the bound is only slightly worse in the constants, the bound is potentially smaller and applies to the more general case in which there is a countable set of kernels, provided the expectation of the sum of the kernels is bounded.. An interesting question is whether the bound presented is tight. As noted in [3] the "log d" is unavoidable. This result immediately implies that our bound is also tight, since we may choose R 2 = d in equation (3) . A potential future direction of research is the application of our results in the context of sparsity oracle inequalities. In particular, it would be interesting to modify the analysis in [12] , in order to derive dimension independent bounds. Another interesting scenario is the combination of our analysis with metric entropy.

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


Interpretation as driver for psychological creativity This paper describes some acts of psychological creativity as phenomena arising from changes to a situation, brought about through interpretation. It presents a way of representing a situation as a schema of concepts made up from perceptual dimensions. It shows the utility of concepts as being changed by the situation within which they are used. An example of this is described, in which the information within a concept is unchanged yet its use becomes different through salience weighting. A computational implemented example is presented as a generate-and-interpret model that produces country growth indicators and then interprets them and repeats this process. The situation, and the space of possible designs, is changed through the act of interpretation. It is suggested that interpretation can be a driver for changing situationssomething that looks like P-creativity to an outside observer. When a designer has an idea that is both new and useful, an act of psychological creativity (P-creativity) has occurred [2] . This work suggests that an act of P-creativity can be described as a change of a designer's situation [4] . Consider the way that a designer looks at work they have just created and sees previously unobserved features [6] . For example, an architect suddenly decides that their recently sketched floor plan is 'not square enough'; an artist looks at their work and concludes that 'we could try distorting this more'; a musician suddenly decides that 'we could try syncopation here'. This kind of change to the design trajectory can be observed in designers [9] . This paper suggests one way of reproducing this class of phenomena, that constitutes an act of P-creativity, is through a change of the designer's situation brought about through interpretation.. Situated design [4, 7] holds that design activity occurs within a situation, the current 'world view' of the designer, that can be considered as a network of concepts. As design activity progresses, this situation changes. This work frames the question: how does the situation of a designer change? It provides examples to support the claim that failed expectations during interpretation can be a driver for this change of situation, from which P-creativity can be observed.. In this work we describe a way of representing situations as well as how situations can become changed through interpretation. An example is provided in a model that uses a method of generate-and-interpret. The claim made in this paper is that a change of situation appears to be like P-creativity to an external observer and that interpretation can trigger this change of situation. Two aspects of this have been demonstrated through computational implementation: (i) a generate-and-interpret model to demonstrate the way that situations can change; and (ii) the way that situations can change the use of concepts.. The work produces a link between the grounded experiences of an agent and the way in which it navigates its own knowledge during a task.

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


Simple algebraic data types for C ADT is a simple tool in the spirit of Lex and Yacc that makes algebraic data types and a restricted form of pattern matching on those data types as found in SML available in C programs. ADT adds runtime checks, which make C programs written with the aid of ADT less likely to dereference a NULL pointer. The runtime tests may consume a significant amount of CPU time; hence they can be switched off once the program is suitably debugged. Brooks [2] advocates writing support tools to avoid repetitive and error prone work. A task that we have often encountered is the construction of the Algebraic Data Types (ADTs) and associated functions needed to build and traverse a parse tree. Lex and Yacc deliver the raw parsing power, but provide little support for writing the semantic actions. Therefore, we present a simple tool called ADT, which, on the basis of a set of ADT specifications, generates C struct and function declarations that create and manipulate the corresponding concrete data structures. ADT is small and efficient, and it interworks well with Yacc. ADT is simple and effective. It does not provide the rich functionality of the tools provided in related work, but we believe this to be a strength. ADT offers four styles of pattern matching. The two styles that allow nested patterns are less efficient than the styles that allow flat patterns only. The most elegant style is also the fastest, but it does not offer nesting. The style that offers nesting with reasonable performance is the least elegant.. ADT offers a clean separation between specification of the algebraic data type and the implementation in C. Firstly, there is no need to include C code in the ADT specification. Secondly, the generated C code obeys a few simple rules, for example (1) for every algebraic data type the same family of constructor and access functions is generated, and (2) the signature a constructor function is exactly the same the signature of a summand.. ADT catches all unexpected NULL pointer dereferences.. ADT is available online from http://eprints.eemcs.utwente.nl/17771. The literature provides a large variety of tools that solve the problem at hand.. Firstly all declarative programming languages provide ADTs and pattern matching. Some object oriented languages, such as the Java derivative Pizza [10] , offer the same powerful support for ADTs and pattern matching as found in declarative languages.. Secondly, it is possible to use ADTs and pattern matching in a standard language, usually C++. For example McNamara and Smaragdakis [8] focus on the polymorphic typing issues and Läufer [7] focuses on the higher order issues. Standard C is not sufficiently powerful to support ADTs. The limits of what is possible in standard C are described by Ianello, who offers a programming discipline that achieves some of the advantages of working with ADTs [5] . The price to be paid is a severely reduced ability to type check programs.. Thirdly, there exists a large variety of tools dedicated to building abstract syntax trees for compilers. The Ast generator [4] and ASDL [14] focus on the development of intermediate representations that can be marshalled and unmarshalled in a variety of programming languages. The TTT tool [12] implements ADTs in C using runtime type checking, whereas our approach uses compile time type checking. The ApiGen tool [13] implements abstract syntax trees in Java, focusing on maximal sub-term sharing. By contrast, our ADT tool leaves decisions about sharing to the programmer. The tool proposed by Overbey and Johnson [11] focuses on rewriting abstract syntax trees for the purpose of code renovation. The work of de Jong and Olivier [3] focuses on the maintainability of the code generated for ADTs. By contrast, ADT does not help with either code renovation or maintainability.. The fourth category does not propose a specific method to support building abstract syntax trees. For example Smart C [6] is a type aware macro processor that can be used to rewrite fragments of C programs. This can be used to catch dereferencing of null pointers, which is one of the main purposes of ADT.. ADT is simpler and smaller than all of the above. ADT provides only one thing, i.e. ADTs and pattern matching, and it does this in the simplest and most efficient way possible. From a specification of the ADT the tool generates a .h and a .c file that provides the ADT user with the functionality needed to build and pattern match ADTs. There is no support for languages other than C, and there is no support for marshalling and unmarshalling, or automatied sharing. ADT does not perform type checking, this is left to the C compiler. ADT is thus simple.

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


Feature Selection for Unsupervised Learning In this paper, we identify two issues involved in developing an automated feature subset selection algorithm for unlabeled data: the need for finding the number of clusters in conjunction with feature selection, and the need for normalizing the bias of feature selection criteria with respect to dimension. We explore the feature selection problem and these issues through FSSEM (Feature Subset Selection using Expectation-Maximization (EM) clustering) and through two different performance criteria for evaluating candidate feature subsets: scatter separability and maximum likelihood. We present proofs on the dimensionality biases of these feature criteria, and present a cross-projection normalization scheme that can be applied to any criterion to ameliorate these biases. Our experiments show the need for feature selection, the need for addressing these two issues, and the effectiveness of our proposed solutions. In this paper, we explore the issues involved in developing automated feature subset selection algorithms for unsupervised learning. By unsupervised learning we mean unsupervised classification, or clustering. Cluster analysis is the process of finding "natural" groupings by grouping "similar" (based on some similarity measure) objects together.. For many learning domains, a human defines the features that are potentially useful. However, not all of these features may be relevant. In such a case, choosing a subset of the original features will often lead to better performance. Feature selection is popular in supervised learning (Fukunaga, 1990; Almuallim and Dietterich, 1991; Cardie, 1993; Kohavi and John, 1997) . For supervised learning, feature selection algorithms maximize some function of predictive accuracy. Because we are given class labels, it is natural that we want to keep only the features that are related to or lead to these classes. But in unsupervised learning, we are not given class labels. Which features should we keep? Why not use all the information we have? The problem is that not all features are important. Some of the features may be redundant, some may be irrelevant, and some can even misguide clustering results. In addition, reducing the number of features increases comprehensibility and ameliorates the problem that some unsupervised learning algorithms break down with high dimensional data. In this example, we consider feature y to be irrelevant, because if we omit x, we have only one cluster, which is uninteresting. Figure 1 shows an example of feature redundancy for unsupervised learning. Note that the data can be grouped in the same way using only either feature x or feature y. Therefore, we consider features x and y to be redundant. Figure 2 shows an example of an irrelevant feature. Observe that feature y does not contribute to cluster discrimination. Used by itself, feature y leads to a single cluster structure which is uninteresting. Note that irrelevant features can misguide clustering results (especially when there are more irrelevant features than relevant ones). In addition, the situation in unsupervised learning can be more complex than what we depict in Figures 1 and 2 . For example, in Figures 3a and b we show the clusters obtained using the feature subsets: {a, b} and {c, d} respectively. Different feature subsets lead to varying cluster structures. Which feature set should we pick?. Unsupervised learning is a difficult problem. It is more difficult when we have to simultaneously find the relevant features as well. A key element to the solution of any problem is to be able to precisely define the problem. In this paper, we define our task as: In this paper, we introduced a wrapper framework for performing feature subset selection for unsupervised learning. We explored the issues involved in developing algorithms under this framework. We identified the need for finding the number of clusters in feature search and provided proofs for the biases of ML and scatter separability with respect to dimension. We, then, presented methods to ameliorate these problems.. Our experimental results showed that incorporating finding the number of clusters k into the feature subset selection process led to better results than fixing k to be the true number of classes. There are two reasons: 1) the number of classes is not necessarily equal to the number of Gaussian clusters, and 2) different feature subsets have different number of clusters. Supporting theory, our experiments on simulated data showed that ML and scatter separability are in some ways biased with respect to dimension. Thus, a normalization scheme is needed for the chosen feature selection criterion. Our proposed cross-projection criterion normalization scheme was able to eliminate these biases.. Although we examined the wrapper framework using FSSEM, the search method, feature selection criteria (especially the trace criterion), and the feature normalization scheme can be easily applied to any clustering method. The issues we have encountered and solutions presented are applicable to any feature subset wrapper approach. FSSEM serves as an example. Depending on one's application, one may choose to apply a more appropriate search method, clustering and feature selection criteria.

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